Merge remote-tracking branch 'origin/dev_20231113_phonePage' into dev_20231201_feizhi
# Conflicts: # src/components/hzwlComponents/ReceiptDescription.vue # src/pages/processCenter/pages/phone/qbrk-product/step2.vue
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<el-form-item :label="label" :prop="prop" class="add-form-item form-item-disabled">
|
||||
<el-radio-group :value="value"
|
||||
:disabled="disabled"
|
||||
:placeholder="placeholder"
|
||||
@input="handleChange"
|
||||
>
|
||||
<el-radio v-for="item in options"
|
||||
:key="item.value"
|
||||
:label="item.label">{{ item.value }}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "RadioGroupFormItem",
|
||||
props: {
|
||||
label: {
|
||||
type: String,
|
||||
},
|
||||
prop: {
|
||||
type: String
|
||||
},
|
||||
value: {
|
||||
required: true
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
options: {
|
||||
type: Array,
|
||||
required: true
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
placeholder () {
|
||||
return `请选择${this.label}`
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleChange (event) {
|
||||
console.log(event)
|
||||
this.$emit('input', event)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.add-form-item /deep/ .el-radio-group{
|
||||
padding: 0 10px !important;
|
||||
}
|
||||
.add-form-item /deep/ .el-radio{
|
||||
margin-right: 15px !important;
|
||||
}
|
||||
.add-form-item /deep/ .el-radio:last-child {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
</style>
|
||||
@@ -23,6 +23,7 @@ export default {
|
||||
name: "SelectMultipleFormItem",
|
||||
props: {
|
||||
value: {
|
||||
type: [Array, String],
|
||||
required: true
|
||||
},
|
||||
prop: {
|
||||
@@ -49,21 +50,39 @@ export default {
|
||||
default: true
|
||||
},
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
basicType: 'Array'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
placeholder () {
|
||||
return `请选择${this.label}`
|
||||
},
|
||||
data () {
|
||||
if (this.value && this.value !== '') {
|
||||
return this.value.split(',')
|
||||
} else {
|
||||
if (!this.value) {
|
||||
return []
|
||||
} else {
|
||||
if (this.getType(this.value) === 'Array') {
|
||||
this.basicType = 'Array'
|
||||
return this.value
|
||||
} else if (this.getType(this.value) === 'String'){
|
||||
this.basicType = 'String'
|
||||
return this.value.split(',')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getType (target) {
|
||||
return Object.prototype.toString.call(target).slice(8, -1)
|
||||
},
|
||||
handleChange (event) {
|
||||
this.$emit('input', event.join(','))
|
||||
if (this.basicType === 'Array') {
|
||||
this.$emit('input', event)
|
||||
} else if (this.basicType === 'String') {
|
||||
this.$emit('input', event.join(','))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<el-card>
|
||||
<el-form-item :prop="prop" style="margin-bottom: 0">
|
||||
<h4>{{ title }}</h4>
|
||||
<div style="margin-top: 10px;width: 300px;">
|
||||
<div style="margin-top: 10px;width: 300px;max-width: 100%">
|
||||
<el-input
|
||||
:disabled="disabled"
|
||||
:value="name"
|
||||
|
||||
@@ -7,16 +7,21 @@
|
||||
clearable
|
||||
></el-input>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<div style="width: 80%;margin-top: 13px">
|
||||
<div v-for="file in FileList"
|
||||
:key="file.id"
|
||||
@click="onPreview(file)"
|
||||
style="color: #409eff;cursor:pointer"
|
||||
class="fileClass">
|
||||
{{ file.name }}
|
||||
</div>
|
||||
<div style="margin-top: 13px" :style="{width: view ? '100%' : '80%'}">
|
||||
<template v-if="FileList.length > 0">
|
||||
<div v-for="file in FileList"
|
||||
:key="file.id"
|
||||
@click="onPreview(file)"
|
||||
style="color: #409eff;cursor:pointer"
|
||||
class="fileClass">
|
||||
{{ file.name }}
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div v-if="view" style="line-height: 22px">-</div>
|
||||
</template>
|
||||
</div>
|
||||
<div style="width: 20%;">
|
||||
<div v-if="!view" style="width: 20%;">
|
||||
<el-button :disabled="disabled"
|
||||
type="primary"
|
||||
class="common-button-primary"
|
||||
@@ -85,6 +90,10 @@ export default {
|
||||
size: {
|
||||
type: Number,
|
||||
default: 200
|
||||
},
|
||||
view: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
created () {
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<template>
|
||||
<div class="phoneHistortTable">
|
||||
<el-table
|
||||
height="100%"
|
||||
ref="selection"
|
||||
:data="histortData"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
|
||||
<el-table-column
|
||||
prop="name"
|
||||
min-width="100"
|
||||
label="任务步骤"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="assignee"
|
||||
min-width="100"
|
||||
label="任务受理人"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
label="创建时间"
|
||||
min-width="100"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format('YYYY-MM-DD') : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="endTime"
|
||||
label="完成时间"
|
||||
min-width="100"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format('YYYY-MM-DD') : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="comment"
|
||||
label="流程信息"
|
||||
min-width="100"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.commentText }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="completeFlag"
|
||||
label="状态"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.endTime ? '已完成' : scope.row.receiveStatus ? '已接收' : '未完成' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<loading :loading="loading">流程列表加载中</loading>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "phoneApprovalHistory",
|
||||
data() {
|
||||
return {
|
||||
histortData: [],
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
props: {
|
||||
prcNum: {
|
||||
type: String
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getHistoryData () {
|
||||
this.$http.get('lawss/activiti/get_list_by_instance', {
|
||||
prcNum: this.prcNum || this.$route.query.prcNum
|
||||
}, {
|
||||
loading: "loading",
|
||||
_this: this
|
||||
}, res => {
|
||||
this.histortData = res
|
||||
}, e => {})
|
||||
},
|
||||
},
|
||||
mounted () {
|
||||
this.getHistoryData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.phoneHistortTable{
|
||||
height: calc(100vh - 157px);
|
||||
//min-height: calc(100vh - 52px)
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,578 @@
|
||||
<template>
|
||||
<div class="roleTree">
|
||||
<el-drawer
|
||||
:title="isTitle"
|
||||
v-if="visible"
|
||||
:visible.sync="visible"
|
||||
:wrapperClosable="false"
|
||||
@close="handleTreeDrawerCancel"
|
||||
append-to-body
|
||||
size="90%">
|
||||
<el-form
|
||||
ref="attributeEO"
|
||||
class="label-input-form"
|
||||
:inline="true"
|
||||
@submit.native.prevent
|
||||
>
|
||||
<el-form-item class="form-item-disabled" style="margin: 10px;">
|
||||
<el-input
|
||||
v-model="filterText"
|
||||
placeholder="请输入姓名"
|
||||
@keyup.enter.native="searchChange"
|
||||
size="mini"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item class="form-item-disabled" style="margin-top: 10px;">
|
||||
<el-button size="mini" type="primary" @click="searchChange">
|
||||
查询
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="divTree">
|
||||
<!-- 当前tree展示全部人员 -->
|
||||
<el-tree
|
||||
v-if="open1 && isVisible"
|
||||
node-key="id"
|
||||
style="height: 100%; overflow: auto;"
|
||||
class="filter-tree tree-line"
|
||||
icon-class="icon-tree"
|
||||
@check-change="checkChange"
|
||||
:data="treeData"
|
||||
:props="defaultProps"
|
||||
:default-checked-keys="nodeList2"
|
||||
:default-expanded-keys="defaultKey"
|
||||
highlight-current
|
||||
check-strictly
|
||||
@check="drawerCheck"
|
||||
:expand-on-click-node="true"
|
||||
show-checkbox
|
||||
ref="tree"
|
||||
:load="loadNode"
|
||||
:lazy="true">
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }">
|
||||
<span :class="node.disabled ? 'is-show' : 'is-leaf-none'"></span>
|
||||
<span> {{ node.label }} </span>
|
||||
</span>
|
||||
</el-tree>
|
||||
<!-- 当前tree展示搜索出的人员 -->
|
||||
<el-tree
|
||||
v-if="!open1 && isVisible"
|
||||
node-key="id"
|
||||
style="height: 100%; overflow: auto;"
|
||||
class="filter-tree tree-line"
|
||||
icon-class="icon-tree"
|
||||
:data="treeData1"
|
||||
:props="defaultProps"
|
||||
@check-change="checkChange2"
|
||||
:default-checked-keys="nodeList2"
|
||||
:default-expanded-keys="defaultKey"
|
||||
default-expand-all
|
||||
highlight-current
|
||||
:check-strictly="true"
|
||||
@check="drawerCheck"
|
||||
show-checkbox
|
||||
ref="tree"
|
||||
:lazy="false"
|
||||
:key="treeKey"
|
||||
>
|
||||
<span class="custom-tree-node" slot-scope="{ node, data }">
|
||||
<span :class="node.disabled ? 'is-show' : 'is-leaf-none'"></span>
|
||||
<span> {{ node.label }} </span>
|
||||
</span>
|
||||
</el-tree>
|
||||
</div>
|
||||
<div class="divDel">
|
||||
<div class="divDel_title">已选中人员</div>
|
||||
<div class="divDel_box">
|
||||
<el-tag
|
||||
v-for="tag in delList"
|
||||
:key="tag.id"
|
||||
size="mini"
|
||||
@close="handleClose(tag)"
|
||||
closable>
|
||||
{{tag.name}}
|
||||
</el-tag>
|
||||
<el-tag v-show="delList.length > 0 && !checkBox" type="danger" closable size="mini"
|
||||
@close="handleCloseAll()">全部删除
|
||||
</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div id="roleFormButton" class="demo-drawer-footer">
|
||||
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary"
|
||||
:loading="subLoading" @click="saveUserInfo">确定
|
||||
</el-button>
|
||||
|
||||
<el-button class="common-button-default" size="mini" icon="el-icon-close" :loading="subLoading"
|
||||
@click="handleTreeDrawerCancel">取消
|
||||
</el-button>
|
||||
</div>
|
||||
<loading style="z-index: 2099;" :loading="treeLoading">导入中...</loading>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
function debounce(func, wait = 500) {
|
||||
let timeout;
|
||||
return function (event) {
|
||||
clearTimeout(timeout)
|
||||
timeout = setTimeout(() => {
|
||||
func.call(this, event)
|
||||
}, wait)
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
name: "phoneRoleTree",
|
||||
props: {
|
||||
checkBox: { // 单选/多选
|
||||
type: Boolean,
|
||||
default: false,//默认false多选
|
||||
},
|
||||
isTitle: { // 标题
|
||||
type: String
|
||||
},
|
||||
isVisible: { // drawer开关
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
nodeList: { // 回显
|
||||
type: Array,
|
||||
default: () => {
|
||||
return []
|
||||
}
|
||||
},
|
||||
type: {
|
||||
type: Number,
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
treeKey: 1,
|
||||
defaultKey: [],//默认展开的节点的 key 的数组
|
||||
visible: false,
|
||||
selectList: [],
|
||||
nodeList2: [],//默认勾选的节点的 key 的数组
|
||||
delList: [],
|
||||
roleList: [],
|
||||
filterText: '',
|
||||
defaultProps: {//配置选项
|
||||
children: 'children',//指定子树为节点对象的某个属性值
|
||||
label: 'name',//指定节点标签为节点对象的某个属性值
|
||||
},
|
||||
treeData1: [],
|
||||
treeData: [],
|
||||
open1: true,
|
||||
treeLoading: false,
|
||||
subLoading: false,
|
||||
roleRow: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
nameJoinAccount(treeData1) {
|
||||
treeData1.forEach(item => {
|
||||
if (item.account) item.name = `${item.name}(${item.account})`
|
||||
if (item.children) this.nameJoinAccount(item.children)
|
||||
})
|
||||
},
|
||||
handleClose(tag) {
|
||||
let arr = []
|
||||
for (let a = 0; a < this.delList.length; a++) {
|
||||
if (tag.id === this.delList[a].id) {
|
||||
this.delList.splice(a, 1)
|
||||
}
|
||||
}
|
||||
this.delList.map(item => {
|
||||
arr.push(item)
|
||||
})
|
||||
this.$refs.tree.setCheckedKeys(arr);
|
||||
for (let b = 0; b < this.nodeList2.length; b++) {
|
||||
if (tag.id === this.nodeList2[b]) {
|
||||
this.nodeList2.splice(b, 1)
|
||||
}
|
||||
}
|
||||
for (let c = 0; c < this.roleList.length; c++) {
|
||||
if (tag.id === this.roleList[c].id) {
|
||||
this.roleList.splice(c, 1)
|
||||
}
|
||||
}
|
||||
},
|
||||
handleCloseAll() {
|
||||
this.$msgbox({
|
||||
title: '提示',
|
||||
message: '是否删除当前选中人员',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
}).then(() => {
|
||||
this.delList = []
|
||||
this.nodeList2 = []
|
||||
this.roleList = []
|
||||
this.$refs.tree.setCheckedKeys([]);
|
||||
}).catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '取消删除'
|
||||
});
|
||||
}
|
||||
)
|
||||
},
|
||||
searchChange() {
|
||||
// 查询
|
||||
if (this.filterText.length) {
|
||||
this.open1 = false // 显示第二个tree
|
||||
this.treeLoading = true
|
||||
this.defaultKey = []
|
||||
this.$http.get('SarInstitution/institution/getNextTwo', {
|
||||
userName: this.filterText
|
||||
}, {}, res => {
|
||||
this.treeData1 = res
|
||||
this.treeData1.forEach(item => {
|
||||
this.defaultKey.push(item.id)
|
||||
})
|
||||
this.nameJoinAccount(this.treeData1)
|
||||
this.treeLoading = false
|
||||
})
|
||||
// this.treeKey++
|
||||
|
||||
|
||||
// this.$http.get('SarInstitution/institution/institutionAndUser', {
|
||||
// userName: this.filterText
|
||||
// }, {}, res => {
|
||||
// this.treeData1 = res.data
|
||||
// this.treeData1.forEach(item => {
|
||||
// this.defaultKey.push(item.id)
|
||||
// })
|
||||
// console.log(1);
|
||||
// this.getChildren()
|
||||
// this.treeLoading = false
|
||||
// })
|
||||
} else {
|
||||
this.open1 = true
|
||||
}
|
||||
},
|
||||
changeInput: debounce(function (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
|
||||
}
|
||||
}),
|
||||
checkChange2(row, type, c) {
|
||||
if (this.checkBox) {
|
||||
} else {
|
||||
if (type) {
|
||||
this.nodeList2.push(row.id)
|
||||
this.delList.push(row)
|
||||
} else {
|
||||
for (let a = 0; a < this.nodeList2.length; a++) {
|
||||
if (row.id === this.nodeList2[a]) {
|
||||
this.nodeList2.splice(a, 1)
|
||||
}
|
||||
}
|
||||
for (let b = 0; b < this.delList.length; b++) {
|
||||
if (row.id === this.delList[b].id) {
|
||||
this.delList.splice(b, 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
checkChange(row, type, c) {
|
||||
//节点选中状态发生变化时的回调(传递给 data 属性的数组中该节点所对应的对象、节点本身是否被选中、节点的子树中是否有被选中的节点)
|
||||
if (this.checkBox) {
|
||||
} else {
|
||||
if (type) {
|
||||
this.nodeList2.push(row.id)
|
||||
this.delList.push(row)
|
||||
} else {
|
||||
for (let a = 0; a < this.nodeList2.length; a++) {
|
||||
if (row.id === this.nodeList2[a]) {
|
||||
this.nodeList2.splice(a, 1)
|
||||
}
|
||||
}
|
||||
for (let b = 0; b < this.delList.length; b++) {
|
||||
if (row.id === this.delList[b].id) {
|
||||
this.delList.splice(b, 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
handleTreeDrawerCancel() {
|
||||
this.filterText = ''
|
||||
this.open1 = true
|
||||
this.visible = false
|
||||
},
|
||||
saveUserInfo() {
|
||||
if (this.roleList.length === 0) {
|
||||
// this.roleList.push({id: "", name: ""});
|
||||
return this.$message.warning('请选择人员')
|
||||
}
|
||||
if (this.checkBox) {
|
||||
this.$emit('checkedRole', this.roleList)
|
||||
this.nodeList2 = []
|
||||
this.$emit('update:isVisible', false)
|
||||
} else {
|
||||
if (this.nodeList2.length > 0 && this.nodeList2[0].length !== 0) {
|
||||
let ids = ''
|
||||
this.nodeList2.forEach(item => {
|
||||
if (ids.length > 0) {
|
||||
ids += ','
|
||||
ids += item
|
||||
} else {
|
||||
ids = item
|
||||
}
|
||||
})
|
||||
this.subLoading = true
|
||||
this.$http.get('SarInstitution/institution/getNextById', {
|
||||
ids: ids,
|
||||
topNum: 3,
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.$emit('checkedRole', res)
|
||||
this.nodeList2 = []
|
||||
this.$emit('update:isVisible', false)
|
||||
this.subLoading = false
|
||||
})
|
||||
} else {
|
||||
this.$emit('checkedRole', this.roleList)
|
||||
this.nodeList2 = []
|
||||
this.$emit('update:isVisible', false)
|
||||
}
|
||||
}
|
||||
this.open1 = true
|
||||
},
|
||||
drawerCheck(data) {
|
||||
//当复选框被点击的时候触发
|
||||
//共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性
|
||||
if (this.checkBox) { // 单选
|
||||
// 单选判断
|
||||
let getlist = this.$refs.tree.getCheckedNodes()
|
||||
if (getlist.length > 1) {
|
||||
this.$refs.tree.setCheckedKeys([])
|
||||
this.$refs.tree.setCheckedKeys([data.id])
|
||||
this.roleList = [data]
|
||||
this.delList = [data]
|
||||
} else if (getlist.length === 0) {
|
||||
this.roleList = [{}]
|
||||
this.delList = []
|
||||
} else if (getlist.length === 1) {
|
||||
this.roleList = [data]
|
||||
this.delList = [data]
|
||||
}
|
||||
} else { // 多选
|
||||
if (this.roleList.length === 0) {
|
||||
this.roleList.push(data)
|
||||
} else {
|
||||
let delFlag = true
|
||||
this.roleList.forEach((item, index) => {
|
||||
if (item.id === data.id) {
|
||||
this.roleList.splice(index, 1)
|
||||
delFlag = false
|
||||
}
|
||||
})
|
||||
if (delFlag) {
|
||||
this.roleList.push(data)
|
||||
}
|
||||
}
|
||||
// this.roleList = this.$refs.tree.getCheckedNodes().concat(this.$refs.tree.getHalfCheckedNodes())
|
||||
}
|
||||
},
|
||||
loadNode(node, resolve) {
|
||||
//加载子树数据的方法,仅当 lazy 属性为true 时生效
|
||||
if (node.level === 0) {
|
||||
return resolve(this.treeData);
|
||||
}
|
||||
this.getChildren(node, resolve)
|
||||
},
|
||||
getChildren(node, resolve) {
|
||||
this.$http.get('SarInstitution/institution/getNext', {
|
||||
institutionId: node.key,
|
||||
userName: this.filterText
|
||||
}, {}, res => {
|
||||
resolve(res)
|
||||
})
|
||||
},
|
||||
getTree() {
|
||||
this.treeLoading = true
|
||||
this.$http.get('SarInstitution/institution/getFirstInstitution', {}, {}, res => {
|
||||
this.treeData = res
|
||||
this.treeLoading = false
|
||||
})
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
isVisible(val) {
|
||||
this.visible = val
|
||||
if (val) {
|
||||
this.nodeList2 = this.nodeList
|
||||
if (this.nodeList2.length && this.nodeList2[0].length) {
|
||||
let ids = ''
|
||||
this.nodeList2.forEach(item => {
|
||||
if (ids.length) {
|
||||
ids += ','
|
||||
ids += item
|
||||
} else {
|
||||
ids = item
|
||||
}
|
||||
})
|
||||
this.$http.get('SarInstitution/institution/getNextById', {
|
||||
ids: ids
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.delList = res
|
||||
})
|
||||
} else {
|
||||
this.delList = []
|
||||
}
|
||||
} else {
|
||||
this.delList = []
|
||||
}
|
||||
},
|
||||
visible(val) {
|
||||
this.$emit('update:isVisible', val)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getTree()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.divTree {
|
||||
overflow: auto;
|
||||
height: calc(~'100% - 100px');
|
||||
}
|
||||
|
||||
.divDel {
|
||||
border-top: 1px solid #000;
|
||||
height: 100px;
|
||||
|
||||
.divDel_title {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.divDel_box {
|
||||
height: 66px;
|
||||
padding: 0px 0 10px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
overflow: auto;
|
||||
margin: 10px;
|
||||
align-content: flex-start;
|
||||
|
||||
span {
|
||||
margin: 0px 5px 5px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/deep/ .icon-tree {
|
||||
margin: 0 5px 0 10px;
|
||||
position: relative;
|
||||
background: url('~@/assets/images/shangqi/img/tree-add.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
/deep/ .el-tree-node__content {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
/deep/ .is-leaf {
|
||||
background-image: none;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
/deep/ .is-leaf-none {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
background: url('~@/assets/images/shangqi/img/personnel.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
/deep/ .is-show {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
background: url('~@/assets/images/shangqi/img/mechanism.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
/deep/ .tree-line {
|
||||
.el-tree-node {
|
||||
position: relative;
|
||||
padding-left: 0px; // 缩进量
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.el-tree-node__children {
|
||||
padding-left: 16px; // 缩进量
|
||||
}
|
||||
|
||||
// 竖线
|
||||
.el-tree-node::before {
|
||||
content: "";
|
||||
height: 100%;
|
||||
width: 1px;
|
||||
position: absolute;
|
||||
left: -3px;
|
||||
top: -26px;
|
||||
border-width: 1px;
|
||||
border-left: 1px dashed #858990e0;
|
||||
}
|
||||
|
||||
// 当前层最后一个节点的竖线高度固定
|
||||
.el-tree-node:last-child::before {
|
||||
height: 38px; // 可以自己调节到合适数值
|
||||
}
|
||||
|
||||
// 横线
|
||||
.el-tree-node::after {
|
||||
content: "";
|
||||
width: 11px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
left: -3px;
|
||||
top: 12px;
|
||||
border-width: 1px;
|
||||
border-top: 1px dashed #858990e0;
|
||||
}
|
||||
|
||||
// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
|
||||
& > .el-tree-node::after {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
& > .el-tree-node::before {
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
// 展开关闭的icon
|
||||
.el-tree-node__expand-icon {
|
||||
font-size: 16px;
|
||||
// 叶子节点(无子节点)
|
||||
&.is-leaf {
|
||||
color: transparent;
|
||||
// display: none; // 也可以去掉
|
||||
}
|
||||
}
|
||||
}
|
||||
.demo-drawer-footer {
|
||||
height: 50px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -73,12 +73,14 @@
|
||||
}
|
||||
.process-title {
|
||||
width: 100%;
|
||||
margin-left: 10px;
|
||||
//margin-left: 10px;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
box-sizing: border-box;
|
||||
padding-left: 10px;
|
||||
.smallText {
|
||||
font-size: 14px;
|
||||
margin-left: 5px;
|
||||
|
||||
@@ -0,0 +1,238 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准调研流程</template>
|
||||
<template slot="proNode">调研结果反馈</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="调研标题"
|
||||
prop="title"
|
||||
v-model="form.title"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="完成时间"
|
||||
prop="date"
|
||||
v-model="form.date"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<UploadFormItem
|
||||
label="调研模板"
|
||||
prop="modelName"
|
||||
:ids.sync="form.modelId"
|
||||
:names.sync="form.modelName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="相关附件"
|
||||
prop="fjName"
|
||||
:ids.sync="form.fjId"
|
||||
:names.sync="form.fjName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">调研回执</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="调研结果"
|
||||
prop="fileName"
|
||||
:ids.sync="form.fileId"
|
||||
:names.sync="form.fileName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<TextareaFormItem
|
||||
label="调研回执"
|
||||
prop="dyhz"
|
||||
v-model="form.dyhz"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
UploadFormItem,
|
||||
TextareaFormItem,
|
||||
phoneRoleTree
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.modelId = this.form.modelList.map(item => item.id).join(',')
|
||||
this.form.modelName = this.form.modelList.map(item => item.name).join(',')
|
||||
this.form.fjId = this.form.fjList.map(item => item.id).join(',')
|
||||
this.form.fjName = this.form.fjList.map(item => item.name).join(',')
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,276 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准调研流程</template>
|
||||
<template slot="proNode">调研结果处理</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="调研标题"
|
||||
prop="title"
|
||||
v-model="form.title"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="完成时间"
|
||||
prop="date"
|
||||
v-model="form.date"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
|
||||
<UploadFormItem
|
||||
label="汇总调研结果"
|
||||
prop="hzfileName"
|
||||
:ids.sync="form.hzfileId"
|
||||
:names.sync="form.hzfileName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">调研信息</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border" style="padding: 0">
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="form.responUserList"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
min-width="120"
|
||||
label="责任人"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="institutionName"
|
||||
label="责任部门"
|
||||
min-width="150"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="回执文件"
|
||||
min-width="120"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: #409eff" @click="preview(scope.row.fileId)">{{scope.row.fileName}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="dyhz"
|
||||
label="回执说明"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
UploadFormItem,
|
||||
TextareaFormItem,
|
||||
phoneRoleTree
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: [],
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
preview(fileId) {
|
||||
this.$preview(fileId)
|
||||
},
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
// this.form.modelId = this.form.modelList.map(item => item.id).join(',')
|
||||
// this.form.modelName = this.form.modelList.map(item => item.name).join(',')
|
||||
// this.form.fjId = this.form.fjList.map(item => item.id).join(',')
|
||||
// this.form.fjName = this.form.fjList.map(item => item.name).join(',')
|
||||
|
||||
this.form.responUserList = processForm.responUserList || processForm.form.responUserList
|
||||
this.form.responUserList.forEach(item => {
|
||||
item.institutionName = ''
|
||||
this.$http.get('sarUser/user/selectDeptByDY', {
|
||||
ids: item.dockUser
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
if (res.ok) {
|
||||
this.reloadForm = false
|
||||
item.institutionName = res.data[0].institutionName
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
} else {
|
||||
item.institutionName = ''
|
||||
}
|
||||
})
|
||||
})
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,104 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
|
||||
<span class="file-box-span" :title="form.itemsNum" @click="handlePreview(form.itemsNum)">{{ form.itemsNum }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
|
||||
<span class="file-box-span" @click="handlePreview(form.itemsNum)" :title="form.itemsName">{{ form.itemsName }}</span>
|
||||
</el-form-item>
|
||||
<InputFormItem
|
||||
label="上一版本标准号/政策号"
|
||||
v-model="form.itemsNum1"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="上一版本标准名称/政策名称"
|
||||
v-model="form.itemsName1"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="截止日期"
|
||||
prop="endTime"
|
||||
v-model="form.endTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem
|
||||
},
|
||||
methods: {
|
||||
// 点击跳转标准详情
|
||||
handlePreview (item) {
|
||||
let replaceStandInfoEO ={}
|
||||
replaceStandInfoEO.standNumber = item
|
||||
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', replaceStandInfoEO, {
|
||||
_this: this
|
||||
}, res => {
|
||||
if (res.data != null) {
|
||||
let dataType ='INLAND_STAND'
|
||||
if(res.data.standType ==='FOREIGN'){
|
||||
dataType ='FOREIGN_STAND'
|
||||
}
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: res.data.id,
|
||||
pageType: dataType
|
||||
}
|
||||
})
|
||||
// let routeUrl = this.$router.resolve({
|
||||
// name: 'OtherStandardDetails',
|
||||
// params: {
|
||||
// id: res.data.id,
|
||||
// pageType:dataType
|
||||
// }
|
||||
// })
|
||||
// window.open(routeUrl.href, '_blank')
|
||||
} else {
|
||||
this.$message.error('标准号不存在!')
|
||||
}
|
||||
}, e => {
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.prc-content-border /deep/ .el-form-item__content {
|
||||
line-height: 50px !important;
|
||||
height: 50px !important;
|
||||
}
|
||||
.file-box-span{
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
color: #4498f0;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,125 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="itemsNum"
|
||||
label="条款号"
|
||||
width="120"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="itemsName"
|
||||
width="170"
|
||||
label="条款名称"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="itermsConditions"
|
||||
label="条款内容"
|
||||
width="500"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="itemsTextBox" v-html="scope.row.itermsConditions.replace(/''/g, '\'')"></div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="newData"
|
||||
width="180"
|
||||
label="新车型实施日期"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="onlineData"
|
||||
width="180"
|
||||
label="在产车型实施日期"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="applyArctic"
|
||||
width="200"
|
||||
label="适用车型"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ JSON.parse(scope.row.applyArctic).join(',') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="!form.itemsNum1"
|
||||
prop="technicalRequir"
|
||||
label="核心技术要求"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="changePoint"
|
||||
v-if="form.itemsNum1"
|
||||
label="基于上一版本差异"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzjdStep3'"
|
||||
prop="unitDeptName"
|
||||
label="责任部门"
|
||||
width="200"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="责任人"
|
||||
width="150"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.zxUserIdName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzjdStep3'"
|
||||
prop="complianceRequir"
|
||||
width="150"
|
||||
label="符合项状态"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.complianceRequir === '1' ? '符合' : (scope.row.complianceRequir === '2' ? '不符合' : '') }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzjdStep3'"
|
||||
prop="complianceState"
|
||||
width="200"
|
||||
label="合规性分析"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "SplitInformation",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.itemsTextBox {
|
||||
min-height: 0;
|
||||
max-height: 150px;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,191 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准解读流程</template>
|
||||
<template slot="proNode">选择责任人</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">拆分信息</template>
|
||||
</ProcessTitle>
|
||||
<SplitInformation :data="form.itemList" :form="form"></SplitInformation>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import SplitInformation from "./components/SplitInformation";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
SplitInformation
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.itemList = (processForm.form && processForm.form.itemList) || processForm.itemList || []
|
||||
if (typeof(this.form.itemList) === 'string') {
|
||||
this.form.itemList = JSON.parse(this.form.itemList)
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,191 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准解读流程</template>
|
||||
<template slot="proNode">解读</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">拆分信息</template>
|
||||
</ProcessTitle>
|
||||
<SplitInformation :data="form.itemList" :form="form"></SplitInformation>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import SplitInformation from "./components/SplitInformation";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
SplitInformation
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.itemList = (processForm.form && processForm.form.itemList) || processForm.itemList || []
|
||||
if (typeof(this.form.itemList) === 'string') {
|
||||
this.form.itemList = JSON.parse(this.form.itemList)
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,72 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<el-form-item label="标准编号" class="add-form-item form-item-disabled">
|
||||
<span class="file-box-span" :title="form.standNumber" @click="handlePreview(form.id)">{{ form.standNumber }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item label="标准名称" class="add-form-item form-item-disabled">
|
||||
<span class="file-box-span" :title="form.standName" @click="handlePreview(form.id)">{{ form.standName }}</span>
|
||||
</el-form-item>
|
||||
<InputFormItem
|
||||
label="认证工程师"
|
||||
v-model="form.certifiedEngineerName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="质量工程师"
|
||||
v-model="form.qualityEngineerName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
components: {
|
||||
InputFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePreview(id) {
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id,
|
||||
pageType: "INLAND_STAND"
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.prc-content-border /deep/ .el-form-item__content {
|
||||
line-height: 50px !important;
|
||||
height: 50px !important;
|
||||
}
|
||||
.file-box-span{
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
color: #4498f0;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="managementHostName"
|
||||
width="120"
|
||||
label="管理主体"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="developmentHostName"
|
||||
width="120"
|
||||
label="开发主体"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="categoryName"
|
||||
width="120"
|
||||
label="项目细分类"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="projectStatus"
|
||||
label="项目状态"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="projectNumber"
|
||||
label="项目编号"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="projectName"
|
||||
width="300"
|
||||
label="项目名称"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
prop="uname"
|
||||
width="120"
|
||||
label="项目经理" />
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Info",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="180"
|
||||
prop="projectGroup"
|
||||
label="项目群"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="180"
|
||||
prop="projectNumber"
|
||||
label="项目编号"/>
|
||||
<el-table-column
|
||||
min-width="300"
|
||||
align="center"
|
||||
prop="projectName"
|
||||
label="项目名称"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="120"
|
||||
prop="itemsNum"
|
||||
label="条款号"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="150"
|
||||
prop="itemsName"
|
||||
label="条款名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="technicalRequir"
|
||||
align="center"
|
||||
width="200px"
|
||||
label="核心技术要求/变化点">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="changePoint"
|
||||
align="center"
|
||||
width="200px"
|
||||
label="基于上一版本差异">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="xcxssrq"
|
||||
align="center"
|
||||
width="160px"
|
||||
label="新车型实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zccssrq"
|
||||
align="center"
|
||||
width="160px"
|
||||
label="在产车实施日期"/>
|
||||
<el-table-column
|
||||
label="落实人"
|
||||
prop="implementer"
|
||||
width="210"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "ImplementerInfo",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,107 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="180"
|
||||
prop="projectGroup"
|
||||
label="项目群"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="180"
|
||||
prop="projectNumber"
|
||||
label="项目编号"/>
|
||||
<el-table-column
|
||||
min-width="300"
|
||||
align="center"
|
||||
prop="projectName"
|
||||
label="项目名称"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="120"
|
||||
prop="itemsNum"
|
||||
label="条款号"/>
|
||||
<el-table-column
|
||||
align="center"
|
||||
min-width="150"
|
||||
prop="itemsName"
|
||||
label="条款名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="technicalRequir"
|
||||
align="center"
|
||||
width="200px"
|
||||
label="核心技术要求/变化点">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="changePoint"
|
||||
align="center"
|
||||
width="200px"
|
||||
label="基于上一版本差异">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="xcxssrq"
|
||||
align="center"
|
||||
width="160px"
|
||||
label="新车型实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zccssrq"
|
||||
align="center"
|
||||
width="160px"
|
||||
label="在产车实施日期"/>
|
||||
<el-table-column
|
||||
label="合规"
|
||||
prop="complianceReasons"
|
||||
width="210"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="noCompliance"
|
||||
align="center"
|
||||
width="170"
|
||||
label="不合规项目">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="countermeasures"
|
||||
align="center"
|
||||
width="160"
|
||||
label="应对措施">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="completionTime"
|
||||
align="center"
|
||||
width="140"
|
||||
label="完成时间">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="noInvolve"
|
||||
align="center"
|
||||
width="160"
|
||||
label="不涉及理由">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "ImplementerInfo",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准合规评估流程</template>
|
||||
<template slot="proNode">项目分发</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info3 :data="form.dataList"></Info3>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="审批意见"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
approval
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info3 from "./components/Info3";
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info3
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.dataList = processForm.dataList
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,189 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准合规评估流程</template>
|
||||
<template slot="proNode">任务分发</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info4 :data="form.resDats"></Info4>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="审批意见"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
approval
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info4 from "./components/Info4";
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info4
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,189 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准合规评估流程</template>
|
||||
<template slot="proNode">合规评估</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info5 :data="form.dataList"></Info5>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="审批意见"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
approval
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info5 from "./components/Info5";
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info5
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="清单名称"
|
||||
prop="listName"
|
||||
v-model="form.listName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="清单说明"
|
||||
prop="descriptionList"
|
||||
v-model="form.descriptionList"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<UploadFormItem
|
||||
label="附件"
|
||||
prop="fileNames"
|
||||
:ids.sync="form.fileIds"
|
||||
:names.sync="form.fileNames"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
UploadFormItem
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,94 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="code"
|
||||
width="120px"
|
||||
label="标准号">
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standYear" class="table-jump"
|
||||
@click="handlePreview(scope.row)">{{ scope.row.standSortShow }} {{ scope.row.standNumber
|
||||
}}-{{ scope.row.standYear }}</a>
|
||||
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSortShow }}
|
||||
{{ scope.row.standNumber }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="standName"
|
||||
label="标准名称"
|
||||
width="200px"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="issueTime"
|
||||
width="90px"
|
||||
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
|
||||
prop="XCXSSRQ"
|
||||
width="90px"
|
||||
label="新车型实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="ZCCSSRQ"
|
||||
width="90px"
|
||||
label="在产车实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
show-overflow-tooltip
|
||||
prop="textStatus"
|
||||
width="80px"
|
||||
label="文本状态">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="dict.WBZTCLASS && dict.WBZTCLASS.length > 0 && scope.row.textStatus && scope.row.textStatus!== ''">
|
||||
{{ dict.WBZTCLASS.find(item => item.value === scope.row.textStatus).label }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "InfoTable",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePreview(item) {
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.id,
|
||||
pageType: 'INLAND_STAND'
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,214 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准清单发布/更新流程</template>
|
||||
<template slot="proNode">会签</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<InfoTable :data="form.dataList" :dict="dict"></InfoTable>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import InfoTable from "./components/InfoTable";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
InfoTable
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.fileIds = this.form.fileName.map(item => item.id).join(',')
|
||||
this.form.fileNames = this.form.fileName.map(item => item.name).join(',')
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
// this.$message({
|
||||
// dangerouslyUseHTMLString: true,
|
||||
// message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
// type: 'error'
|
||||
// })
|
||||
this.footerLoading = true;
|
||||
const json = JSON.stringify(this.form);
|
||||
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json
|
||||
}
|
||||
const completeTaskRef = await this.$http._post('lawss/activiti/completeTask', query)
|
||||
if (!completeTaskRef.success) {
|
||||
this.footerLoading = false
|
||||
return this.$message.error(completeTaskRef.message)
|
||||
}
|
||||
|
||||
this.$message.success(completeTaskRef.message)
|
||||
this.footerLoading = false
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,195 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准清单发布/更新流程</template>
|
||||
<template slot="proNode">修订</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<InfoTable :data="form.dataList" :dict="dict"></InfoTable>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import InfoTable from "./components/InfoTable";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
InfoTable
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.fileIds = this.form.fileName.map(item => item.id).join(',')
|
||||
this.form.fileNames = this.form.fileName.map(item => item.name).join(',')
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<RadioGroupFormItem
|
||||
label="标准来源"
|
||||
prop="standInData"
|
||||
v-model="form.standInData"
|
||||
:options="standInDataOptions"
|
||||
:disabled="disabled"
|
||||
></RadioGroupFormItem>
|
||||
<InputFormItem
|
||||
label="标准编号"
|
||||
prop="standNumber"
|
||||
v-model="form.standNumber"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<RadioGroupFormItem
|
||||
label="是否需要会签"
|
||||
prop="signFlag"
|
||||
v-model="form.signFlag"
|
||||
:options="signFlagOptions"
|
||||
:disabled="disabled"
|
||||
></RadioGroupFormItem>
|
||||
<SelectFormItem
|
||||
label="标准类别"
|
||||
prop="standSort"
|
||||
v-model="form.standSort"
|
||||
:options="dict.STANDCLASSIFY || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
label="标准年份"
|
||||
prop="standYear"
|
||||
v-model="form.standYear"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="标准性质"
|
||||
prop="standNature"
|
||||
v-model="form.standNature"
|
||||
:options="dict.SARPROPERTY || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<SelectMultipleFormItem
|
||||
v-if="form.standInData === '1'"
|
||||
label="国家/地区"
|
||||
prop="country"
|
||||
v-model="form.country"
|
||||
:options="dict.COUNTRY || []"
|
||||
:disabled="disabled"
|
||||
></SelectMultipleFormItem>
|
||||
<TextareaFormItem
|
||||
label="标准体系"
|
||||
prop="standSystem"
|
||||
v-model="form.standSystem"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="标准中文名称"
|
||||
prop="standName"
|
||||
v-model="form.standName"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="标准英文名称"
|
||||
prop="standEnName"
|
||||
v-model="form.standEnName"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<DatePickerFormItem
|
||||
label="标准发布日期"
|
||||
prop="issueTime"
|
||||
v-model="form.issueTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<SelectFormItem
|
||||
label="文本状态"
|
||||
prop="textStatus"
|
||||
v-model="form.textStatus"
|
||||
:options="dict.WBZTCLASS || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<TextareaFormItem
|
||||
label="归档位置"
|
||||
prop="treeListName"
|
||||
v-model="form.treeListName"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<InputFormItem
|
||||
v-if="form.standInData === '1'"
|
||||
label="标签"
|
||||
prop="gxhbq"
|
||||
v-model="form.gxhbq"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import RadioGroupFormItem from '@/components/hzwlComponents/RadioGroupFormItem'
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
components: {
|
||||
RadioGroupFormItem,
|
||||
InputFormItem,
|
||||
SelectFormItem,
|
||||
TextareaFormItem,
|
||||
DatePickerFormItem,
|
||||
SelectMultipleFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
data () {
|
||||
const standInDataOptions = [
|
||||
{ label: '0', value: '国内标准入库' },
|
||||
{ label: '1', value: '国外标准入库' },
|
||||
]
|
||||
const signFlagOptions = [
|
||||
{ label: '1', value: '是' },
|
||||
{ label: '2', value: '否' },
|
||||
]
|
||||
return {
|
||||
standInDataOptions,
|
||||
signFlagOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,51 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<DatePickerGroupFormItem
|
||||
label="实施日期(标准文本)"
|
||||
prop="ssrq"
|
||||
v-model="form.ssrq"
|
||||
:disabled="disabled"
|
||||
></DatePickerGroupFormItem>
|
||||
<DatePickerGroupFormItem
|
||||
label="在产车实施日期(标准文本)"
|
||||
prop="zccssrq"
|
||||
v-model="form.zccssrq"
|
||||
:disabled="disabled"
|
||||
></DatePickerGroupFormItem>
|
||||
<DatePickerGroupFormItem
|
||||
label="新车型实施日期(标准文本)"
|
||||
prop="xcxssrq"
|
||||
v-model="form.xcxssrq"
|
||||
:disabled="disabled"
|
||||
></DatePickerGroupFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import DatePickerGroupFormItem from "@/components/hzwlComponents/DatePickerGroupFormItem";
|
||||
|
||||
export default {
|
||||
name: "ImplementationDate",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
DatePickerGroupFormItem
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<SelectMultipleFormItem
|
||||
label="适用车型"
|
||||
prop="cllx"
|
||||
v-model="form.cllx"
|
||||
:options="dict.ENERGYTYPES || []"
|
||||
:disabled="disabled"
|
||||
></SelectMultipleFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="能源类型"
|
||||
prop="nylx"
|
||||
v-model="form.nylx"
|
||||
:options="dict.NYLXCLASS || []"
|
||||
:disabled="disabled"
|
||||
></SelectMultipleFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="适用产品线"
|
||||
prop="sycpx"
|
||||
v-model="form.sycpx"
|
||||
:options="dict.SYCPXCLASS || []"
|
||||
:disabled="disabled"
|
||||
></SelectMultipleFormItem>
|
||||
<!--<TextareaFormItem-->
|
||||
<!-- label="关联模块--乘用车VPPS编码"-->
|
||||
<!-- prop="cycvppsbm"-->
|
||||
<!-- v-model="form.cycvppsbm"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!--></TextareaFormItem>-->
|
||||
<!--<TextareaFormItem-->
|
||||
<!-- label="关联模块--卡车VPPS编码"-->
|
||||
<!-- prop="kccvppsbm"-->
|
||||
<!-- v-model="form.kccvppsbm"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!--></TextareaFormItem>-->
|
||||
<!--<TextareaFormItem-->
|
||||
<!-- label="关联模块--乘用车vpps中文名称"-->
|
||||
<!-- prop="cycvppscn"-->
|
||||
<!-- v-model="form.cycvppscn"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!--></TextareaFormItem>-->
|
||||
<!--<TextareaFormItem-->
|
||||
<!-- label="关联模块--卡车vpps中文名称"-->
|
||||
<!-- prop="kccvppscn"-->
|
||||
<!-- v-model="form.kccvppscn"-->
|
||||
<!-- :disabled="disabled"-->
|
||||
<!--></TextareaFormItem>-->
|
||||
<van-field label="关联模块--乘用车VPPS编码" v-model="form.cycvppsbm" readonly placeholder=""/>
|
||||
<van-field label="关联模块--卡车VPPS编码" v-model="form.kccvppsbm" readonly placeholder=""/>
|
||||
<van-field label="关联模块--乘用车vpps中文名称" v-model="form.cycvppscn" readonly placeholder="" />
|
||||
<van-field label="关联模块--卡车vpps中文名称" v-model="form.kccvppscn" placeholder="" readonly />
|
||||
<SelectFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="归口管理部门"
|
||||
prop="gkdw"
|
||||
v-model="form.gkdw"
|
||||
:options="dict.GKGLBM || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<SelectMultipleFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="起草单位"
|
||||
prop="qcdw"
|
||||
v-model="form.qcdw"
|
||||
:options="dict.QCDW || []"
|
||||
:disabled="disabled"
|
||||
></SelectMultipleFormItem>
|
||||
<van-field
|
||||
v-if="form.standInData === '0'"
|
||||
label="我司署名人"
|
||||
v-model="form.wssmr" readonly placeholder=""/>
|
||||
<SelectFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="我司参与深度"
|
||||
prop="cysd"
|
||||
v-model="form.cysd"
|
||||
:options="dict.WSCYSD || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<SelectFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="我司参与制标排名"
|
||||
prop="cyzbpm"
|
||||
v-model="form.cyzbpm"
|
||||
:options="dict.CYZBPM || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
|
||||
export default {
|
||||
name: "Range",
|
||||
components: {
|
||||
SelectFormItem,
|
||||
SelectMultipleFormItem,
|
||||
TextareaFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,69 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<TextareaFormItem
|
||||
label="代替标准号"
|
||||
prop="dtbjh"
|
||||
v-model="form.dtbjh"
|
||||
></TextareaFormItem>
|
||||
<SelectFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="采标程度"
|
||||
prop="cbcd"
|
||||
v-model="form.cbcd"
|
||||
:options="dict.DEGREESTANDARD || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<UploadFormItem
|
||||
label="关联文件"
|
||||
prop="glwjName"
|
||||
:ids.sync="form.glwj"
|
||||
:names.sync="form.glwjName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<TextareaFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="采标编号"
|
||||
prop="cbbh"
|
||||
v-model="form.cbbh"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="引用标准"
|
||||
prop="yybj"
|
||||
v-model="form.yybj"
|
||||
></TextareaFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
|
||||
export default {
|
||||
name: "RelatesInformation",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
TextareaFormItem,
|
||||
SelectFormItem,
|
||||
UploadFormItem
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,130 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="修改单"
|
||||
prop="xgdName"
|
||||
:ids.sync="form.xgd"
|
||||
:names.sync="form.xgdName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="发布稿(原文)"
|
||||
prop="fbgbjbdName"
|
||||
:ids.sync="form.fbgbjbd"
|
||||
:names.sync="form.fbgbjbdName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="发布稿(译文)"
|
||||
prop="fbgywbdName"
|
||||
:ids.sync="form.fbgywbd"
|
||||
:names.sync="form.fbgywbdName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="草案"
|
||||
prop="caName"
|
||||
:ids.sync="form.ca"
|
||||
:names.sync="form.caName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="送审稿"
|
||||
prop="ssgName"
|
||||
:ids.sync="form.ssg"
|
||||
:names.sync="form.ssgName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '1'"
|
||||
label="增补件"
|
||||
prop="zbjbdName"
|
||||
:ids.sync="form.zbjbd"
|
||||
:names.sync="form.zbjbdName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="相关文件"
|
||||
prop="jdwjName"
|
||||
:ids.sync="form.jdwj"
|
||||
:names.sync="form.jdwjName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="报批稿"
|
||||
prop="bpgName"
|
||||
:ids.sync="form.bpg"
|
||||
:names.sync="form.bpgName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '0'"
|
||||
label="征求意见稿"
|
||||
prop="zqyjgName"
|
||||
:ids.sync="form.zqyjg"
|
||||
:names.sync="form.zqyjgName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '1'"
|
||||
label="修订本"
|
||||
prop="xdbName"
|
||||
:ids.sync="form.xdb"
|
||||
:names.sync="form.xdbName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
v-if="form.standInData === '1'"
|
||||
label="勘误件"
|
||||
prop="kwjName"
|
||||
:ids.sync="form.kwj"
|
||||
:names.sync="form.kwjName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
|
||||
export default {
|
||||
name: "TextInfo",
|
||||
components: {
|
||||
UploadFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,183 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准入库流程</template>
|
||||
<template slot="proNode">会签</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">实施日期</template>
|
||||
</ProcessTitle>
|
||||
<ImplementationDate :form="form" :dict="dict" :disabled="disabled"></ImplementationDate>
|
||||
<ProcessTitle>
|
||||
<template slot="title">文本信息</template>
|
||||
</ProcessTitle>
|
||||
<TextInfo :form="form" :dict="dict" :disabled="disabled"></TextInfo>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<RelatesInformation :form="form" :dict="dict" :disabled="disabled"></RelatesInformation>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="审批意见"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
>
|
||||
</ProcessFooter>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import Basic from "./components/Basic";
|
||||
import ImplementationDate from "./components/ImplementationDate";
|
||||
import TextInfo from "./components/TextInfo";
|
||||
import Range from "./components/Range";
|
||||
import RelatesInformation from "./components/RelatesInformation";
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
Basic,
|
||||
ImplementationDate,
|
||||
TextInfo,
|
||||
Range,
|
||||
RelatesInformation,
|
||||
ReceiptDescription
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
disabled: true,
|
||||
dict: {},
|
||||
footerLoading: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
this.getDicTypeListCode()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm))
|
||||
this.form.commentText = ''
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.footerLoading = true;
|
||||
|
||||
this.form.menuIds = this.form.treeListId;
|
||||
this.form.BBFDTBZ = this.form.bfbdtbzh
|
||||
const json = JSON.stringify(this.form);
|
||||
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json
|
||||
}
|
||||
const completeTaskRef = await this.$http._post('lawss/activiti/completeTask', query)
|
||||
if (!completeTaskRef.success) {
|
||||
this.footerLoading = false
|
||||
return this.$message.error(completeTaskRef.message)
|
||||
}
|
||||
|
||||
this.$message.success(completeTaskRef.message)
|
||||
this.footerLoading = false
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,189 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准入库流程</template>
|
||||
<template slot="proNode">修订</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">实施日期</template>
|
||||
</ProcessTitle>
|
||||
<ImplementationDate :form="form" :dict="dict" :disabled="disabled"></ImplementationDate>
|
||||
<ProcessTitle>
|
||||
<template slot="title">文本信息</template>
|
||||
</ProcessTitle>
|
||||
<TextInfo :form="form" :dict="dict" :disabled="disabled"></TextInfo>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<RelatesInformation :form="form" :dict="dict" :disabled="disabled"></RelatesInformation>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="审批意见"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
>
|
||||
</ProcessFooter>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import Basic from "./components/Basic";
|
||||
import ImplementationDate from "./components/ImplementationDate";
|
||||
import TextInfo from "./components/TextInfo";
|
||||
import Range from "./components/Range";
|
||||
import RelatesInformation from "./components/RelatesInformation";
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
Basic,
|
||||
ImplementationDate,
|
||||
TextInfo,
|
||||
Range,
|
||||
RelatesInformation,
|
||||
ReceiptDescription
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
disabled: true,
|
||||
dict: {},
|
||||
footerLoading: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
this.getDicTypeListCode()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm))
|
||||
this.form.commentText = ''
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
// this.footerLoading = true;
|
||||
// this.form.commentText = this.commentText;
|
||||
//
|
||||
// this.form.menuIds = this.form.treeListId;
|
||||
// this.form.BBFDTBZ = this.form.bfbdtbzh
|
||||
// const json = JSON.stringify(this.form);
|
||||
//
|
||||
// const query = {
|
||||
// taskIds: this.$route.query.taskIds,
|
||||
// userId : this.$store.getters.userInfo.userId,
|
||||
// json
|
||||
// }
|
||||
// const completeTaskRef = await this.$http._post('lawss/activiti/completeTask', query)
|
||||
// if (!completeTaskRef.success) {
|
||||
// this.footerLoading = false
|
||||
// return this.$message.error(completeTaskRef.message)
|
||||
// }
|
||||
//
|
||||
// this.$message.success(completeTaskRef.message)
|
||||
// this.footerLoading = false
|
||||
// setTimeout(() => {
|
||||
// this.$router.go(-2)
|
||||
// }, 100)
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,68 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<TextareaFormItem
|
||||
label="标准编号/名称"
|
||||
prop="cid"
|
||||
v-model="form.cid"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<UploadFormItem
|
||||
label="标准文本"
|
||||
prop="fjListName"
|
||||
:ids.sync="form.fjListId"
|
||||
:names.sync="form.fjListName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="相关文件"
|
||||
prop="modelName"
|
||||
:ids.sync="form.modelId"
|
||||
:names.sync="form.modelName"
|
||||
view
|
||||
:disabled="disabled">
|
||||
</UploadFormItem>
|
||||
<DatePickerFormItem
|
||||
label="征求意见结束日期"
|
||||
prop="endTime"
|
||||
v-model="form.endTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<van-field v-if="$route.name === 'phoneBzzqyjStep4'" label="审批人" v-model="form.spName" placeholder="" readonly />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import UploadFormItem from "@/components/hzwlComponents/UploadFormItem";
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
components: {
|
||||
InputFormItem,
|
||||
TextareaFormItem,
|
||||
UploadFormItem,
|
||||
DatePickerFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="chapterNumber"
|
||||
align="center"
|
||||
label="章条编号">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="chapterName"
|
||||
align="center"
|
||||
label="章节名称">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="commentText"
|
||||
align="center"
|
||||
label="修改意见内容(包括理由或依据)">
|
||||
<el-table-column
|
||||
prop="oldText"
|
||||
align="center"
|
||||
label="修改前">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="primary" :disabled="scope.row.chapterNumber.length === 0" @click="itermsConditionsOpen(scope.row.oldText)" class="common-button-primary">查看修改前内容</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="newText"
|
||||
align="center"
|
||||
label="修改后">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="reason"
|
||||
align="center"
|
||||
label="修改理由">
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzzqyjStep5'"
|
||||
prop="sourceType"
|
||||
align="center"
|
||||
label="来源">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzzqyjStep4' || $route.name === 'phoneBzzqyjStep5'"
|
||||
prop="department"
|
||||
align="center"
|
||||
label="提出部门">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzzqyjStep4' || $route.name === 'phoneBzzqyjStep5'"
|
||||
prop="responUserName"
|
||||
align="center"
|
||||
label="提出人">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzzqyjStep5'"
|
||||
prop="state"
|
||||
align="center"
|
||||
label="处理意见">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.state === '1'">上报</span>
|
||||
<span v-else-if="scope.row.state === '2'">处理后上报</span>
|
||||
<span v-else-if="scope.row.state === '3'">不上报</span>
|
||||
<!--<div style="margin: 5px 0;">-->
|
||||
<!-- <el-select-->
|
||||
<!-- :disabled="scope.row.type"-->
|
||||
<!-- v-model="scope.row.state"-->
|
||||
<!-- collapse-tags-->
|
||||
<!-- style="margin-left: 20px;"-->
|
||||
<!-- placeholder="请选择处理意见">-->
|
||||
<!-- <el-option key="1" label="上报" value="1"></el-option>-->
|
||||
<!-- <el-option key="2" label="处理后上报" value="2"></el-option>-->
|
||||
<!-- <el-option key="3" label="不上报" value="3"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!--</div>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneBzzqyjStep5'"
|
||||
prop="cause"
|
||||
align="center"
|
||||
label="原因">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "SolicitationList",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,195 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准征求意见流程</template>
|
||||
<template slot="proNode">意见反馈</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">征求意见列表</template>
|
||||
</ProcessTitle>
|
||||
<SolicitationList></SolicitationList>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./componnets/Basic";
|
||||
import SolicitationList from "./componnets/SolicitationList";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
SolicitationList
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: [],
|
||||
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.modelId = this.form.modelList.map(item => item.id).join(',')
|
||||
this.form.modelName = this.form.modelList.map(item => item.name).join(',')
|
||||
this.form.fjListId = this.form.fjList.map(item => item.id).join(',')
|
||||
this.form.fjListName = this.form.fjList.map(item => item.fileName).join(',')
|
||||
|
||||
this.tableData = this.form.data || this.form.info || []
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,195 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准征求意见流程</template>
|
||||
<template slot="proNode">意见汇总报批</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">征求意见列表</template>
|
||||
</ProcessTitle>
|
||||
<SolicitationList></SolicitationList>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./componnets/Basic";
|
||||
import SolicitationList from "./componnets/SolicitationList";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
SolicitationList
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: [],
|
||||
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.modelId = this.form.modelList.map(item => item.id).join(',')
|
||||
this.form.modelName = this.form.modelList.map(item => item.name).join(',')
|
||||
this.form.fjListId = this.form.fjList.map(item => item.id).join(',')
|
||||
this.form.fjListName = this.form.fjList.map(item => item.fileName).join(',')
|
||||
|
||||
this.tableData = this.form.data || this.form.info || []
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,195 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">标准征求意见流程</template>
|
||||
<template slot="proNode">意见处理</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">征求意见列表</template>
|
||||
</ProcessTitle>
|
||||
<SolicitationList></SolicitationList>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./componnets/Basic";
|
||||
import SolicitationList from "./componnets/SolicitationList";
|
||||
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
export default {
|
||||
name: "step3",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
SolicitationList
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: [],
|
||||
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
this.form.modelId = this.form.modelList.map(item => item.id).join(',')
|
||||
this.form.modelName = this.form.modelList.map(item => item.name).join(',')
|
||||
this.form.fjListId = this.form.fjList.map(item => item.id).join(',')
|
||||
this.form.fjListName = this.form.fjList.map(item => item.fileName).join(',')
|
||||
|
||||
this.tableData = this.form.data || this.form.info || []
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,106 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="企标编号"
|
||||
prop="standCode"
|
||||
v-model="form.standCode"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="中文名称"
|
||||
prop="standName"
|
||||
v-model="form.standName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="英文名称"
|
||||
prop="enName"
|
||||
v-model="form.enName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="企标类别"
|
||||
prop="entCategory"
|
||||
v-model="form.entCategory"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="代替企标编号"
|
||||
prop="replaceNumber"
|
||||
v-model="form.replaceNumber"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="被代替企标编号"
|
||||
prop="replacedNumber"
|
||||
v-model="form.replacedNumber"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="发布日期"
|
||||
prop="releaseDate"
|
||||
v-model="form.releaseDate"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="实施日期"
|
||||
prop="implementDate"
|
||||
v-model="form.implementDate"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
|
||||
<TextareaFormItem
|
||||
label="废止理由"
|
||||
prop="abolishCause"
|
||||
v-model="form.abolishCause"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="下一步状态"
|
||||
prop="nextStatus"
|
||||
v-model="form.nextStatus"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="下一步状态理由"
|
||||
prop="nextStatusDetils"
|
||||
v-model="form.nextStatusDetils"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
SelectFormItem,
|
||||
TextareaFormItem
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,39 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="opinion"
|
||||
align="center"
|
||||
label="会签意见">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="people"
|
||||
align="center"
|
||||
width="120"
|
||||
label="会签人">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "CountersignInfo",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,205 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标废止流程</template>
|
||||
<template slot="proNode">起草人修改标准状态</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">会签信息</template>
|
||||
</ProcessTitle>
|
||||
<CountersignInfo :data="dataList"></CountersignInfo>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
approval
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from './components/Basic'
|
||||
import CountersignInfo from './components/CountersignInfo'
|
||||
|
||||
export default {
|
||||
name: "step4-new",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
CountersignInfo
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
dataList: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData() {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
let dataList = this.form.res ? this.form.res.substring(1, this.form.res.lastIndexOf("]")) : "";
|
||||
dataList = dataList.split(",");
|
||||
this.dataList = [];
|
||||
dataList.forEach(item => {
|
||||
this.dataList.push({
|
||||
opinion: item.split("-")[1],
|
||||
people: item.split("-")[0]
|
||||
});
|
||||
});
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,361 @@
|
||||
<template>
|
||||
<div class="phoneQbfzStep5 phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标废止流程</template>
|
||||
<template slot="proNode">起草人修改标准状态</template>
|
||||
</ProcessHeaderPhone>
|
||||
<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>
|
||||
<el-form
|
||||
ref="qbfsForm"
|
||||
v-if="!foldFormFlag"
|
||||
:model="qbfsForm"
|
||||
class="label-input-form"
|
||||
:rules="formRules"
|
||||
label-width="150px"
|
||||
>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<el-collapse-transition>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<van-field label="企标编号" v-model="qbfsForm.standCode" readonly placeholder="请输入企标编号" />
|
||||
<van-field label="中文名称" v-model="qbfsForm.standName" readonly placeholder="请输入中文名称" />
|
||||
<van-field label="英文名称" v-model="qbfsForm.enName" readonly placeholder="请输入英文名称" />
|
||||
<van-field label="企标类别" v-model="qbfsForm.entCategory" readonly placeholder="请输入企标类别" />
|
||||
<van-field label="代替企标编号" v-model="qbfsForm.replaceNumber" readonly placeholder="请输入代替企标编号" />
|
||||
<van-field label="被代替企标编号" v-model="qbfsForm.replacedNumber" readonly placeholder="请输入被代替企标编号" />
|
||||
<van-field label="发布日期" v-model="qbfsForm.releaseDate" readonly placeholder="请输入发布日期" />
|
||||
<van-field label="实施日期" v-model="qbfsForm.implementDate" readonly placeholder="请输入实施日期" />
|
||||
<van-field label="废止理由" v-model="qbfsForm.abolishCause" readonly placeholder="请输入废止理由" />
|
||||
<van-field label="下一步状态" v-model="qbfsForm.nextStatus" readonly placeholder="请输入下一步状态" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-collapse-transition>
|
||||
|
||||
</el-form>
|
||||
<el-button v-if="foldFormFlag === false" style="width: 100%" icon="el-icon-caret-top" @click="foldForm">隐藏基础信息</el-button>
|
||||
<el-button v-if="foldFormFlag === true" style="width: 100%" icon="el-icon-caret-bottom" @click="foldForm">展开基础信息</el-button>
|
||||
</div>
|
||||
<ProcessTitle style="margin-top: 10px;">
|
||||
<template slot="title">会签信息</template>
|
||||
</ProcessTitle>
|
||||
<div class="tableBox">
|
||||
<el-table
|
||||
:data="dataList"
|
||||
border
|
||||
height="100%"
|
||||
style="width: 100%;"
|
||||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
||||
fontWeight: 'bold', height: '48px'}">
|
||||
<el-table-column
|
||||
type="selection"
|
||||
width="55"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="opinion"
|
||||
align="center"
|
||||
min-width="300"
|
||||
label="会签意见">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="people"
|
||||
align="center"
|
||||
min-width="300"
|
||||
label="会签人">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<el-collapse accordion>
|
||||
<el-collapse-item title="审批意见">
|
||||
<div style="margin: 10px 0;">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
resize="none"
|
||||
placeholder="请输入意见"
|
||||
v-model="commentText">
|
||||
</el-input>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</div>
|
||||
<div class="content" v-show="active === '2'">
|
||||
<Phone-histort-table :prc-num="$route.query.prcNum"></Phone-histort-table>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-transfer
|
||||
show-submit
|
||||
show-back
|
||||
:submitLoading="isSubmit"
|
||||
:isSubmitBack="isSubmit"
|
||||
:saveLoading="isSubmit"
|
||||
:approval="true"
|
||||
@back="beforeBack"
|
||||
@transfer="handleTransfer"
|
||||
@submit="handleSubmit"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<phone-role
|
||||
:role-title="drawerTitle"
|
||||
:result-list="phoneRoleList"
|
||||
:is-show-phone.sync="phoneshowflag"
|
||||
@checkedRole="drawerCheck"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Dialog } from 'vant';
|
||||
import ProcessHeaderPhone from '../../components/ProcessHeaderPhone'
|
||||
import ProcessFooter from '../../components/ProcessFooter'
|
||||
import ProcessTitle from '../../components/ProcessTitle'
|
||||
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew, execTask, saveTaskForPub } from "api/process";
|
||||
import axios from "axios";
|
||||
import ProcessHeader from "process/components/ProcessHeader";
|
||||
import hwh5 from '@/api/hwh5-cloudonline.js'
|
||||
|
||||
export default {
|
||||
name: "phoneQbfzStep5",
|
||||
components: {
|
||||
ProcessTitle,
|
||||
ProcessHeader,
|
||||
ProcessHeaderPhone,
|
||||
ProcessFooter
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
phoneshowflag: false,
|
||||
phoneRoleList: [],
|
||||
phoneDrawerTitle: '',
|
||||
active: "1",
|
||||
isTransfer: false,
|
||||
isSubmit: false,
|
||||
saveLoading: false,
|
||||
drawerModal: false,
|
||||
drawerTitle: "",
|
||||
nodeList: [],
|
||||
fileList: [],
|
||||
commentText: "",
|
||||
dataList: [],
|
||||
detailData: [],
|
||||
loading: false,
|
||||
foldFormFlag: false,
|
||||
qbfsForm: {
|
||||
entNumber: "",
|
||||
cnName: "",
|
||||
enName: "",
|
||||
entCategory: "",
|
||||
replaceNumber: "",
|
||||
replacedNumber: "",
|
||||
releaseDate: "",
|
||||
implementDate: "",
|
||||
reviewDate: "",
|
||||
nextStatus: ""
|
||||
},
|
||||
formRules: {
|
||||
nextStatus: [
|
||||
{ required: true, message: "请选择下一步状态", trigger: "change" }
|
||||
]
|
||||
},
|
||||
associationOptions: [{
|
||||
value: "修订",
|
||||
label: "修订"
|
||||
}, {
|
||||
value: "废止",
|
||||
label: "废止"
|
||||
}, {
|
||||
value: "有效",
|
||||
label: "有效"
|
||||
}]
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.processTable();
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
processTable() {
|
||||
this.$http.get("lawss/activiti/get_list_by_instance", {
|
||||
prcNum: this.$route.query.prcNum,
|
||||
sortWord: this.shunxu ? this.paixu : "",
|
||||
shunxu: this.shunxu
|
||||
}, {
|
||||
loading: "loading",
|
||||
_this: this
|
||||
}, res => {
|
||||
this.detailData = res;
|
||||
}, e => {
|
||||
});
|
||||
},
|
||||
getData() {
|
||||
return new Promise((resolve, reject) => {
|
||||
inboundLiaisonDetail({
|
||||
taskIds: this.$route.query.taskIds,
|
||||
pId: this.$route.query.prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const processForm = JSON.parse(res.mesg);
|
||||
this.getFormFieldList(processForm);
|
||||
}
|
||||
}).catch(e => {
|
||||
});
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @description: 动态表单读取
|
||||
*/
|
||||
getFormFieldList(item) {
|
||||
console.log(item);
|
||||
this.$nextTick(() => {
|
||||
this.qbfsForm = JSON.parse(JSON.stringify(item));
|
||||
let res = item.res ? item.res.substring(1, item.res.lastIndexOf("]")) : "";
|
||||
res = res.split(",");
|
||||
this.dataList = [];
|
||||
res.forEach(item => {
|
||||
this.dataList.push({
|
||||
opinion: item.split("-")[1],
|
||||
people: item.split("-")[0]
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
//流程驳回
|
||||
beforeBack(){
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
//流程提交
|
||||
handleSubmit() {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
foldForm() {
|
||||
this.foldFormFlag = !this.foldFormFlag;
|
||||
},
|
||||
//转办按钮
|
||||
handleTransfer(){
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
//确认转办
|
||||
drawerCheck (data) {
|
||||
this.roleTransfer = data
|
||||
this.phoneRoleList = this.roleTransfer
|
||||
this.turnLoading = true
|
||||
this.isSubmit = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
assignee: data[0].id, // 被委托人
|
||||
userId: this.$store.getters.userInfo.account, // 委托人
|
||||
pId: this.$route.query.prcId // 流程实例
|
||||
}).then(res =>{
|
||||
if (res.success) {
|
||||
this.turnLoading = false
|
||||
this.$message.success('调整成功')
|
||||
// hwh5.close()
|
||||
this.$router.go(-2)
|
||||
// this.$router.push("/processCenter")
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.isSubmit = false
|
||||
})
|
||||
this.modalshowflag = false
|
||||
},
|
||||
// 请求转换流程图
|
||||
processNum(row) {
|
||||
axios.request({
|
||||
url: "/api/lawss/activiti/getImg?_t=" + new Date().getTime(),
|
||||
responseType: "blob",
|
||||
method: "get",
|
||||
params: {
|
||||
prcNum: this.$route.query.prcNum
|
||||
}
|
||||
}).then(res => {
|
||||
// let blob = new Blob([res.data], {type: 'image/jpg'})
|
||||
// let url = window.URL.createObjectURL(res.data)
|
||||
this.processStep = window.URL.createObjectURL(res.data);
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @Description: 点击下载
|
||||
*/
|
||||
downloadFile(attId) {
|
||||
if (attId != null && attId !== "") {
|
||||
window.location.href = "/api/att/attFile/downloadFileForSarNew?fileId=" + attId;
|
||||
} else {
|
||||
this.$message.error("请选择要下载的文件");
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
listNoDataText() {
|
||||
return this.processType === 1 ? "暂无待办流程" : "暂无已办流程";
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@import '~@/assets/styles/phone';
|
||||
.phoneQbfzStep5 {
|
||||
.tableBox{
|
||||
height: 150px;
|
||||
flex-shrink:1;
|
||||
}
|
||||
/deep/.van-dialog__content {
|
||||
min-height: 300px;
|
||||
padding: 10px;
|
||||
}
|
||||
.prc-content-border {
|
||||
//overflow: auto;
|
||||
}
|
||||
/deep/.prc-content-border .el-form-item__content {
|
||||
width: 270px;
|
||||
}
|
||||
.content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-top: 52px;
|
||||
//height: calc(~'100% - 155px');
|
||||
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>
|
||||
@@ -0,0 +1,114 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<SelectFormItem
|
||||
label="企标类别"
|
||||
title="企标类别"
|
||||
v-model="form.standSort"
|
||||
:options="dict.BUSSSTANDCLASS || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<SelectFormItem
|
||||
label="制修订类型"
|
||||
title="制修订类型"
|
||||
v-model="form.standStatus"
|
||||
:options="reviseStatusOptions"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
v-show="form.standStatus === '3'"
|
||||
label="企业标准号"
|
||||
prop="standCode"
|
||||
v-model="form.standCode"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="中文名称"
|
||||
prop="standName"
|
||||
v-model="form.standName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="英文名称"
|
||||
prop="standEnName"
|
||||
v-model="form.standEnName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
v-show="form.standStatus === '3'"
|
||||
label="标准年份"
|
||||
prop="standYear"
|
||||
v-model="form.standYear"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="发布日期"
|
||||
prop="issueTime"
|
||||
v-model="form.issueTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="截止日期"
|
||||
prop="expirationDate"
|
||||
v-model="form.expirationDate"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="企标实施日期"
|
||||
prop="putTime"
|
||||
v-model="form.putTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
SelectFormItem
|
||||
},
|
||||
data () {
|
||||
const reviseStatusOptions = [
|
||||
{
|
||||
label: '制订',
|
||||
value: '1'
|
||||
},
|
||||
{
|
||||
label: '修订',
|
||||
value: '2'
|
||||
},
|
||||
{
|
||||
label: '修改',
|
||||
value: '3'
|
||||
}
|
||||
]
|
||||
return {
|
||||
reviseStatusOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,49 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="footFileName"
|
||||
label="编写文件名称"
|
||||
align="center"
|
||||
min-width="30%">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.footFileName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="起草人"
|
||||
min-width="15%"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "FileSummary",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePreview (file) {
|
||||
const attId = file.footFile
|
||||
this.$preview(attId)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,63 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<TextareaFormItem
|
||||
label="代替企标编号"
|
||||
prop="DTQBBHBUSS"
|
||||
v-model="form.DTQBBHBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="被代替企标编号"
|
||||
prop="BDTQBBHBUSS"
|
||||
v-model="form.BDTQBBHBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="上传时间"
|
||||
prop="XCSJBUSS"
|
||||
v-model="form.XCSJBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<UploadFormItem
|
||||
label="关联文件"
|
||||
prop="GLWJBUSSName"
|
||||
:ids.sync="form.GLWJBUSS"
|
||||
:names.sync="form.GLWJBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
export default {
|
||||
name: "Info",
|
||||
components: {
|
||||
TextareaFormItem,
|
||||
SelectMultipleFormItem,
|
||||
UploadFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="发布稿"
|
||||
prop="FBGBUSSName"
|
||||
:ids.sync="form.FBGBUSS"
|
||||
:names.sync="form.FBGBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="历史版本"
|
||||
prop="LSBBBUSSName"
|
||||
:ids.sync="form.LSBBBUSS"
|
||||
:names.sync="form.LSBBBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="修改单"
|
||||
prop="XGDName"
|
||||
:ids.sync="form.XGD"
|
||||
:names.sync="form.XGDName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="其他文件"
|
||||
prop="QTWJBUSSName"
|
||||
:ids.sync="form.QTWJBUSS"
|
||||
:names.sync="form.QTWJBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
export default {
|
||||
name: "ProcessFile",
|
||||
components: {
|
||||
UploadFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,82 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="起草部门"
|
||||
prop="QCDW"
|
||||
v-model="form.QCDW"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="起草人"
|
||||
prop="QCRBUSS"
|
||||
v-model="form.QCRBUSS"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="文件上传人员"
|
||||
prop="WJSCRYBUSSName"
|
||||
v-model="form.WJSCRYBUSSName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="适用车型"
|
||||
prop="SYCXCLASS"
|
||||
v-model="form.SYCXCLASS"
|
||||
:disabled="disabled"
|
||||
:options="dict.ENERGYTYPES || []"
|
||||
></SelectMultipleFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="能源类型"
|
||||
prop="NYLXCLASS"
|
||||
v-model="form.NYLXCLASS"
|
||||
:disabled="disabled"
|
||||
:options="dict.NYLXCLASS || []"
|
||||
></SelectMultipleFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="适用产品线"
|
||||
prop="SYCPXCLASS"
|
||||
v-model="form.SYCPXCLASS"
|
||||
:disabled="disabled"
|
||||
:options="dict.SYCPXCLASS || []"
|
||||
></SelectMultipleFormItem>
|
||||
<TextareaFormItem
|
||||
label="标准体系"
|
||||
prop="TXLBBUSS"
|
||||
v-model="form.TXLBBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
|
||||
export default {
|
||||
name: "Range",
|
||||
components: {
|
||||
InputFormItem,
|
||||
SelectMultipleFormItem,
|
||||
TextareaFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
:height="$route.name === 'phoneBussLibrary5' ? '100%' : 'auto'"
|
||||
style="width: 100%;"
|
||||
height="100%"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="modelNum"
|
||||
label="条款号"
|
||||
width="100"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="修改前"
|
||||
prop="modelUpdBefore"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="修改后"
|
||||
prop="modelUpdAfter"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="修改理由"
|
||||
prop="modelContent"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zrDeptIdName"
|
||||
label="提出部门"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zrUserIdName"
|
||||
label="责任人"
|
||||
width="150"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "TermInfo",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data () {
|
||||
const opinionsAdoptedOptions = [
|
||||
{value: '1',label: '采纳'},
|
||||
{value: '2',label: '部分采纳'},
|
||||
{value: '3',label: '不采纳'},
|
||||
]
|
||||
return {
|
||||
opinionsAdoptedOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,211 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-产品标准</template>
|
||||
<template slot="proNode">企标编写汇总</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<ProcessTitle>
|
||||
<template slot="title">文件汇总</template>
|
||||
</ProcessTitle>
|
||||
<FileSummary :data="form.fileModelList"></FileSummary>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from './components/Basic'
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
FileSummary
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData() {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,218 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-产品标准</template>
|
||||
<template slot="proNode">征求意见</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '4' ? 'active' : ''" @click="handleTabs('4')">会签意见</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<div style="height: calc(100% - 30px)">
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from './components/Basic'
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
TermInfo
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData() {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,110 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<SelectFormItem
|
||||
label="企标类别"
|
||||
title="企标类别"
|
||||
v-model="form.standSort"
|
||||
:options="dict.BUSSSTANDCLASS || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
label="中文名称"
|
||||
prop="standName"
|
||||
v-model="form.standName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectFormItem
|
||||
label="制修订类型"
|
||||
title="制修订类型"
|
||||
v-model="form.reviseStatus"
|
||||
:options="reviseStatusOptions"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
label="英文名称"
|
||||
prop="standEnName"
|
||||
v-model="form.standEnName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
v-if="$route.name === 'phoneBussLibrary13'"
|
||||
label="企业标准号"
|
||||
prop="standCode"
|
||||
v-model="form.standCode"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
v-if="$route.name === 'phoneBussLibrary13'"
|
||||
v-show="form.reviseStatus === '1' || form.reviseStatus === '2'"
|
||||
label="企标顺序号"
|
||||
prop="standNum"
|
||||
v-model="form.standNum"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
v-if="$route.name === 'phoneBussLibrary13'"
|
||||
label="发布日期"
|
||||
prop="issueTime"
|
||||
v-model="form.issueTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="企标实施日期"
|
||||
prop="putTime"
|
||||
v-model="form.putTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
SelectFormItem
|
||||
},
|
||||
data () {
|
||||
const reviseStatusOptions = [
|
||||
{
|
||||
label: '制订',
|
||||
value: '1'
|
||||
},
|
||||
{
|
||||
label: '修订',
|
||||
value: '2'
|
||||
},
|
||||
{
|
||||
label: '修改',
|
||||
value: '3'
|
||||
}
|
||||
]
|
||||
return {
|
||||
reviseStatusOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,49 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="footFileName"
|
||||
label="编写文件名称"
|
||||
align="center"
|
||||
min-width="30%">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.footFileName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="userName"
|
||||
label="起草人"
|
||||
min-width="15%"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "FileSummary",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handlePreview (file) {
|
||||
const attId = file.footFile
|
||||
this.$preview(attId)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,76 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<TextareaFormItem
|
||||
label="代替企标编号"
|
||||
prop="DTQBBHBUSS"
|
||||
v-model="form.DTQBBHBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="采用标准"
|
||||
prop="CYBZ"
|
||||
v-model="form.CYBZ"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="引用标准"
|
||||
prop="YYBZ"
|
||||
v-model="form.YYBZ"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<TextareaFormItem
|
||||
label="上传时间"
|
||||
prop="XCSJBUSS"
|
||||
v-model="form.XCSJBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="采标程度"
|
||||
prop="CYCD"
|
||||
v-model="form.CYCD"
|
||||
:disabled="disabled"
|
||||
:options="dict.DEGREESTANDARD || []"
|
||||
></SelectMultipleFormItem>
|
||||
<UploadFormItem
|
||||
label="关联文件"
|
||||
prop="GLWJBUSSName"
|
||||
:ids.sync="form.GLWJBUSS"
|
||||
:names.sync="form.GLWJBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
export default {
|
||||
name: "Info",
|
||||
components: {
|
||||
TextareaFormItem,
|
||||
SelectMultipleFormItem,
|
||||
UploadFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="发布稿"
|
||||
prop="FBGBUSSName"
|
||||
:ids.sync="form.FBGBUSS"
|
||||
:names.sync="form.FBGBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="历史版本"
|
||||
prop="LSBBBUSSName"
|
||||
:ids.sync="form.LSBBBUSS"
|
||||
:names.sync="form.LSBBBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="编制说明"
|
||||
prop="BZSMBUSSName"
|
||||
:ids.sync="form.BZSMBUSS"
|
||||
:names.sync="form.BZSMBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<UploadFormItem
|
||||
label="其他文件"
|
||||
prop="QTWJBUSSName"
|
||||
:ids.sync="form.QTWJBUSS"
|
||||
:names.sync="form.QTWJBUSSName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
export default {
|
||||
name: "ProcessFile",
|
||||
components: {
|
||||
UploadFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,86 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="起草部门"
|
||||
prop="QCDW"
|
||||
v-model="form.QCDW"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="起草人"
|
||||
prop="QCRBUSS"
|
||||
v-model="form.QCRBUSS"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="文件上传人员"
|
||||
prop="WJSCRYBUSSName"
|
||||
v-model="form.WJSCRYBUSSName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="适用车型"
|
||||
prop="SYCXCLASS"
|
||||
v-model="form.SYCXCLASS"
|
||||
:disabled="disabled"
|
||||
:options="dict.ENERGYTYPES || []"
|
||||
></SelectMultipleFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="能源类型"
|
||||
prop="NYLXCLASS"
|
||||
v-model="form.NYLXCLASS"
|
||||
:disabled="disabled"
|
||||
:options="dict.NYLXCLASS || []"
|
||||
></SelectMultipleFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="适用产品线"
|
||||
prop="SYCPXCLASS"
|
||||
v-model="form.SYCPXCLASS"
|
||||
:disabled="disabled"
|
||||
:options="dict.SYCPXCLASS || []"
|
||||
></SelectMultipleFormItem>
|
||||
<van-field label="关联模块--乘用车VPPS编码" v-model="form.CYCVPPSBMBUSS" readonly placeholder=""/>
|
||||
<van-field label="关联模块--卡车VPPS编码" v-model="form.KCVPPSBMBUSS" readonly placeholder=""/>
|
||||
<van-field label="关联模块--乘用车vpps中文名称" v-model="form.CYCVPPSCNBUSS" readonly placeholder="" />
|
||||
<van-field label="关联模块--卡车vpps中文名称" v-model="form.KCVPPSCNBUSS" placeholder="" readonly />
|
||||
<TextareaFormItem
|
||||
label="标准体系"
|
||||
prop="TXLBBUSS"
|
||||
v-model="form.TXLBBUSS"
|
||||
:disabled="disabled"
|
||||
></TextareaFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
import TextareaFormItem from '@/components/hzwlComponents/TextareaFormItem'
|
||||
|
||||
export default {
|
||||
name: "Range",
|
||||
components: {
|
||||
InputFormItem,
|
||||
SelectMultipleFormItem,
|
||||
TextareaFormItem
|
||||
},
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,138 @@
|
||||
<template>
|
||||
<el-timeline style="padding-top: 20px">
|
||||
<el-form
|
||||
ref="userForm"
|
||||
:model="roleForm"
|
||||
class="label-input-form">
|
||||
<TimeLineFormItem
|
||||
prop="prcCreateUserName"
|
||||
timestamp="起草"
|
||||
title="标准起草人"
|
||||
:id.sync="roleForm.prcCreateUser"
|
||||
:name.sync="roleForm.prcCreateUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="qcUserName"
|
||||
timestamp="企标编写"
|
||||
title="其他起草人"
|
||||
:id.sync="roleForm.qcUserId"
|
||||
:name.sync="roleForm.qcUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="hzUserName"
|
||||
timestamp="企标编写汇总"
|
||||
title="标准起草人"
|
||||
:id.sync="roleForm.hzUserId"
|
||||
:name.sync="roleForm.hzUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="bzhUserName"
|
||||
timestamp="标准化初审"
|
||||
title="总院各中心兼职标准化员/各事业部标准化员"
|
||||
:id.sync="roleForm.bzhUserId"
|
||||
:name.sync="roleForm.bzhUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="hqUserName"
|
||||
timestamp="征求意见(张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师)"
|
||||
title="张建芳、蒋敏、吴娟、李中立、王晶9、耿红静、张蕾61、符青萍、杨卫利、技术委员会相关成员、总院相关中心总工及四五级工程师"
|
||||
:id.sync="roleForm.hqUserId"
|
||||
:name.sync="roleForm.hqUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="xdUserName"
|
||||
timestamp="技术委员会评审、评审意见修改"
|
||||
title="标准起草人"
|
||||
:id.sync="roleForm.xdUserId"
|
||||
:name.sync="roleForm.xdUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="fggcsUserName"
|
||||
timestamp="标准化复审"
|
||||
title="标准法规工程师"
|
||||
:id.sync="roleForm.fggcsUserId"
|
||||
:name.sync="roleForm.fggcsUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="jsfzrUserName"
|
||||
timestamp="审核"
|
||||
title="起草单位高级经理"
|
||||
:id.sync="roleForm.jsfzrUserId"
|
||||
:name.sync="roleForm.jsfzrUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="bzUserName"
|
||||
timestamp="审核"
|
||||
title="标准法规部高级经理"
|
||||
:id.sync="roleForm.bzUserId"
|
||||
:name.sync="roleForm.bzUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="fzrUserName"
|
||||
timestamp="审定"
|
||||
title="起草单位中心主任"
|
||||
:id.sync="roleForm.fzrUserId"
|
||||
:name.sync="roleForm.fzrUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="zhrUserName"
|
||||
timestamp="批准"
|
||||
title="总院技术委员会覆盖领域企业标准:专委会主任;总院技术委员会未覆盖领域企业标准:总院院长或总院主管副院长"
|
||||
:id.sync="roleForm.zhrUserId"
|
||||
:name.sync="roleForm.zhrUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="pxUserName"
|
||||
timestamp="培训"
|
||||
title="标准起草人"
|
||||
:id.sync="roleForm.pxUserId"
|
||||
:name.sync="roleForm.pxUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="fbUserName"
|
||||
timestamp="发布"
|
||||
title="标准法规工程师"
|
||||
:id.sync="roleForm.fbUserId"
|
||||
:name.sync="roleForm.fbUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
</el-form>
|
||||
</el-timeline>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
|
||||
|
||||
export default {
|
||||
name: "RoleInfo",
|
||||
components: {
|
||||
TimeLineFormItem
|
||||
},
|
||||
props: {
|
||||
roleForm: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,192 @@
|
||||
<template>
|
||||
<div class="root">
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="form.evaluationData"
|
||||
:summary-method="getSummaries"
|
||||
show-summary
|
||||
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},form.evaluationData))"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column label="企业标准编写质量评价表" align="center" label-class-name="column1">
|
||||
<el-table-column label="标准类别">
|
||||
<el-table-column
|
||||
prop="oneIndexTitle"
|
||||
align="center"
|
||||
label="一级指标"
|
||||
width = '100'
|
||||
></el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="standSort">
|
||||
<el-table-column
|
||||
prop="twoIndexTitle"
|
||||
align="center"
|
||||
label="二级指标"
|
||||
width = '100'
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="threeIndexTitle"
|
||||
label="三级指标"
|
||||
width="370"
|
||||
>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="标准名称">
|
||||
<el-table-column
|
||||
prop="weight"
|
||||
align="center"
|
||||
label="指标权重 %"
|
||||
width = '120'
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.valueType === 'number' ? scope.row.weight * 100 : '加分项('+scope.row.weight+'分)'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column :label="standName">
|
||||
<el-table-column
|
||||
prop="score"
|
||||
align="center"
|
||||
label="指标分值(10分制)优≥8分;合格6~8分;不合格<6分"
|
||||
width = '220'
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="scoreMin"
|
||||
align="center"
|
||||
label="分值小计"
|
||||
width = '80'
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{setScoreMin(scope.row)}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="reason"
|
||||
align="center"
|
||||
label="简述扣分理由(不合格<6分,必填)"
|
||||
width="400"
|
||||
>
|
||||
</el-table-column>
|
||||
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Score",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
standSort: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
standName: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
setScoreMin(row){
|
||||
return row.scoreMin = ((row.score === undefined || row.score === '') ? '' : row.valueType === 'add' ? row.score : (row.score / 10).toFixed(1))
|
||||
},
|
||||
getSummaries(param) {
|
||||
const { columns, data } = param;
|
||||
const sums = [];
|
||||
columns.forEach((column, index) => {
|
||||
if (index === 3) {
|
||||
sums[index] = '合计:';
|
||||
return;
|
||||
}else if(index === 6){
|
||||
sums[index] = '';
|
||||
return;
|
||||
}
|
||||
const values = data.map(item => Number(item[column.property]));
|
||||
if (!values.every(value => isNaN(value))) {
|
||||
sums[index] = values.reduce((prev, curr) => {
|
||||
const value = Number(curr);
|
||||
if (!isNaN(value)) {
|
||||
return prev + curr;
|
||||
} else {
|
||||
return prev;
|
||||
}
|
||||
}, 0);
|
||||
sums[index] += ' ';
|
||||
} else {
|
||||
sums[index] = '';
|
||||
}
|
||||
if(sums[index] !== '' && sums[index].indexOf(".") !== -1){
|
||||
sums[index] = parseFloat(sums[index]).toFixed(1);
|
||||
}
|
||||
});
|
||||
if(this.form.evaluationData && this.form.evaluationData.length > 0){
|
||||
this.form.evaluationData[0].sum = sums[4]
|
||||
}
|
||||
return sums;
|
||||
},
|
||||
objectSpanMethod({ row, column, rowIndex, columnIndex },value) {
|
||||
if (columnIndex === 0) {
|
||||
if (rowIndex === 0) {
|
||||
return {
|
||||
rowspan: value.length,
|
||||
colspan: 1
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
};
|
||||
}
|
||||
}else if(columnIndex === 1 ) {
|
||||
const _row = (this.filterData2(this.form.evaluationData).one)[rowIndex]
|
||||
const _col = _row > 0 ? 1 : 0
|
||||
return {
|
||||
rowspan: _row,
|
||||
colspan: _col
|
||||
}
|
||||
}
|
||||
},
|
||||
filterData2(){
|
||||
let spanOneArr = []
|
||||
let concatOne = 0
|
||||
this.form.evaluationData.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
|
||||
if(index === 0){
|
||||
spanOneArr.push(1)
|
||||
}else{
|
||||
//name 修改
|
||||
if(item.twoIndexTitle === this.form.evaluationData[index - 1].twoIndexTitle){ //第一列需合并相同内容的字段
|
||||
spanOneArr[concatOne] += 1
|
||||
spanOneArr.push(0)
|
||||
}else{
|
||||
spanOneArr.push(1)
|
||||
concatOne = index
|
||||
}
|
||||
}
|
||||
})
|
||||
return {
|
||||
one: spanOneArr,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.root {
|
||||
height: calc(100vh - 167px);
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
:height="$route.name === 'phoneBussLibrary5' ? '100%' : 'auto'"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
prop="modelNum"
|
||||
label="条款号"
|
||||
width="100"
|
||||
align="center"
|
||||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="修改前"
|
||||
prop="modelUpdBefore"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="修改后"
|
||||
prop="modelUpdAfter"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="修改理由"
|
||||
prop="modelContent"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zrDeptIdName"
|
||||
label="提出部门"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zrUserIdName"
|
||||
label="责任人"
|
||||
width="150"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name !== 'phoneBussLibrary5'"
|
||||
label="意见是否采纳"
|
||||
prop="opinionsAdopted"
|
||||
width="120"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ scope.row.opinionsAdopted ? opinionsAdoptedOptions.find(item => item.value === scope.row.opinionsAdopted).label : '' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name !== 'phoneBussLibrary5'"
|
||||
prop="opinionsAdoptedCont"
|
||||
label="采纳理由"
|
||||
align="center"
|
||||
width="150">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "TermInfo",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data () {
|
||||
const opinionsAdoptedOptions = [
|
||||
{value: '1',label: '采纳'},
|
||||
{value: '2',label: '部分采纳'},
|
||||
{value: '3',label: '不采纳'},
|
||||
]
|
||||
return {
|
||||
opinionsAdoptedOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,263 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">起草</template>
|
||||
</ProcessHeaderPhone>
|
||||
<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">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import { selectByIdAtt } from "@/api/flow/index.js"
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
|
||||
export default {
|
||||
name: "step1",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.form.standSort = this.form.bussSort
|
||||
this.form.planId = this.form.nowEsId
|
||||
this.form.standName = this.form.renameEs || this.form.esName
|
||||
// 修订: 发布稿放到历史版本
|
||||
if(this.form.reviseStatus === '2'){
|
||||
selectByIdAtt(this.form.rqbJson).then(res =>{
|
||||
if (res && res.data && res.data[0].fbgbuss !== '') {
|
||||
const names = res.data.reduce((init,item,index,arr)=>{
|
||||
if(index === 0){
|
||||
init = item.fbgbussNmae
|
||||
}else{
|
||||
init = init + ',' + item.fbgbussNmae
|
||||
}
|
||||
return init
|
||||
},'')
|
||||
const ids = res.data.reduce((init,item,index,arr)=>{
|
||||
if(index === 0){
|
||||
init = item.fbgbuss
|
||||
}else{
|
||||
init = init + ',' + item.fbgbuss
|
||||
}
|
||||
return init
|
||||
},'')
|
||||
this.reloadForm = false
|
||||
|
||||
if (!this.form.LSBBBUSSName) {
|
||||
this.form.LSBBBUSSName = names
|
||||
this.form.LSBBBUSS = ids
|
||||
} else if (this.form.LSBBBUSSName.indexOf(names) === -1) {
|
||||
this.form.LSBBBUSSName = names + ',' + this.form.LSBBBUSSName
|
||||
this.form.LSBBBUSS = ids + ',' + this.form.LSBBBUSS
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
this.form.QCDW = this.form.QCDW || this.form.unitName
|
||||
this.form.QCDWID = this.form.QCDWID || this.form.unit
|
||||
this.form.QCRBUSSID = this.form.QCRBUSSID || this.form.drafter
|
||||
this.form.QCRBUSS = this.form.QCRBUSS || this.form.drafterName
|
||||
this.form.SYCXCLASS = this.form.SYCXCLASS && this.form.SYCXCLASS.length > 0 ? this.form.SYCXCLASS : this.form.area
|
||||
|
||||
this.form.DTQBBHBUSS = this.form.DTQBBHBUSS || this.form.rqbName
|
||||
this.form.CYBZ = this.form.CYBZ || this.form.esStandRelations
|
||||
this.form.YYBZ = this.form.YYBZ || this.form.esMatingRelations
|
||||
|
||||
this.roleForm = processForm.roleForm
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,349 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">主起草人培训</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<!--<ProcessTitle>-->
|
||||
<!-- <template slot="title">文件汇总</template>-->
|
||||
<!--</ProcessTitle>-->
|
||||
<!--<FileSummary :data="form.fileModelList"></FileSummary>-->
|
||||
<ProcessTitle>
|
||||
<template slot="title">意见信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.infoList"></TermInfo>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="汇总评审意见文件"
|
||||
prop="summaryFileName"
|
||||
:ids.sync="form.summaryFile"
|
||||
:names.sync="form.summaryFileName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">培训文件</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="培训文件"
|
||||
prop="madelSubName"
|
||||
:ids.sync="form.madelSub"
|
||||
:names.sync="form.madelSubName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="active === '5'">
|
||||
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit2
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit2="handle2"
|
||||
@transfer="handleTransfer"
|
||||
@over2="handle1"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import {getEvaluationIndex} from "api/businessApi";
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
import Score from "./components/Score";
|
||||
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary,
|
||||
TermInfo,
|
||||
Score,
|
||||
UploadFormItem
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
rules: {},
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
// if (!processForm.form) {
|
||||
// this.getEvaluation()
|
||||
// }
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handle2 () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
|
||||
// this.form.approvalOpinion = 0
|
||||
// this.$refs['form'].validate((valid) => {
|
||||
// if (valid) {
|
||||
// this.handleSubmit()
|
||||
// }
|
||||
// })
|
||||
},
|
||||
handle1 () {
|
||||
this.form.approvalOpinion = 1
|
||||
this.handleSubmit()
|
||||
},
|
||||
|
||||
handleSubmit() {
|
||||
this.addRule()
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.footerLoading = true
|
||||
const json = JSON.stringify(this.form);
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$route.query.userId,
|
||||
json: json
|
||||
}
|
||||
this.$http._post('lawss/activiti/completeTask', query).then(res => {
|
||||
if (res.success) {
|
||||
if(this.form.approvalOpinion === 1){
|
||||
this.$message.warning("驳回成功")
|
||||
}else{
|
||||
this.$message.success('操作成功')
|
||||
}
|
||||
this.footerLoading = false
|
||||
|
||||
this.$router.go(-2)
|
||||
} else {
|
||||
this.footerLoading = false
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||
}
|
||||
})
|
||||
},
|
||||
addRule() {
|
||||
if (this.form.approvalOpinion === 0) {
|
||||
this.rules.commentText = [
|
||||
{ required: false }
|
||||
]
|
||||
this.$refs.form.clearValidate('commentText')
|
||||
} else {
|
||||
this.rules.commentText = [
|
||||
{ required: true, message: '审批意见不能为空' }
|
||||
]
|
||||
}
|
||||
this.rules = { ...this.rules }
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
},
|
||||
getEvaluation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getEvaluationIndex({
|
||||
indexType: 'quality'
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const evalList = []
|
||||
res.data.forEach(item =>{
|
||||
item.score = ''
|
||||
item.scoreMin = ''
|
||||
item.reason = ''
|
||||
item.userId = this.userId
|
||||
item.processNode = this.taskInfo
|
||||
evalList.push(item)
|
||||
})
|
||||
this.form.evaluationData = evalList
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,458 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">发布</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<!--<ProcessTitle>-->
|
||||
<!-- <template slot="title">文件汇总</template>-->
|
||||
<!--</ProcessTitle>-->
|
||||
<!--<FileSummary :data="form.fileModelList"></FileSummary>-->
|
||||
<ProcessTitle>
|
||||
<template slot="title">意见信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.infoList"></TermInfo>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="汇总评审意见文件"
|
||||
prop="summaryFileName"
|
||||
:ids.sync="form.summaryFile"
|
||||
:names.sync="form.summaryFileName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">培训文件</template>
|
||||
</ProcessTitle>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="培训文件"
|
||||
prop="madelSubName"
|
||||
:ids.sync="form.madelSub"
|
||||
:names.sync="form.madelSubName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="active === '5'">
|
||||
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit2
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit2="handle2"
|
||||
@transfer="handleTransfer"
|
||||
@over2="handle1"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import {getEvaluationIndex} from "api/businessApi";
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
import Score from "./components/Score";
|
||||
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary,
|
||||
TermInfo,
|
||||
Score,
|
||||
UploadFormItem
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
rules: {},
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
if (!processForm.form) {
|
||||
// this.getEvaluation()
|
||||
this.getStandInfoByReviseStatus()
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getStandInfoByReviseStatus() {
|
||||
let date = new Date();
|
||||
let year = date.getFullYear();
|
||||
if(this.form.reviseStatus === '2'){
|
||||
let index1 = this.form.DTQBBHBUSS.split(',')[0].lastIndexOf('-') // 7
|
||||
this.standYear = this.form.DTQBBHBUSS.split(',')[0].slice(index1 + 1) // 2023 x
|
||||
if(this.standYear.indexOf(' ')>0){
|
||||
const _index = this.standYear.indexOf(' ')
|
||||
this.standYear = this.standYear.slice(0,_index)
|
||||
}else if(this.standYear.indexOf(' X')>0){
|
||||
const _index = this.standYear.indexOf(' X') // 4
|
||||
this.standYear = this.standYear.slice(0,_index) // 2023
|
||||
}
|
||||
|
||||
this.standSort = this.form.standSort
|
||||
this.form.standYear = year
|
||||
if((this.standYear+'').slice(0,4) != year){
|
||||
this.form.standYear = year
|
||||
}else{
|
||||
if((this.standYear+'').slice(0,4) == (this.form.standYear + '').slice(0,4)){
|
||||
this.form.standYear = this.standYear + ' X'
|
||||
}else{
|
||||
this.form.standYear = this.standYear
|
||||
}
|
||||
}
|
||||
|
||||
if(this.form.standYear == this.standYear){
|
||||
this.form.standYear = this.form.standYear + ' X'
|
||||
}
|
||||
|
||||
if (this.form.standNum.includes(',')) {
|
||||
// 多个代替企标编号 调接口获取企标顺序号
|
||||
this.$http.get('lawss/sarBussionessStand/getStandInfoByReviseStatus',{reviseStatus:'buss1_'+this.form.reviseStatus,standSort:this.form.standSort,taskId: this.taskIds}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.form.standNum = res.data + ''
|
||||
this.form.standNum = this.form.standNum.replace(/^0+/,"")
|
||||
this.form.standNum = this.form.standNum.padStart(3,'0')
|
||||
this.standNum = this.form.standNum // 保存初始顺序号
|
||||
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
|
||||
this.standCode = this.form.standCode
|
||||
this.formKey++
|
||||
}, e => {
|
||||
})
|
||||
} else {
|
||||
this.form.standNum = this.form.standNum.replace(/^0+/,"")
|
||||
this.form.standNum = this.form.standNum.padStart(3,'0')
|
||||
|
||||
this.standNum = this.form.standNum // 保存初始顺序号
|
||||
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
|
||||
|
||||
this.standCode = this.form.standCode
|
||||
this.formKey++
|
||||
}
|
||||
|
||||
} else if (this.form.reviseStatus === '3'){
|
||||
this.standCode = this.form.standCode
|
||||
// ---
|
||||
let index1 = this.form.standCode.lastIndexOf('-') // 7
|
||||
this.standYear = this.form.standCode.slice(index1 + 1) // 2023 x
|
||||
if(this.standYear.indexOf(' ')>0){
|
||||
const _index = this.standYear.indexOf(' ')
|
||||
this.standYear = this.standYear.slice(0,_index)
|
||||
}else if(this.standYear.indexOf(' X')>0){
|
||||
const _index = this.standYear.indexOf(' X') // 4
|
||||
this.standYear = this.standYear.slice(0,_index) // 2023
|
||||
}
|
||||
|
||||
let noYearStand = this.form.standCode.slice(0, index1) // 'Q-F 101'
|
||||
this.standNum = noYearStand.replace(this.form.standSort,'').trim() // '101'
|
||||
|
||||
this.standSort = this.form.standSort
|
||||
|
||||
this.standNum = this.standNum.replace(/^0+/,"")
|
||||
this.standNum = this.standNum.padStart(3,'0')
|
||||
|
||||
this.form.standNum = this.standNum
|
||||
// ---
|
||||
|
||||
this.form.standYear = this.standYear
|
||||
|
||||
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
|
||||
} else {
|
||||
this.form.standYear = year
|
||||
|
||||
this.$http.get('lawss/sarBussionessStand/getStandInfoByReviseStatus',{reviseStatus:'buss1_'+this.form.reviseStatus,standSort:this.form.standSort,taskId: this.taskIds}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
const standSn = res.data
|
||||
this.form.standSn = standSn
|
||||
this.form.standNumber = standSn
|
||||
this.form.standNum = standSn + ''
|
||||
|
||||
this.form.standNum = this.form.standNum.replace(/^0+/,"")
|
||||
this.form.standNum = this.form.standNum.padStart(3,'0')
|
||||
|
||||
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
|
||||
this.standSort = this.form.standSort
|
||||
this.standCode = this.form.standCode
|
||||
|
||||
|
||||
this.formKey++
|
||||
}, e => {
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
handle2 () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
|
||||
// this.form.approvalOpinion = 0
|
||||
// this.$refs['form'].validate((valid) => {
|
||||
// if (valid) {
|
||||
// this.handleSubmit()
|
||||
// }
|
||||
// })
|
||||
},
|
||||
handle1 () {
|
||||
this.form.approvalOpinion = 1
|
||||
this.handleSubmit()
|
||||
},
|
||||
|
||||
handleSubmit() {
|
||||
this.addRule()
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.footerLoading = true
|
||||
const json = JSON.stringify(this.form);
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$route.query.userId,
|
||||
json: json
|
||||
}
|
||||
this.$http._post('lawss/activiti/completeTask', query).then(res => {
|
||||
if (res.success) {
|
||||
if(this.form.approvalOpinion === 1){
|
||||
this.$message.warning("驳回成功")
|
||||
}else{
|
||||
this.$message.success('操作成功')
|
||||
}
|
||||
this.footerLoading = false
|
||||
|
||||
this.$router.go(-2)
|
||||
} else {
|
||||
this.footerLoading = false
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||
}
|
||||
})
|
||||
},
|
||||
addRule() {
|
||||
if (this.form.approvalOpinion === 0) {
|
||||
this.rules.commentText = [
|
||||
{ required: false }
|
||||
]
|
||||
this.$refs.form.clearValidate('commentText')
|
||||
} else {
|
||||
this.rules.commentText = [
|
||||
{ required: true, message: '审批意见不能为空' }
|
||||
]
|
||||
}
|
||||
this.rules = { ...this.rules }
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
},
|
||||
getEvaluation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getEvaluationIndex({
|
||||
indexType: 'quality'
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const evalList = []
|
||||
res.data.forEach(item =>{
|
||||
item.score = ''
|
||||
item.scoreMin = ''
|
||||
item.reason = ''
|
||||
item.userId = this.userId
|
||||
item.processNode = this.taskInfo
|
||||
evalList.push(item)
|
||||
})
|
||||
this.form.evaluationData = evalList
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,212 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">企标编写</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import { selectByIdAtt } from "@/api/flow/index.js"
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,218 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">企标编写汇总</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<ProcessTitle>
|
||||
<template slot="title">文件汇总</template>
|
||||
</ProcessTitle>
|
||||
<FileSummary :data="form.fileModelList"></FileSummary>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import { selectByIdAtt } from "@/api/flow/index.js"
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,263 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">征求意见</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '4' ? 'active' : ''" @click="handleTabs('4')">会签意见</div>
|
||||
<div class="headerTabsItem" :class="active === '5' ? 'active' : ''" @click="handleTabs('5')">会签评分</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<ProcessTitle>
|
||||
<template slot="title">文件汇总</template>
|
||||
</ProcessTitle>
|
||||
<FileSummary :data="form.fileModelList"></FileSummary>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<div style="height: calc(100% - 30px)">
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="active === '5'">
|
||||
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import {getEvaluationIndex} from "api/businessApi";
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
import Score from "./components/Score";
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary,
|
||||
TermInfo,
|
||||
Score
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
if (!processForm.form) {
|
||||
this.getEvaluation()
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
},
|
||||
getEvaluation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getEvaluationIndex({
|
||||
indexType: 'quality'
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const evalList = []
|
||||
res.data.forEach(item =>{
|
||||
item.score = ''
|
||||
item.scoreMin = ''
|
||||
item.reason = ''
|
||||
item.userId = this.userId
|
||||
item.processNode = this.taskInfo
|
||||
evalList.push(item)
|
||||
})
|
||||
this.form.evaluationData = evalList
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,278 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">技术委员会评审、评审意见修改</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '5' ? 'active' : ''" @click="handleTabs('5')">评审评分</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<!--<ProcessTitle>-->
|
||||
<!-- <template slot="title">文件汇总</template>-->
|
||||
<!--</ProcessTitle>-->
|
||||
<!--<FileSummary :data="form.fileModelList"></FileSummary>-->
|
||||
<ProcessTitle>
|
||||
<template slot="title">意见信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.infoList"></TermInfo>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="汇总评审意见文件"
|
||||
prop="summaryFileName"
|
||||
:ids.sync="form.summaryFile"
|
||||
:names.sync="form.summaryFileName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="active === '5'">
|
||||
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit2
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit2="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import {getEvaluationIndex} from "api/businessApi";
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
import Score from "./components/Score";
|
||||
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary,
|
||||
TermInfo,
|
||||
Score,
|
||||
UploadFormItem
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
if (!processForm.form) {
|
||||
this.getEvaluation()
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
},
|
||||
getEvaluation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getEvaluationIndex({
|
||||
indexType: 'quality'
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const evalList = []
|
||||
res.data.forEach(item =>{
|
||||
item.score = ''
|
||||
item.scoreMin = ''
|
||||
item.reason = ''
|
||||
item.userId = this.userId
|
||||
item.processNode = this.taskInfo
|
||||
evalList.push(item)
|
||||
})
|
||||
this.form.evaluationData = evalList
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,331 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">标准化复审</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '5' ? 'active' : ''" @click="handleTabs('5')">评审评分</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<!--<ProcessTitle>-->
|
||||
<!-- <template slot="title">文件汇总</template>-->
|
||||
<!--</ProcessTitle>-->
|
||||
<!--<FileSummary :data="form.fileModelList"></FileSummary>-->
|
||||
<ProcessTitle>
|
||||
<template slot="title">意见信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.infoList"></TermInfo>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="汇总评审意见文件"
|
||||
prop="summaryFileName"
|
||||
:ids.sync="form.summaryFile"
|
||||
:names.sync="form.summaryFileName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="active === '5'">
|
||||
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-over2
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handle2"
|
||||
@transfer="handleTransfer"
|
||||
@over2="handle1"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import {getEvaluationIndex} from "api/businessApi";
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
import Score from "./components/Score";
|
||||
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary,
|
||||
TermInfo,
|
||||
Score,
|
||||
UploadFormItem
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
rules: {},
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
if (!processForm.form) {
|
||||
this.getEvaluation()
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handle2 () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handle1 () {
|
||||
this.form.approvalOpinion = 1
|
||||
this.handleSubmit()
|
||||
},
|
||||
|
||||
handleSubmit() {
|
||||
this.addRule()
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.footerLoading = true
|
||||
const json = JSON.stringify(this.form);
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$route.query.userId,
|
||||
json: json
|
||||
}
|
||||
this.$http._post('lawss/activiti/completeTask', query).then(res => {
|
||||
if (res.success) {
|
||||
if(this.form.approvalOpinion === 1){
|
||||
this.$message.warning("驳回成功")
|
||||
}else{
|
||||
this.$message.success('操作成功')
|
||||
}
|
||||
this.footerLoading = false
|
||||
|
||||
this.$router.go(-2)
|
||||
} else {
|
||||
this.footerLoading = false
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||
}
|
||||
})
|
||||
},
|
||||
addRule() {
|
||||
if (this.form.approvalOpinion === 0) {
|
||||
this.rules.commentText = [
|
||||
{ required: false }
|
||||
]
|
||||
this.$refs.form.clearValidate('commentText')
|
||||
} else {
|
||||
this.rules.commentText = [
|
||||
{ required: true, message: '审批意见不能为空' }
|
||||
]
|
||||
}
|
||||
this.rules = { ...this.rules }
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
},
|
||||
getEvaluation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getEvaluationIndex({
|
||||
indexType: 'quality'
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const evalList = []
|
||||
res.data.forEach(item =>{
|
||||
item.score = ''
|
||||
item.scoreMin = ''
|
||||
item.reason = ''
|
||||
item.userId = this.userId
|
||||
item.processNode = this.taskInfo
|
||||
evalList.push(item)
|
||||
})
|
||||
this.form.evaluationData = evalList
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,338 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订-技术标准</template>
|
||||
<template slot="proNode">审核</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '5' ? 'active' : ''" @click="handleTabs('5')">评审评分</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">过程稿件</template>
|
||||
</ProcessTitle>
|
||||
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
|
||||
<ProcessTitle>
|
||||
<template slot="title">适用范围</template>
|
||||
</ProcessTitle>
|
||||
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
|
||||
<ProcessTitle>
|
||||
<template slot="title">关联信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
|
||||
<!--<ProcessTitle>-->
|
||||
<!-- <template slot="title">文件汇总</template>-->
|
||||
<!--</ProcessTitle>-->
|
||||
<!--<FileSummary :data="form.fileModelList"></FileSummary>-->
|
||||
<ProcessTitle>
|
||||
<template slot="title">意见信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.infoList"></TermInfo>
|
||||
<div class="prc-content-border">
|
||||
<UploadFormItem
|
||||
label="汇总评审意见文件"
|
||||
prop="summaryFileName"
|
||||
:ids.sync="form.summaryFile"
|
||||
:names.sync="form.summaryFileName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '4'">
|
||||
<div style="height: 100%">
|
||||
<ProcessTitle>
|
||||
<template slot="title">条款信息</template>
|
||||
</ProcessTitle>
|
||||
<TermInfo :data="form.modelData"></TermInfo>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="active === '5'">
|
||||
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit2
|
||||
show-over2
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit2="handle2"
|
||||
@transfer="handleTransfer"
|
||||
@over2="handle1"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
import {getEvaluationIndex} from "api/businessApi";
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import ProcessFile from "./components/ProcessFile";
|
||||
import Range from "./components/Range";
|
||||
import Info from "./components/Info";
|
||||
import RoleInfo from "./components/RoleInfo";
|
||||
import FileSummary from "./components/FileSummary";
|
||||
import TermInfo from "./components/TermInfo";
|
||||
import Score from "./components/Score";
|
||||
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
ProcessFile,
|
||||
Range,
|
||||
Info,
|
||||
RoleInfo,
|
||||
FileSummary,
|
||||
TermInfo,
|
||||
Score,
|
||||
UploadFormItem
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
rules: {},
|
||||
roleForm: {},
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
if (!processForm.form) {
|
||||
this.getEvaluation()
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handle2 () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
|
||||
// this.form.approvalOpinion = 0
|
||||
// this.$refs['form'].validate((valid) => {
|
||||
// if (valid) {
|
||||
// this.handleSubmit()
|
||||
// }
|
||||
// })
|
||||
},
|
||||
handle1 () {
|
||||
this.form.approvalOpinion = 1
|
||||
this.handleSubmit()
|
||||
},
|
||||
|
||||
handleSubmit() {
|
||||
this.addRule()
|
||||
this.$refs['form'].validate((valid) => {
|
||||
if (valid) {
|
||||
this.footerLoading = true
|
||||
const json = JSON.stringify(this.form);
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$route.query.userId,
|
||||
json: json
|
||||
}
|
||||
this.$http._post('lawss/activiti/completeTask', query).then(res => {
|
||||
if (res.success) {
|
||||
if(this.form.approvalOpinion === 1){
|
||||
this.$message.warning("驳回成功")
|
||||
}else{
|
||||
this.$message.success('操作成功')
|
||||
}
|
||||
this.footerLoading = false
|
||||
|
||||
this.$router.go(-2)
|
||||
} else {
|
||||
this.footerLoading = false
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.warning('请检查基础信息表单是否填写完整')
|
||||
}
|
||||
})
|
||||
},
|
||||
addRule() {
|
||||
if (this.form.approvalOpinion === 0) {
|
||||
this.rules.commentText = [
|
||||
{ required: false }
|
||||
]
|
||||
this.$refs.form.clearValidate('commentText')
|
||||
} else {
|
||||
this.rules.commentText = [
|
||||
{ required: true, message: '审批意见不能为空' }
|
||||
]
|
||||
}
|
||||
this.rules = { ...this.rules }
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
},
|
||||
getEvaluation() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getEvaluationIndex({
|
||||
indexType: 'quality'
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const evalList = []
|
||||
res.data.forEach(item =>{
|
||||
item.score = ''
|
||||
item.scoreMin = ''
|
||||
item.reason = ''
|
||||
item.userId = this.userId
|
||||
item.processNode = this.taskInfo
|
||||
evalList.push(item)
|
||||
})
|
||||
this.form.evaluationData = evalList
|
||||
this.$forceUpdate()
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,206 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="项目目标"
|
||||
prop="projectTarget"
|
||||
v-model="form.projectTarget"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<UploadFormItem
|
||||
label="附件"
|
||||
prop="fileName"
|
||||
:ids.sync="form.fileId"
|
||||
:names.sync="form.fileName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
<SelectFormItem
|
||||
label="企标类别"
|
||||
title="企标类别"
|
||||
v-model="form.bussSort"
|
||||
:options="dict.BUSSSTANDCLASS || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
label="企标名称"
|
||||
prop="esName"
|
||||
v-model="form.esName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectFormItem
|
||||
label="制修订类型"
|
||||
title="制修订类型"
|
||||
v-model="form.reviseStatus"
|
||||
:options="reviseStatusOptions"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
v-if="form.reviseStatus === '修订'"
|
||||
label="代替企标编号"
|
||||
prop="rqbJson"
|
||||
v-model="form.rqbJson"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="起草责任单位"
|
||||
prop="unitName"
|
||||
v-model="form.unitName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="起草人"
|
||||
prop="drafterName"
|
||||
v-model="form.drafterName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="评审责任人"
|
||||
prop="resPersonName"
|
||||
v-model="form.resPersonName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="技术委员会评审负责人"
|
||||
prop="wgLeaderName"
|
||||
v-model="form.wgLeaderName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="计划标准初稿完成时间"
|
||||
prop="draftTime"
|
||||
v-model="form.draftTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="计划标准发布时间"
|
||||
prop="releaseTime"
|
||||
v-model="form.releaseTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="立项完成时间"
|
||||
prop="endTime"
|
||||
v-model="form.endTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
<InputFormItem
|
||||
label="体系结构"
|
||||
prop="tsJsonName"
|
||||
v-model="form.tsJsonName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectMultipleFormItem
|
||||
label="适用车型"
|
||||
title="适用车型"
|
||||
v-model="form.area"
|
||||
:options="dict.ENERGYTYPES || []"
|
||||
:disabled="disabled">
|
||||
</SelectMultipleFormItem>
|
||||
<SelectFormItem
|
||||
label="是否采用标准"
|
||||
title="是否采用标准"
|
||||
v-model="form.isRelate"
|
||||
:options="isRelateOptions"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
v-if="form.isRelate === '否'"
|
||||
label="简述指标依据"
|
||||
prop="technologic"
|
||||
v-model="form.technologic"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
v-if="form.isRelate === '是'"
|
||||
label="采用标准"
|
||||
prop="esStandRelations"
|
||||
v-model="form.esStandRelations"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<SelectFormItem
|
||||
v-if="form.isRelate === '是'"
|
||||
label="采标程度"
|
||||
title="采标程度"
|
||||
v-model="form.useLevel"
|
||||
:options="dict.DEGREESTANDARD || []"
|
||||
:disabled="disabled"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
label="引用标准"
|
||||
prop="esMatingRelations"
|
||||
v-model="form.esMatingRelations"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<UploadFormItem
|
||||
label="立项单"
|
||||
prop="LXDName"
|
||||
:ids.sync="form.LXD"
|
||||
:names.sync="form.LXDName"
|
||||
view
|
||||
:disabled="disabled"
|
||||
></UploadFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem,
|
||||
SelectFormItem,
|
||||
UploadFormItem,
|
||||
SelectMultipleFormItem
|
||||
},
|
||||
data () {
|
||||
const reviseStatusOptions = [
|
||||
{
|
||||
label: '制订',
|
||||
value: '制订'
|
||||
},
|
||||
{
|
||||
label: '修订',
|
||||
value: '修订'
|
||||
}
|
||||
]
|
||||
const isRelateOptions = [
|
||||
{
|
||||
label: '是',
|
||||
value: '是'
|
||||
},
|
||||
{
|
||||
label: '否',
|
||||
value: '否'
|
||||
}
|
||||
]
|
||||
return {
|
||||
reviseStatusOptions,
|
||||
isRelateOptions
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,82 @@
|
||||
<template>
|
||||
<el-timeline style="padding-top: 20px">
|
||||
<el-form
|
||||
ref="userForm"
|
||||
:model="roleForm"
|
||||
class="label-input-form">
|
||||
<TimeLineFormItem
|
||||
prop="prcCreateUserName"
|
||||
timestamp="起草"
|
||||
title="标准立项申请人"
|
||||
:id.sync="roleForm.prcCreateUser"
|
||||
:name.sync="roleForm.prcCreateUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="dockUserName"
|
||||
timestamp="审核"
|
||||
title="标准立项单位整车/系统总工"
|
||||
:id.sync="roleForm.dockUser"
|
||||
:name.sync="roleForm.dockUserName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="countersignerName"
|
||||
timestamp="会签"
|
||||
title="创新技术委员会成员/标准体系工作组成员(必选)、二级研发(部所所长、总工、中心主任/研究院院长)(必选)、质量相关人员(可选)、制造部相关人员(可选)、采购部相关人员(可选)、海外相关人员(可选)"
|
||||
:id.sync="roleForm.countersigner"
|
||||
:name.sync="roleForm.countersignerName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="examineName"
|
||||
timestamp="审定"
|
||||
title="标准体系工作组组长"
|
||||
:id.sync="roleForm.examine"
|
||||
:name.sync="roleForm.examineName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="approverName"
|
||||
timestamp="批准"
|
||||
title="标准法规部高级经理"
|
||||
:id.sync="roleForm.approver"
|
||||
:name.sync="roleForm.approverName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
<TimeLineFormItem
|
||||
prop="engineerName"
|
||||
timestamp="抄送"
|
||||
title="相关单位、工程研究总院标准法规部"
|
||||
:id.sync="roleForm.engineer"
|
||||
:name.sync="roleForm.engineerName"
|
||||
disabled
|
||||
></TimeLineFormItem>
|
||||
</el-form>
|
||||
</el-timeline>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import TimeLineFormItem from '@/components/hzwlComponents/TimeLineFormItem'
|
||||
|
||||
export default {
|
||||
name: "RoleInfo",
|
||||
components: {
|
||||
TimeLineFormItem
|
||||
},
|
||||
props: {
|
||||
roleForm: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,209 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订立项计划流程</template>
|
||||
<template slot="proNode">立项确认</template>
|
||||
</ProcessHeaderPhone>
|
||||
<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">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
<template v-if="active === '2'">
|
||||
<RoleInfo :roleForm="roleForm"></RoleInfo>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from './components/Basic'
|
||||
import RoleInfo from './components/RoleInfo'
|
||||
|
||||
export default {
|
||||
name: "step2-new",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
RoleInfo
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
const roleForm = {
|
||||
prcCreateUserName: this.$store.getters.userInfo.userName,
|
||||
prcCreateUser: this.$store.getters.userInfo.userId,
|
||||
dockUser: "",
|
||||
dockUserName: "",
|
||||
countersigner: "",
|
||||
countersignerName: "",
|
||||
approver: "",
|
||||
approverName: "",
|
||||
engineer: "",
|
||||
engineerName: "",
|
||||
examine: "",
|
||||
examineName: ""
|
||||
}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
roleForm,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData() {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.form.fileId = this.form.qblxFile.map(item => item.id).join(',');
|
||||
this.form.fileName = this.form.qblxFile.map(item => item.name).join(',');
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,643 @@
|
||||
<template>
|
||||
<div class="phoneQbzxdjhgkStep2 phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">企标制修订立项计划流程</template>
|
||||
<template slot="proNode">立项确认</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : '' " @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content" >
|
||||
<div style="flex: auto; " v-show="active === '1'">
|
||||
<process-title>
|
||||
<template slot="title">基础信息</template>
|
||||
</process-title>
|
||||
<template v-if="active === '1'">
|
||||
<el-form :model="qbfsForm" class="label-input-form prc-content-border"
|
||||
label-width="100px" :rules="qbfsFormRules">
|
||||
<InputFormItem
|
||||
label="项目目标"
|
||||
prop="projectTarget"
|
||||
v-model="qbfsForm.projectTarget"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<el-form-item label="附件" prop="fileName" class="add-form-item form-item-disabled">
|
||||
<div class="file-box" v-if="fileList.length > 0" style="display: flex;flex-direction: column">
|
||||
<p v-for="item in fileList"
|
||||
style="margin-left: 10px;"
|
||||
:key="item.id" @click.stop="clickButtonToUpload2(item.id)">
|
||||
<span class="fileName">{{ item.name }}
|
||||
</span>
|
||||
<i
|
||||
title="下载"
|
||||
@click.stop="downloadFile(item.id)"
|
||||
class="icon-download"
|
||||
v-btn-permission="''"
|
||||
/>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
暂无数据
|
||||
</div>
|
||||
</el-form-item>
|
||||
<SelectFormItem
|
||||
label="企标类别"
|
||||
prop="bussSort"
|
||||
v-model="qbfsForm.bussSort"
|
||||
:options="standSortOptions || []"
|
||||
:disabled="true"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
label="企标名称"
|
||||
prop="esName"
|
||||
v-model="qbfsForm.esName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<SelectFormItem
|
||||
label="制修订类型"
|
||||
prop="bussSort"
|
||||
v-model="qbfsForm.reviseStatus"
|
||||
:options="reviewOptions || []"
|
||||
:disabled="true"
|
||||
></SelectFormItem>
|
||||
<InputFormItem
|
||||
v-if="qbfsForm.reviseStatus === '修订'"
|
||||
label="代替企标编号"
|
||||
prop="esName"
|
||||
v-model="qbfsForm.rqbName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="起草责任单位"
|
||||
prop="unitName"
|
||||
v-model="qbfsForm.unitName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="起草人"
|
||||
prop="drafterName"
|
||||
v-model="qbfsForm.drafterName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="评审责任人"
|
||||
prop="resPersonName"
|
||||
v-model="qbfsForm.resPersonName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="技术委员会评审负责人"
|
||||
prop="wgLeaderName"
|
||||
v-model="qbfsForm.wgLeaderName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="计划标准初稿完成时间"
|
||||
prop="draftTime"
|
||||
v-model="qbfsForm.draftTime"
|
||||
:disabled="true"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="计划标准发布时间"
|
||||
prop="endTime"
|
||||
v-model="qbfsForm.releaseTime"
|
||||
:disabled="true"
|
||||
></DatePickerFormItem>
|
||||
<DatePickerFormItem
|
||||
label="立项完成时间"
|
||||
prop="endTime"
|
||||
v-model="qbfsForm.endTime"
|
||||
:disabled="true"
|
||||
></DatePickerFormItem>
|
||||
<InputFormItem
|
||||
label="体系结构"
|
||||
prop="tsJsonName"
|
||||
v-model="qbfsForm.tsJsonName"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<SelectFormItem
|
||||
label="适用车型"
|
||||
prop="bussSort"
|
||||
v-model="qbfsForm.area"
|
||||
:options="BZList || []"
|
||||
:disabled="true"
|
||||
></SelectFormItem>
|
||||
<el-form-item prop="isRelate" label="是否采用标准" style="width: 100%; margin-right:10px"
|
||||
class="add-form-item form-item-disabled">
|
||||
<el-select v-model="qbfsForm.isRelate" placeholder="请选择是否采用标准" disabled>
|
||||
<el-option label="是" value="是"></el-option>
|
||||
<el-option label="否" value="否"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<InputFormItem
|
||||
v-if="qbfsForm.isRelate === '否'"
|
||||
label="简述指标依据"
|
||||
prop="tsJsonName"
|
||||
v-model="qbfsForm.technologic"
|
||||
:disabled="true"
|
||||
></InputFormItem>
|
||||
<template v-if="qbfsForm.isRelate === '是'">
|
||||
<custom-input-for-all-standards2
|
||||
class="classDisplay"
|
||||
:config="{attrName: '采用标准',attrField:'esStandRelations'}"
|
||||
:labelWidth="'100px'"
|
||||
v-model="qbfsForm.esStandRelations"
|
||||
:disabled="true"
|
||||
></custom-input-for-all-standards2>
|
||||
</template>
|
||||
<SelectFormItem
|
||||
v-if="qbfsForm.isRelate === '是'"
|
||||
label="采标程度"
|
||||
prop="bussSort"
|
||||
v-model="qbfsForm.useLevel"
|
||||
:options="cbcdOptions || []"
|
||||
:disabled="true"
|
||||
></SelectFormItem>
|
||||
<template>
|
||||
<custom-input-for-all-standards2
|
||||
class="classDisplay"
|
||||
:enterpriseStandard="true"
|
||||
:placeholderText="'包括已有、应有的关联标准,如企业标准、行业标准、国家标准'"
|
||||
:config="{attrName: '引用标准',isPhone:true}"
|
||||
:labelWidth="'100px'"
|
||||
:disabled="true"
|
||||
v-model="qbfsForm.esMatingRelations"
|
||||
></custom-input-for-all-standards2>
|
||||
</template>
|
||||
<el-form-item label="立项单" prop="LXDName" class="add-form-item form-item-disabled">
|
||||
<div v-if="LXDList.length > 0" v-for="(item,index) in LXDList" :key="index" style="color: #409eff;cursor:pointer" class="fileClass">
|
||||
<span style="width: 80%;" @click="handleFilePreview(item,'preview')">{{ item.name }}</span>
|
||||
<!-- <span style="width: 20%;margin-left: 15px;" v-if="item.id !== ''">-->
|
||||
<!-- <el-button type="primary" size="mini" plain icon="el-icon-download" @click="handleFilePreview(item,'down')"></el-button>-->
|
||||
<!-- </span>-->
|
||||
<span style="width: 20%;margin-left: 15px;" v-if="item.id !== ''">
|
||||
<el-button type="primary" size="mini" plain icon="el-icon-edit" @click="handleFilePreview(item,'onlineEdit')"></el-button>
|
||||
</span>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
|
||||
</el-form>
|
||||
</template>
|
||||
</div>
|
||||
<template class="content" v-if="active === '3'">
|
||||
|
||||
<PhoneHistortTable :prcNum="$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<ProcessFooter
|
||||
show-transfer
|
||||
show-submit
|
||||
:submitLoading="isSubmit"
|
||||
:saveLoading="saveLoading"
|
||||
:approval="true"
|
||||
@back="beforeBack"
|
||||
@transfer="handleTransfer"
|
||||
@submit="handleSubmit"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<phone-role
|
||||
:role-title="drawerTitle"
|
||||
:result-list="phoneRoleList"
|
||||
:is-show-phone.sync="phoneshowflag"
|
||||
@checkedRole="drawerCheck"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import SelectFormItem from '@/components/hzwlComponents/SelectFormItem'
|
||||
import SelectMultipleFormItem from '@/components/hzwlComponents/SelectMultipleFormItem'
|
||||
import ProcessHeaderPhone from '../../components/ProcessHeaderPhone'
|
||||
import ProcessHeader from "../../components/ProcessHeader";
|
||||
import ProcessTitle from "process/components/ProcessTitle";
|
||||
import CustomInputForAllStandards2 from '@/components/CustomFormComponents/InputForAllStandards2'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
|
||||
import ProcessFooter from "process/components/ProcessFooter";
|
||||
import { changeAssigneeNew,inboundLiaisonDetail } from "api/process";
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
export default {
|
||||
name: "step2.vue",
|
||||
components: {
|
||||
PhoneHistortTable,
|
||||
InputFormItem,
|
||||
ProcessHeader,
|
||||
ProcessTitle,
|
||||
ProcessHeaderPhone,
|
||||
ProcessFooter,
|
||||
DatePickerFormItem,
|
||||
SelectMultipleFormItem,
|
||||
SelectFormItem,
|
||||
CustomInputForAllStandards2
|
||||
},
|
||||
data(){
|
||||
const standNameVerify = (rule, value, callback) => {
|
||||
if(value === '' || value === null){
|
||||
return callback(new Error('请输入企标名称'))
|
||||
}else {
|
||||
this.$http.get('esRevisePlan/es-revise-plan/getDataByNameAndSort', {
|
||||
bussSort: this.qbfsForm.bussSort,
|
||||
esName: this.qbfsForm.esName,
|
||||
}, {
|
||||
_this: this,
|
||||
}, res => {
|
||||
if (res.data && res.data > 0) {
|
||||
return callback(new Error('企标名称重复'))
|
||||
}else {
|
||||
callback()
|
||||
}
|
||||
}, e => {
|
||||
})
|
||||
}
|
||||
};
|
||||
return {
|
||||
reviewOptions:[
|
||||
{label:'制定',value:'制定'},
|
||||
{label:'修订',value:'修订'},
|
||||
],
|
||||
active: '1',
|
||||
commentText: '',
|
||||
workModel: false,
|
||||
isTransfer: false,
|
||||
isSubmit: false,
|
||||
saveLoading: false,
|
||||
drawerModal: false,
|
||||
workSearch: {
|
||||
workGroupName: "",
|
||||
},
|
||||
total: 0,
|
||||
page: 1,
|
||||
pageSize: this.$store.getters.userInfo.configContent,
|
||||
QYBZmodal: false,
|
||||
TXJGmodal: false,
|
||||
modalshowflagZRBM: false,
|
||||
QYBZShow: false,
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'menuName'
|
||||
},
|
||||
workData: [],
|
||||
TXJGList: [],
|
||||
QYBZList: [],
|
||||
QYBZformSelect: [],
|
||||
standSystemOptions: [],
|
||||
QYBZform: {
|
||||
page: 1,
|
||||
pageSize: this.$store.getters.userInfo.configContent,
|
||||
validFlag: '0',
|
||||
userId: this.$store.getters.userInfo.userId,
|
||||
standCode: '',
|
||||
standName: '',
|
||||
total: 0,
|
||||
},
|
||||
nodeListZRBM: [],
|
||||
drawerTitle2: '',
|
||||
drawerTitle: '',
|
||||
roleType: '',
|
||||
modalshowflag2: false,
|
||||
modalshowflag: false,
|
||||
nodeList2: [],
|
||||
fileList:[],
|
||||
nodeList: [],
|
||||
workChangeList: [],
|
||||
standSortOptions: [],
|
||||
cbcdOptions: [],
|
||||
lxdList:[],
|
||||
BZList: [],
|
||||
qcdwOptions: [],
|
||||
LXDList: [],
|
||||
qbfsForm: {
|
||||
type: "5",
|
||||
unit: "", // 单位
|
||||
unitName: "",
|
||||
esName: "", // 企标名称
|
||||
planStatus: "0", // 计划状态
|
||||
reviseStatus: "", // 制修订类型
|
||||
area: "", //适用车型
|
||||
isRelate: "", //采用何种标准
|
||||
technologic: '', //指标依据
|
||||
resPerson: "", // 评审责任人
|
||||
resPersonName: "",
|
||||
wgLeader: "", // 工作组组长
|
||||
wgLeaderName: "",
|
||||
draftTime: "", // 计划标准初稿完成时间
|
||||
releaseTime: "", // 计划标准发布时间
|
||||
drafter: "", // 起草人
|
||||
drafterName: "",
|
||||
esMatingRelations: "", //配套标准
|
||||
newReason: "", //立项原因
|
||||
LXDName: "", //立项单名称
|
||||
LXD: "", //立项单
|
||||
// remarks: '', // 备注
|
||||
},
|
||||
//必填人员校验规则
|
||||
roleFormRules: {
|
||||
dockUserName: [
|
||||
{ required: true, message: "请选择标准立项单位整车/系统总工", trigger: "change" }
|
||||
],
|
||||
countersignerName:[
|
||||
{required: true, message:'请选择会签人员', trigger: "change" }
|
||||
],
|
||||
examineName:[
|
||||
{required: true, message:'请选择标准体系工作组组长', trigger: "change" }
|
||||
],
|
||||
approverName:[
|
||||
{required: true, message:'请选择总院技术委员会覆盖领域企业标准:专委会主任/总院技术委员会未覆盖领域企业标准:总院院长或总院主管副院长', trigger: "change" }
|
||||
],
|
||||
engineerName:[
|
||||
{required: true, message:'请选择相关单位、工程研究总院标准法规部', trigger: "change" }
|
||||
],
|
||||
},
|
||||
roleForm: {
|
||||
prcCreateUserName: this.$store.getters.userInfo.userName,
|
||||
prcCreateUser: this.$store.getters.userInfo.userId,
|
||||
dockUser: "",
|
||||
dockUserName: "",
|
||||
countersigner: "",
|
||||
countersignerName: "",
|
||||
approver: "",
|
||||
approverName: "",
|
||||
engineer: "",
|
||||
engineerName: "",
|
||||
examine: "",
|
||||
examineName: ""
|
||||
},
|
||||
qbfsFormRules: {
|
||||
projectTarget: [
|
||||
{ required: true, message: "请输入项目目标", trigger: "blur" }
|
||||
],
|
||||
// fileName: [
|
||||
// { required: true, message: "请上传附件", trigger: "blur" }
|
||||
// ],
|
||||
bussSort: [
|
||||
{ required: true, message: "请选择企标类别", trigger: "blur" }
|
||||
],
|
||||
esName: [
|
||||
{ required: true, validator: standNameVerify, trigger: "blur" }
|
||||
],
|
||||
rqbName: [
|
||||
{ required: true, message: "请输入代替企标编号", trigger: "blur" }
|
||||
],
|
||||
reviseStatus: [
|
||||
{ required: true, message: "请选择制修订类型", trigger: "blur" }
|
||||
],
|
||||
unitName: [
|
||||
{ required: true, message: "请选择起草单位", trigger: "change" }
|
||||
],
|
||||
drafterName: [
|
||||
{ required: true, message: "请选择起草人", trigger: "change" }
|
||||
],
|
||||
resPersonName: [
|
||||
{ required: true, message: "请输入评审责任人", trigger: "blur" }
|
||||
],
|
||||
wgLeaderName: [
|
||||
{ required: true, message: "请输入技术委员会评审负责人", trigger: "blur" }
|
||||
],
|
||||
draftTime: [
|
||||
{ required: true, message: "请选择计划标准初稿完成时间", trigger: "blur" }
|
||||
],
|
||||
releaseTime: [
|
||||
{ required: true, message: "请选择计划标准发布时间", trigger: "blur" }
|
||||
],
|
||||
endTime: [
|
||||
{ required: true, message: "请选择立项完成时间", trigger: "change" }
|
||||
],
|
||||
tsJsonName: [
|
||||
{ required: true, message: "请选择体系结构", trigger: "change" }
|
||||
],
|
||||
area: [
|
||||
{ required: true, message: "请选择适用车型", trigger: "blur" }
|
||||
],
|
||||
isRelate: [
|
||||
{ required: true, message: "请选择是否采用标准", trigger: "blur" }
|
||||
],
|
||||
technologic: [
|
||||
{ required: true, message: "请输入指标依据", trigger: "blur" }
|
||||
],
|
||||
useLevel: [
|
||||
{ required: true, message: "请选择采标程度", trigger: "change" }
|
||||
],
|
||||
newReason: [
|
||||
{required: true, message: '请输入立项原因', trigger: 'blur'},
|
||||
],
|
||||
esStandRelations: [
|
||||
{required: true, message: '请输入采用标准', trigger: 'blur'},
|
||||
],
|
||||
},
|
||||
//技术委员会评审负责人
|
||||
workLeaderVisible: false,
|
||||
workLeaderNodeList: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getWorkData()
|
||||
this.processTable()
|
||||
this.getData()
|
||||
|
||||
this.$http.get('/lawss/activiti/saveEditFile', {
|
||||
model: 'model_lx'
|
||||
},{
|
||||
_this: this
|
||||
}, res => {
|
||||
console.log(res)
|
||||
if(res){
|
||||
this.qbfsForm.LXD = res.id
|
||||
this.qbfsForm.LXDName = '立项单'
|
||||
this.LXDList=this.assemble(res.id,'立项单');
|
||||
}
|
||||
})
|
||||
//查询下拉框数据
|
||||
this.$http.get('sys/dictype/getDicTypeListCode', '',{
|
||||
_this: this
|
||||
}, res => {
|
||||
this.cbcdOptions = res.data.DEGREESTANDARD //采标程度
|
||||
this.BZList = res.data.ENERGYTYPES //适用车型
|
||||
this.standSystemOptions = res.data.TXLBBUSS // 体系结构
|
||||
this.qcdwOptions = res.data.QCDW // 起草单位
|
||||
res.data.BUSSSTANDCLASS.forEach(item => {
|
||||
if(item.label){
|
||||
this.standSortOptions.push(item) //企标类别
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
methods:{
|
||||
handleTransfer(){
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleSubmit(){
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
//预览
|
||||
clickButtonToUpload2(file) {
|
||||
const attId = file
|
||||
this.$preview(attId)
|
||||
},
|
||||
/**
|
||||
* @Description: 点击下载
|
||||
*/
|
||||
downloadFile(attId) {
|
||||
if (attId != null && attId !== "") {
|
||||
window.location.href = "/api/att/attFile/downloadFileForSarNew?fileId=" + attId;
|
||||
} else {
|
||||
this.$message.error("请选择要下载的文件");
|
||||
}
|
||||
},
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getWorkData() {
|
||||
this.$http.get("workGroup/work-group", {
|
||||
pageSize: this.pageSize,
|
||||
page: this.page,
|
||||
workGroupName: this.workSearch.workGroupName
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.workData = res.data.records;
|
||||
this.total = res.data.total;
|
||||
}, e => {
|
||||
});
|
||||
},
|
||||
processTable() {
|
||||
this.$http.get("lawss/activiti/get_list_by_instance", {
|
||||
prcNum: this.$route.query.prcNum,
|
||||
sortWord: this.shunxu ? this.paixu : "",
|
||||
shunxu: this.shunxu
|
||||
}, {
|
||||
loading: "loading",
|
||||
_this: this
|
||||
}, res => {
|
||||
this.detailData = res
|
||||
}, e => {
|
||||
})
|
||||
},
|
||||
getData() {
|
||||
return new Promise((resolve, reject) => {
|
||||
inboundLiaisonDetail({
|
||||
taskIds: this.$route.query.taskIds,
|
||||
pId: this.$route.query.prcId,
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.getFormFieldList(processForm)
|
||||
}
|
||||
}).catch(e => {
|
||||
})
|
||||
})
|
||||
},
|
||||
/**
|
||||
* @description: 动态表单读取
|
||||
*/
|
||||
getFormFieldList (item) {
|
||||
console.log(item);
|
||||
this.$nextTick(() => {
|
||||
this.qbfsForm = JSON.parse(JSON.stringify(item))
|
||||
item.qblxFile.forEach(itemId => {
|
||||
this.fileIds = itemId.id
|
||||
this.getFileInfo();
|
||||
});
|
||||
this.type = item.type
|
||||
})
|
||||
},
|
||||
// 请求上传的文件信息
|
||||
getFileInfo() {
|
||||
this.$http.get("att/attFile/getMultiFileInfos", {
|
||||
fileIds: this.fileIds
|
||||
}, {
|
||||
_this: this
|
||||
}, res => {
|
||||
this.$nextTick(() => {
|
||||
res.data.map(item => {
|
||||
// 赋值要回显的上传文件内容
|
||||
this.fileList.push({
|
||||
name: item.oldFileName,
|
||||
uid: item.uid,
|
||||
status: item.status,
|
||||
id: item.id,
|
||||
fileSuffix: item.fileSuffix
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
}, e => {
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="less" scoped>
|
||||
@import '~@/assets/styles/phone';
|
||||
.phoneQbzxdjhgkStep2 {
|
||||
.fileName{
|
||||
display: inline-block;
|
||||
width: calc(100% - 21px);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-wrap: nowrap;
|
||||
}
|
||||
p .icon-download{
|
||||
margin-top: 17px;
|
||||
display: inline-block;
|
||||
margin-left: 3px;
|
||||
width: 18px;
|
||||
height: 16px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-position: center center;
|
||||
vertical-align: top;
|
||||
cursor: pointer;
|
||||
|
||||
background-image: url('~assets/images/shangqi/img/download.png');
|
||||
}
|
||||
/deep/.van-dialog__content {
|
||||
min-height: 300px;
|
||||
padding: 10px;
|
||||
}
|
||||
.prc-content-border {
|
||||
overflow: auto;
|
||||
}
|
||||
///deep/.prc-content-border .el-form-item__content {
|
||||
// width: 270px;
|
||||
//}
|
||||
.content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
margin-top: 52px;
|
||||
//height: calc(~'100% - 155px');
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,260 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">未符合项整改流程</template>
|
||||
<template slot="proNode">审定</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="dataList"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column prop="standSerialNumber" width="150" align="center" label="标准号">
|
||||
<template slot-scope="scope">
|
||||
<a class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSerialNumber }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="standName" width="250" align="center" label="标准名称">
|
||||
<template slot-scope="scope">
|
||||
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="productName" width="250" label="项目名称" align="center" show-overflow-tooltip/>
|
||||
<el-table-column prop="itemsNum" label="条款号" align="center"/>
|
||||
<el-table-column prop="itemsName" width="200" label="条款名称" align="center"/>
|
||||
<el-table-column prop="planCloseTime" width="120" label="整改完成时间" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.planCloseTime ? $moment(scope.row.planCloseTime).format('YYYY-MM-DD') : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="responsibleUnit" width="150" label="责任部门" align="center"/>
|
||||
<el-table-column prop="dutyEngineerName" width="150" label="责任工程师" align="center"/>
|
||||
<el-table-column prop="dutyPeople" width="150" label="负责人" align="center"/>
|
||||
<el-table-column
|
||||
label="回执文件"
|
||||
min-width="200"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<div v-for="file in scope.row.fileText"
|
||||
:key="file.id"
|
||||
style="color: #409eff;text-overflow: ellipsis;white-space: nowrap;overflow: hidden;"
|
||||
@click="preview(file.id)"
|
||||
>{{file.name}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
export default {
|
||||
name: "step4",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dataList: [],
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
if (this.form.responUserList) {
|
||||
this.dataList = this.form.responUserList
|
||||
} else if (this.form.dockUserList) {
|
||||
this.dataList = this.form.dockUserList[0].standardInfoList
|
||||
} else {
|
||||
this.dataList = [this.form.info]
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
// 点击查看
|
||||
handlePreview(item) {
|
||||
if(item.standType ==='BUSINESS_STAND'){
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.standId,
|
||||
pageType: 'BUSS'
|
||||
}
|
||||
})
|
||||
}else if (item.standType === 'INLAND'){
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.standId,
|
||||
pageType: 'INLAND_STAND'
|
||||
}
|
||||
})
|
||||
} else if (item.standType === 'FOREIGN') {
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.standId,
|
||||
pageType: 'FOREIGN_STAND'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 预览文件
|
||||
preview(fileId) {
|
||||
this.$preview(fileId)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="项目编号"
|
||||
prop="projectNumber"
|
||||
v-model="form.projectNumber"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="项目名称"
|
||||
prop="projectName"
|
||||
v-model="form.projectName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="截止日期"
|
||||
prop="endTime"
|
||||
v-model="form.endTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,161 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
label="标准编号"
|
||||
width="180"
|
||||
prop="standNumber">
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standYear" class="table-jump"
|
||||
@click="handlePreview(scope.row)">{{ scope.row.standSort }} {{ scope.row.standNumber
|
||||
}}-{{ scope.row.standYear }}</a>
|
||||
<a v-else class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSort }}
|
||||
{{ scope.row.standNumber }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="标准名称"
|
||||
width="300"
|
||||
prop="standName">
|
||||
<template slot-scope="scope">
|
||||
<a class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="条款号"
|
||||
width="180"
|
||||
prop="itemsNum">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="条款名称"
|
||||
width="180"
|
||||
prop="itemsName">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep2'"
|
||||
align="center"
|
||||
label="责任人"
|
||||
width="120"
|
||||
prop="workPeople">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="termsConditions"
|
||||
label="条款内容"
|
||||
width="500"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="itemsTextBox" v-if="scope.row.termsConditions" v-html="scope.row.termsConditions.replace(/''/g, '\'')"></div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="ssrq"
|
||||
width="200"
|
||||
align="center"
|
||||
label="实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="xcxssrq"
|
||||
width="200"
|
||||
align="center"
|
||||
label="新车型实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="zccssrq"
|
||||
width="200"
|
||||
align="center"
|
||||
label="在产车实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
label="合规"
|
||||
prop="complianceReasons"
|
||||
width="210"
|
||||
align="center">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="noCompliance"
|
||||
align="center"
|
||||
width="170"
|
||||
label="不合规项目">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="countermeasures"
|
||||
align="center"
|
||||
width="160"
|
||||
label="应对措施">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="completionTime"
|
||||
align="center"
|
||||
width="140"
|
||||
label="完成时间">
|
||||
<template slot-scope="scope">
|
||||
{{ $moment(scope.row.completionTime).format('YYYY-MM-DD')}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="$route.name === 'phoneXmpgStep3'"
|
||||
prop="remarks"
|
||||
align="center"
|
||||
width="160"
|
||||
label="不涉及理由">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Info",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 点击查看
|
||||
handlePreview(item) {
|
||||
let replaceStandInfoEO ={}
|
||||
replaceStandInfoEO.standNumber = item.standNumber
|
||||
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', replaceStandInfoEO, {
|
||||
_this: this
|
||||
}, res => {
|
||||
if (res.data != null) {
|
||||
let dataType ='INLAND_STAND'
|
||||
if(res.data.standType ==='FOREIGN'){
|
||||
dataType ='FOREIGN_STAND'
|
||||
}
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: res.data.id,
|
||||
pageType: dataType
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$message.error(res.message)
|
||||
}
|
||||
}, e => {
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">项目合规评估流程-项目</template>
|
||||
<template slot="proNode">任务分发</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :data="form.dataList"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info from './components/Info'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">项目合规评估流程-项目</template>
|
||||
<template slot="proNode">合规评估</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :data="form.dataList"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info from './components/Info'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,53 @@
|
||||
<template>
|
||||
<div class="prc-content-border">
|
||||
<InputFormItem
|
||||
label="项目编号"
|
||||
prop="projectNumber"
|
||||
v-model="form.projectNumber"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<InputFormItem
|
||||
label="项目名称"
|
||||
prop="projectName"
|
||||
v-model="form.projectName"
|
||||
:disabled="disabled"
|
||||
></InputFormItem>
|
||||
<DatePickerFormItem
|
||||
label="截止日期"
|
||||
prop="endTime"
|
||||
v-model="form.endTime"
|
||||
:disabled="disabled"
|
||||
></DatePickerFormItem>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InputFormItem from '@/components/hzwlComponents/InputFormItem'
|
||||
import DatePickerFormItem from '@/components/hzwlComponents/DatePickerFormItem'
|
||||
|
||||
export default {
|
||||
name: "Basic",
|
||||
props: {
|
||||
form: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
components: {
|
||||
InputFormItem,
|
||||
DatePickerFormItem
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,122 @@
|
||||
<template>
|
||||
<el-table
|
||||
ref="selection"
|
||||
:data="data"
|
||||
tooltip-effect="dark"
|
||||
style="width: 100%;"
|
||||
border
|
||||
row-key="id"
|
||||
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
width="200px"
|
||||
label="标准号"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a v-if="scope.row.standYear" class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSort
|
||||
}} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
|
||||
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSort }}
|
||||
{{ scope.row.standNumber }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="standName"
|
||||
align="center"
|
||||
min-width="300"
|
||||
label="中文名称"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="standEnName"
|
||||
label="英文名称"
|
||||
min-width="300"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="textStatus"
|
||||
label="标准状态"
|
||||
align="center"
|
||||
width="100px"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.textStatus && textStatusMap.length > 0 ">{{ textStatusMap.find(item => item.value === scope.row.textStatus).label }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ssrq"
|
||||
width="190px"
|
||||
align="center"
|
||||
label="标准实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="xcxssrq"
|
||||
width="190px"
|
||||
align="center"
|
||||
label="新车型实施日期">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="zccssrq"
|
||||
align="center"
|
||||
width="190px"
|
||||
label="在产车实施日期">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Info",
|
||||
props: {
|
||||
data: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
textStatusMap: {
|
||||
type: Array,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 点击查看
|
||||
handlePreview(item) {
|
||||
if(item.standType ==='BUSINESS_STAND'){
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.id || item.standId,
|
||||
pageType: 'BUSS'
|
||||
}
|
||||
})
|
||||
}else if (item.standType === 'INLAND'){
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.id || item.standId,
|
||||
pageType: 'INLAND_STAND'
|
||||
}
|
||||
})
|
||||
} else if (item.standType === 'FOREIGN') {
|
||||
this.$router.push({
|
||||
name: 'domesticDetails',
|
||||
query: {
|
||||
id: item.id || item.standId,
|
||||
pageType: 'FOREIGN_STAND'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -0,0 +1,196 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">项目清单确认流程</template>
|
||||
<template slot="proNode">认证工程师添加数据</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :data="form.dataList" :textStatusMap="textStatusMap"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info from './components/Info'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
|
||||
this.textStatusMap = [...this.dict.WBZTCLASS, ...this.dict.TEXTSTATUSBUSS, ...this.dict.ZRBMCLASS]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,196 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">项目清单确认流程</template>
|
||||
<template slot="proNode">产品工程经理添加数据</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :data="form.dataList" :textStatusMap="textStatusMap"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-submit
|
||||
show-transfer
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info from './components/Info'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
this.$message({
|
||||
dangerouslyUseHTMLString: true,
|
||||
message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
type: 'error'
|
||||
})
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
const textStatusMap = [...this.dict.WBZTCLASS, ...this.dict.TEXTSTATUSBUSS, ...this.dict.ZRBMCLASS]
|
||||
this.textStatusMap = [...textStatusMap]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,222 @@
|
||||
<template>
|
||||
<div class="phoneBox">
|
||||
<ProcessHeaderPhone toggle>
|
||||
<template slot="proName">项目清单确认流程</template>
|
||||
<template slot="proNode">标准法规工程师确认</template>
|
||||
</ProcessHeaderPhone>
|
||||
<div class="headerTabs">
|
||||
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
|
||||
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<el-form
|
||||
v-if="reloadForm"
|
||||
ref="form"
|
||||
:model="form"
|
||||
class="label-input-form phoneForm"
|
||||
label-width="112px"
|
||||
>
|
||||
<template v-if="active === '1'">
|
||||
<div>
|
||||
<ProcessTitle>
|
||||
<template slot="title">基础信息</template>
|
||||
</ProcessTitle>
|
||||
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
|
||||
<ProcessTitle>
|
||||
<template slot="title">填写信息</template>
|
||||
</ProcessTitle>
|
||||
<Info :data="form.dataList" :textStatusMap="textStatusMap"></Info>
|
||||
</div>
|
||||
<ReceiptDescription v-model="form.commentText" title="回执说明"></ReceiptDescription>
|
||||
</template>
|
||||
<template v-if="active === '3'">
|
||||
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
|
||||
</template>
|
||||
</el-form>
|
||||
</div>
|
||||
<ProcessFooter
|
||||
show-transfer
|
||||
show-affirm
|
||||
:submitLoading="footerLoading"
|
||||
:saveLoading="footerLoading"
|
||||
@submit="handleSubmit"
|
||||
@transfer="handleTransfer"
|
||||
>
|
||||
</ProcessFooter>
|
||||
<!-- 福田全公司选人解决方案 -->
|
||||
<phoneRoleTree
|
||||
check-box
|
||||
:is-title="drawerTitle"
|
||||
:is-visible.sync="drawerModal"
|
||||
@checkedRole="checkedRole"
|
||||
:nodeList="nodeList"
|
||||
></phoneRoleTree>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
|
||||
|
||||
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
|
||||
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
|
||||
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
|
||||
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
|
||||
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
|
||||
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
|
||||
|
||||
import Basic from "./components/Basic";
|
||||
import Info from './components/Info'
|
||||
|
||||
export default {
|
||||
name: "step2",
|
||||
components: {
|
||||
ProcessHeaderPhone,
|
||||
PhoneHistortTable,
|
||||
ProcessTitle,
|
||||
ProcessFooter,
|
||||
ReceiptDescription,
|
||||
phoneRoleTree,
|
||||
Basic,
|
||||
Info
|
||||
},
|
||||
data () {
|
||||
const form = {}
|
||||
return {
|
||||
active: '1',
|
||||
reloadForm: true,
|
||||
form,
|
||||
dict: {},
|
||||
textStatusMap: [],
|
||||
disabled: true,
|
||||
footerLoading: false,
|
||||
|
||||
// 福田全公司选人解决方案
|
||||
drawerModal: false,
|
||||
drawerTitle: '',
|
||||
nodeList: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getDicTypeListCode()
|
||||
this.getData()
|
||||
},
|
||||
methods: {
|
||||
handleTabs(name) {
|
||||
this.active = name;
|
||||
},
|
||||
getData () {
|
||||
const { taskIds, prcId } = this.$route.query
|
||||
|
||||
inboundLiaisonDetail({
|
||||
taskIds,
|
||||
pId: prcId
|
||||
}).then(res => {
|
||||
if (res) {
|
||||
this.reloadForm = false
|
||||
const processForm = JSON.parse(res.mesg)
|
||||
this.form = JSON.parse(JSON.stringify(processForm.form || processForm))
|
||||
this.form.commentText = ''
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.reloadForm = true
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
async handleSubmit () {
|
||||
// this.$message({
|
||||
// dangerouslyUseHTMLString: true,
|
||||
// message: <div style="word-break: keep-all;color: #F56C6C">当前任务不支持手机端处理</div>,
|
||||
// type: 'error'
|
||||
// })
|
||||
|
||||
this.form.dataList.forEach(item => {
|
||||
if(!item.standId){
|
||||
this.$set(item, 'standId', item.id)
|
||||
}
|
||||
})
|
||||
|
||||
this.footerLoading = true;
|
||||
const json = JSON.stringify(this.form);
|
||||
|
||||
const query = {
|
||||
taskIds: this.$route.query.taskIds,
|
||||
userId : this.$store.getters.userInfo.userId,
|
||||
json
|
||||
}
|
||||
const completeTaskRef = await this.$http._post('lawss/activiti/completeTask', query)
|
||||
if (!completeTaskRef.success) {
|
||||
this.footerLoading = false
|
||||
return this.$message.error(completeTaskRef.message)
|
||||
}
|
||||
|
||||
this.$message.success(completeTaskRef.message)
|
||||
this.footerLoading = false
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
},
|
||||
handleTransfer () {
|
||||
this.drawerModal = true
|
||||
this.drawerTitle = '转办处理人'
|
||||
},
|
||||
// 转办
|
||||
checkedRole (data) {
|
||||
this.footerLoading = true
|
||||
changeAssigneeNew({
|
||||
taskId: this.$route.query.taskIds, // 任务id
|
||||
userId: this.$store.getters.userInfo.userId, // 委托人
|
||||
assignee: data[0].id, // 被委托人
|
||||
pId: this.$route.query.prcId, // 流程实例
|
||||
}).then(res => {
|
||||
if (res.success) {
|
||||
this.drawerModal = false
|
||||
this.$message.success('调整成功')
|
||||
setTimeout(() => {
|
||||
this.$router.go(-2)
|
||||
}, 100)
|
||||
} else {
|
||||
this.$message.warning(res.message)
|
||||
}
|
||||
}).finally(() => {
|
||||
this.footerLoading = false
|
||||
})
|
||||
},
|
||||
getDicTypeListCode () {
|
||||
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
|
||||
this.dict = { ...res.data }
|
||||
const textStatusMap = [...this.dict.WBZTCLASS, ...this.dict.TEXTSTATUSBUSS, ...this.dict.ZRBMCLASS]
|
||||
this.textStatusMap = [...textStatusMap]
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.phoneBox .content {
|
||||
border-top: 1px solid #DCDFE6;
|
||||
margin-top: 51px;
|
||||
height: calc(100% - 156px);
|
||||
|
||||
background-color: #fff;
|
||||
padding: 0 10px;
|
||||
box-sizing: border-box;
|
||||
|
||||
overflow: auto;
|
||||
.phoneForm {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
.phoneBox /deep/ .van-field__label {
|
||||
width: 112px !important;
|
||||
margin-right: 0 !important;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.phoneBox /deep/ .van-field__control {
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
</style>
|
||||
+401
-1
@@ -1748,6 +1748,28 @@ const routes = [
|
||||
title: '标准征求意见流程'
|
||||
}
|
||||
},
|
||||
// 意见反馈
|
||||
{
|
||||
path: '/phoneBzzqyjStep3',
|
||||
name: 'phoneBzzqyjStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzzqyj/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准征求意见流程'
|
||||
}
|
||||
},
|
||||
// 意见汇总报批
|
||||
{
|
||||
path: '/phoneBzzqyjStep4',
|
||||
name: 'phoneBzzqyjStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzzqyj/step4.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准征求意见流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBzzqyjStep4-1',
|
||||
name: 'phoneBzzqyjStep4-1',
|
||||
@@ -1768,6 +1790,17 @@ const routes = [
|
||||
title: '标准征求意见流程'
|
||||
}
|
||||
},
|
||||
// 意见处理
|
||||
{
|
||||
path: '/phoneBzzqyjStep5',
|
||||
name: 'phoneBzzqyjStep5',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzzqyj/step5.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准征求意见流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBzzqyjStep6',
|
||||
name: 'phoneBzzqyjStep6',
|
||||
@@ -1891,6 +1924,17 @@ const routes = [
|
||||
title: '标准调研流程'
|
||||
}
|
||||
},
|
||||
// 调研结果反馈
|
||||
{
|
||||
path: '/phoneBzdyStep3',
|
||||
name: 'phoneBzdyStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzdy/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准调研流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBzdyStep4',
|
||||
name: 'phoneBzdyStep4',
|
||||
@@ -1901,6 +1945,17 @@ const routes = [
|
||||
title: '标准调研流程'
|
||||
}
|
||||
},
|
||||
// 调研结果处理
|
||||
{
|
||||
path: '/phoneBzdyStep5',
|
||||
name: 'phoneBzdyStep5',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzdy/step5.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准调研流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBzdyStep6',
|
||||
name: 'phoneBzdyStep6',
|
||||
@@ -2031,6 +2086,28 @@ const routes = [
|
||||
title: '标准解读流程'
|
||||
}
|
||||
},
|
||||
// 选择责任人
|
||||
{
|
||||
path: '/phoneBzjdStep2',
|
||||
name: 'phoneBzjdStep2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzjd/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准调研流程'
|
||||
}
|
||||
},
|
||||
// 解读
|
||||
{
|
||||
path: '/phoneBzjdStep3',
|
||||
name: 'phoneBzjdStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzjd/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准调研流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/zcrhStep1',
|
||||
name: 'zcrhStep1',
|
||||
@@ -2475,6 +2552,29 @@ const routes = [
|
||||
title: '企标废止流程'
|
||||
}
|
||||
},
|
||||
/*
|
||||
{
|
||||
path: '/phoneqbfzStep4',
|
||||
name: 'phoneqbfzStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbfz/step4.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标废止流程'
|
||||
}
|
||||
},
|
||||
*/
|
||||
// 起草人修改标准状态
|
||||
{
|
||||
path: '/phoneQbfzStep4',
|
||||
name: 'phoneQbfzStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbfz/step4-new.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标废止流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/qbfzStep4-1',
|
||||
name: 'qbfzStep4-1',
|
||||
@@ -2620,6 +2720,29 @@ const routes = [
|
||||
requireAuth: true,
|
||||
title: '企标制修订立项计划流程(责任人确认)'
|
||||
}
|
||||
},
|
||||
/*
|
||||
{
|
||||
path: '/phoneqbzxdlxStep2',
|
||||
name: 'phoneqbzxdlxStep2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbzxdlx/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订立项计划流程(责任人确认)'
|
||||
}
|
||||
},
|
||||
*/
|
||||
// 立项确认
|
||||
{
|
||||
path: '/phoneQbzxdlxStep2',
|
||||
name: 'phoneQbzxdlxStep2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbzxdlx/step2-new.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订立项计划流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/qbzxdlxStep1-2',
|
||||
@@ -2877,6 +3000,28 @@ const routes = [
|
||||
title: '标准解读流程'
|
||||
}
|
||||
},
|
||||
// 会签
|
||||
{
|
||||
path: '/phoneBzqdfbStep2',
|
||||
name: 'phoneBzqdfbStep2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzqdfb/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准清单发布/更新流程'
|
||||
}
|
||||
},
|
||||
// 修订
|
||||
{
|
||||
path: '/phoneBzqdfbStep3',
|
||||
name: 'phoneBzqdfbStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzqdfb/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准清单发布/更新流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBzqdfbStep4',
|
||||
name: 'phoneBzqdfbStep4',
|
||||
@@ -2897,6 +3042,39 @@ const routes = [
|
||||
title: '标准合规评估流程'
|
||||
}
|
||||
},
|
||||
// 项目分发
|
||||
{
|
||||
path: '/phoneBzpgStep3',
|
||||
name: 'phoneBzpgStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzpg/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准合规评估流程'
|
||||
}
|
||||
},
|
||||
// 任务分发
|
||||
{
|
||||
path: '/phoneBzpgStep4',
|
||||
name: 'phoneBzpgStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzpg/step4.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准合规评估流程'
|
||||
}
|
||||
},
|
||||
// 合规评估
|
||||
{
|
||||
path: '/phoneBzpgStep5',
|
||||
name: 'phoneBzpgStep5',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzpg/step5.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准合规评估流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBzpgStep6',
|
||||
name: 'phoneBzpgStep6',
|
||||
@@ -2927,6 +3105,28 @@ const routes = [
|
||||
title: '标准合规评估流程'
|
||||
}
|
||||
},
|
||||
// 任务分发
|
||||
{
|
||||
path: '/phoneXmpgStep2',
|
||||
name: 'phoneXmpgStep2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/xmpg/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '项目合规评估流程'
|
||||
}
|
||||
},
|
||||
// 合规评估
|
||||
{
|
||||
path: '/phoneXmpgStep3',
|
||||
name: 'phoneXmpgStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/xmpg/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '项目合规评估流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneXmpgStep4',
|
||||
name: 'phoneXmpgStep4',
|
||||
@@ -2947,6 +3147,39 @@ const routes = [
|
||||
title: '项目合规评估流程'
|
||||
}
|
||||
},
|
||||
// 清单完善1
|
||||
{
|
||||
path: '/phoneXmqdqrStep2',
|
||||
name: 'phoneXmqdqrStep2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/xmqdqr/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '项目清单确认流程'
|
||||
}
|
||||
},
|
||||
// 清单完善2
|
||||
{
|
||||
path: '/phoneXmqdqrStep3',
|
||||
name: 'phoneXmqdqrStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/xmqdqr/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '项目清单确认流程'
|
||||
}
|
||||
},
|
||||
// 清单发布
|
||||
{
|
||||
path: '/phoneXmqdqrStep4',
|
||||
name: 'phoneXmqdqrStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/xmqdqr/step4.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '项目清单确认流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneXmqdqrStep5',
|
||||
name: 'phoneXmqdqrStep5',
|
||||
@@ -3157,6 +3390,17 @@ const routes = [
|
||||
title: '未符合项整改流程'
|
||||
}
|
||||
},
|
||||
// 审定
|
||||
{
|
||||
path: '/phoneWfhxzgStep4',
|
||||
name: 'phoneWfhxzgStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/wfhxzg/step4.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '未符合项整改流程'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneWfhxzgStep5',
|
||||
name: 'phoneWfhxzgStep5',
|
||||
@@ -3227,6 +3471,29 @@ const routes = [
|
||||
title: '政策征求意见流程'
|
||||
}
|
||||
},
|
||||
// 会签
|
||||
{
|
||||
path: '/phoneBzrkStep3',
|
||||
name: 'phoneBzrkStep3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzrk/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准入库流程'
|
||||
}
|
||||
},
|
||||
// 修订
|
||||
{
|
||||
path: '/phoneBzrkStep4',
|
||||
name: 'phoneBzrkStep4',
|
||||
component: () => import('@/pages/processCenter/pages/phone/bzrk/step4.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '标准入库流程'
|
||||
}
|
||||
},
|
||||
// 批准
|
||||
{
|
||||
path: '/phoneBzrkStep2',
|
||||
name: 'phoneBzrkStep2',
|
||||
@@ -3237,6 +3504,39 @@ const routes = [
|
||||
title: '标准入库流程'
|
||||
}
|
||||
},
|
||||
// 起草(制定/修订)
|
||||
{
|
||||
path: '/phoneQbzxdjhgkStep6',
|
||||
name: 'phoneQbzxdjhgkStep6',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step1.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 企标编写
|
||||
{
|
||||
path: '/phoneBussLibrary2',
|
||||
name: 'phoneBussLibrary2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 企标编写汇总
|
||||
{
|
||||
path: '/phoneBussLibrary3',
|
||||
name: 'phoneBussLibrary3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBussLibrary4',
|
||||
name: 'phoneBussLibrary4',
|
||||
@@ -3247,6 +3547,40 @@ const routes = [
|
||||
title: '企标制修订流程及企业标准库流程'
|
||||
}
|
||||
},
|
||||
// 征求意见
|
||||
{
|
||||
path: '/phoneBussLibrary5',
|
||||
name: 'phoneBussLibrary5',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step5.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 技术委员会评审、评审意见修改
|
||||
{
|
||||
path: '/phoneBussLibrary6',
|
||||
name: 'phoneBussLibrary6',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step6.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 标准化复审
|
||||
{
|
||||
path: '/phoneBussLibrary7',
|
||||
name: 'phoneBussLibrary7',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step7.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 审核
|
||||
{
|
||||
path: '/phoneBussLibrary8',
|
||||
name: 'phoneBussLibrary8',
|
||||
@@ -3254,7 +3588,18 @@ const routes = [
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订流程及企业标准库流程'
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 审核
|
||||
{
|
||||
path: '/phoneBussLibrary9',
|
||||
name: 'phoneBussLibrary9',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step9.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -3277,6 +3622,50 @@ const routes = [
|
||||
title: '企标制修订流程及企业标准库流程'
|
||||
}
|
||||
},
|
||||
// 主起草人培训
|
||||
{
|
||||
path: '/phoneBussLibrary12',
|
||||
name: 'phoneBussLibrary12',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step12.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 发布
|
||||
{
|
||||
path: '/phoneBussLibrary13',
|
||||
name: 'phoneBussLibrary13',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk/step13.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-技术标准'
|
||||
}
|
||||
},
|
||||
// 企标编写
|
||||
{
|
||||
path: '/phoneBussLibraryProduct2',
|
||||
name: 'phoneBussLibraryProduct2',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk-product/step2.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-产品标准'
|
||||
}
|
||||
},
|
||||
// 企标编写汇总
|
||||
{
|
||||
path: '/phoneBussLibraryProduct3',
|
||||
name: 'phoneBussLibraryProduct3',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk-product/step3.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-产品标准'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBussLibraryProduct4',
|
||||
name: 'phoneBussLibraryProduct4',
|
||||
@@ -3287,6 +3676,17 @@ const routes = [
|
||||
title: '企标制修订流程及企业标准库流程'
|
||||
}
|
||||
},
|
||||
// 征求意见
|
||||
{
|
||||
path: '/phoneBussLibraryProduct5',
|
||||
name: 'phoneBussLibraryProduct5',
|
||||
component: () => import('@/pages/processCenter/pages/phone/qbrk-product/step5.vue'),
|
||||
meta: {
|
||||
isBoolean: true,
|
||||
requireAuth: true,
|
||||
title: '企标制修订-产品标准'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/phoneBussLibraryProduct7',
|
||||
name: 'phoneBussLibraryProduct7',
|
||||
|
||||
Reference in New Issue
Block a user