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

This commit is contained in:
liuhuaizhi
2021-07-21 13:23:54 +08:00
35 changed files with 1701 additions and 367 deletions
@@ -264,6 +264,7 @@ export default {
item.NameList = NameList item.NameList = NameList
}) })
this.data = res.data this.data = res.data
this.total = res.data.length
}) })
}, },
pageChange (page) { pageChange (page) {
+28 -2
View File
@@ -71,6 +71,9 @@
prop="useFlag" prop="useFlag"
label="角色状态" label="角色状态"
width="170px"> width="170px">
<template slot-scope="scope">
<span>{{ scope.row.useFlag===0?'禁用':'启用' }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="operator" prop="operator"
@@ -184,9 +187,20 @@
</el-form-item> </el-form-item>
<el-form-item label="角色描述" prop="remarks" label-width="80px" class="add-form-item"> <el-form-item label="角色描述" prop="remarks" label-width="80px" class="add-form-item">
<el-input v-model="addForm.remarks" <el-input v-model="addForm.remarks"
placeholder="请输入上级描述" placeholder="请输入角色描述"
clearable></el-input> clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="角色状态" prop="useFlag" style="margin-left: 10px">
<el-select class="bead-input" v-model="addForm.useFlag">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
</div> </div>
<div slot="footer"> <div slot="footer">
@@ -243,7 +257,8 @@ export default {
SuperiorRoleModel: false, SuperiorRoleModel: false,
addFormRules: { addFormRules: {
name: [ name: [
{ required: true, message: '请输入角色名称', trigger: 'blur' } { required: true, message: '请输入角色名称', trigger: 'blur' },
{type: 'string', max: 100, message: '角色名称不能超过100个字符', trigger: 'blur'}
] ]
}, },
addForm: { addForm: {
@@ -251,8 +266,19 @@ export default {
parentId: '', // 上级ID parentId: '', // 上级ID
remarks: '', // 角色描述 remarks: '', // 角色描述
parent: '', parent: '',
useFlag: '',
id: '' id: ''
}, },
options: [
{
value: "0",
label: "禁用",
},
{
value: "1",
label: "启用",
}
],
addModel: false, addModel: false,
treeData3: [], treeData3: [],
defaultProps3: { defaultProps3: {
@@ -246,7 +246,7 @@
v-for="(file, fileIndex) in child.value" v-for="(file, fileIndex) in child.value"
:key="fileIndex" :key="fileIndex"
> >
|{{file.id}}| <span style="cursor: pointer;" @click="openFileInPdf(file.id, file.oldFileName)">|{{file.id}}|</span>
<!--发布稿、增补件单独设置下载权限--> <!--发布稿、增补件单独设置下载权限-->
<template v-if="child.attrField === 'XGD' || child.attrField === 'FBGBJBD' || child.attrField === 'BPG' <template v-if="child.attrField === 'XGD' || child.attrField === 'FBGBJBD' || child.attrField === 'BPG'
|| child.attrField === 'SSG'|| child.attrField === 'ZQYJG'|| child.attrField === 'CA' || child.attrField === 'SSG'|| child.attrField === 'ZQYJG'|| child.attrField === 'CA'
@@ -259,10 +259,10 @@ export default {
}, },
], ],
fileType: [ fileType: [
{ required: true, message: "文本状态称不能为空", trigger: "blur" }, { required: true, message: "文本状态称不能为空", trigger: "change" },
], ],
fileName: [ fileName: [
{ required: true, message: '文件不能为空', trigger: 'blur' } { required: true, message: '文件不能为空', trigger: 'change' }
] ]
}, },
options: [ options: [
@@ -515,7 +515,8 @@ export default {
message: "文件上传成功", message: "文件上传成功",
type: "success", type: "success",
}); });
// this.$refs['uploadFilesdfEo'].resetFields() this.$refs['uploadFilesdfEo'].clearValidate('fileName')
this.$refs['uploadFilesdfEo'].clearValidate('standName')
} else { } else {
this.defaultFileList = []; this.defaultFileList = [];
this.uploadFilesdfEo.attId = ""; this.uploadFilesdfEo.attId = "";
@@ -124,11 +124,10 @@ export default {
}, },
// 查询、加载数据 // 查询、加载数据
selectStandard () { selectStandard () {
this.$http.get('sarPersonalCenter/sar-user-star/getList', { this.$http.get('person/personCollect/page', {
current: this.page, pageNo: this.page,
size: this.$store.getters.userInfo.configContent, pageSize: this.$store.getters.userInfo.configContent,
userId: this.$store.getters.userInfo.userId, collectTitle: this.search.name
name: this.search.name
}, { }, {
_this: this, _this: this,
loading: 'loading' loading: 'loading'
@@ -26,7 +26,7 @@ export default {
}, },
{ {
label: '项目合规评估流程', label: '项目合规评估流程',
value: '7' value: '5'
}, },
{ {
label: '未符合项整改流程', label: '未符合项整改流程',
@@ -0,0 +1,556 @@
<template>
<div class="bzdyStep1-1">
<!-- 标准调研流程-->
<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 === '2' ? 'active' : ''" @click="handleTabs('2')">人员信息</div>
</div>
<div class="content" v-show="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="qbkwForm"
:model="form"
:rules="formRules"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="调研标题" prop="title" class="add-form-item form-item-disabled">
<el-input
v-model="form.title"
placeholder="请输入调研标题"
clearable
></el-input>
</el-form-item>
<el-form-item label="完成时间" prop="date" class="add-form-item form-item-disabled">
<el-date-picker
v-model="form.date"
type="date"
placeholder="请选择完成时间">
</el-date-picker>
</el-form-item>
<el-form-item label="调研模板" prop="modelName" class="add-form-item form-item-disabled">
<el-input
disabled
style="display: none;"
v-model="form.modelName"
clearable
></el-input>
<div v-if="form.modelName" @click="fileUpload" class="fileClass">
{{ form.modelName }}
</div>
<div v-else>
<el-button
type="primary"
class="common-button-primary"
@click="fileUpload"
size="mini">
点击上传
</el-button>
</div>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</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 class="content" v-show="active === '2'">
<div class="block" style="padding-top: 20px;">
<el-timeline>
<el-form
ref="Form"
:model="roleForm"
:rules="roleFormRules"
class="label-input-form">
<el-timeline-item timestamp="发起流程" placement="top" :color="roleForm.startUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="startUserName" style="margin-bottom: 0">
<h4>流程发起人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"></el-input>
<el-input v-model="roleForm.startUserName" placeholder="流程发起人" disabled></el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="选择部门责任人" placement="top" :color="roleForm.dockUserName ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="dockUserName" style="margin-bottom: 0">
<h4>责任部门对接人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.dockUserList" style="display: none;"></el-input>
<el-input v-model="roleForm.dockUserName" placeholder="选择责任人" @click.native="choiceZRRS">
</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.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>
</div>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<el-drawer
title="选择责任部门对接人"
:visible.sync="modalshowflag2"
:wrapperClosable="false"
size="800px">
<el-tree
v-if="modalshowflag2"
style="height: 100%; overflow: auto;"
node-key="id"
class="filter-tree"
:data="treeData"
:props="defaultProps"
:default-checked-keys="nodeList2"
highlight-current
check-strictly
default-expand-all
:expand-on-click-node="false"
show-checkbox
ref="tree2">
</el-tree>
<div id="roleFormButton2" class="demo-drawer-footer">
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="saveUserInfo2">确定</el-button>
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo2">取消</el-button>
</div>
</el-drawer>
<el-drawer
:title="drawerTitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px">
<el-tree
v-if="modalshowflag"
node-key="id"
style="height: 100%; overflow: auto;"
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>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-upload
multiple
drag
:action="fileUrl"
ref="importfile"
name="file"
accept=".ZIP, .zip, .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>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
import { saveTaskFirst, queryTaskFirst } from 'api/process'
export default {
name: "bzdyStep1-1",
data() {
return {
commentText: '',
roleRow: {},
nodeList: [],
type: '',
defaultProps: {
children: 'children',
label: 'name'
},
treeData: [], // 人员数据
modalshowflag: false, // drawer开关
drawerTitle: '', //drawer标题
textarea: '', // 意见
title: '', // 新增编辑抽屉标题
ListModel: false, // 新增编辑抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
form: {
title: '', // 调研标题
date: '', // 完成时间
model: '', // 上传模板
modelName: ''
},
formRules: {
title: [
{ required: true, message: '请输入调研标题', trigger: 'blur' },
],
date: [
{ type: 'date', required: true, message: '请选择完成时间', trigger: 'change' }
],
modelName: [
{ required: true, message: '请上传调研结果', trigger: 'change' },
]
},
roleForm: {
startUserName: this.$store.getters.userInfo.userName,
startUser: this.$store.getters.userInfo.userId,
dockUserList: '',
responUserList: '',
ministerUser: '',
directorUser: '',
presidentUser: '',
dockUserName: '',
responUserListName: '',
ministerUserName: '',
directorUserName: '',
presidentUserName: ''
},
roleFormRules: {
dockUserName: [
{ required: true, message: '请选择责任部门对接人', trigger: 'change' },
],
ministerUserName: [
{ required: true, message: '请选择标准法规部部长', trigger: 'change' },
],
directorUserName: [
{ required: true, message: '请选择技术管理中心主任', trigger: 'change' },
],
presidentUserName: [
{ required: true, message: '请选择工程研究院院长', trigger: 'change' },
]
},
fileUrl: 'api/att/attFile/upload',
fileMadel: false,
nodeList2: [],
modalshowflag2: false,
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
methods: {
getData () {
queryTaskFirst({
bpnId: this.$route.query.bpnId
}).then(res => {
let mes = JSON.parse(res.mes)
mes.form.date = new Date(this.$moment(mes.form.date).format('YYYY-MM-DD'))
this.form = mes.form
this.roleForm = mes.roleForm
this.commentText = mes.commentText
})
},
choiceZRRS () {
this.nodeList2 = []
if ( this.roleForm.dockUserList.length > 0) {
this.nodeList2 = this.roleForm.dockUserList.split(',')
}
this.modalshowflag2 = true
},
saveUserInfo2 () {
var idList = ''
var nameList = ''
this.$refs.tree2.getCheckedNodes().concat(this.$refs.tree2.getHalfCheckedNodes()).forEach( item => {
if (nameList.length > 0) {
nameList += ','
idList += ','
}
idList += item.id
nameList += item.name
})
this.roleForm.dockUserList = idList
this.roleForm.dockUserName = nameList
this.modalshowflag2 = false
},
cancleUserInfo2 () {
this.modalshowflag2 = false
},
// 导入按钮 上传之前的钩子
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 === '.ppt' || fileSuffix === '.docx' || fileSuffix === '.DOCX' || fileSuffix === '.PPT' || fileSuffix === '.xls' || fileSuffix === '.xlsx'|| fileSuffix === '.pdf'|| fileSuffix === '.PDF'|| fileSuffix === '.jpg'|| fileSuffix === '.JPG'|| fileSuffix === '.png'|| fileSuffix === '.PNG') {
return true
} else {
this.spinShow = false
this.$message.error('文件' + file.name + '格式不正确,请上传PPT,DOCX,XLS,PDF文件或图片')
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
this.form.model = response.data.id
this.form.modelName = response.data.name
this.$message({
showClose: true,
message: response.message,
type: 'success'
})
}
},
fileUpload () {
this.fileMadel = true
},
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.modalshowflag = false
},
cancleUserInfo () {
this.modalshowflag = false
},
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]
}
},
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=> {
this.treeData = res.data
})
},
handleTabs(name) {
this.active = name
},
handleSave() {
this.saveLoading = true
let _formData = new FormData()
_formData.append('id', this.bpnId || '')
_formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.userName)
_formData.append('prcType', '2')
_formData.append('json', JSON.stringify({
form: this.form,
roleForm: this.roleForm
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
this.$message.success('保存成功')
this.bpnId = res.result
}).catch(e => {
this.saveLoading = false
})
},
handleSubmit() {
this.$refs['qbkwForm'].validate((valid) => {
if (valid) {
this.$refs['Form'].validate((valid) => {
if (valid) {
this.isSubmit = true
this.$http.get('lawss/activiti/startProcess', {
type: '2'
}, {}, res => {
if (res.ok) {
var json = Object.assign(this.form, this.roleForm)
json.commentText = this.commentText
this.$http.post('lawss/activiti/completeTask', {
json: JSON.stringify(json),
taskId: res.data,
userId: this.$store.getters.userInfo.userId
}, {}, res => {
if (res.success) {
this.$message.success('流程发起成功')
this.$router.push('/processCenter')
}
this.isSubmit = false
})
} else {
this.isSubmit = false
this.$message.warning('流程启动失败')
}
})
} else {
return this.$message.warning('请完善人员信息')
}
})
} else {
return this.$message.warning('请完善基础信息')
}
})
}
},
mounted () {
this.getData()
this.getTree()
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
.bzdyStep1-1 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
position: relative;
height: 100%;
.fileClass {
cursor: pointer;
}
.fileClass:hover{
color: #0c91e5;
}
.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;
}
}
}
}
</style>
@@ -96,7 +96,7 @@
</el-form-item> </el-form-item>
</el-card> </el-card>
</el-timeline-item> </el-timeline-item>
<el-timeline-item timestamp="选择部门责任人" placement="top" :color="roleForm.dockUser ? '#66b1ff' : ''"> <el-timeline-item timestamp="选择部门责任人" placement="top" :color="roleForm.dockUserName ? '#66b1ff' : ''">
<el-card> <el-card>
<el-form-item prop="dockUserName" style="margin-bottom: 0"> <el-form-item prop="dockUserName" style="margin-bottom: 0">
<h4>责任部门对接人</h4> <h4>责任部门对接人</h4>
@@ -159,8 +159,20 @@
:visible.sync="modalshowflag2" :visible.sync="modalshowflag2"
:wrapperClosable="false" :wrapperClosable="false"
size="800px"> size="800px">
<el-form
ref="attributeEO"
class="label-input-form"
:inline="true"
>
<el-form-item class="form-item-disabled" style="margin: 10px;">
<el-input
v-model="filterText2"
placeholder="请输入姓名"
></el-input>
</el-form-item>
</el-form>
<el-tree <el-tree
v-if="modalshowflag2" v-if="modalshowflag2 && open2"
style="height: 100%; overflow: auto;" style="height: 100%; overflow: auto;"
node-key="id" node-key="id"
class="filter-tree" class="filter-tree"
@@ -169,23 +181,52 @@
:default-checked-keys="nodeList2" :default-checked-keys="nodeList2"
highlight-current highlight-current
check-strictly check-strictly
default-expand-all
:expand-on-click-node="false" :expand-on-click-node="false"
show-checkbox show-checkbox
ref="tree2"
:load="loadNode"
lazy>
</el-tree>
<el-tree
v-if="modalshowflag2 && !open2"
style="height: 100%; overflow: auto;"
node-key="id"
class="filter-tree"
:data="treeData2"
:props="defaultProps"
:default-checked-keys="nodeList2"
highlight-current
check-strictly
:expand-on-click-node="false"
default-expand-all
show-checkbox
ref="tree2"> ref="tree2">
</el-tree> </el-tree>
<div id="roleFormButton2" class="demo-drawer-footer"> <div id="roleFormButton2" class="demo-drawer-footer">
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="saveUserInfo2">确定</el-button> <el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" @click="saveUserInfo2">确定</el-button>
<el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo2">取消</el-button> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo2">取消</el-button>
</div> </div>
<loading style="z-index: 2099;" :loading="treeLoading">导入中...</loading>
</el-drawer> </el-drawer>
<el-drawer <el-drawer
:title="drawerTitle" :title="drawerTitle"
:visible.sync="modalshowflag" :visible.sync="modalshowflag"
:wrapperClosable="false" :wrapperClosable="false"
size="800px"> size="800px">
<el-form
ref="attributeEO"
class="label-input-form"
:inline="true"
>
<el-form-item class="form-item-disabled" style="margin: 10px;">
<el-input
v-model="filterText1"
placeholder="请输入姓名"
></el-input>
</el-form-item>
</el-form>
<el-tree <el-tree
v-if="modalshowflag" v-if="modalshowflag && open1"
node-key="id" node-key="id"
style="height: 100%; overflow: auto;" style="height: 100%; overflow: auto;"
class="filter-tree" class="filter-tree"
@@ -195,15 +236,33 @@
highlight-current highlight-current
check-strictly check-strictly
@check="drawerCheck" @check="drawerCheck"
default-expand-all
:expand-on-click-node="false" :expand-on-click-node="false"
show-checkbox show-checkbox
ref="tree"
:load="loadNode"
lazy>
</el-tree>
<el-tree
v-if="modalshowflag && !open1"
node-key="id"
style="height: 100%; overflow: auto;"
class="filter-tree"
:data="treeData1"
:props="defaultProps"
:default-checked-keys="nodeList"
highlight-current
check-strictly
@check="drawerCheck"
:expand-on-click-node="false"
default-expand-all
show-checkbox
ref="tree"> ref="tree">
</el-tree> </el-tree>
<div id="roleFormButton" class="demo-drawer-footer"> <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-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> <el-button class="common-button-default" size="mini" icon="el-icon-close" @click="cancleUserInfo">取消</el-button>
</div> </div>
<loading style="z-index: 2099;" :loading="treeLoading">导入中...</loading>
</el-drawer> </el-drawer>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件"> <el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-upload <el-upload
@@ -230,11 +289,19 @@
import ProcessHeader from '../../components/ProcessHeader' import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' import ProcessTitle from '../../components/ProcessTitle'
import { saveTaskFirst } from 'api/process'
export default { export default {
name: "bzdyStep1", name: "bzdyStep1",
data() { data() {
return { return {
treeLoading: false,
treeData2: [],
treeData1: [],
open1: true,
open2: true,
filterText1: '',
filterText2: '',
commentText: '', commentText: '',
roleRow: {}, roleRow: {},
nodeList: [], nodeList: [],
@@ -309,12 +376,56 @@ export default {
ProcessFooter, ProcessFooter,
ProcessTitle ProcessTitle
}, },
watch: {
filterText1 (val) {
if (val.length) {
this.open1 = false
this.treeLoading = true
this.$http.get('SarInstitution/institution/institutionAndUser', {
userName: val
}, {}, res => {
this.treeData1 = res.data
this.treeLoading = false
})
} else {
this.open1 = true
}
},
filterText2 (val) {
if (val.length) {
this.open2 = false
this.treeLoading = true
this.$http.get('SarInstitution/institution/institutionAndUser', {
userName: val
}, {}, res => {
this.treeData2 = res.data
this.treeLoading = false
})
} else {
this.open2 = true
}
},
},
methods: { methods: {
loadNode(node, resolve) {
if (node.level === 0) {
return resolve(this.treeData);
}
this.getChildren(node, resolve)
},
getChildren (node, resolve) {
this.$http.get('SarInstitution/institution/getNext', {
institutionId: node.key
}, {}, res => {
resolve(res)
})
},
choiceZRRS () { choiceZRRS () {
this.nodeList2 = [] this.nodeList2 = []
if ( this.roleForm.dockUserList.length > 0) { if ( this.roleForm.dockUserList.length > 0) {
this.nodeList2 = this.roleForm.dockUserList.split(',') this.nodeList2 = this.roleForm.dockUserList.split(',')
} }
this.filterText2 = ''
this.modalshowflag2 = true this.modalshowflag2 = true
}, },
saveUserInfo2 () { saveUserInfo2 () {
@@ -409,17 +520,39 @@ export default {
this.nodeList.push(id) this.nodeList.push(id)
this.type = type this.type = type
this.drawerTitle = title this.drawerTitle = title
this.filterText1 = ''
this.modalshowflag = true this.modalshowflag = true
}, },
getTree () { getTree () {
this.$http.get('SarInstitution/institution/institutionAndUser', {}, {}, res=> { this.treeLoading = true
this.treeData = res.data this.$http.get('SarInstitution/institution/getFirstInstitution', {}, {}, res=> {
this.treeData = res
this.treeLoading = false
}) })
}, },
handleTabs(name) { handleTabs(name) {
this.active = name this.active = name
}, },
handleSave() {}, handleSave() {
this.saveLoading = true
let _formData = new FormData()
_formData.append('id', this.bpnId || '')
_formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.userName)
_formData.append('prcType', '2')
_formData.append('json', JSON.stringify({
form: this.form,
roleForm: this.roleForm,
commentText: this.commentText
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
this.$message.success('保存成功')
this.bpnId = res.result
}).catch(e => {
this.saveLoading = false
})
},
handleSubmit() { handleSubmit() {
this.$refs['qbkwForm'].validate((valid) => { this.$refs['qbkwForm'].validate((valid) => {
if (valid) { if (valid) {
@@ -75,7 +75,6 @@
</el-collapse> </el-collapse>
</div> </div>
<ProcessFooter <ProcessFooter
show-save
show-submit show-submit
:submitLoading="isSubmit" :submitLoading="isSubmit"
:saveLoading="saveLoading" :saveLoading="saveLoading"
@@ -67,48 +67,48 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="附件" prop="modelName" class="add-form-item form-item-disabled"> <!-- <el-form-item label="附件" prop="modelName" class="add-form-item form-item-disabled">-->
<el-input <!-- <el-input-->
disabled <!-- disabled-->
style="display: none;" <!-- style="display: none;"-->
v-model="listForm.modelName" <!-- v-model="listForm.modelName"-->
clearable <!-- clearable-->
></el-input> <!-- ></el-input>-->
<div v-if="listForm.modelName" @click="fileUpload" class="fileClass"> <!-- <div v-if="listForm.modelName" @click="fileUpload" class="fileClass">-->
{{ listForm.modelName }} <!-- {{ listForm.modelName }}-->
</div> <!-- </div>-->
<div v-else> <!-- <div v-else>-->
<el-button <!-- <el-button-->
type="primary" <!-- type="primary"-->
class="common-button-primary" <!-- class="common-button-primary"-->
@click="fileUpload" <!-- @click="fileUpload"-->
size="mini"> <!-- size="mini">-->
点击上传
</el-button>
</div>
</el-form-item>
<!-- <el-form-item label="附件" prop="fileId" class="add-form-item form-item-disabled">-->
<!-- <el-upload-->
<!-- v-if="listForm.fileId == null || this.listForm.fileId== 'undefined' || this.listForm.fileId == '' "-->
<!-- :action="uploadFileListPath"-->
<!-- show-file-list-->
<!-- :file-list="fileInfoList"-->
<!-- name="file"-->
<!-- accept=".PDF, .pdf, .doc, .DOC, .docx, .DOCX, .xls, .xlsx, .ppt, .pptx, .PPT, .PPTX, .JPG, .JPEG, .PNG, .jpg, .jpeg, .png"-->
<!-- :on-remove="delFileInfo"-->
<!-- :on-success="uploadBackSuccess"-->
<!-- :before-upload="beforeUpload"-->
<!-- >-->
<!-- <el-button class="common-button-default" size="mini">-->
<!-- 点击上传--> <!-- 点击上传-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-upload>--> <!-- </div>-->
<!-- <el-input-->
<!-- v-else-->
<!-- v-model="listForm.fileId"-->
<!-- placeholder=""-->
<!-- ></el-input>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="附件" prop="fileId" class="add-form-item form-item-disabled">
<el-upload
v-if="listForm.fileId == null || this.listForm.fileId== 'undefined' || this.listForm.fileId == '' "
:action="uploadFileListPath"
show-file-list
:file-list="fileInfoList"
name="file"
accept=".PDF, .pdf, .doc, .DOC, .docx, .DOCX, .xls, .xlsx, .ppt, .pptx, .PPT, .PPTX, .JPG, .JPEG, .PNG, .jpg, .jpeg, .png"
:on-remove="delFileInfo"
:on-success="uploadBackSuccess"
:before-upload="beforeUpload"
>
<el-button class="common-button-default" size="mini">
点击上传
</el-button>
</el-upload>
<el-input
v-else
v-model="listForm.fileId"
placeholder=""
></el-input>
</el-form-item>
<el-form-item label="会签" prop="sign" class="add-form-item form-item-disabled"> <el-form-item label="会签" prop="sign" class="add-form-item form-item-disabled">
<el-radio-group v-model="signFlag" @change="selectSign"> <el-radio-group v-model="signFlag" @change="selectSign">
<el-radio label="1">是</el-radio> <el-radio label="1">是</el-radio>
@@ -833,6 +833,7 @@ export default {
sarAccessListDatas: [], //国家地区清单表格 sarAccessListDatas: [], //国家地区清单表格
uploadFileListPath: "api/att/attFile/upload", // 上传的地址 uploadFileListPath: "api/att/attFile/upload", // 上传的地址
fileInfoList: [], // 上传的附件 fileInfoList: [], // 上传的附件
fileListName: [], //上传的附件名称
standardData: [], //添加标准数据 standardData: [], //添加标准数据
standardData1: [], //添加标准数据 standardData1: [], //添加标准数据
ListModel: false, //选择清单抽屉状态 ListModel: false, //选择清单抽屉状态
@@ -1063,6 +1064,8 @@ export default {
//提交事件 //提交事件
handleSubmit() { handleSubmit() {
let json = this.listForm; let json = this.listForm;
this.listForm.fileId = this.fileInfoList.join(',')
this.listForm.fileName = this.fileListName.join(',')
// let json = Object.assign(this.listForm, this.roleForm) // let json = Object.assign(this.listForm, this.roleForm)
json.zrUserId = this.roleForm.dockUser; //会签人 json.zrUserId = this.roleForm.dockUser; //会签人
json.jlUserId = this.roleForm.directorUser; //业务经理 json.jlUserId = this.roleForm.directorUser; //业务经理
@@ -1107,10 +1110,54 @@ export default {
// 删除上传的文件 // 删除上传的文件
delFileInfo(file, fileList) { delFileInfo(file, fileList) {
this.fileInfoList = fileList this.fileInfoList = fileList
fileList.forEach(item => {
this.fileListName = item.name
})
}, },
fileUpload () { fileUpload () {
this.fileMadel = true this.fileMadel = true
}, },
// 上传文件成功回调
uploadBackSuccess (res, file, fileList) {
if (res.ok) {
fileList.forEach(item => {
this.fileListName = item.name
})
this.fileInfoList = fileList
this.fileInfoList[this.fileInfoList.length - 1].id = res.data.id
this.$message.success('上传成功')
} else {
this.$message.error(res.message)
fileList.pop()
}
},
// 相关附件 上传之前钩子
beforeUpload (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 !== undefined && fileSuffix !== null){
fileSuffix = fileSuffix.toUpperCase()
}
// 判断上传文件格式
if (fileSuffix === '.PDF' || fileSuffix === '.DOC' || fileSuffix === '.DOCX' || fileSuffix === '.PPT'
|| fileSuffix === '.PPTX'|| fileSuffix === '.XLS'|| fileSuffix === '.XLSX'
|| fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG') {
return true
} else {
this.$message.error('文件' + file.name + '格式不正确,请上传pdf、doc、docx、ppt、pptx、xls、xlsx、png、jpg、jpeg等文件')
return false
}
// 判断文件上传大小
if (file.size / 1024 / 1024 > 300) {
this.$message.warning('文件' + file.name + '大小不能超过300M')
return false
}
return true
},
// 点击查看 // 点击查看
handlePreview (item) { handlePreview (item) {
let routeUrl = this.$router.resolve({ let routeUrl = this.$router.resolve({
@@ -373,6 +373,28 @@ export default {
}, },
selectThree() { selectThree() {
},
// 请求上传的文件信息
getFileInfo() {
// this.$http.get("att/attFile/getMultiFileInfos", {
// fileIds: this.sarAccessEO.fileIds
// }, {
// _this: this
// }, res => {
// console.log(res);
// this.$nextTick(() => {
// res.data.map(item => {
// // 赋值要回显的上传文件内容
// this.fileInfoList.push({
// name: item.oldFileName,
// uid: item.uid,
// status: item.status,
// id: item.id
// });
// });
// });
// }, e => {
// });
}, },
pageChange(page) { pageChange(page) {
this.page = page; this.page = page;
@@ -391,6 +413,7 @@ export default {
mounted() { mounted() {
this.processTable() this.processTable()
this.getData() this.getData()
this.getFileInfo()
// console.log(this.$store.getters.getHandleInfo); // console.log(this.$store.getters.getHandleInfo);
} }
}; };
@@ -1497,14 +1497,14 @@
console.log(bringData) console.log(bringData)
const json = Object.assign(bringData, bringData.attrInfoCaseMap); const json = Object.assign(bringData, bringData.attrInfoCaseMap);
this.form = JSON.parse(JSON.stringify(json)) this.form = JSON.parse(JSON.stringify(json))
this.form.qcdw = JSON.parse(JSON.stringify(json)).qcdw.split(',') this.form.qcdw = JSON.parse(JSON.stringify(json)).qcdw ? JSON.parse(JSON.stringify(json)).qcdw.split(',') : []
this.form.wssmr = JSON.parse(JSON.stringify(json)).wssmr.split(',') this.form.wssmr = JSON.parse(JSON.stringify(json)).wssmr ? JSON.parse(JSON.stringify(json)).wssmr.split(',') : []
this.form.zrgcs = JSON.parse(JSON.stringify(json)).zrgcs.split(',') this.form.zrgcs = JSON.parse(JSON.stringify(json)).zrgcs ? JSON.parse(JSON.stringify(json)).zrgcs.split(',') : []
this.form.zrbm = JSON.parse(JSON.stringify(json)).zrbm.split(',') this.form.zrbm = JSON.parse(JSON.stringify(json)).zrbm ? JSON.parse(JSON.stringify(json)).zrbm.split(',') : []
this.form.syrz = JSON.parse(JSON.stringify(json)).syrz.split(',') this.form.syrz = JSON.parse(JSON.stringify(json)).syrz ? JSON.parse(JSON.stringify(json)).syrz.split(',') : []
this.form.sycpx = JSON.parse(JSON.stringify(json)).sycpx.split(',') this.form.sycpx = JSON.parse(JSON.stringify(json)).sycpx ? JSON.parse(JSON.stringify(json)).sycpx.split(',') : []
this.form.nylx = JSON.parse(JSON.stringify(json)).nylx.split(',') this.form.nylx = JSON.parse(JSON.stringify(json)).nylx ? JSON.parse(JSON.stringify(json)).nylx.split(',') : []
this.form.cllx = JSON.parse(JSON.stringify(json)).cllx.split(',') this.form.cllx = JSON.parse(JSON.stringify(json)).cllx ? JSON.parse(JSON.stringify(json)).cllx.split(',') : []
this.defaultCheckedKeys = [this.form.standSystem]; this.defaultCheckedKeys = [this.form.standSystem];
this.defaultCheckedKeys1 = [this.form.cycvppsbm]; this.defaultCheckedKeys1 = [this.form.cycvppsbm];
this.defaultCheckedKeys2 = [this.form.kccvppsbm]; this.defaultCheckedKeys2 = [this.form.kccvppsbm];
@@ -1949,7 +1949,8 @@
saveTaskFirst(_formData).then(res => { saveTaskFirst(_formData).then(res => {
this.saveLoading = false this.saveLoading = false
this.$message.success('保存成功') this.$message.success('保存成功')
// this.$router.push('/processCenter') // 流程保存之后,应该流转至草稿页面
this.$router.push({path:'/processCenter?tabsName=TaskDraft'})
// this.bpnId = res.result // this.bpnId = res.result
}).catch(e => { }).catch(e => {
this.saveLoading = false this.saveLoading = false
@@ -1982,6 +1983,8 @@
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)
this.isSubmit = false this.isSubmit = false
// 流程提交之后,应该流转至待办任务页面
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
} }
}) })
} }
@@ -679,6 +679,7 @@
</template> </template>
<script> <script>
import {saveTaskFirst} from "api/process";
import ProcessHeader from '../../components/ProcessHeader' import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter' import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle' import ProcessTitle from '../../components/ProcessTitle'
@@ -943,7 +944,31 @@ export default {
handleTabs(name) { handleTabs(name) {
this.active = name this.active = name
}, },
handleSave() {}, handleSave() {
this.saveLoading = true
let _formData = new FormData()
// _formData.append('id', this.bpnId)
_formData.append('createUser', this.$store.getters.userInfo.userId)
_formData.append('createUserName', this.$store.getters.userInfo.uName)
_formData.append('prcType', this.$route.query.type)
_formData.append('json', JSON.stringify({
prcForm: this.prcForm,
sarAccessInfoList: this.sarAccessInfoList,
sarAccessInfoListADMIN: this.sarAccessInfoListADMIN,
bzqdForm: this.bzqdForm,
listInfo: this.listInfo,
id: this.id
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
this.$message.success('保存成功')
// 流程保存之后,应该流转至草稿页面
this.$router.push({path:'/processCenter?tabsName=TaskDraft'})
// this.bpnId = res.result
}).catch(e => {
this.saveLoading = false
})
},
handleSubmit() { handleSubmit() {
this.isSubmit = false this.isSubmit = false
this.form.commentText = this.commentText this.form.commentText = this.commentText
@@ -958,6 +983,8 @@ export default {
}, res => { }, res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message)
// 流程提交之后,应该流转至待办任务页面
this.$router.push({path:'/processCenter?tabsName=ProcessCenter'})
}else { }else {
this.$message.success(res.message) this.$message.success(res.message)
} }
@@ -629,42 +629,49 @@ export default {
}, },
//提交事件 //提交事件
handleSubmit() { handleSubmit() {
var json = Object.assign(this.listForm, this.roleForm) this.dataList.forEach(item => {
json.prcCreateUser = this.$store.getters.userInfo.userId; if(item.distributePerson === '' || item.distributePerson === null || item.distributePerson === undefined){
json.prcCreateUserName = this.$store.getters.userInfo.account; this.$message.warning('请选择分发责任人')
json.standId = this.listForm.standId; } else {
json.XCXSSRQ = this.sarAccessListDatas[0].xcxssrqgj var json = Object.assign(this.listForm, this.roleForm)
json.ZCCSSRQ = this.sarAccessListDatas[0].zccssrqgj json.prcCreateUser = this.$store.getters.userInfo.userId;
this.$refs['listForm'].validate((valid) => { json.prcCreateUserName = this.$store.getters.userInfo.account;
if (valid) { json.standId = this.listForm.standId;
this.$refs['roleForm'].validate((valid) => { json.XCXSSRQ = this.sarAccessListDatas[0].xcxssrqgj
json.ZCCSSRQ = this.sarAccessListDatas[0].zccssrqgj
this.$refs['listForm'].validate((valid) => {
if (valid) { if (valid) {
this.$http.get("lawss/activiti/startProcess", { type: "5" }, { this.$refs['roleForm'].validate((valid) => {
_this: this if (valid) {
}, res => { this.$http.get("lawss/activiti/startProcess", { type: "5" }, {
if (res.ok) {
this.$http.post("lawss/activiti/completeTask", {
taskIds: res.data,
userId: this.$store.getters.userInfo.userId,
json: JSON.stringify(json)
}, {
_this: this _this: this
}, res => { }, res => {
if (res.success) { if (res.ok) {
this.$message.success(res.message); this.$http.post("lawss/activiti/completeTask", {
this.$router.push("/processCenter"); 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");
}
});
} }
}); });
} else {
return this.$message.warning("请完善人员信息");
} }
}); });
} else { } else {
return this.$message.warning("请完善人员信息"); return this.$message.warning("请完善基础信息");
} }
}); });
} else {
return this.$message.warning("请完善基础信息");
} }
}); })
}, },
//选择拆分标准取消事件 //选择拆分标准取消事件
closeDrawer() { closeDrawer() {
@@ -683,7 +690,6 @@ export default {
}, { }, {
_this: this _this: this
}, res => { }, res => {
console.log(res)
this.listForm.breakdownList = res.data; this.listForm.breakdownList = res.data;
this.ListModel = false; this.ListModel = false;
}, e => { }, e => {
@@ -227,7 +227,7 @@ export default {
total: 0, total: 0,
pageSize: this.$store.getters.userInfo.configContent, pageSize: this.$store.getters.userInfo.configContent,
listForm: { listForm: {
passFlag: "1", //1为审批通过 2 为驳回 passFlag: " ", //空为审批通过 1 为驳回
standNumber: "", //标准编号 standNumber: "", //标准编号
standName: "",//标准名称 standName: "",//标准名称
certifiedEngineer: "", //认证工程师 certifiedEngineer: "", //认证工程师
@@ -303,7 +303,6 @@ export default {
taskIds: this.taskIds, taskIds: this.taskIds,
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
console.log(res.mesg);
if (res) { if (res) {
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
@@ -317,7 +316,6 @@ export default {
*/ */
getFormFieldList (item) { getFormFieldList (item) {
this.$nextTick(() => { this.$nextTick(() => {
console.log(item.dataList)
this.listForm = JSON.parse(JSON.stringify(item)) this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName this.listForm.prcName = this.prcName
@@ -332,7 +330,7 @@ export default {
//驳回事件 //驳回事件
beforeBack () { beforeBack () {
this.listForm.passFlag = '2' this.listForm.passFlag = '1'
this.handleSubmit() this.handleSubmit()
}, },
//提交事件 //提交事件
@@ -343,8 +341,6 @@ export default {
this.listForm.zrUserId = this.$store.getters.userInfo.userId ; this.listForm.zrUserId = this.$store.getters.userInfo.userId ;
this.listForm.commentText = this.commentText; this.listForm.commentText = this.commentText;
this.listForm.standId = this.listForm.standId; this.listForm.standId = this.listForm.standId;
this.listForm.passFlag = '1';
this.listForm.signFlag = "";
this.listForm.breakdownList = this.listForm.breakdownList this.listForm.breakdownList = this.listForm.breakdownList
const json = JSON.stringify(this.listForm); const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', { this.$http.post('lawss/activiti/completeTask', {
@@ -102,7 +102,7 @@
align="center" align="center"
label="新车型实施日期"> label="新车型实施日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.xCXSSRQ ? $moment(scope.row.xCXSSRQ).format('YYYY-MM-DD') : '' }}</span> <span>{{ scope.row.xCXSSRQ ? $moment(scope.row.xCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -110,7 +110,7 @@
align="center" align="center"
label="在产车实施日期"> label="在产车实施日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.zCCSSRQ ? $moment(scope.row.zCCSSRQ).format('YYYY-MM-DD') : '' }}</span> <span>{{ scope.row.zCCSSRQ ? $moment(scope.row.zCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -121,7 +121,8 @@
<template slot-scope="scope,text" v-if="showColumn"> <template slot-scope="scope,text" v-if="showColumn">
<div> <div>
<div @click="choiceZRR(scope,'implementer', '选择落实人', roleForm.implementer)"> <div @click="choiceZRR(scope,'implementer', '选择落实人', roleForm.implementer)">
{{ listForm.breakdownList[scope.$index].implementer == null ? "请选择落实人" : listForm.breakdownList[scope.$index].implementer }} {{ listForm.breakdownList[scope.$index].implementer == null ? "请选择落实人" : listForm.breakdownList[scope.$index].implementer
}}
</div> </div>
</div> </div>
</template> </template>
@@ -269,6 +270,7 @@ export default {
sarProStateTableHeight: null, // 项目列表高度 sarProStateTableHeight: null, // 项目列表高度
// 当前流程类型(1待办/2已办) // 当前流程类型(1待办/2已办)
processType: 1, processType: 1,
sarFlag: true,
loading: false, loading: false,
// dataList: [],//清单里的标准数据 // dataList: [],//清单里的标准数据
active: "1", active: "1",
@@ -364,7 +366,6 @@ export default {
taskIds: this.taskIds, taskIds: this.taskIds,
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
console.log(res.mesg);
if (res) { if (res) {
const processForm = JSON.parse(res.mesg); const processForm = JSON.parse(res.mesg);
this.getFormFieldList(processForm); this.getFormFieldList(processForm);
@@ -386,6 +387,7 @@ export default {
for (let i = 0; i < item.pepdtos.length; i++) { for (let i = 0; i < item.pepdtos.length; i++) {
for (let j = 0; j < item.pepdtos[i].breakdownList.length; j++) { for (let j = 0; j < item.pepdtos[i].breakdownList.length; j++) {
this.listForm.breakdownList.push({ this.listForm.breakdownList.push({
itemId: new Date().getTime(),
itemsName: item.pepdtos[i].breakdownList[j].itemsName, itemsName: item.pepdtos[i].breakdownList[j].itemsName,
itemNum: item.pepdtos[i].breakdownList[j].itemsNum, itemNum: item.pepdtos[i].breakdownList[j].itemsNum,
responsibleEngineer: item.pepdtos[i].breakdownList[j].responsibleEngineer, responsibleEngineer: item.pepdtos[i].breakdownList[j].responsibleEngineer,
@@ -398,22 +400,31 @@ export default {
distributePersonId: item.pepdtos[i].distributePersonId, distributePersonId: item.pepdtos[i].distributePersonId,
uname: item.pepdtos[i].uname, uname: item.pepdtos[i].uname,
projectManager: item.pepdtos[i].projectManager, projectManager: item.pepdtos[i].projectManager,
certifiedEngineer: item.pepdtos[i].certifiedEngineer, certifiedEngineerName: item.pepdtos[i].certifiedEngineerName,
qualityEngineer: item.pepdtos[i].qualityEngineer, qualityEngineerName: item.pepdtos[i].qualityEngineerName,
standNumber: item.pepdtos[i].standNumber, standNumber: item.pepdtos[i].standNumber,
standName: item.pepdtos[i].standName, standName: item.pepdtos[i].standName,
xCXSSRQ: item.pepdtos[i].xCXSSRQ, xCXSSRQ: item.pepdtos[i].xCXSSRQ,
zCCSSRQ: item.pepdtos[i].zCCSSRQ, zCCSSRQ: item.pepdtos[i].zCCSSRQ
}); });
} }
console.log(item.pepdtos);
} }
}, },
saveUserInfo() { saveUserInfo() {
if (this.type === "implementer") { if (this.type === "implementer") {
// 如果有勾选的项
if (this.selectList.length) {
this.listForm.breakdownList.forEach((item, index) => {
if (this.selectList.includes(item.itemId)) {
this.listForm.breakdownList[index].implementerId = this.roleRow.id;
this.listForm.breakdownList[index].implementer = this.roleRow.name;
}
});
} else {
this.listForm.breakdownList[this.dsadadadsada].implementerId = this.roleRow.id;
this.listForm.breakdownList[this.dsadadadsada].implementer = this.roleRow.name;
}
this.listForm.implementer = this.roleRow.name; 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.showColumn = false;
this.$nextTick(() => { this.$nextTick(() => {
this.showColumn = true; this.showColumn = true;
@@ -443,28 +454,38 @@ export default {
}, },
//提交事件 //提交事件
handleSubmit() { handleSubmit() {
this.listForm.prcCreateUser = this.$store.getters.userInfo.userId; this.listForm.breakdownList.forEach(item => {
this.listForm.applyUpdUserId = this.$store.getters.userInfo.userId; if (item.implementer === null || item.implementer === "" || item.implementer === undefined) {
this.listForm.prcCreateUserName = this.$store.getters.userInfo.account; this.sarFlag = false;
this.listForm.zrUserId = this.$store.getters.userInfo.userId; } else {
this.listForm.commentText = this.commentText; this.sarFlag = true;
this.listForm.approvalOpinion = "";
this.listForm.signFlag = "";
const json = JSON.stringify(this.listForm.breakdownList);
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 => {
}); });
if (this.sarFlag === true) {
this.listForm.prcCreateUser = this.$store.getters.userInfo.userId;
this.listForm.applyUpdUserId = this.$store.getters.userInfo.userId;
this.listForm.prcCreateUserName = this.$store.getters.userInfo.account;
this.listForm.zrUserId = this.$store.getters.userInfo.userId;
this.listForm.commentText = this.commentText;
this.listForm.approvalOpinion = "";
this.listForm.signFlag = "";
const json = JSON.stringify(this.listForm.breakdownList);
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 => {
});
} else {
this.$message.warning("请选择落实人");
}
}, },
drawerCheck(data) { drawerCheck(data) {
var getlist = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes()); var getlist = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes());
@@ -477,10 +498,7 @@ export default {
}, },
//标准表格选择框改变 //标准表格选择框改变
selectStandChange(data) { selectStandChange(data) {
this.selectList = []; this.selectList = data.map(item => item.itemId);
for (let i = 0; i < data.length; i++) {
this.selectList.push(data[i].id);
}
}, },
selectThree() { selectThree() {
@@ -35,16 +35,16 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="认证工程师" prop="certifiedEngineer" class="add-form-item form-item-disabled"> <el-form-item label="认证工程师" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.certifiedEngineer" v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师" placeholder="请选择认证工程师"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="质量工程师" prop="qualityEngineer" class="add-form-item form-item-disabled"> <el-form-item label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.qualityEngineer" v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师" placeholder="请选择质量工程师"
clearable clearable
></el-input> ></el-input>
@@ -108,7 +108,7 @@
align="center" align="center"
label="新车型实施日期"> label="新车型实施日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.xCXSSRQ ? $moment(scope.row.xCXSSRQ).format('YYYY-MM-DD') : '' }}</span> <span>{{ scope.row.xCXSSRQ ? $moment(scope.row.xCXSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -117,7 +117,7 @@
align="center" align="center"
label="在产车实施日期"> label="在产车实施日期">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.zCCSSRQ ? $moment(scope.row.zCCSSRQ).format('YYYY-MM-DD') : '' }}</span> <span>{{ scope.row.zCCSSRQ ? $moment(scope.row.zCCSSRQ).format("YYYY-MM-DD") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -273,7 +273,7 @@
<div class="content" v-show="active === '3'"> <div class="content" v-show="active === '3'">
<div class="flow-list"> <div class="flow-list">
<el-table <el-table
height="100%" height="800px"
ref="selection" ref="selection"
:data="detailData" :data="detailData"
tooltip-effect="dark" tooltip-effect="dark"
@@ -306,7 +306,7 @@
sortable="custom" sortable="custom"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</span> <span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -314,7 +314,7 @@
label="完成时间" label="完成时间"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD') : '' }}</span> <span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -322,7 +322,7 @@
label="审批意见" label="审批意见"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.commentText}}</span> <span>{{ scope.row.commentText }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -330,7 +330,7 @@
label="状态" label="状态"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.endTime ? '已完成' : '未完成'}}</span> <span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -365,7 +365,6 @@ export default {
}, },
data() { data() {
return { return {
detailData: [], detailData: [],
sarProStateTableHeight: null, // 项目列表高度 sarProStateTableHeight: null, // 项目列表高度
// 当前流程类型(1待办/2已办) // 当前流程类型(1待办/2已办)
@@ -373,7 +372,7 @@ export default {
loading: false, loading: false,
dataList: [],//清单里的标准数据 dataList: [],//清单里的标准数据
active: "1", active: "1",
userId:this.$store.getters.userInfo.userId, userId: this.$store.getters.userInfo.userId,
taskIds: this.$route.query.taskIds, taskIds: this.$route.query.taskIds,
pId: this.$route.query.prcId, pId: this.$route.query.prcId,
listType: "country", //选择的清单类型 listType: "country", //选择的清单类型
@@ -388,30 +387,30 @@ export default {
total: 0, total: 0,
pageSize: this.$store.getters.userInfo.configContent, pageSize: this.$store.getters.userInfo.configContent,
listForm: { listForm: {
standNumber: "", //标准编号 standNumber: "", //标准编号
standName: "",//标准名称 standName: "",//标准名称
certifiedEngineer: "", //认证工程师 certifiedEngineerName: "", //认证工程师
qualityEngineer: "", //质量工程师 qualityEngineerName: "", //质量工程师
dataList: [{ dataList: [{
projectManager: '', projectManager: "",
itemsName: '', itemsName: "",
uname: '', uname: "",
projectNumber: '', projectNumber: "",
implementer: '', implementer: "",
implementerId: '', implementerId: "",
productLine: '', productLine: "",
itemNum:'', itemNum: "",
distributePerson:'', distributePerson: "",
projectName:'', projectName: "",
distributePersonId:'', distributePersonId: "",
complianceReasons:'', //在研合规原因 complianceReasons: "", //在研合规原因
noCompliance:'', //在研不合规项目 noCompliance: "", //在研不合规项目
countermeasures:'', //在研应对措施 countermeasures: "", //在研应对措施
completionTime:'', //在研完成时间 completionTime: "", //在研完成时间
zcComplianceReasons: '', //在产的合规原因 zcComplianceReasons: "", //在产的合规原因
zcNoCompliance:'', //在产不合规项目 zcNoCompliance: "", //在产不合规项目
zcCountermeasures:'', //在产的应对措施 zcCountermeasures: "", //在产的应对措施
zcCompletionTime:'', //在产的完成时间 zcCompletionTime: "" //在产的完成时间
}] }]
}, },
// listForm: { // listForm: {
@@ -455,17 +454,18 @@ export default {
}; };
}, },
methods: { methods: {
processTable () { processTable() {
this.$http.get('lawss/activiti/get_list_by_instance', { this.$http.get("lawss/activiti/get_list_by_instance", {
prcNum: this.$route.query.prcNum, prcNum: this.$route.query.prcNum,
sortWord: this.shunxu ? this.paixu : '', sortWord: this.shunxu ? this.paixu : "",
shunxu: this.shunxu shunxu: this.shunxu
}, { }, {
loading: 'loading', loading: "loading",
_this: this _this: this
}, res => { }, res => {
this.detailData = res this.detailData = res;
}, e => {}) }, e => {
});
}, },
//tab发生变化 //tab发生变化
handleTabs(name) { handleTabs(name) {
@@ -479,37 +479,42 @@ export default {
}).then(res => { }).then(res => {
console.log(res.mesg); console.log(res.mesg);
if (res) { if (res) {
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg);
this.getFormFieldList(processForm) this.getFormFieldList(processForm);
} }
}).catch(e => { }).catch(e => {
}) });
}) });
}, },
/** /**
* @description: 动态表单读取 * @description: 动态表单读取
*/ */
getFormFieldList (item) { getFormFieldList(item) {
this.$nextTick(() => { this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item)) this.listForm = JSON.parse(JSON.stringify(item));
this.listForm.prcNum = this.prcNum console.log(item.fenFlag);
this.listForm.prcName = this.prcName if (item.fenFlag === undefined ) {
this.listForm['id'] = item.id this.dataList = item.step3DTOS;
this.dataList = item.step3DTOS } else {
this.listForm.standName = item.step3DTOS[0].standName this.dataList = item.dataList;
this.listForm.standNumber = item.step3DTOS[0].standNumber }
this.listForm.qualityEngineer = item.step3DTOS[0].qualityEngineer this.listForm.prcNum = this.prcNum;
this.listForm.certifiedEngineer = item.step3DTOS[0].certifiedEngineer this.listForm.prcName = this.prcName;
this.listForm.itemsName = item.step3DTOS[0].itemsName this.listForm["id"] = item.id;
this.listForm.itemNum = item.step3DTOS[0].itemNum this.listForm.standName = item.step3DTOS[0].standName;
this.listForm.responsibleUnit = item.step3DTOS[0].responsibleUnit this.listForm.standNumber = item.step3DTOS[0].standNumber;
this.listForm.responsibleEngineer = item.step3DTOS[0].responsibleEngineer this.listForm.qualityEngineerName = item.step3DTOS[0].qualityEngineerName;
}) this.listForm.certifiedEngineerName = item.step3DTOS[0].certifiedEngineerName;
this.listForm.itemsName = item.step3DTOS[0].itemsName;
this.listForm.itemNum = item.step3DTOS[0].itemNum;
this.listForm.responsibleUnit = item.step3DTOS[0].responsibleUnit;
this.listForm.responsibleEngineer = item.step3DTOS[0].responsibleEngineer;
});
}, },
//保存事件 //保存事件
handleSave () { handleSave() {
}, },
//提交事件 //提交事件
handleSubmit() { handleSubmit() {
@@ -517,18 +522,18 @@ export default {
this.listForm.commentText = this.commentText; this.listForm.commentText = this.commentText;
this.listForm.approvalOpinion = ""; this.listForm.approvalOpinion = "";
this.listForm.signFlag = ""; this.listForm.signFlag = "";
this.listForm.dataList = this.dataList this.listForm.dataList = this.dataList;
const json = JSON.stringify(this.listForm); const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', { this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds, taskIds: this.taskIds,
userId: this.userId, userId: this.userId,
json: json, json: json
}, { }, {
_this: this _this: this
}, res => { }, res => {
if (res.success) { if (res.success) {
this.$message.success(res.message) this.$message.success(res.message);
this.$router.push('/processCenter') this.$router.push("/processCenter");
} }
}, e => { }, e => {
@@ -554,13 +559,13 @@ export default {
} }
}, },
computed: { computed: {
listNoDataText () { listNoDataText() {
return this.processType === 1 ? '暂无待办流程' : '暂无已办流程' return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
}, }
}, },
mounted() { mounted() {
this.processTable() this.processTable();
this.getData() this.getData();
// console.log(this.$store.getters.getHandleInfo); // console.log(this.$store.getters.getHandleInfo);
} }
}; };
@@ -35,16 +35,16 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="认证工程师" prop="certifiedEngineer" class="add-form-item form-item-disabled"> <el-form-item label="认证工程师" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.certifiedEngineer" v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师" placeholder="请选择认证工程师"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="质量工程师" prop="qualityEngineer" class="add-form-item form-item-disabled"> <el-form-item label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.qualityEngineer" v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师" placeholder="请选择质量工程师"
clearable clearable
></el-input> ></el-input>
@@ -345,11 +345,11 @@ export default {
total: 0, total: 0,
pageSize: this.$store.getters.userInfo.configContent, pageSize: this.$store.getters.userInfo.configContent,
listForm: { listForm: {
fenFlag: '1', //1为通过 其他为驳回 fenFlag: " ", //1为驳回 2为通过
standNumber: "", //标准编号 standNumber: "", //标准编号
standName: "",//标准名称 standName: "",//标准名称
certifiedEngineer: "", //认证工程师 certifiedEngineerName: "", //认证工程师
qualityEngineer: "", //质量工程师 qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据 breakdownList: [{ //分解单数据
implementer: "", implementer: "",
applyArctic: "", applyArctic: "",
@@ -432,7 +432,6 @@ export default {
* @description: 动态表单读取 * @description: 动态表单读取
*/ */
getFormFieldList (item) { getFormFieldList (item) {
console.log(item);
this.$nextTick(() => { this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item)) this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum this.listForm.prcNum = this.prcNum
@@ -441,27 +440,40 @@ export default {
this.dataList = item.dataList this.dataList = item.dataList
this.listForm.standName = item.standName this.listForm.standName = item.standName
this.listForm.standNumber = item.standNumber this.listForm.standNumber = item.standNumber
this.listForm.qualityEngineer = item.qualityEngineer this.listForm.qualityEngineerName = item.qualityEngineerName
this.listForm.certifiedEngineer = item.certifiedEngineer this.listForm.certifiedEngineerName = item.certifiedEngineerName
this.listForm.responsibleUnit = item.responsibleUnit this.listForm.responsibleUnit = item.responsibleUnit
this.listForm.responsibleEngineer = item.responsibleEngineer this.listForm.responsibleEngineer = item.responsibleEngineer
}) })
}, },
//驳回事件 //驳回事件
beforeBack () { beforeBack () {
this.listForm.fenFlag = '2'
this.handleSubmit()
},
//提交事件
handleSubmit() {
this.listForm.applyUpdUserId = this.dataList[0].distributePersonId this.listForm.applyUpdUserId = this.dataList[0].distributePersonId
this.listForm.commentText = this.commentText; this.listForm.commentText = this.commentText;
this.listForm.fenFlag = "1";
this.listForm.dataList = this.dataList this.listForm.dataList = this.dataList
this.listForm.fenFlag = '1'
const json = JSON.stringify(this.listForm);
this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds,
userId: this.userId,
json: json,
}, {
_this: this
}, res => {
if (res.success) {
this.$message.success(res.message)
this.$router.push('/processCenter')
}
}, e => {
});
},
//提交事件
handleSubmit() {
this.listForm.applyUpdUserId = this.dataList[0].distributePersonId
this.listForm.commentText = this.commentText;
this.listForm.dataList = this.dataList
this.listForm.fenFlag = '2'
const json = JSON.stringify(this.listForm); const json = JSON.stringify(this.listForm);
console.log(json);
this.$http.post('lawss/activiti/completeTask', { this.$http.post('lawss/activiti/completeTask', {
taskIds: this.taskIds, taskIds: this.taskIds,
userId: this.userId, userId: this.userId,
@@ -474,7 +486,6 @@ export default {
this.$router.push('/processCenter') this.$router.push('/processCenter')
} }
}, e => { }, e => {
}); });
}, },
//标准表格选择框改变 //标准表格选择框改变
@@ -504,7 +515,6 @@ export default {
mounted() { mounted() {
this.processTable() this.processTable()
this.getData() this.getData()
// console.log(this.$store.getters.getHandleInfo);
} }
}; };
</script> </script>
@@ -35,16 +35,16 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="认证工程师" prop="certifiedEngineer" class="add-form-item form-item-disabled"> <el-form-item label="认证工程师" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.certifiedEngineer" v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师" placeholder="请选择认证工程师"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="质量工程师" prop="qualityEngineer" class="add-form-item form-item-disabled"> <el-form-item label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.qualityEngineer" v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师" placeholder="请选择质量工程师"
clearable clearable
></el-input> ></el-input>
@@ -296,7 +296,6 @@
</div> </div>
<ProcessFooter <ProcessFooter
show-back
show-submit show-submit
:submitLoading="isSubmit" :submitLoading="isSubmit"
:saveLoading="saveLoading" :saveLoading="saveLoading"
@@ -348,8 +347,8 @@ export default {
fenFlag: '1', //1为通过 其他为驳回 fenFlag: '1', //1为通过 其他为驳回
standNumber: "", //标准编号 standNumber: "", //标准编号
standName: "",//标准名称 standName: "",//标准名称
certifiedEngineer: "", //认证工程师 certifiedEngineerName: "", //认证工程师
qualityEngineer: "", //质量工程师 qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据 breakdownList: [{ //分解单数据
implementer: "", implementer: "",
applyArctic: "", applyArctic: "",
@@ -419,7 +418,6 @@ export default {
taskIds: this.taskIds, taskIds: this.taskIds,
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
console.log(res.mesg);
if (res) { if (res) {
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
@@ -432,17 +430,16 @@ export default {
* @description: 动态表单读取 * @description: 动态表单读取
*/ */
getFormFieldList (item) { getFormFieldList (item) {
console.log(item);
this.$nextTick(() => { this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item)) this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum this.listForm.prcNum = this.prcNum
this.listForm.prcName = this.prcName this.listForm.prcName = this.prcName
this.listForm['id'] = item.id this.listForm['id'] = item.id
this.dataList = item.step3DTOS this.dataList = item.dataList
this.listForm.standName = item.step3DTOS[0].standName this.listForm.standName = item.step3DTOS[0].standName
this.listForm.standNumber = item.step3DTOS[0].standNumber this.listForm.standNumber = item.step3DTOS[0].standNumber
this.listForm.qualityEngineer = item.step3DTOS[0].qualityEngineer this.listForm.qualityEngineerName = item.step3DTOS[0].qualityEngineerName
this.listForm.certifiedEngineer = item.step3DTOS[0].certifiedEngineer this.listForm.certifiedEngineerName = item.step3DTOS[0].certifiedEngineerName
}) })
}, },
//驳回事件 //驳回事件
@@ -503,7 +500,6 @@ export default {
mounted() { mounted() {
this.processTable() this.processTable()
this.getData() this.getData()
// console.log(this.$store.getters.getHandleInfo);
} }
}; };
</script> </script>
@@ -35,16 +35,16 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="认证工程师" prop="certifiedEngineer" class="add-form-item form-item-disabled"> <el-form-item label="认证工程师" prop="certifiedEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.certifiedEngineer" v-model="listForm.certifiedEngineerName"
placeholder="请选择认证工程师" placeholder="请选择认证工程师"
clearable clearable
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="质量工程师" prop="qualityEngineer" class="add-form-item form-item-disabled"> <el-form-item label="质量工程师" prop="qualityEngineerName" class="add-form-item form-item-disabled">
<el-input <el-input
v-model="listForm.qualityEngineer" v-model="listForm.qualityEngineerName"
placeholder="请选择质量工程师" placeholder="请选择质量工程师"
clearable clearable
></el-input> ></el-input>
@@ -296,7 +296,6 @@
</div> </div>
<ProcessFooter <ProcessFooter
show-back
show-submit show-submit
:submitLoading="isSubmit" :submitLoading="isSubmit"
:saveLoading="saveLoading" :saveLoading="saveLoading"
@@ -348,8 +347,8 @@ export default {
fenFlag: '1', //1为通过 其他为驳回 fenFlag: '1', //1为通过 其他为驳回
standNumber: "", //标准编号 standNumber: "", //标准编号
standName: "",//标准名称 standName: "",//标准名称
certifiedEngineer: "", //认证工程师 certifiedEngineerName: "", //认证工程师
qualityEngineer: "", //质量工程师 qualityEngineerName: "", //质量工程师
breakdownList: [{ //分解单数据 breakdownList: [{ //分解单数据
implementer: "", implementer: "",
applyArctic: "", applyArctic: "",
@@ -419,7 +418,6 @@ export default {
taskIds: this.taskIds, taskIds: this.taskIds,
pId: this.pId pId: this.pId
}).then(res => { }).then(res => {
console.log(res.mesg);
if (res) { if (res) {
const processForm = JSON.parse(res.mesg) const processForm = JSON.parse(res.mesg)
this.getFormFieldList(processForm) this.getFormFieldList(processForm)
@@ -432,7 +430,6 @@ export default {
* @description: 动态表单读取 * @description: 动态表单读取
*/ */
getFormFieldList (item) { getFormFieldList (item) {
console.log(item.dataList);
this.$nextTick(() => { this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item)) this.listForm = JSON.parse(JSON.stringify(item))
this.listForm.prcNum = this.prcNum this.listForm.prcNum = this.prcNum
@@ -501,7 +498,6 @@ export default {
mounted() { mounted() {
this.processTable() this.processTable()
this.getData() this.getData()
// console.log(this.$store.getters.getHandleInfo);
} }
}; };
</script> </script>
@@ -82,6 +82,9 @@
align="center" align="center"
width="180" width="180"
> >
<template slot-scope="scope">
{{ scope.row.prcName || getPrcName(scope.row.prcType) }}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="prcName" prop="prcName"
@@ -210,6 +213,20 @@ export default {
}, },
dealWith (row) { // 办理 dealWith (row) { // 办理
//草稿办理待开发 //草稿办理待开发
const { prcType, id } = row
switch (prcType) {
// 法规入库及评估流程
case '2':
this.$router.push({
name: 'bzdyStep1-1',
query: {
type: '2',
processName: '标准调研流程',
bpnId: id
}
})
break
}
}, },
...mapMutations(['setProcess', 'setHandleInfo']), ...mapMutations(['setProcess', 'setHandleInfo']),
...mapActions(['setMenu']) ...mapActions(['setMenu'])
@@ -86,6 +86,12 @@
prop="countryArea" prop="countryArea"
label="国家/地区" label="国家/地区"
align="center"> align="center">
<template slot-scope="scope">
<span v-if="scope.row.countryArea !== null && scope.row.countryArea.indexOf(',') > 0">
<span>{{ scope.row.countryArea }}</span>
</span>
<span v-else>{{ countryAreaMap[scope.row.countryArea] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="detailedListName" prop="detailedListName"
@@ -132,7 +138,7 @@
label="更新时间" label="更新时间"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.updateTime ? $moment(scope.row.updateTime).format('YYYY-MM-DD hh:mm:ss') : scope.row.updateTime }}</div> <div>{{ scope.row.updateTime ? $moment(scope.row.updateTime).format('YYYY-MM-DD') : scope.row.updateTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -170,6 +176,7 @@ export default {
name: "listOfCountries", name: "listOfCountries",
data() { data() {
return { return {
countryAreaMap: {},
searching: false, searching: false,
total: 0, total: 0,
page: 1, page: 1,
@@ -345,9 +352,16 @@ export default {
this.$router.push({ this.$router.push({
name: "ListOfStandardsAndRegulationsDetails", name: "ListOfStandardsAndRegulationsDetails",
query: { query: {
id: item.id id: item.id,
fileIds: item.fileIds
} }
}); });
},
// 将文本状态的id与name对应
setMap(data){
data.forEach(item => {
this.$set(this.countryAreaMap, item.value, item.label)
})
} }
}, },
mounted() { mounted() {
@@ -358,6 +372,7 @@ export default {
_this: this _this: this
}, res => { }, res => {
this.countryOptions = res.data.COUNTRY; this.countryOptions = res.data.COUNTRY;
this.setMap(this.countryOptions)
}, e => { }, e => {
}); });
} }
@@ -352,7 +352,8 @@ export default {
this.$router.push({ this.$router.push({
name: "OtherAddEit", name: "OtherAddEit",
query: { query: {
id: item.id id: item.id,
fileIds: item.fileIds
} }
}); });
} }
@@ -355,7 +355,8 @@ export default {
this.$router.push({ this.$router.push({
name: "ProjectAddEit", name: "ProjectAddEit",
query: { query: {
id: item.id id: item.id,
fileIds: item.fileIds
} }
}); });
} }
@@ -70,6 +70,7 @@
:on-remove="delFileInfo" :on-remove="delFileInfo"
:on-success="uploadBackSuccess" :on-success="uploadBackSuccess"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-preview="handleOnPreview"
> >
<el-button class="common-button-default" size="mini"> <el-button class="common-button-default" size="mini">
点击上传 点击上传
@@ -225,23 +226,35 @@
prop="issueTime" prop="issueTime"
sortable sortable
label="发布日期"> label="发布日期">
<template slot-scope="scope">
<span>{{ scope.row.issueTime ? $moment(scope.row.issueTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="xcxssrq" prop="xcxssrqgj"
sortable sortable
label="新车型实施日期"> label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.xcxssrqgj ? $moment(scope.row.xcxssrqgj).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zccssrqgj"
sortable sortable
label="在产车实施日期"> label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.zccssrqgj ? $moment(scope.row.zccssrqgj).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="textStatus"
width="120px" width="120px"
label="文本状态"> label="文本状态">
<template slot-scope="scope">
<span>{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-table <el-table
@@ -336,25 +349,31 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="standEnName"
align="center" align="center"
width="180px" width="180px"
label="英文名称"> label="英文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="typeApplicable"
align="center" align="center"
width="180px" width="180px"
label="适用车型"> label="适用车型">
<template slot-scope="scope">
<span>{{ typeApplicableMap[scope.row.typeApplicable] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="nylx"
align="center" align="center"
width="180px" width="180px"
label="能源类型"> label="能源类型">
<template slot-scope="scope">
<span>{{ nylxMap[scope.row.nylx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="putTime"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -362,55 +381,74 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zccssrqgj"
sortable sortable
width="210px" width="210px"
align="center" align="center"
label="在产车实施日期"> label="在产车实施日期">
<template slot-scope="scope">
<span>{{ scope.row.zccssrqgj ? $moment(scope.row.zccssrqgj).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="XCXSSRQ" prop="xcxssrqgj"
sortable sortable
align="center" align="center"
width="210px" width="210px"
label="新车型实施日期"> label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.xcxssrqgj ? $moment(scope.row.xcxssrqgj).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zrbm"
width="210px" width="210px"
align="center" align="center"
label="责任部门"> label="责任部门">
<template slot-scope="scope">
<span>{{ zrbmMap[scope.row.zrbm] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="sycpx"
width="180px" width="180px"
align="center" align="center"
label="适用产品线"> label="适用产品线">
<template slot-scope="scope">
<span>{{ sycpxMap[scope.row.sycpx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="cycvppsbm"
width="210px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="cycvppscn"
width="210px" width="210px"
align="center" align="center"
label="乘用车VPPS中文名称"> label="乘用车VPPS中文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppsbm"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS编码"> label="卡车VPPS编码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppscn"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS中文名称"> label="卡车VPPS中文名称">
</el-table-column> </el-table-column>
<el-table-column> <el-table-column width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
class="common-button-default" class="common-button-default"
@@ -421,6 +459,7 @@
<el-button <el-button
class="common-button-default" class="common-button-default"
type="danger" type="danger"
style="margin-left: 0px"
size="small" @click="moveDown(scope.$index, scope.row)" size="small" @click="moveDown(scope.$index, scope.row)"
v-if="!disabledFlag" v-if="!disabledFlag"
>下移</el-button> >下移</el-button>
@@ -526,12 +565,19 @@ export default {
// } // }
// } // }
return { return {
textStatusMap: {},
typeApplicableMap: {},
nylxMap: {},
zrbmMap: {},
sycpxMap: {},
zrbmOptions: [],
selectSearch : [], selectSearch : [],
// 新增、编辑 基础信息字段 // 新增、编辑 基础信息字段
sarAccessEO: { sarAccessEO: {
id: '', id: '',
sortKey: 1, sortKey: 1,
countryArea: '', countryArea: '',
fileIds: '',
detailedListName: '', detailedListName: '',
energyKind: '', energyKind: '',
type: '', type: '',
@@ -552,9 +598,6 @@ export default {
detailedListName: [ detailedListName: [
{required: true, message: '清单名称不能为空', trigger: 'blur'}, {required: true, message: '清单名称不能为空', trigger: 'blur'},
{type: 'string', max: 100, message: '表单名称不能超过100个字符', trigger: 'blur'} {type: 'string', max: 100, message: '表单名称不能超过100个字符', trigger: 'blur'}
],
remark: [
{required: true,type: 'string', max: 500, message: '表单名称不能超过500个字符', trigger: 'blur'}
] ]
}, },
disabledFlag: false, disabledFlag: false,
@@ -846,7 +889,6 @@ export default {
uploadBackSuccess (res, file, fileList) { uploadBackSuccess (res, file, fileList) {
if (res.ok) { if (res.ok) {
this.fileInfoList = fileList this.fileInfoList = fileList
console.log(this.fileInfoList)
this.fileInfoList[this.fileInfoList.length - 1].id = res.data.id this.fileInfoList[this.fileInfoList.length - 1].id = res.data.id
this.$message.success('上传成功') this.$message.success('上传成功')
} else { } else {
@@ -854,6 +896,14 @@ export default {
fileList.pop() fileList.pop()
} }
}, },
// 点击上传的文件进行下载
handleOnPreview(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
// 相关附件 上传之前钩子 // 相关附件 上传之前钩子
beforeUpload (file) { beforeUpload (file) {
var filename = file.name var filename = file.name
@@ -1186,8 +1236,7 @@ export default {
this.fileInfoList.map(item => { this.fileInfoList.map(item => {
relateFile.push(item.id) relateFile.push(item.id)
}) })
sarAccessEO.relateFile = relateFile.join(',') sarAccessEO.fileIds = relateFile.join(',')
console.log(sarAccessEO.relateFile)
} }
if (!sarAccessEO.id) { if (!sarAccessEO.id) {
// 新增 // 新增
@@ -1201,12 +1250,8 @@ export default {
this.$message.success('新增成功') this.$message.success('新增成功')
this.isNext = true this.isNext = true
this.$router.push({ this.$router.push({
name: 'AccessStandardsAndRegulations', name: 'AccessStandardsAndRegulations'
query: {
relateFile: sarAccessEO.relateFile
}
}) })
console.log(sarAccessEO)
} }
}, e => { }, e => {
}) })
@@ -1237,6 +1282,19 @@ export default {
_this: this _this: this
}, res =>{ }, res =>{
this.sarAccessInfoSearchList = res.data.list this.sarAccessInfoSearchList = res.data.list
this.sarAccessInfoSearchList.forEach(item => {
this.$set(item, 'zccssrqgj', item.attrInfoMap.ZCCSSRQGJ)
this.$set(item, 'xcxssrqgj', item.attrInfoMap.XCXSSRQGJ)
this.$set(item, 'sycpx', item.attrInfoMap.SYCPX)
this.$set(item, 'typeApplicable', item.attrInfoMap.CLLX)
this.$set(item, 'nylx', item.attrInfoMap.NYLX)
this.$set(item, 'zrbm', item.attrInfoMap.ZRBM)
this.$set(item, 'cycvppsbm', item.attrInfoMap.CYCVPPSBM)
this.$set(item, 'cycvppscn', item.attrInfoMap.CYCVPPSCN)
this.$set(item, 'kccvppsbm', item.attrInfoMap.KCCVPPSBM)
this.$set(item, 'kccvppscn', item.attrInfoMap.KCCVPPSCN)
})
console.log(this.sarAccessInfoSearchList)
}, e => { }, e => {
}) })
}, },
@@ -1604,7 +1662,7 @@ export default {
// 请求上传的文件信息 // 请求上传的文件信息
getFileInfo () { getFileInfo () {
this.$http.get('att/attFile/getMultiFileInfos', { this.$http.get('att/attFile/getMultiFileInfos', {
fileIds: this.sarAccessEO.relateFile fileIds: this.$route.query.fileIds
}, { }, {
_this: this _this: this
}, res => { }, res => {
@@ -1694,8 +1752,19 @@ export default {
_this: this _this: this
}, res => { }, res => {
this.sarAccessInfoList = res.data this.sarAccessInfoList = res.data
console.log(res.data)
}, e => { }, e => {
}) })
},
// 将文本状态的id与name对应
setMap(data){
data.forEach(item => {
this.$set(this.textStatusMap, item.value, item.label)
this.$set(this.typeApplicableMap, item.value, item.label)
this.$set(this.nylxMap, item.value, item.label)
this.$set(this.zrbmMap, item.value, item.label)
this.$set(this.sycpxMap, item.value, item.label)
})
} }
}, },
watch: { watch: {
@@ -1732,6 +1801,15 @@ export default {
this.ROLELIST = res.data.ROLELIST this.ROLELIST = res.data.ROLELIST
this.GXHBQOptions = res.data.GXHBQXX this.GXHBQOptions = res.data.GXHBQXX
this.askNatureOptions = res.data.ACCESSTYPE this.askNatureOptions = res.data.ACCESSTYPE
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.textStatusOptions = res.data.WBZTCLASS
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.setMap(this.textStatusOptions)
this.setMap(this.zrbmOptions)
this.setMap(this.categoryOptions)
this.setMap(this.sycpxOptions)
this.setMap(this.energyKindOptions)
this.getGzzOption() this.getGzzOption()
}, e => { }, e => {
}) })
@@ -11,7 +11,10 @@
<div v-show="heightShow" class="transition-box"> <div v-show="heightShow" class="transition-box">
<p class="transition-box-p"> <p class="transition-box-p">
<label class="transition-box-label">国家/地区:</label> <label class="transition-box-label">国家/地区:</label>
<span class="transition-box-span">{{ sarAccessEO.countryArea }}</span> <span class="transition-box-span" v-if="sarAccessEO.countryArea.indexOf(',') >= 0">
<span>{{ sarAccessEO.countryArea }}</span>
</span>
<span class="transition-box-span" v-else>{{ countryAreaMap[sarAccessEO.countryArea] }}</span>
</p> </p>
<p class="transition-box-p"> <p class="transition-box-p">
<label class="transition-box-label">清单说明:</label> <label class="transition-box-label">清单说明:</label>
@@ -21,7 +24,7 @@
<label class="transition-box-label">附件:</label> <label class="transition-box-label">附件:</label>
<div class="file-box" v-if="fileInfoList.length > 0"> <div class="file-box" v-if="fileInfoList.length > 0">
<p v-for="item in fileInfoList" <p v-for="item in fileInfoList"
:key="item.id"> :key="item.id"> {{ item.name }}
<i <i
title="下载" title="下载"
@click="downloadFile(item.id)" @click="downloadFile(item.id)"
@@ -124,31 +127,35 @@
<el-table-column <el-table-column
prop="standName" prop="standName"
label="中文名称" label="中文名称"
align="center"
fixed="left"
width="180px" width="180px"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="standEnName"
align="center" align="center"
width="180px" width="180px"
label="英文名称"> label="英文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="typeApplicable"
align="center" align="center"
width="180px" width="180px"
label="适用车型"> label="适用车型">
<template slot-scope="scope">
<span>{{ typeApplicableMap[scope.row.typeApplicable] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="nylx"
align="center" align="center"
width="180px" width="180px"
label="能源类型"> label="能源类型">
<template slot-scope="scope">
<span>{{ nylxMap[scope.row.nylx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="putTime"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -156,14 +163,14 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zccssrqgj"
sortable sortable
width="210px" width="210px"
align="center" align="center"
label="在产车实施日期"> label="在产车实施日期">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="xcxssrq" prop="xcxssrqgj"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -171,35 +178,48 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zrbm"
width="210px" width="210px"
align="center" align="center"
label="责任部门"> label="责任部门">
<template slot-scope="scope">
<span>{{ zrbmMap[scope.row.zrbm] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="sycpx"
width="180px" width="180px"
align="center" align="center"
label="适用产品线"> label="适用产品线">
<template slot-scope="scope">
<span>{{ sycpxMap[scope.row.sycpx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="cycvppsbm"
width="210px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="cycvppscn"
width="210px" width="210px"
align="center" align="center"
label="乘用车VPPS中文名称"> label="乘用车VPPS中文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppsbm"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS编码"> label="卡车VPPS编码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppscn"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS中文名称"> label="卡车VPPS中文名称">
@@ -256,6 +276,12 @@ export default {
name: "AccessStandardDetails", name: "AccessStandardDetails",
data() { data() {
return { return {
textStatusMap: {},
typeApplicableMap: {},
nylxMap: {},
zrbmMap: {},
sycpxMap: {},
countryAreaMap: {},
standinfoList: [], standinfoList: [],
standardFormTotal: 0, standardFormTotal: 0,
relateDialog: false, relateDialog: false,
@@ -452,9 +478,8 @@ export default {
}, },
// 请求上传的文件信息 // 请求上传的文件信息
getFileInfo() { getFileInfo() {
console.log(this.sarAccessEO)
this.$http.get("att/attFile/getMultiFileInfos", { this.$http.get("att/attFile/getMultiFileInfos", {
fileIds: this.sarAccessEO.relateFile fileIds: this.sarAccessEO.fileIds
}, { }, {
_this: this _this: this
}, res => { }, res => {
@@ -474,7 +499,7 @@ export default {
}, },
// 附件下载事件 // 附件下载事件
fileDownLoad(attId) { fileDownLoad(attId) {
window.location.href = "/api/att/attFile/downloadFile?fileId=" + attId; window.location.href = "/api/att/attFile/downloadFile?fileId=" + attId
}, },
// 点击查看 // 点击查看
handlePreview(item) { handlePreview(item) {
@@ -560,6 +585,17 @@ export default {
doLayout() { doLayout() {
this.$refs.adminTable && this.$refs.adminTable.doLayout(); this.$refs.adminTable && this.$refs.adminTable.doLayout();
this.$refs.skillTable && this.$refs.skillTable.doLayout(); this.$refs.skillTable && this.$refs.skillTable.doLayout();
},
// 将文本状态的id与name对应
setMap(data){
data.forEach(item => {
this.$set(this.textStatusMap, item.value, item.label)
this.$set(this.typeApplicableMap, item.value, item.label)
this.$set(this.nylxMap, item.value, item.label)
this.$set(this.zrbmMap, item.value, item.label)
this.$set(this.sycpxMap, item.value, item.label)
this.$set(this.countryAreaMap, item.value, item.label)
})
} }
}, },
mounted() { mounted() {
@@ -589,6 +625,16 @@ export default {
this.ROLELIST = res.data.ROLELIST; this.ROLELIST = res.data.ROLELIST;
this.GXHBQOptions = res.data.GXHBQXX; this.GXHBQOptions = res.data.GXHBQXX;
this.askNatureOptions = res.data.ACCESSTYPE; this.askNatureOptions = res.data.ACCESSTYPE;
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.textStatusOptions = res.data.WBZTCLASS
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.setMap(this.textStatusOptions)
this.setMap(this.zrbmOptions)
this.setMap(this.categoryOptions)
this.setMap(this.sycpxOptions)
this.setMap(this.energyKindOptions)
this.setMap(this.drawerCountryOptions)
this.getGzzOption(); this.getGzzOption();
}, e => { }, e => {
}); });
@@ -55,6 +55,7 @@
:on-remove="delFileInfo" :on-remove="delFileInfo"
:on-success="uploadBackSuccess" :on-success="uploadBackSuccess"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-preview="handleOnPreview"
> >
<el-button class="common-button-default" size="mini"> <el-button class="common-button-default" size="mini">
点击上传 点击上传
@@ -227,6 +228,9 @@
prop="textStatus" prop="textStatus"
width="120px" width="120px"
label="文本状态"> label="文本状态">
<template slot-scope="scope">
<span>{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-table <el-table
@@ -321,25 +325,31 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="standEnName"
align="center" align="center"
width="180px" width="180px"
label="英文名称"> label="英文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="typeApplicable"
align="center" align="center"
width="180px" width="180px"
label="适用车型"> label="适用车型">
<template slot-scope="scope">
<span>{{ typeApplicableMap[scope.row.typeApplicable] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="nylx"
align="center" align="center"
width="180px" width="180px"
label="能源类型"> label="能源类型">
<template slot-scope="scope">
<span>{{ nylxMap[scope.row.nylx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="putTime"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -347,14 +357,14 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zccssrqgj"
sortable sortable
width="210px" width="210px"
align="center" align="center"
label="在产车实施日期"> label="在产车实施日期">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="XCXSSRQ" prop="xcxssrqgj"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -362,35 +372,48 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zrbm"
width="210px" width="210px"
align="center" align="center"
label="责任部门"> label="责任部门">
<template slot-scope="scope">
<span>{{ zrbmMap[scope.row.zrbm] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="sycpx"
width="180px" width="180px"
align="center" align="center"
label="适用产品线"> label="适用产品线">
<template slot-scope="scope">
<span>{{ sycpxMap[scope.row.sycpx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="cycvppsbm"
width="210px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="cycvppscn"
width="210px" width="210px"
align="center" align="center"
label="乘用车VPPS中文名称"> label="乘用车VPPS中文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppsbm"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS编码"> label="卡车VPPS编码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppscn"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS中文名称"> label="卡车VPPS中文名称">
@@ -511,11 +534,17 @@ export default {
// } // }
// } // }
return { return {
textStatusMap: {},
typeApplicableMap: {},
nylxMap: {},
zrbmMap: {},
sycpxMap: {},
selectSearch : [], selectSearch : [],
// 新增、编辑 基础信息字段 // 新增、编辑 基础信息字段
sarAccessEO: { sarAccessEO: {
id: '', id: '',
sortKey: 4, sortKey: 4,
fileIds: '',
detailedList: '', detailedList: '',
detailedListName: '', detailedListName: '',
energyKind: '', energyKind: '',
@@ -1167,7 +1196,7 @@ export default {
this.fileInfoList.map(item => { this.fileInfoList.map(item => {
relateFile.push(item.id) relateFile.push(item.id)
}) })
sarAccessEO.relateFile = relateFile.join(',') sarAccessEO.fileIds = relateFile.join(',')
} }
if (!sarAccessEO.id) { if (!sarAccessEO.id) {
// 新增 // 新增
@@ -1584,7 +1613,7 @@ export default {
// 请求上传的文件信息 // 请求上传的文件信息
getFileInfo () { getFileInfo () {
this.$http.get('att/attFile/getMultiFileInfos', { this.$http.get('att/attFile/getMultiFileInfos', {
fileIds: this.sarAccessEO.relateFile fileIds: this.$route.query.fileIds
}, { }, {
_this: this _this: this
}, res => { }, res => {
@@ -1678,7 +1707,24 @@ export default {
}, e => { }, e => {
}) })
} },
// 将文本状态的id与name对应
setMap(data){
data.forEach(item => {
this.$set(this.textStatusMap, item.value, item.label)
this.$set(this.typeApplicableMap, item.value, item.label)
this.$set(this.nylxMap, item.value, item.label)
this.$set(this.zrbmMap, item.value, item.label)
this.$set(this.sycpxMap, item.value, item.label)
})
},
// 点击上传的文件进行下载
handleOnPreview(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}, },
watch: { watch: {
// 监听 清单类型 // 监听 清单类型
@@ -1714,6 +1760,15 @@ export default {
this.ROLELIST = res.data.ROLELIST this.ROLELIST = res.data.ROLELIST
this.GXHBQOptions = res.data.GXHBQXX this.GXHBQOptions = res.data.GXHBQXX
this.askNatureOptions = res.data.ACCESSTYPE this.askNatureOptions = res.data.ACCESSTYPE
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.textStatusOptions = res.data.WBZTCLASS
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.setMap(this.textStatusOptions)
this.setMap(this.zrbmOptions)
this.setMap(this.categoryOptions)
this.setMap(this.sycpxOptions)
this.setMap(this.energyKindOptions)
this.getGzzOption() this.getGzzOption()
}, e => { }, e => {
}) })
@@ -1723,9 +1778,10 @@ export default {
const accessRow = this.getAccessStandardRegRow const accessRow = this.getAccessStandardRegRow
this.$nextTick(() => { this.$nextTick(() => {
this.sarAccessEO.type = accessRow.type this.sarAccessEO.type = accessRow.type
this.sarAccessEO.countryArea = accessRow.countryArea.split(',') //this.sarAccessEO.countryArea = accessRow.countryArea.split(',')
// this.sarAccessEO.applicationScope = accessRow.applicationScope.split(',') // this.sarAccessEO.applicationScope = accessRow.applicationScope.split(',')
this.sarAccessEO.detailedListName = accessRow.detailedListName this.sarAccessEO.detailedListName = accessRow.detailedListName
this.sarAccessEO.detailedList = accessRow.detailedList
this.sarAccessEO.id = accessRow.id this.sarAccessEO.id = accessRow.id
this.sarAccessEO.remark = accessRow.remark || '' this.sarAccessEO.remark = accessRow.remark || ''
this.sarAccessEO.relateFile = accessRow.relateFile this.sarAccessEO.relateFile = accessRow.relateFile
@@ -55,6 +55,7 @@
:on-remove="delFileInfo" :on-remove="delFileInfo"
:on-success="uploadBackSuccess" :on-success="uploadBackSuccess"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-preview="handleOnPreview"
> >
<el-button class="common-button-default" size="mini"> <el-button class="common-button-default" size="mini">
点击上传 点击上传
@@ -227,6 +228,9 @@
prop="textStatus" prop="textStatus"
width="120px" width="120px"
label="文本状态"> label="文本状态">
<template slot-scope="scope">
<span>{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-table <el-table
@@ -321,25 +325,31 @@
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="standEnName"
align="center" align="center"
width="180px" width="180px"
label="英文名称"> label="英文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="typeApplicable"
align="center" align="center"
width="180px" width="180px"
label="适用车型"> label="适用车型">
<template slot-scope="scope">
<span>{{ typeApplicableMap[scope.row.typeApplicable] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="nylx"
align="center" align="center"
width="180px" width="180px"
label="能源类型"> label="能源类型">
<template slot-scope="scope">
<span>{{ nylxMap[scope.row.nylx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="issueTime" prop="putTime"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -347,14 +357,14 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zccssrqgj"
sortable sortable
width="210px" width="210px"
align="center" align="center"
label="在产车实施日期"> label="在产车实施日期">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="XCXSSRQ" prop="xcxssrqgj"
sortable sortable
align="center" align="center"
width="210px" width="210px"
@@ -362,40 +372,53 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="zccssrq" prop="zrbm"
width="210px" width="210px"
align="center" align="center"
label="责任部门"> label="责任部门">
<template slot-scope="scope">
<span>{{ zrbmMap[scope.row.zrbm] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="sycpx"
width="180px" width="180px"
align="center" align="center"
label="适用产品线"> label="适用产品线">
<template slot-scope="scope">
<span>{{ sycpxMap[scope.row.sycpx] }}</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="cycvppsbm"
width="210px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="cycvppscn"
width="210px" width="210px"
align="center" align="center"
label="乘用车VPPS中文名称"> label="乘用车VPPS中文名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppsbm"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS编码"> label="卡车VPPS编码">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
show-overflow-tooltip show-overflow-tooltip
prop="textStatus" prop="kccvppscn"
align="center" align="center"
width="210px" width="210px"
label="卡车VPPS中文名称"> label="卡车VPPS中文名称">
</el-table-column> </el-table-column>
<el-table-column> <el-table-column width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
class="common-button-default" class="common-button-default"
@@ -406,6 +429,7 @@
<el-button <el-button
class="common-button-default" class="common-button-default"
type="danger" type="danger"
style="margin-left: 0px"
size="small" @click="moveDown(scope.$index, scope.row)" size="small" @click="moveDown(scope.$index, scope.row)"
v-if="!disabledFlag" v-if="!disabledFlag"
>下移</el-button> >下移</el-button>
@@ -511,11 +535,17 @@ export default {
// } // }
// } // }
return { return {
textStatusMap: {},
typeApplicableMap: {},
nylxMap: {},
zrbmMap: {},
sycpxMap: {},
selectSearch : [], selectSearch : [],
// 新增、编辑 基础信息字段 // 新增、编辑 基础信息字段
sarAccessEO: { sarAccessEO: {
id: '', id: '',
sortKey: 2, sortKey: 2,
fileIds: '',
projectName: '', projectName: '',
detailedListName: '', detailedListName: '',
energyKind: '', energyKind: '',
@@ -1151,7 +1181,6 @@ export default {
}, },
// 提交按钮 事件 // 提交按钮 事件
saveSarAccess () { saveSarAccess () {
alert()
this.$refs['sarAccessForm'].validate((valid) => { this.$refs['sarAccessForm'].validate((valid) => {
if (valid) { if (valid) {
let rowlist = [] let rowlist = []
@@ -1169,7 +1198,7 @@ export default {
this.fileInfoList.map(item => { this.fileInfoList.map(item => {
relateFile.push(item.id) relateFile.push(item.id)
}) })
sarAccessEO.relateFile = relateFile.join(',') sarAccessEO.fileIds = relateFile.join(',')
} }
if (!sarAccessEO.id) { if (!sarAccessEO.id) {
// 新增 // 新增
@@ -1215,8 +1244,6 @@ export default {
_this: this _this: this
}, res =>{ }, res =>{
this.sarAccessInfoSearchList = res.data.list this.sarAccessInfoSearchList = res.data.list
this.$nextTick(() => {
})
}, e => { }, e => {
}) })
@@ -1586,7 +1613,7 @@ export default {
// 请求上传的文件信息 // 请求上传的文件信息
getFileInfo () { getFileInfo () {
this.$http.get('att/attFile/getMultiFileInfos', { this.$http.get('att/attFile/getMultiFileInfos', {
fileIds: this.sarAccessEO.relateFile fileIds: this.$route.query.fileIds
}, { }, {
_this: this _this: this
}, res => { }, res => {
@@ -1680,7 +1707,24 @@ export default {
}, e => { }, e => {
}) })
} },
// 将文本状态的id与name对应
setMap(data){
data.forEach(item => {
this.$set(this.textStatusMap, item.value, item.label)
this.$set(this.typeApplicableMap, item.value, item.label)
this.$set(this.nylxMap, item.value, item.label)
this.$set(this.zrbmMap, item.value, item.label)
this.$set(this.sycpxMap, item.value, item.label)
})
},
// 点击上传的文件进行下载
handleOnPreview(file) {
let attId = file.id
if (attId != null && attId !== "") {
window.location.href = "/api/att/attFile/downloadFileForSar?fileId=" + attId;
}
},
}, },
watch: { watch: {
// 监听 清单类型 // 监听 清单类型
@@ -1697,7 +1741,7 @@ export default {
}, },
mounted () { mounted () {
this.zqaId =this.$route.query.id; this.zqaId =this.$route.query.id;
// this.getData() //this.getData()
this.getDept() this.getDept()
// 从数据库中查询各下拉框数据 // 从数据库中查询各下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '', { this.$http.get('sys/dictype/getDicTypeListCode', '', {
@@ -1716,6 +1760,15 @@ export default {
this.ROLELIST = res.data.ROLELIST this.ROLELIST = res.data.ROLELIST
this.GXHBQOptions = res.data.GXHBQXX this.GXHBQOptions = res.data.GXHBQXX
this.askNatureOptions = res.data.ACCESSTYPE this.askNatureOptions = res.data.ACCESSTYPE
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.textStatusOptions = res.data.WBZTCLASS
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.setMap(this.textStatusOptions)
this.setMap(this.zrbmOptions)
this.setMap(this.categoryOptions)
this.setMap(this.sycpxOptions)
this.setMap(this.energyKindOptions)
this.getGzzOption() this.getGzzOption()
}, e => { }, e => {
}) })
@@ -1725,9 +1778,10 @@ export default {
const accessRow = this.getAccessStandardRegRow const accessRow = this.getAccessStandardRegRow
this.$nextTick(() => { this.$nextTick(() => {
this.sarAccessEO.type = accessRow.type this.sarAccessEO.type = accessRow.type
this.sarAccessEO.countryArea = accessRow.countryArea.split(',') //this.sarAccessEO.countryArea = accessRow.countryArea.split(',')
// this.sarAccessEO.applicationScope = accessRow.applicationScope.split(',') // this.sarAccessEO.applicationScope = accessRow.applicationScope.split(',')
this.sarAccessEO.detailedListName = accessRow.detailedListName this.sarAccessEO.detailedListName = accessRow.detailedListName
this.sarAccessEO.projectName = accessRow.projectName
this.sarAccessEO.id = accessRow.id this.sarAccessEO.id = accessRow.id
this.sarAccessEO.remark = accessRow.remark || '' this.sarAccessEO.remark = accessRow.remark || ''
this.sarAccessEO.relateFile = accessRow.relateFile this.sarAccessEO.relateFile = accessRow.relateFile
@@ -357,7 +357,7 @@
</el-form-item> </el-form-item>
<el-form-item title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。" <el-form-item title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
prop="textStatus" label-width="150px" class="add-form-item"> prop="textStatus" label-width="150px" class="add-form-item">
<template slot="label">文本状态<i class="el-icon-warning-outline"></i></template> <template slot="label">文本状态</template>
<el-select v-model="sarStandardsInfoEO.textStatus" <el-select v-model="sarStandardsInfoEO.textStatus"
placeholder="请选择文本状态" placeholder="请选择文本状态"
clearable> clearable>
@@ -1006,6 +1006,11 @@
<el-input v-model="sarStandardsSearch.standName" :placeholder="$t('m.searchByStandardName')" clearable :maxlength="500" <el-input v-model="sarStandardsSearch.standName" :placeholder="$t('m.searchByStandardName')" clearable :maxlength="500"
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"></el-input> @keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"></el-input>
</el-form-item> </el-form-item>
<!-- 标准英文名称-->
<el-form-item :label="$t('m.standardEnglishName')" class="serch-form-item">
<el-input v-model="sarStandardsSearch.standEnName" :placeholder="$t('m.searchAccordingToStandardEnglishName')" clearable :maxlength="500"
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"></el-input>
</el-form-item>
<!-- 标准类别--> <!-- 标准类别-->
<el-form-item :label="$t('m.standardCategory')" class="serch-form-item"> <el-form-item :label="$t('m.standardCategory')" class="serch-form-item">
<search-select <search-select
@@ -1027,20 +1032,161 @@
<el-input v-model="sarStandardsSearch.dtbjh" :placeholder="$t('m.lookUpByAlternativeCriteria')" clearable :maxlength="100" <el-input v-model="sarStandardsSearch.dtbjh" :placeholder="$t('m.lookUpByAlternativeCriteria')" clearable :maxlength="100"
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"></el-input> @keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"></el-input>
</el-form-item> </el-form-item>
<!-- 标准年份-->
<el-form-item :label="$t('m.standardYear')" class="serch-form-item">
<el-date-picker
v-model="sarStandardsSearch.standYear"
type="date"
placeholder="根据标准年份查找">
</el-date-picker>
</el-form-item>
<!-- 标准发布日期-->
<el-form-item label="标准发布日期" class="serch-form-item">
<el-date-picker
v-model="sarStandardsSearch.issueTime"
type="date"
placeholder="根据标准发布日期查找">
</el-date-picker>
</el-form-item>
<!-- 标准性质-->
<el-form-item :label="$t('m.standNatureShow')" class="serch-form-item">
<el-select v-model="sarStandardsSearch.standNature" placeholder="请选择标准性质" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in standNatureOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 是否纳入标准清单-->
<el-form-item title="是否纳入标准清单" label="是否纳入标准清单">
<el-select v-model="sarStandardsSearch.isRelateAccess" class="advanced-one" placeholder="根据是否纳入标准清单查找">
<el-option value="yes" label="是"></el-option>
<el-option value="no" label="否"></el-option>
</el-select>
</el-form-item>
<!-- 实施日期-->
<el-form-item label="实施日期">
<el-date-picker
v-model="sarStandardsSearch.putTime"
type="date"
placeholder="根据实施日期查找">
</el-date-picker>
</el-form-item>
<!-- 新车型实施日期-->
<el-form-item title="新车型实施日期" label="新车型实施日期">
<el-date-picker
v-model="sarStandardsSearch.XCXTime"
type="date"
placeholder="根据新车型实施日期查找">
</el-date-picker>
</el-form-item>
<!-- 在产车实施日期-->
<el-form-item title="在产车实施日期" label="在产车实施日期">
<el-date-picker
v-model="sarStandardsSearch.ZCCTime"
type="date"
placeholder="根据在产车实施日期查找">
</el-date-picker>
</el-form-item>
<!-- 归口管理部门-->
<el-form-item label="归口管理部门">
<el-input v-model="sarStandardsSearch.nameShow" clearable placeholder="根据归口管理部门查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 起草单位-->
<el-form-item label="起草单位">
<el-select v-model="sarStandardsSearch.qcdw" placeholder="根据起草单位查找" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in qcdwOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 我司参与深度-->
<el-form-item label="我司参与深度">
<el-select v-model="sarStandardsSearch.nameShow" placeholder="请选择我司参与深度" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in cysdOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 能源类型-->
<el-form-item label="能源类型">
<el-select v-model="sarStandardsSearch.energyKind" placeholder="请选择能源类型" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in nylxOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 适用车型--> <!-- 适用车型-->
<el-form-item :label="$t('m.applicableModels')" class="serch-form-item"> <el-form-item :label="$t('m.applicableModels')" class="serch-form-item">
<el-select v-model="sarStandardsSearch.cllx" :placeholder="$t('m.searchAccordingToThApplicableModel')" clearable <el-select v-model="sarStandardsSearch.applyArctic" :placeholder="$t('m.searchAccordingToThApplicableModel')" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"> @keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in applyArcticOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option> <el-option v-for="opt in applyArcticOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 适用产品线(新增字段)--> <!-- 适用产品线(新增字段)-->
<el-form-item :label="$t('m.applicableProductLine')" class="serch-form-item"> <el-form-item :label="$t('m.applicableProductLine')" class="serch-form-item">
<el-select v-model="sarStandardsSearch.nylx" :placeholder="$t('m.searchByApplicableProductLine')" clearable <el-select v-model="sarStandardsSearch.sycpx" :placeholder="$t('m.searchByApplicableProductLine')" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)"> @keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in categoryOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option> <el-option v-for="opt in sycpxOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 适用认证-->
<el-form-item label="适用认证">
<el-select v-model="sarStandardsSearch.syzr" placeholder="根据适用认证查找" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in syzrOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 责任部门-->
<el-form-item label="责任部门">
<el-select v-model="sarStandardsSearch.zrbm" placeholder="根据责任部门查找" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in zrbmOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 责任工程师-->
<el-form-item label="责任工程师">
<el-select v-model="sarStandardsSearch.dutyEngineer" placeholder="根据责任工程师查找" clearable
@keyup.enter.native="getDomesticStandardTableBtn(sarStandardsSearch)">
<el-option v-for="opt in zrgcsOptions" :value="opt.value === undefined ? '' :opt.value" :key="opt.value" :label="opt.label">{{ opt.label}}</el-option>
</el-select>
</el-form-item>
<!-- 关联模块-VPPS编码-->
<el-form-item title="关联模块-VPPS编码" label="关联模块-VPPS编码" prop="standNumber">
<el-input v-model="sarStandardsSearch.svpps" clearable
placeholder="根据关联模块-VPPS编码查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 代替标准号-->
<el-form-item label="代替标准号">
<el-input v-model="sarStandardsSearch.replaceStandNum" clearable placeholder="根据代替标准号查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 关联模块-中文名称-->
<el-form-item title="关联模块-中文名称" label="关联模块-中文名称" prop="standNumber">
<el-input v-model="sarStandardsSearch.standNumber" clearable
placeholder="根据关联模块-中文名称"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 采标编号-->
<el-form-item label="采标编号" prop="nameShow">
<el-input v-model="sarStandardsSearch.nameShow" clearable placeholder="根据采标编号查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 采标程度-->
<el-form-item label="采标程度" prop="standNumber">
<el-input v-model="sarStandardsSearch.standNumber" clearable
placeholder="根据采标程度查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 引用标准-->
<el-form-item label="引用标准">
<el-input v-model="sarStandardsSearch.citeStand" clearable placeholder="根据引用标准查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 被引用标准-->
<el-form-item label="被引用标准">
<el-input v-model="sarStandardsSearch.citedStand" clearable
placeholder="根据被引用标准查找"
@keyup.enter.native="btnSearch"></el-input>
</el-form-item>
<!-- 关联模块(新增字段)--> <!-- 关联模块(新增字段)-->
<el-form-item :label="$t('m.associatedModule')" class="serch-form-item"> <el-form-item :label="$t('m.associatedModule')" class="serch-form-item">
<el-select v-model="sarStandardsSearch.cycvppsbm" :placeholder="$t('m.SearchByAssociatedModule')" clearable <el-select v-model="sarStandardsSearch.cycvppsbm" :placeholder="$t('m.SearchByAssociatedModule')" clearable
@@ -1253,6 +1399,12 @@ export default {
categoryOptions: [], // 所属类别下拉框 categoryOptions: [], // 所属类别下拉框
categoryConfigOptions: [], // 所属类别下拉框 categoryConfigOptions: [], // 所属类别下拉框
assemClassOptions: [], // 总成分类下拉框 assemClassOptions: [], // 总成分类下拉框
qcdwOptions: [], // 起草单位
nylxOptions: [], // 能源类型
sycpxOptions: [], // 适用产品线
syzrOptions: [], // 适用认证
zrbmOptions: [], // 责任部门
zrgcsOptions: [], // 责任工程师
standAttributeList: [], standAttributeList: [],
sarStandardsSearch: { sarStandardsSearch: {
page: 1, page: 1,
@@ -1261,19 +1413,33 @@ export default {
validFlag: '0', validFlag: '0',
menuId: '', menuId: '',
country: '', country: '',
standNumber: '', standNumber: '', // 标准编号
standName: '', standName: '', // 标准名称
standState: '', standState: '', // 标准状态
standNature: '', issueTime: '', // 标准发布日期
issueTime: '', svpps: '', // 关联模块-VPPS编码
// applyArctic: '', replaceStandNum: '', // 代替标准号
replaceStandNum: '', replacedStandNum: '', // 被代替标准号
// replaceStandNumCope: '', citeStand: '', // 引用标准
// replaceStandNumList: [], citedStand: '', // 被引用标准
replacedStandNum: '',
synopsis: '', // 内容摘要 synopsis: '', // 内容摘要
// category: '', // 所属类别 applyArctic: '', // 适用车型
standSort: '' // 标准类别 sycpx: '', // 适用产品线
syzr: '', // 适用认证
zrbm: '', // 责任部门
dutyEngineer: '', // 责任工程师
standSort: '', // 标准类别
standYear: '', // 标准年份
standEnName: '', // 标准英文名称
standNature: '', // 标准性质
putTime: '', // 实施日期
isRelateAccess: '', // 是否纳入标准清单
nameShow: '', // 我司参与深度
qcdw: '', // 起草单位
nameShow: '', // 归口管理部门
ZCCTime: '', // 在产车实施日期
XCXTime: '', // 新车型实施日期
energyKind: '', // 能源类型
}, // 分页查询过程中用到的对象 }, // 分页查询过程中用到的对象
// 树形结构 // 树形结构
// tree function // tree function
@@ -2114,7 +2280,6 @@ export default {
this.selectChildMenu(data) this.selectChildMenu(data)
this.productModal = true this.productModal = true
// 取消所有的选中效果 // 取消所有的选中效果
this.handleSelectAll(false)
this.productTitle = '编辑信息' this.productTitle = '编辑信息'
// const newChild = { id: this.id++, label: 'testtest', children: [] }; // const newChild = { id: this.id++, label: 'testtest', children: [] };
// if (!data.children) { // if (!data.children) {
@@ -2128,7 +2293,6 @@ export default {
this.selectChildMenu(data) this.selectChildMenu(data)
this.productModal = true this.productModal = true
// 取消所有的选中效果 // 取消所有的选中效果
this.handleSelectAll(false)
this.productTitle = '新增下级菜单信息' this.productTitle = '新增下级菜单信息'
this.productModelAdd.dicTypeCode = '' this.productModelAdd.dicTypeCode = ''
// const newChild = { id: this.id++, label: 'testtest', children: [] }; // const newChild = { id: this.id++, label: 'testtest', children: [] };
@@ -2148,7 +2312,7 @@ export default {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.$http.delete("sarResource/ts-resource", { this.$http.delete("sarResource/ts-resource", {
menuId: data.id resourceId: data.id
}, res => { }, res => {
}, e => { }, e => {
if(e.ok){ if(e.ok){
@@ -4077,7 +4241,7 @@ export default {
this.standNatureOptions = res.data.SARPROPERTY // 标准性质 this.standNatureOptions = res.data.SARPROPERTY // 标准性质
this.standStateOptions = res.data.WBZTCLASS // 文本状态 this.standStateOptions = res.data.WBZTCLASS // 文本状态
this.standSystemOptions = res.data.BZTXCLASS // 标准体系 this.standSystemOptions = res.data.BZTXCLASS // 标准体系
this.applyArcticOptions = res.data.ENERGYTYPES // 适用车型 this.applyArcticOptions = res.data.SYCXCLASS // 适用车型
this.categoryOptions = res.data.NYLXCLASS // 能源类型 this.categoryOptions = res.data.NYLXCLASS // 能源类型
this.applyAuthOptions = res.data.SYRZCLASS // 适用认证 this.applyAuthOptions = res.data.SYRZCLASS // 适用认证
this.cysdOptions = res.data.WSCYSD // 我司参与深度 this.cysdOptions = res.data.WSCYSD // 我司参与深度
@@ -4085,6 +4249,12 @@ export default {
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门 this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师 this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
this.txlbOptions = res.data.TXLBCLASS // 体系类别 this.txlbOptions = res.data.TXLBCLASS // 体系类别
this.qcdwOptions = res.data.QCDW // 起草单位
this.nylxOptions = res.data.NYLXCLASS // 能源类型
this.sycpxOptions = res.data.SYCPXCLASS // 适用产品线
this.zrgcsOptions = res.data.ZRGCSCLASS // 责任工程师
this.zrbmOptions = res.data.ZRBMCLASS // 责任部门
this.syzrOptions = res.data.SYRZCLASS // 适用认证
this.getGzzOption() this.getGzzOption()
this.setMap(this.standStateOptions) this.setMap(this.standStateOptions)
console.log(this.standStateOptions, '文本状态') console.log(this.standStateOptions, '文本状态')
@@ -4234,6 +4404,9 @@ export default {
text-align: center; text-align: center;
margin-top: 6px; margin-top: 6px;
background: #F9F9F9; background: #F9F9F9;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
} }
/deep/.el-input__inner { /deep/.el-input__inner {
height: 30px; height: 30px;
@@ -4242,5 +4415,8 @@ export default {
} }
} }
} }
.el-date-editor.el-input, .el-date-editor.el-input__inner{
width: 190px
}
</style> </style>
@@ -231,7 +231,7 @@
取消收藏 取消收藏
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'e8d690904ee1895dd0d17d9c794fbcd7'">编辑</el-dropdown-item> <el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'e8d690904ee1895dd0d17d9c794fbcd7'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '分享']" v-btn-permission="'413e676a155d6eb2dfbe08df8cbcf682'">分享</el-dropdown-item> <!-- <el-dropdown-item :command="[scope.row, '分享']" v-btn-permission="'413e676a155d6eb2dfbe08df8cbcf682'">分享</el-dropdown-item>-->
<el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'413e676a155d6eb2dfbe08df8cbcf682'">删除</el-dropdown-item> <el-dropdown-item :command="[scope.row, '删除']" v-btn-permission="'413e676a155d6eb2dfbe08df8cbcf682'">删除</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
@@ -3960,6 +3960,7 @@ export default {
this.assemClassOptions = res.data.ASSEMCLASSIFY // 总成分类 this.assemClassOptions = res.data.ASSEMCLASSIFY // 总成分类
this.categoryConfigOptions = res.data.CATEGORY this.categoryConfigOptions = res.data.CATEGORY
this.standAttributeList = res.data.RULETYPE this.standAttributeList = res.data.RULETYPE
this.qcdwOptions = res.data.QCDW
this.getGzzOption() this.getGzzOption()
this.setMap(this.standStateOptions) this.setMap(this.standStateOptions)
}, e => { }, e => {
@@ -142,80 +142,116 @@
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="productLineId" prop="productLineId"
label="产品线"> label="产品线">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="standNumber" prop="standNumber"
label="项目编号"> label="项目编号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="productName" prop="productName"
label="项目名称"> label="项目名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="standNumber" prop="standNumber"
label="标准编号"> label="标准编号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="standName" prop="standName"
label="标准名称"> label="标准名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="standardItem" prop="standardItem"
label="标准章条"> label="条款号">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="standardInfo" prop="standardInfo"
label="标准主要内容"> label="条款名称">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="productType" align="center"
prop="productType"
label="在研产品"> label="在研产品">
<el-table-column <el-table-column
width="150px"
align="center"
prop="researchImplementationTime" prop="researchImplementationTime"
label="实施时间"> label="实施时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="researchCompliance" prop="researchCompliance"
label="合规"> label="合规">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="researchNonCompliance" width="150px"
align="center"
label="不合规"> label="不合规">
<el-table-column <el-table-column
width="150px"
align="center"
prop="researchNonCompliance" prop="researchNonCompliance"
label="不合规项目"> label="不合规项目">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="researchCountermeasures" prop="researchCountermeasures"
label="应对措施"> label="应对措施">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="researchCompletionTime" prop="researchCompletionTime"
label="完成时间"> label="完成时间">
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="center"
label="在产产品"> label="在产产品">
<el-table-column <el-table-column
width="150px"
align="center"
prop="productionImplementationTime" prop="productionImplementationTime"
label="实施时间"> label="实施时间">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="productionCompliance" prop="productionCompliance"
label="合规(具体情况)"> label="合规(具体情况)">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
align="center" width="150px"
align="center"
label="不合规"> label="不合规">
<el-table-column <el-table-column
width="150px"
align="center"
prop="productionCountermeasures" prop="productionCountermeasures"
label="应对措施"> label="应对措施">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
width="150px"
align="center"
prop="productionCompletionTime" prop="productionCompletionTime"
label="完成时间"> label="完成时间">
</el-table-column> </el-table-column>
@@ -293,6 +329,7 @@ export default {
this.sarProject.country = '' this.sarProject.country = ''
this.sarProject.standCode='' this.sarProject.standCode=''
this.sarProject.standName = '' this.sarProject.standName = ''
this.sarProject.standNumber=''
this.queryStandAndLaws() this.queryStandAndLaws()
}, // 外层清空条件查询 }, // 外层清空条件查询
handleProjectCompliance (row) { handleProjectCompliance (row) {
@@ -264,6 +264,7 @@ name: "technologyInvolveProject",
this.sarProject.country = '' this.sarProject.country = ''
this.sarProject.standCode='' this.sarProject.standCode=''
this.sarProject.standName = '' this.sarProject.standName = ''
this.sarProject.standNumber=''
this.queryStandAndLaws() this.queryStandAndLaws()
}, // 外层清空条件查询 }, // 外层清空条件查询
handleProjectCompliance (row) { handleProjectCompliance (row) {
@@ -167,17 +167,17 @@
label="责任部门"> label="责任部门">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="dutyEngineer" prop="dutyEngineerName"
width="150" width="150"
label="责任工程师"> label="责任工程师">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="authEngineer" prop="authEngineerName"
width="150" width="150"
label="认证工程师"> label="认证工程师">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="qaEngineer" prop="qaEngineerName"
width="150" width="150"
label="质量工程师"> label="质量工程师">
</el-table-column> </el-table-column>
+9
View File
@@ -438,6 +438,15 @@ const routes = [
title: '标准调研流程' title: '标准调研流程'
} }
}, },
{
path: '/bzdyStep1-1',
name: 'bzdyStep1-1',
component: () => import('@/pages/processCenter/pages/creatProcess/bzdy/step1-1.vue'),
meta: {
requireAuth: true,
title: '标准调研流程'
}
},
{ {
path: '/bzdyStep2', path: '/bzdyStep2',
name: 'bzdyStep2', name: 'bzdyStep2',
+1 -1
View File
@@ -7,7 +7,7 @@
// const devIp = '39.98.140.126' // const devIp = '39.98.140.126'
// const devInterfacePORT = '10005' // const devInterfacePORT = '10005'
// const devIp = '192.168.10.248' // const devIp = '192.168.10.248'
const devIp = '192.168.1.108' const devIp = '192.168.1.102'
const devInterfacePORT = '9999' const devInterfacePORT = '9999'
// 云端端口号 // 云端端口号
const DEV_CLOUD_RES_INTERFACE_PORT = '7777' const DEV_CLOUD_RES_INTERFACE_PORT = '7777'