Author SHA1 Message Date
zyn acfa0f7910 feature(体系搜索): 搜索条件新增标准状态 2023-12-05 15:12:10 +08:00
zyn 8d60b79bc5 Merge remote-tracking branch 'origin/dev_20230829_change' into dev_20231201_feizhi 2023-12-05 15:07:12 +08:00
zyn e334e1efc0 Merge remote-tracking branch 'origin/dev_test' into dev_20231201_feizhi 2023-12-05 15:01:00 +08:00
zyn 3bfdb1da01 fix(标准入库流程): 批准节点标准来源 国外改为海外 2023-12-05 14:59:35 +08:00
zhoulingpo a71c02333e 上传弹窗 2023-12-05 14:57:58 +08:00
zyn 6f76035a00 fix(手机端): 国内国外企标体系结构参数修改 2023-12-05 14:48:15 +08:00
zyn 5d5da6502c Merge remote-tracking branch 'origin/dev_20231201_feizhi' into dev_20231201_feizhi 2023-12-05 14:48:01 +08:00
zhoulingpo e2e20e6702 Merge remote-tracking branch 'origin/dev_20230829_change' into dev_20230829_change 2023-12-05 14:46:49 +08:00
zhoulingpo 6fd3f42163 修改分页错误 2023-12-05 14:46:35 +08:00
zhoulingpo c20ea9ccee 修改分页错误 2023-12-05 14:14:58 +08:00
zhoulingpo 9f825677b5 选择标准号/政策号的发布时间不存在导致显示不全问题 2023-12-05 11:46:00 +08:00
zhoulingpo 15e6cb7024 选择标准号/政策号的loading修改 2023-12-05 11:30:41 +08:00
zhoulingpo a72523106b 当autoSize为true时 不改变其他页面数量 2023-12-05 11:24:21 +08:00
zhoulingpo dea3149524 机构管理分页bug 2023-12-05 11:01:49 +08:00
zhoulingpo 2c4c77b56b 标准复审step7回显意见修改 2023-12-05 10:35:09 +08:00
zhoulingpo 78cf8bcefd 未符合项整改 2023-12-05 10:23:56 +08:00
zhoulingpo bd820559a0 标准调研流程修改第三步回显上一步意见 2023-12-05 09:59:39 +08:00
zhoulingpo d3d1346cf0 参与外部标准制修订保存接口 增加意见输入框 2023-12-05 09:53:00 +08:00
wxyclub 9789adce36 fix: 校验企标顺序号的请求修改请求方式 2023-12-05 09:35:41 +08:00
zyn 1de74763b4 Merge remote-tracking branch 'origin/dev_20231201_feizhi' into dev_20231201_feizhi 2023-12-05 09:26:57 +08:00
wxyclub abc6671786 fix: 手机段修改请求方式 2023-12-04 23:39:32 +08:00
zyn a52796f329 fix(手机端): 修改接口 2023-12-04 23:03:08 +08:00
wxyclub 20a5b522fc Merge remote-tracking branch 'origin/dev_20231201_feizhi' into dev_20231201_feizhi 2023-12-04 20:24:55 +08:00
wxyclub 10c9c008ce fix: 计划管控取消和更名流程企标类别改为字符串 2023-12-04 20:24:47 +08:00
gaosong d46d4756ea Merge remote-tracking branch 'origin/dev_20231201_feizhi' into dev_20231201_feizhi 2023-12-04 19:00:12 +08:00
gaosong 25456f18e4 fix: 技术标准-中文名称禁用 2023-12-04 18:59:43 +08:00
zhoulingpo e79bca92fa 修改回显意见bug 2023-12-04 17:53:00 +08:00
zhoulingpo aa8b442b47 修改回显意见bug 2023-12-04 17:34:38 +08:00
zhoulingpo e077bc79b2 修改页码bug 2023-12-04 16:45:52 +08:00
zhoulingpo 6c9d691189 修改页码bug 2023-12-04 16:38:48 +08:00
zhoulingpo f431f8aff6 修改页码bug 2023-12-04 16:38:20 +08:00
zhoulingpo 9a81d89d5e 修改页码bug 2023-12-04 15:58:36 +08:00
zhoulingpo 8c1b8c953f 修改页码bug 2023-12-04 15:46:35 +08:00
zhoulingpo 726686c847 Merge remote-tracking branch 'origin/dev_test' into dev_test 2023-12-04 15:14:58 +08:00
zhoulingpo c71b61ccf1 修改页码bug 2023-12-04 15:13:49 +08:00
zhoulingpo ccd28604cb 修改页码bug 2023-12-04 15:09:51 +08:00
zyn 94137281db Merge branch 'dev_20230829_change' into dev_20231201_feizhi 2023-12-04 09:32:57 +08:00
zyn bec5eab464 Merge branch 'dev_20230829_change' into dev_20231201_feizhi 2023-12-01 18:05:08 +08:00
zyn 1b6b3bf4d8 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
2023-12-01 18:02:01 +08:00
zyn 401f113855 Merge remote-tracking branch 'origin/dev_20231101_TXSS' into dev_20231201_feizhi 2023-12-01 17:59:43 +08:00
zhoulingpo 8c8d2e7fc2 Merge remote-tracking branch 'origin/dev_test' into dev_test 2023-12-01 09:47:48 +08:00
zhoulingpo 099def45e7 修改页码bug 2023-11-30 18:40:25 +08:00
zyn 40ca0d84c8 fix: 转办时未选择人员给提示语 2023-11-30 18:37:30 +08:00
zyn 0cfce63b66 Merge remote-tracking branch 'origin/dev_20231113_phonePage' into dev_20231113_phonePage
# Conflicts:
#	src/pages/processCenter/pages/phone/bzjd/step2.vue
#	src/pages/processCenter/pages/phone/bzjd/step3.vue
2023-11-30 18:33:04 +08:00
zyn 5a837f5d52 fix: 标准解读流程 2023-11-30 18:32:50 +08:00
zyn b92d330adc fix: 标准解读流程 2023-11-30 18:29:23 +08:00
zyn 611bd37a64 fix: 标题错误 2023-11-30 18:27:59 +08:00
mzaxd a8e322c49f feat: 机构管理关联角色 2023-11-22 23:59:26 +08:00
zyn 4ac8bceb58 refactor: 手机端-企标制修订立项计划流程(立项确认) 2023-11-21 14:38:17 +08:00
zyn 97342823e6 refactor: 手机端-企标废止流程(起草人修改标准状态) 2023-11-21 13:48:28 +08:00
zyn 5a36f2ecdc feat:手机端-产品标准(企标编写、企标编写汇总、征求意见) 2023-11-21 11:39:10 +08:00
zhoulingpo 8fc16b03d4 Merge remote-tracking branch 'origin/dev_20231113_phonePage' into dev_20231113_phonePage 2023-11-20 17:33:51 +08:00
zhoulingpo 1c61e2c26b 企标废止--起草人修改标准状态 2023-11-20 17:33:44 +08:00
zyn c32e4dcc16 Merge remote-tracking branch 'origin/dev_20231113_phonePage' into dev_20231113_phonePage 2023-11-20 17:32:56 +08:00
zyn e5023e029a 手机端-企标制修订-技术标准 2023-11-20 17:32:48 +08:00
zyn 679fab752a 手机端-企标制修订-技术标准 2023-11-20 17:31:53 +08:00
zhoulingpo 038b5d60bf Merge remote-tracking branch 'origin/dev_20231113_phonePage' into dev_20231113_phonePage 2023-11-20 16:46:19 +08:00
zhoulingpo b642bed2f1 企标废止--起草人修改标准状态 2023-11-20 16:42:16 +08:00
zhoulingpo 5f66128bcc 增加企标制修订立项计划流程 2023-11-20 15:45:40 +08:00
zyn 392a46397a 手机端-技术标准-起草 2023-11-20 14:14:59 +08:00
zyn 34e89a53d5 手机端-未符合项整改流程-审定 2023-11-17 16:58:41 +08:00
zyn 3c737dda0e 手机端-项目清单确认流程-清单完善(1、2)、清单发布 2023-11-17 15:17:51 +08:00
zyn 3ed0168cff 手机端-项目合规评估流程-项目-任务分发、合规评估 2023-11-17 14:09:38 +08:00
zyn 3a97e3b6b4 手机端-标准合规评估流程-项目分发、任务分发、合规评估 2023-11-17 11:16:01 +08:00
zyn 093f122822 手机端-标准解读流程-选择责任人、解读 2023-11-15 18:01:44 +08:00
zyn f92eb0105c 手机端-标准清单发布/更新流程-会签、修订 2023-11-15 10:10:32 +08:00
zyn 02485b4b6a 手机端-标准征求意见流程-意见反馈、意见汇总报批、意见处理 2023-11-14 17:19:29 +08:00
zyn 7ef5f06a8a 手机端-标准调研流程-调研结果反馈、调研结果处理 2023-11-14 14:40:04 +08:00
zyn d3bef2f4b5 公共组件调整 2023-11-14 14:39:18 +08:00
zyn 3bc531758d 手机端-公共组件调整 2023-11-14 14:00:38 +08:00
zyn 2e2fed24a3 手机端-标准入库流程-布局调整 2023-11-14 14:00:10 +08:00
zyn e01a6e85b4 手机端-标准入库流程-会签-意见 2023-11-14 10:56:16 +08:00
zyn a0f263556d 手机端-标准入库流程-修订 2023-11-14 10:35:09 +08:00
zyn 37168a9bfe 手机端-标准入库流程-会签 2023-11-14 09:20:10 +08:00
zyn fd7cbaabdd 完善公共组件 2023-11-14 09:19:08 +08:00
145 changed files with 16176 additions and 4371 deletions
+3
View File
@@ -396,3 +396,6 @@
border-color: #3986c9
}
.flow-list{
height: 100%;
}
@@ -131,6 +131,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -185,7 +187,7 @@ export default {
replaceLawsNumForm: {
standNumber: '', // 政策编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: '',
quoteIdList: '',
@@ -143,6 +143,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -206,7 +208,7 @@
standNumber: '', // 政策编号
standName: '',
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
quoteIdList: '',
@@ -127,6 +127,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -187,7 +189,7 @@ export default {
replaceLawsNumForm: {
numberName: '', // 政策编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
lawsType: 'FOREIGN',
quoteIdList: '',
@@ -123,6 +123,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -183,7 +185,7 @@
// 代替标准号
replaceLawsNumForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'ALL',
quoteIdList: '',
@@ -126,6 +126,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -192,7 +194,7 @@ export default {
dataSource: '',
standNumber: '', // 标准编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
quoteIdList: '',
@@ -136,6 +136,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size = "replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -200,7 +202,7 @@ export default {
standNumber: '', // 标准编号
standName: '', // 标准编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
quoteIdList: '',
@@ -155,6 +155,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -215,7 +217,7 @@ export default {
dataSource: 'BUSINESS', // 数据来源
numberName: '', // 政策编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
quoteIdList: '',
menuId: '',
@@ -139,6 +139,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -206,7 +208,7 @@ export default {
replaceLawsNumForm: {
standNumber: '', // 政策编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'FOREIGN',
quoteIdList: '',
@@ -152,6 +152,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -211,7 +213,7 @@ export default {
lawsNumber: '', // 政策编号
numberName: '', // 政策名称
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
quoteIdList: '',
menuId: '',
@@ -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"
@@ -27,7 +32,8 @@
</el-button>
</div>
</div>
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件">
<el-dialog width='400px' :visible.sync="fileMadel" title="上传文件" v-dragDialogWidth
:close-on-click-modal="false">
<el-upload
multiple
drag
@@ -85,6 +91,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>
+8 -3
View File
@@ -28,9 +28,14 @@ export default {
this.$emit('pageChange', page)
},
pageSizeChange (pageSize) {
this.userInfo.configContent = pageSize
this.setUserInfo(JSON.stringify(JSON.parse(JSON.stringify(this.userInfo))))
this.$emit('pageSizeChange', pageSize)
if(this.autoSize) {
this.$emit('pageSizeChange', pageSize)
}else{
this.userInfo.configContent = pageSize
this.setUserInfo(JSON.stringify(JSON.parse(JSON.stringify(this.userInfo))))
this.$emit('pageSizeChange', pageSize)
}
// if (this.getTypeFlag === 'CloudRepository') {
// this.userInfo.configContent = pageSize
@@ -248,7 +248,7 @@
:expand-on-click-node="false"
show-checkbox>
</el-tree>
<pagination :page="page1" :pageSize="pageSize1" :total="total2" @pageChange="pageChange2" @pageSizeChange="pageSizeChange2"></pagination>
<pagination :auto-size="true" :page="page1" :pageSize="pageSize1" :total="total2" @pageChange="pageChange2" @pageSizeChange="pageSizeChange2"></pagination>
<div id="roleFormButton" class="demo-drawer-footer">
<el-button
size="mini"
@@ -1000,6 +1000,8 @@
<loading :loading="tableLoading">数据加载中...</loading>
</div>
<pagination
:auto-size="true"
:page-size="pageSize7"
:page="page7"
:total="total7"
@pageChange="pageChange7"
@@ -1898,7 +1900,7 @@ export default {
orderBy: '',
total7: 0,
page7: 1,
pageSize7: this.$store.getters.userInfo.configContent,
pageSize7: 20,
addForm: {
title: '',
content: '',
+7 -4
View File
@@ -652,7 +652,9 @@
align="center"
width="130">
<template slot-scope="scope">
<p v-for="item in scope.row.issueTime.split(',')">{{ item }}</p>
<template v-if="scope.row.issueTime"> <p v-for="item in scope.row.issueTime.split(',')">{{ item }}</p>
</template>
<template v-else></template>
</template>
</el-table-column>
</el-table>
@@ -664,7 +666,7 @@
@pageChange="handlePageChange"
@pageSizeChange="handlePageSizeChange"
></pagination>
<loading :loading="loading">数据获取中</loading>
<loading :loading="dataLoading">数据获取中</loading>
</div>
<div class="demo-drawer-footer">
<el-button
@@ -904,7 +906,7 @@ export default {
lawsType: 'FOREIGN'
}, {
_this: this,
loading: 'loading'
loading: 'dataLoading'
}, res => {
if (res.ok) {
res.data.list.map(item => {
@@ -921,7 +923,7 @@ export default {
standNumber: this.conditionForm.numberName,
standType: this.conditionForm.standType
}, {
_this: this, loading: 'loading'
_this: this, loading: 'dataLoading'
}, res => {
if (res.ok) {
res.data.list.map(item => {
@@ -935,6 +937,7 @@ export default {
item.resType = this.conditionForm.standType === 'FOREIGN' ? 'FOREIGN_STAND' : 'INLAND_STAND'
})
this.tableData = res.data.list
console.log(this.tableData,"tableDatatableDatatableDatatableData")
this.total2 = res.data.count
}
})
@@ -55,10 +55,14 @@ export default {
required: true
}
},
activated () {
this.getData()
},
methods: {
initOpen () {
this.checkedKeys = []
this.textStatusName = '全部'
this.getData()
this.$refs.standardSystemTreeRef.setCheckedKeys([])
this.popupShow = true
},
open () {
this.getData()
this.$refs.standardSystemTreeRef.setCheckedKeys(this.initKeys)
+1 -1
View File
@@ -102,7 +102,7 @@ export default {
if (page) {
this.searchQuery.page = page
}
this.$http._postData(this.url.searchSarBykey, this.searchQuery, config).then(res => {
this.$http._post(this.url.searchSarBykey, this.searchQuery, config).then(res => {
if (res.ok) {
this.total = res.data.count
if (this.searchQuery.page === 1) {
+21 -17
View File
@@ -108,18 +108,20 @@ export default {
standardSystemPopup,
},
data () {
const searchQuery = {
selectIndex: 'stand',
selectValue: '',
standSystem: [],
textStatus: '全部',
selectType: 'titleSearch',
standType: 'INLAND',
page: 1,
pageSize: 20
}
return {
titleName: '',
searchQuery: {
selectIndex: 'stand',
selectValue: '',
standSystem: [],
textStatus: '全部',
selectType: 'titleSearch',
standType: 'INLAND',
page: 1,
pageSize: 20
},
searchQuery,
initSearQuery: { ...searchQuery },
total: 0,
loading: false,
list: [],
@@ -149,8 +151,8 @@ export default {
vm.titleName = '国内外政策库'
break
}
vm.searchQuery.page = 1
vm.$refs.standardSystemPopupRef.popupShow = true
vm.searchQuery = { ...vm.initSearQuery }
vm.$refs.standardSystemPopupRef.initOpen()
vm.$refs.scroll.scrollTo(0, 0)
vm.getData()
}
@@ -215,7 +217,7 @@ export default {
if (page) {
this.searchQuery.page = page
}
this.$http._postData("search/searchCenter/searchSarBykey", this.searchQuery, config).then(res => {
this.$http._post("search/searchCenter/searchSarBykey", this.searchQuery, config).then(res => {
if (res.ok) {
this.total = res.data.count
@@ -240,10 +242,12 @@ export default {
},
getDicTypeListCode () {
this.$http._getData('sys/dictype/getDicTypeListCode').then(res => {
this.dict = {...res.data}
this.setMap(this.dict.WBZTCLASS, 'textStatusMap')
this.setMap(this.dict.lawsTextState, 'lawsMap')
this.setMap(this.dict.SARPROPERTY, 'natureMap')
if (res.ok) {
this.dict = {...res.data}
this.setMap(this.dict.WBZTCLASS, 'textStatusMap')
this.setMap(this.dict.lawsTextState, 'lawsMap')
this.setMap(this.dict.SARPROPERTY, 'natureMap')
}
})
},
setMap(data, key) {
@@ -137,7 +137,7 @@
>
</el-table-column>
</el-table>
<pagination style="position: relative" :page="searchForm.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<pagination style="position: relative" :auto-size="true" :page-size="searchForm.pageSize" :page="searchForm.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<loading :loading="loading">数据获取中...</loading>
</div>
<div slot="footer">
@@ -163,7 +163,10 @@ export default {
]
return {
show: false,
searchForm: {},
searchForm: {
pageSize:20,
page:1
},
api: {
page: 'lawss/sarLawsTopic/page'
},
@@ -177,7 +180,7 @@ export default {
},
methods: {
async getData () {
this.searchForm.pageSize = this.searchForm.pageSize || this.$store.getters.userInfo.configContent
this.searchForm.pageSize = this.searchForm.pageSize
this.searchForm.page = this.searchForm.page || 1
let params = { ...this.searchForm }
const res = await this.$http._getData(this.api.page, params, {_this:this,loading: 'loading'})
@@ -187,7 +190,10 @@ export default {
}
},
open () {
this.$set(this, 'searchForm', {})
this.$set(this, 'searchForm', {
pageSize:20,
page:1
})
this.getData()
this.show = true
},
@@ -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;
@@ -536,7 +536,7 @@
// this.form.dyhz = data.form ? data.form.dyhz : ''
this.newDocUser = data.docUser
// this.form.fileList = data.form ? data.form.fileList : []
this.commentText3 = data.commentText3 || data.commentText || ''
this.commentText3 = data.commentText3 || ''
this.form.fileName = data.form? data.form.fileName : data.fileName || ''
this.form.fileId = data.form ? data.form.fileId : data.fileId || ''
this.form.dyhz = data.form ? data.form.dyhz : data.dyhz || ''
@@ -454,7 +454,8 @@ export default {
if (this.rh_pageData.fillFile !== undefined) {
this.fillFileList = this.rh_pageData.fillFile
}
this.commentStep3 = JSON.parse(JSON.stringify(item)).commentStep3
this.commentStep3 = JSON.parse(JSON.stringify(item)).commentStep3 || ''
this.rh_pageData.fillPeopleId = this.$store.getters.userInfo.userId
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.infoSourcesLength = this.rh_pageData.infoSources.length
@@ -547,7 +547,7 @@ export default {
this.$nextTick(() => {
this.rh_pageData = JSON.parse(JSON.stringify(item)).rh_pageData
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.commentStep5 = JSON.parse(JSON.stringify(item)).commentStep5
this.commentStep5 = JSON.parse(JSON.stringify(item)).commentStep5 || ''
this.infoSourcesLength = this.rh_pageData.infoSources.length
// this.rh_pageData.comityFileNum = this.fileTextList
})
@@ -381,7 +381,7 @@ export default {
this.ch_pageData.fillPeopleId = this.$store.getters.userInfo.userId
this.ch_pageData.fillPeople = this.$store.getters.userInfo.userName + '(' + this.$store.getters.userInfo.userId + ')'
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.commentStep3 = JSON.parse(JSON.stringify(item)).commentStep3
this.commentStep3 = JSON.parse(JSON.stringify(item)).commentStep3 || ''
// this.rh_pageData.comityFileNum = this.fileTextList
})
},
@@ -410,7 +410,7 @@ export default {
this.ch_pageData = JSON.parse(JSON.stringify(item)).ch_pageData
this.uploadFileLength = this.ch_pageData.fileTextList.length
this.roleForm = JSON.parse(JSON.stringify(item)).roleList
this.commentStep5 = JSON.parse(JSON.stringify(item)).commentStep5
this.commentStep5 = JSON.parse(JSON.stringify(item)).commentStep5 || ''
// this.ch_pageData.comityFileNum = this.fileTextList
})
},
@@ -371,6 +371,7 @@
</div>
</div>
<pagination
:auto-size="true"
:page="page"
:pageSize="pageSize"
:total="total"
@@ -494,6 +495,7 @@
</div>
</div>
<pagination
:auto-size="true"
:page="pageNo"
:pageSize="pageSizeNo"
:total="totalNo"
@@ -646,10 +648,10 @@ export default {
dataList: [],
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
pageNo: 1,
totalNo: 0,
pageSizeNo: this.$store.getters.userInfo.configContent,
pageSizeNo: 20,
product: new Map(),
hisListForm:{},
listForm: {
@@ -538,6 +538,7 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page="page"
:pageSize="pageSize"
:total="total"
@@ -690,6 +691,7 @@
</div>
</div>
<pagination
:auto-size="true"
:page="pageNo"
:pageSize="pageSizeNo"
:total="totalNo"
@@ -847,10 +849,10 @@ export default {
bringData: [],
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
pageNo: 1,
totalNo: 0,
pageSizeNo: this.$store.getters.userInfo.configContent,
pageSizeNo: 20,
listForm: {
listType: "", //区分是哪个清单
listName: "", //清单名称
@@ -1329,6 +1329,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -1503,6 +1505,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -1655,7 +1659,7 @@
verifySarStandard: false,
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -1693,7 +1697,7 @@
standNumber: '', // 标准编号
standName: '', // 标准名称
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
quoteIdList: '',
@@ -3075,7 +3079,7 @@
this.replaceLawsNumForm = {
standNumber: '', // 标准编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
quoteIdList: '',
@@ -3101,7 +3105,7 @@
standName: '',
standNumber: '',
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
}
this.replaceLawsNumModel = true
@@ -27,7 +27,7 @@
<el-form-item label="标准来源" prop="standInData" class="add-form-item form-item-disabled">
<el-radio-group v-model="form.standInData" disabled>
<el-radio label="0">国内标准入库</el-radio>
<el-radio label="1">外标准入库</el-radio>
<el-radio label="1">外标准入库</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="标准类别" prop="standSort" class="add-form-item form-item-disabled">
@@ -192,6 +192,10 @@
</el-table-column>
</el-table>
</div>
<ReceiptDescription
title="回执说明"
v-model="commentStep"
></ReceiptDescription>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -259,6 +263,7 @@
</el-table>
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<!-- 添加标准抽屉-->
<el-drawer
@@ -329,7 +334,11 @@
width="55"
align="center">
</el-table-column>
<el-table-column type="index" width="55" label="序号" align="center"/>
<el-table-column type="index" width="55" label="序号" align="center">
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (pageNo - 1) * pageSizeNo }}
</template>
</el-table-column>
<el-table-column
prop="code"
align="center"
@@ -408,17 +417,21 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessTitle from "process/components/ProcessTitle";
import ProcessFooter from "process/components/ProcessFooter";
import { inboundLiaisonDetail } from "api/process";
import { inboundLiaisonDetail ,saveTaskForPub } from "api/process";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription'
export default {
name: "cywbbzzxdStep3",
components: {
ReceiptDescription,
ProcessHeader,
ProcessTitle,
ProcessFooter
},
data() {
return {
taskIds:'',
commentStep:'',
//切换tab
active: "1",
foldFormFlag: true,
@@ -507,6 +520,7 @@ export default {
};
},
mounted() {
this.taskIds=this.$route.query.taskIds
this.getData();
this.processTable();
this.getStandData()
@@ -533,6 +547,7 @@ export default {
this.$nextTick(() => {
if(item.wbbzform !== undefined){
this.wbbzform = item.wbbzform
this.commentStep = JSON.parse(JSON.stringify(item)).commentStep || ''
this.participantsData = item.participantsData
}else{
return
@@ -638,6 +653,23 @@ export default {
},
handleSave() {
this.saveLoading = true
this.isSubmit = true
let _formData = new FormData()
_formData.append('taskIds', this.taskIds)
_formData.append('json', JSON.stringify({
wbbzform: this.wbbzform,
participantsData: this.participantsData,
commentStep: this.commentStep
}))
saveTaskForPub(_formData).then(res => {
this.$message.success('保存成功')
this.bpnId = res.result
}).finally(() => {
this.isSubmit = false
this.saveLoading = false
})
},
//不备案
handleRecord() {
@@ -668,7 +700,7 @@ export default {
this.$message.warning("请完善项目信息");
}
});
this.wbbzform.commentText = this.commentText;
this.wbbzform.commentText = this.commentStep;
let json = {
participantsData: this.participantsData,
wbbzform: this.wbbzform,
@@ -702,7 +734,7 @@ export default {
projectNumber: this.projectNumber,
projectName: this.projectName,
expenses: this.expenses,
costBudget: this.costBudget
costBudget: this.costBudget,
};
this.participantsData.push(list);
},
@@ -723,6 +755,9 @@ export default {
</script>
<style lang="less" scoped>
.demo-drawer-footer{
height:6% !important;
}
.wbbz-step1 {
height: 100%;
position: relative;
@@ -152,6 +152,10 @@
</el-table-column>
</el-table>
</div>
<ReceiptDescription
title="回执说明"
v-model="commentText"
></ReceiptDescription>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -249,17 +253,19 @@ import ProcessHeader from "../../components/ProcessHeader";
import ProcessTitle from "process/components/ProcessTitle";
import ProcessFooter from "process/components/ProcessFooter";
import { changeAssigneeNew, inboundLiaisonDetail } from "api/process";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription'
export default {
name: "cywbbzzxdStep4",
components: {
ProcessHeader,
ProcessTitle,
ProcessFooter
ProcessFooter,
ReceiptDescription
},
data() {
return {
//切换tab
commentText:'',
active: "1",
foldFormFlag: true,
isSubmit: false,
@@ -152,6 +152,10 @@
</el-table-column>
</el-table>
</div>
<ReceiptDescription
title="回执说明"
v-model="commentText"
></ReceiptDescription>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -249,17 +253,19 @@ import ProcessHeader from "../../components/ProcessHeader";
import ProcessTitle from "process/components/ProcessTitle";
import ProcessFooter from "process/components/ProcessFooter";
import { changeAssigneeNew, inboundLiaisonDetail } from "api/process";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription'
export default {
name: "cywbbzzxdStep5",
components: {
ProcessHeader,
ProcessTitle,
ProcessFooter
ProcessFooter,
ReceiptDescription
},
data() {
return {
//切换tab
commentText:'',
//切换tab,
active: "1",
foldFormFlag: true,
isSubmit: false,
@@ -152,6 +152,10 @@
</el-table-column>
</el-table>
</div>
<ReceiptDescription
title="回执说明"
v-model="commentText"
></ReceiptDescription>
</div>
<div class="content" v-show="active === '3'">
<div class="flow-list">
@@ -249,16 +253,18 @@ import ProcessHeader from "../../components/ProcessHeader";
import ProcessTitle from "process/components/ProcessTitle";
import ProcessFooter from "process/components/ProcessFooter";
import { changeAssigneeNew, inboundLiaisonDetail } from "api/process";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription'
export default {
name: "cywbbzzxdStep6",
components: {
ProcessHeader,
ProcessTitle,
ProcessFooter
ProcessFooter,
ReceiptDescription
},
data() {
return {
commentText:'',
//切换tab
active: "1",
foldFormFlag: true,
@@ -80,7 +80,11 @@
label="序号"
width="55"
align="center"
></el-table-column>
>
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (SearchForm.page - 1) * SearchForm.pageSize }}
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
label="政策文号"
@@ -125,6 +129,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="SearchForm.pageSize"
:page="SearchForm.page"
:total="SearchForm.total"
@pageChange="pageChange"
@@ -165,7 +171,7 @@ export default {
standardDrawer: false,
SearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
// standType: 'INLAND',
lawsNumber: '',
@@ -538,6 +538,8 @@ export default {
this.qbfsForm = JSON.parse(JSON.stringify(json))
this.qbfsForm.WJSCRYBUSS= this.$store.getters.userInfo.userId
this.qbfsForm.WJSCRYBUSSName= this.$store.getters.userInfo.userName
this.qbfsForm.commentText = ''
this.commentText = ''
this.qbfsForm['id'] = bringData.id
this.FBGBUSSFileList=this.assemble(this.qbfsForm.FBGBUSS,this.qbfsForm.FBGBUSSName);
this.BZSMBUSSFileList=this.assemble(this.qbfsForm.BZSMBUSS,this.qbfsForm.BZSMBUSSName);
@@ -1904,7 +1904,7 @@ export default {
// this.QTWJBUSSFileList=this.assemble(this.form.QTWJBUSS,this.form.QTWJBUSSName);
// this.GLWJBUSSFileList=this.assemble(this.form.GLWJBUSS,this.form.GLWJBUSSName);
// this.roleForm = mes.roleForm
this.commentText = mes.commentText
this.commentText = mes.commentTexts || ''
this.ccc = false
})
}else {
@@ -2992,7 +2992,7 @@ export default {
taskInfo: '技术标准起草',
form: this.form,
roleForm: this.roleForm,
commentText: this.commentText
commentTexts: this.commentText
}))
saveTaskFirst(_formData).then(res => {
this.saveLoading = false
@@ -2438,7 +2438,7 @@
},
ifStandCodebyStandName(standCode,standName,taskIds,standNum,standSort){
return new Promise((resolve, reject)=>{
this.$http._postData('lawss/sarBussionessStand/ifStandCodebyStandName',{standCode,standName,taskIds,standNum,standSort})
this.$http._post('lawss/sarBussionessStand/ifStandCodebyStandName',{standCode,standName,taskIds,standNum,standSort})
.then(res => resolve(res))
.catch(e => {
throw new Error(e)
@@ -19,6 +19,7 @@
</el-form-item>
<el-form-item label="中文名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.standName"
placeholder="请输入中文名称"
clearable
@@ -37,6 +37,7 @@
</el-form-item>
<el-form-item label="中文名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
disabled
v-model="form.standName"
placeholder="请输入中文名称"
clearable
@@ -40,7 +40,7 @@
</el-form-item>
<el-form-item label="中文名称" prop="standName" class="add-form-item form-item-disabled">
<el-input
:disabled="planDisabled || disabledXX"
disabled
v-model="form.standName"
placeholder="请先选择计划带入企标名称"
clearable
@@ -933,6 +933,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -1286,6 +1288,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="tableCount"
@pageChange="handleStandardPageChange"
@@ -1565,7 +1569,7 @@
dataSource: '',
standNumber: '', // 标准编号
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -269,6 +269,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -424,6 +426,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -595,7 +599,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -636,7 +640,7 @@
dataSource: '',
standNumber: '', //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -269,6 +269,9 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -2572,7 +2572,7 @@
},
ifStandCodebyStandName(standCode,standName,taskIds,standNum,standSort){
return new Promise((resolve, reject)=>{
this.$http._postData('lawss/sarBussionessStand/ifStandCodebyStandName',{standCode,standName,taskIds,standNum,standSort})
this.$http._post('lawss/sarBussionessStand/ifStandCodebyStandName',{standCode,standName,taskIds,standNum,standSort})
.then(res => resolve(res))
.catch(e => {
throw new Error(e)
@@ -394,6 +394,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -548,6 +550,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -720,7 +724,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -761,7 +765,7 @@
dataSource: '',
standNumber: '', //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -326,6 +326,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -486,6 +488,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -700,7 +704,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize:20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -741,7 +745,7 @@
dataSource: '',
standNumber: '', //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -272,6 +272,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -426,6 +428,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -596,7 +600,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -637,7 +641,7 @@
dataSource: '',
standNumber: '', //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -27,6 +27,12 @@
show-summary
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},form.evaluationData))"
style="width: 100%">
<el-table-column
type="index"
width="55"
label="序号"
align="center">
</el-table-column>
<el-table-column label="企业标准编写质量评价表" align="center" label-class-name="column1">
<el-table-column
label="标准类别"
@@ -531,6 +531,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -691,6 +693,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -935,7 +939,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -976,7 +980,7 @@
dataSource: '',
standNumber: '', //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -380,6 +380,8 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
<!--分页-->
<pagination
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
style="position: relative;"
:page="replacePage"
:total="replaceTotal"
@@ -540,6 +542,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -419,6 +419,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -611,7 +613,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -382,6 +382,8 @@
<!--分页-->
<pagination
style="position: relative;"
:auto-size="true"
:page-size="replaceLawsNumForm.pageSize"
:page="replacePage"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@@ -536,6 +538,8 @@
</el-table>
</div>
<pagination
:auto-size="true"
:page-size="standardSearchForm.pageSize"
:page="standardSearchForm.page"
:total="standardSearchForm.total"
@pageChange="handleStandardPageChange"
@@ -729,7 +733,7 @@
},
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'INLAND',
standSort: '',
@@ -770,7 +774,7 @@
dataSource: '',
standNumber: '', //
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
total: 0,
standType: 'BUSINESS',
quoteIdList: '',
@@ -23,7 +23,7 @@
></el-input>
</el-form-item>
<el-form-item prop="bussSort" label="企标类别" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-select :disabled="disabledXX" disabled v-model="qbfsForm.bussSort" multiple filterable placeholder="请选择企标类别" style="width: 100%;">
<el-select disabled v-model="qbfsForm.bussSort" filterable placeholder="请选择企标类别" style="width: 100%;">
<el-option
v-for="(item, index) in standSortOptions"
:key="index"
@@ -296,7 +296,7 @@
</el-table-column>
</el-table>
</div>
<pagination :page="QYBZform.page" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
<pagination :auto-size="true" :page="QYBZform.page" :page-size="QYBZform.pageSize" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
<loading :loading="QYBZShow">数据加载中</loading>
</div>
</div>
@@ -498,7 +498,7 @@ export default {
},
total: 0,
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
QYBZmodal: false,
TXJGmodal: false,
modalshowflagZRBM: false,
@@ -514,7 +514,7 @@ export default {
standSystemOptions: [],
QYBZform: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
validFlag: '0',
userId: this.$store.getters.userInfo.userId,
standCode: '',
@@ -349,6 +349,7 @@
<loading :loading="replaceLoading">{{$t('m.dataAcquisition')}}</loading>
</div>
<pagination
:auto-size="true"
:page="page"
:pageSize="pageSize"
:total="total"
@@ -457,7 +458,7 @@
</el-table-column>
</el-table>
</div>
<pagination :page="QYBZform.page" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
<pagination :auto-size="true" :page-size="QYBZform.pageSize" :page="QYBZform.page" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
<loading :loading="QYBZShow">数据加载中</loading>
</div>
</div>
@@ -650,7 +651,7 @@ export default {
standSystemOptions: [],
QYBZform: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
validFlag: '0',
userId: this.$store.getters.userInfo.userId,
standCode: '',
@@ -674,7 +675,7 @@ export default {
showType: '',
page: 1,
total: 0,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
selectList: [],
qbfsFormRules: {
bussSort: [
@@ -23,7 +23,7 @@
></el-input>
</el-form-item>
<el-form-item prop="bussSort" label="企标类别" style="width: 100%; margin-right:10px" class="add-form-item form-item-disabled">
<el-select :disabled="disabledXX" v-model="qbfsForm.bussSort" multiple filterable placeholder="请选择企标类别" style="width: 100%;">
<el-select disabled v-model="qbfsForm.bussSort" filterable placeholder="请选择企标类别" style="width: 100%;">
<el-option
v-for="(item, index) in standSortOptions"
:key="index"
@@ -432,7 +432,7 @@
</el-table-column>
</el-table>
</div>
<pagination :page="QYBZform.page" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
<pagination :auto-size="true" :page-size="QYBZform.pageSize" :page="QYBZform.page" :total="QYBZform.total" @pageChange="QYBZpageChange" @pageSizeChange="QYBZpageSizeChange"></pagination>
<loading :loading="QYBZShow">数据加载中</loading>
</div>
</div>
@@ -679,7 +679,7 @@ export default {
standSystemOptions: [],
QYBZform: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
pageSize: 20,
validFlag: '0',
userId: this.$store.getters.userInfo.userId,
standCode: '',
@@ -302,7 +302,7 @@ export default {
this.passInfo = JSON.parse(JSON.stringify(item)).passInfo
}
this.dataList = JSON.parse(JSON.stringify(item)).standardInfoList
this.commentInfo = JSON.parse(JSON.stringify(item)).commentInfo
this.commentInfo = JSON.parse(JSON.stringify(item)).commentInfo || ''
})
},
//
@@ -290,7 +290,7 @@ export default {
if (item.responUserList !== undefined) {
let listJSON = JSON.parse(JSON.stringify(item.responUserList))
this.dataList = listJSON
this.commentInput = JSON.parse(JSON.stringify(item)).commentInput
this.commentInput = JSON.parse(JSON.stringify(item)).commentInput || ''
} else {
if (item.dockUserList !== undefined) {
let listJSON = JSON.parse(JSON.stringify(item.dockUserList))
@@ -284,16 +284,6 @@
</template>
</el-table-column>
</el-table>
<el-pagination
layout="total,sizes, prev, pager, next"
background
:page-sizes="[20, 40, 60]"
:total="total"
:page-size="pageSize"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
<ReceiptDescription
title="回执说明"
v-model="commentText"
@@ -179,16 +179,6 @@
label="责任人">
</el-table-column>
</el-table>
<el-pagination
layout="total,sizes, prev, pager, next"
background
:page-sizes="[20, 40, 60]"
:total="total"
:page-size="pageSize"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
<ReceiptDescription
title="审批意见"
v-model="commentText"
@@ -178,16 +178,7 @@
label="责任人">
</el-table-column>
</el-table>
<el-pagination
layout="total,sizes, prev, pager, next"
background
:page-sizes="[20, 40, 60]"
:total="total"
:page-size="pageSize"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
</div>
<div>
<el-collapse accordion v-model="activeNames">
@@ -179,16 +179,6 @@
label="责任人">
</el-table-column>
</el-table>
<el-pagination
layout="total,sizes, prev, pager, next"
background
:page-sizes="[20, 40, 60]"
:total="total"
:page-size="pageSize"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
<ReceiptDescription
title="审批意见"
v-model="commentText"
@@ -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="关联模块&#45;&#45;乘用车VPPS编码"-->
<!-- prop="cycvppsbm"-->
<!-- v-model="form.cycvppsbm"-->
<!-- :disabled="disabled"-->
<!--&gt;</TextareaFormItem>-->
<!--<TextareaFormItem-->
<!-- label="关联模块&#45;&#45;卡车VPPS编码"-->
<!-- prop="kccvppsbm"-->
<!-- v-model="form.kccvppsbm"-->
<!-- :disabled="disabled"-->
<!--&gt;</TextareaFormItem>-->
<!--<TextareaFormItem-->
<!-- label="关联模块&#45;&#45;乘用车vpps中文名称"-->
<!-- prop="cycvppscn"-->
<!-- v-model="form.cycvppscn"-->
<!-- :disabled="disabled"-->
<!--&gt;</TextareaFormItem>-->
<!--<TextareaFormItem-->
<!-- label="关联模块&#45;&#45;卡车vpps中文名称"-->
<!-- prop="kccvppscn"-->
<!-- v-model="form.kccvppscn"-->
<!-- :disabled="disabled"-->
<!--&gt;</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>

Some files were not shown because too many files have changed in this diff Show More