Merge branch 'dev_20231201_feizhi' into 'master'

Dev 20231201 feizhi

See merge request laws-foton-slrs/foton-laws-system-front!129
This commit is contained in:
高嵩
2023-12-15 09:54:12 +00:00
6 changed files with 416 additions and 416 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ module.exports = {
},
},
],
'vue/singleline-html-element-content-newline': 'error', // 单行元素内容之前和之后需要换行
'vue/singleline-html-element-content-newline': 'off', // 单行元素内容之前和之后需要换行
'vue/multiline-html-element-content-newline': 'error', // 多行元素内容之前和之后需要换行
'vue/html-indent': ['error', 2], // 缩进 2 个空格
'vue/html-closing-bracket-newline': ['error', { // 强制或禁止在自闭合标签之前换行
@@ -10,31 +10,31 @@
</div>
<div class="content">
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
>
<template v-if="active === '1'">
<div>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">过程稿件</template>
</ProcessTitle>
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
<ProcessFile :form="form" :disabled="disabled" />
<ProcessTitle>
<template slot="title">适用范围</template>
</ProcessTitle>
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
<Range :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">关联信息</template>
</ProcessTitle>
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
<Info :form="form" :dict="dict" :disabled="disabled" />
<!--<ProcessTitle>-->
<!-- <template slot="title">文件汇总</template>-->
<!--</ProcessTitle>-->
@@ -42,97 +42,95 @@
<ProcessTitle>
<template slot="title">意见信息</template>
</ProcessTitle>
<TermInfo :data="form.infoList"></TermInfo>
<TermInfo :data="form.infoList" />
<div class="prc-content-border">
<UploadFormItem
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
></UploadFormItem>
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
/>
</div>
<ProcessTitle>
<template slot="title">培训文件</template>
</ProcessTitle>
<div class="prc-content-border">
<UploadFormItem
label="培训文件"
prop="madelSubName"
:ids.sync="form.madelSub"
:names.sync="form.madelSubName"
view
:disabled="disabled"
></UploadFormItem>
label="培训文件"
prop="madelSubName"
:ids.sync="form.madelSub"
:names.sync="form.madelSubName"
view
:disabled="disabled"
/>
</div>
</div>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明" />
</template>
<template v-if="active === '2'">
<RoleInfo :roleForm="roleForm"></RoleInfo>
<RoleInfo :role-form="roleForm" />
</template>
<template v-if="active === '3'">
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
<PhoneHistortTable :prc-num="this.$route.query.prcNum" />
</template>
<template v-if="active === '4'">
<div style="height: 100%">
<ProcessTitle>
<template slot="title">条款信息</template>
</ProcessTitle>
<TermInfo :data="form.modelData"></TermInfo>
<TermInfo :data="form.modelData" />
</div>
</template>
<template v-if="active === '5'">
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
<Score :form="form" :stand-sort="form.standSort" :stand-name="form.standName" />
</template>
</el-form>
</div>
<ProcessFooter
show-submit2
show-transfer
:submitLoading="footerLoading"
@submit2="handle2"
@transfer="handleTransfer"
@over2="handle1"
>
</ProcessFooter>
show-submit2
show-transfer
:submit-loading="footerLoading"
@submit2="handle2"
@transfer="handleTransfer"
@over2="handle2"
/>
<!-- 福田全公司选人解决方案 -->
<phoneRoleTree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
:nodeList="nodeList"
></phoneRoleTree>
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
:node-list="nodeList"
@checkedRole="checkedRole"
/>
</div>
</template>
<script>
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import {getEvaluationIndex} from "api/businessApi";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from 'api/process'
import { getEvaluationIndex } from 'api/businessApi';
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
import Basic from "./components/Basic";
import ProcessFile from "./components/ProcessFile";
import Range from "./components/Range";
import Info from "./components/Info";
import RoleInfo from "./components/RoleInfo";
import FileSummary from "./components/FileSummary";
import TermInfo from "./components/TermInfo";
import Score from "./components/Score";
import Basic from './components/Basic';
import ProcessFile from './components/ProcessFile';
import Range from './components/Range';
import Info from './components/Info';
import RoleInfo from './components/RoleInfo';
import FileSummary from './components/FileSummary';
import TermInfo from './components/TermInfo';
import Score from './components/Score';
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
export default {
name: "step2",
name: 'Step2',
components: {
ProcessHeaderPhone,
PhoneHistortTable,
@@ -169,12 +167,12 @@ export default {
nodeList: []
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
handleTabs(name) {
handleTabs (name) {
this.active = name;
},
getData () {
@@ -219,7 +217,7 @@ export default {
this.handleSubmit()
},
handleSubmit() {
handleSubmit () {
this.addRule()
this.$refs['form'].validate((valid) => {
if (valid) {
@@ -227,20 +225,20 @@ export default {
const json = JSON.stringify(this.form);
const query = {
taskIds: this.$route.query.taskIds,
userId : this.$route.query.userId,
userId: this.$route.query.userId,
json: json
}
this.$http._post('lawss/activiti/completeTask', query).then(res => {
if (res.success) {
if(this.form.approvalOpinion === 1){
this.$message.warning("驳回成功")
if(this.form.approvalOpinion === 1) {
this.$message.warning('驳回成功')
}else{
this.$message.success('操作成功')
}
this.footerLoading = false
// this.$router.go(-2)
this.$close()
this.$close()
} else {
this.footerLoading = false
this.$message.error(res.message)
@@ -251,7 +249,7 @@ this.$close()
}
})
},
addRule() {
addRule () {
if (this.form.approvalOpinion === 0) {
this.rules.commentText = [
{ required: false }
@@ -282,7 +280,7 @@ this.$close()
this.$message.success('调整成功')
setTimeout(() => {
// this.$router.go(-2)
this.$close()
this.$close()
}, 100)
} else {
this.$message.warning(res.message)
@@ -296,14 +294,14 @@ this.$close()
this.dict = { ...res.data }
})
},
getEvaluation() {
getEvaluation () {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
res.data.forEach(item => {
item.score = ''
item.scoreMin = ''
item.reason = ''
@@ -10,31 +10,31 @@
</div>
<div class="content">
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
>
<template v-if="active === '1'">
<div>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">过程稿件</template>
</ProcessTitle>
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
<ProcessFile :form="form" :disabled="disabled" />
<ProcessTitle>
<template slot="title">适用范围</template>
</ProcessTitle>
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
<Range :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">关联信息</template>
</ProcessTitle>
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
<Info :form="form" :dict="dict" :disabled="disabled" />
<!--<ProcessTitle>-->
<!-- <template slot="title">文件汇总</template>-->
<!--</ProcessTitle>-->
@@ -42,97 +42,95 @@
<ProcessTitle>
<template slot="title">意见信息</template>
</ProcessTitle>
<TermInfo :data="form.infoList"></TermInfo>
<TermInfo :data="form.infoList" />
<div class="prc-content-border">
<UploadFormItem
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
></UploadFormItem>
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
/>
</div>
<ProcessTitle>
<template slot="title">培训文件</template>
</ProcessTitle>
<div class="prc-content-border">
<UploadFormItem
label="培训文件"
prop="madelSubName"
:ids.sync="form.madelSub"
:names.sync="form.madelSubName"
view
:disabled="disabled"
></UploadFormItem>
label="培训文件"
prop="madelSubName"
:ids.sync="form.madelSub"
:names.sync="form.madelSubName"
view
:disabled="disabled"
/>
</div>
</div>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明" />
</template>
<template v-if="active === '2'">
<RoleInfo :roleForm="roleForm"></RoleInfo>
<RoleInfo :role-form="roleForm" />
</template>
<template v-if="active === '3'">
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
<PhoneHistortTable :prc-num="this.$route.query.prcNum" />
</template>
<template v-if="active === '4'">
<div style="height: 100%">
<ProcessTitle>
<template slot="title">条款信息</template>
</ProcessTitle>
<TermInfo :data="form.modelData"></TermInfo>
<TermInfo :data="form.modelData" />
</div>
</template>
<template v-if="active === '5'">
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
<Score :form="form" :stand-sort="form.standSort" :stand-name="form.standName" />
</template>
</el-form>
</div>
<ProcessFooter
show-submit2
show-transfer
:submitLoading="footerLoading"
@submit2="handle2"
@transfer="handleTransfer"
@over2="handle1"
>
</ProcessFooter>
show-submit2
show-transfer
:submit-loading="footerLoading"
@submit2="handle2"
@transfer="handleTransfer"
@over2="handle2"
/>
<!-- 福田全公司选人解决方案 -->
<phoneRoleTree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
:nodeList="nodeList"
></phoneRoleTree>
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
:node-list="nodeList"
@checkedRole="checkedRole"
/>
</div>
</template>
<script>
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import {getEvaluationIndex} from "api/businessApi";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from 'api/process'
import { getEvaluationIndex } from 'api/businessApi';
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
import Basic from "./components/Basic";
import ProcessFile from "./components/ProcessFile";
import Range from "./components/Range";
import Info from "./components/Info";
import RoleInfo from "./components/RoleInfo";
import FileSummary from "./components/FileSummary";
import TermInfo from "./components/TermInfo";
import Score from "./components/Score";
import Basic from './components/Basic';
import ProcessFile from './components/ProcessFile';
import Range from './components/Range';
import Info from './components/Info';
import RoleInfo from './components/RoleInfo';
import FileSummary from './components/FileSummary';
import TermInfo from './components/TermInfo';
import Score from './components/Score';
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
export default {
name: "step2",
name: 'Step2',
components: {
ProcessHeaderPhone,
PhoneHistortTable,
@@ -169,12 +167,12 @@ export default {
nodeList: []
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
handleTabs(name) {
handleTabs (name) {
this.active = name;
},
getData () {
@@ -202,112 +200,109 @@ export default {
})
},
getStandInfoByReviseStatus() {
let date = new Date();
let year = date.getFullYear();
if(this.form.reviseStatus === '2'){
let index1 = this.form.DTQBBHBUSS.split(',')[0].lastIndexOf('-') // 7
getStandInfoByReviseStatus () {
const date = new Date();
const year = date.getFullYear();
if(this.form.reviseStatus === '2') {
const index1 = this.form.DTQBBHBUSS.split(',')[0].lastIndexOf('-') // 7
this.standYear = this.form.DTQBBHBUSS.split(',')[0].slice(index1 + 1) // 2023 x
if(this.standYear.indexOf(' ')>0){
if(this.standYear.indexOf(' ') > 0) {
const _index = this.standYear.indexOf(' ')
this.standYear = this.standYear.slice(0,_index)
}else if(this.standYear.indexOf(' X')>0){
this.standYear = this.standYear.slice(0, _index)
}else if(this.standYear.indexOf(' X') > 0) {
const _index = this.standYear.indexOf(' X') // 4
this.standYear = this.standYear.slice(0,_index) // 2023
this.standYear = this.standYear.slice(0, _index) // 2023
}
this.standSort = this.form.standSort
this.form.standYear = year
if((this.standYear+'').slice(0,4) != year){
if((`${ this.standYear }`).slice(0, 4) != year) {
this.form.standYear = year
}else{
if((this.standYear+'').slice(0,4) == (this.form.standYear + '').slice(0,4)){
this.form.standYear = this.standYear + ' X'
if((`${ this.standYear }`).slice(0, 4) == (`${ this.form.standYear }`).slice(0, 4)) {
this.form.standYear = `${ this.standYear } X`
}else{
this.form.standYear = this.standYear
}
}
if(this.form.standYear == this.standYear){
this.form.standYear = this.form.standYear + ' X'
if(this.form.standYear == this.standYear) {
this.form.standYear = `${ this.form.standYear } X`
}
if (this.form.standNum.includes(',')) {
// 多个代替企标编号 调接口获取企标顺序号
this.$http.get('lawss/sarBussionessStand/getStandInfoByReviseStatus',{reviseStatus:'buss1_'+this.form.reviseStatus,standSort:this.form.standSort,taskId: this.taskIds}, {
this.$http.get('lawss/sarBussionessStand/getStandInfoByReviseStatus', { reviseStatus: `buss1_${ this.form.reviseStatus }`, standSort: this.form.standSort, taskId: this.taskIds }, {
_this: this
}, res => {
this.form.standNum = res.data + ''
this.form.standNum = this.form.standNum.replace(/^0+/,"")
this.form.standNum = this.form.standNum.padStart(3,'0')
this.form.standNum = `${ res.data }`
this.form.standNum = this.form.standNum.replace(/^0+/, '')
this.form.standNum = this.form.standNum.padStart(3, '0')
this.standNum = this.form.standNum // 保存初始顺序号
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : `-${ this.form.standYear }` )
this.standCode = this.form.standCode
this.formKey++
}, e => {
})
} else {
this.form.standNum = this.form.standNum.replace(/^0+/,"")
this.form.standNum = this.form.standNum.padStart(3,'0')
this.form.standNum = this.form.standNum.replace(/^0+/, '')
this.form.standNum = this.form.standNum.padStart(3, '0')
this.standNum = this.form.standNum // 保存初始顺序号
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : `-${ this.form.standYear }` )
this.standCode = this.form.standCode
this.formKey++
}
} else if (this.form.reviseStatus === '3'){
} else if (this.form.reviseStatus === '3') {
this.standCode = this.form.standCode
// ---
let index1 = this.form.standCode.lastIndexOf('-') // 7
const index1 = this.form.standCode.lastIndexOf('-') // 7
this.standYear = this.form.standCode.slice(index1 + 1) // 2023 x
if(this.standYear.indexOf(' ')>0){
if(this.standYear.indexOf(' ') > 0) {
const _index = this.standYear.indexOf(' ')
this.standYear = this.standYear.slice(0,_index)
}else if(this.standYear.indexOf(' X')>0){
this.standYear = this.standYear.slice(0, _index)
}else if(this.standYear.indexOf(' X') > 0) {
const _index = this.standYear.indexOf(' X') // 4
this.standYear = this.standYear.slice(0,_index) // 2023
this.standYear = this.standYear.slice(0, _index) // 2023
}
let noYearStand = this.form.standCode.slice(0, index1) // 'Q-F 101'
this.standNum = noYearStand.replace(this.form.standSort,'').trim() // '101'
const noYearStand = this.form.standCode.slice(0, index1) // 'Q-F 101'
this.standNum = noYearStand.replace(this.form.standSort, '').trim() // '101'
this.standSort = this.form.standSort
this.standNum = this.standNum.replace(/^0+/,"")
this.standNum = this.standNum.padStart(3,'0')
this.standNum = this.standNum.replace(/^0+/, '')
this.standNum = this.standNum.padStart(3, '0')
this.form.standNum = this.standNum
// ---
this.form.standYear = this.standYear
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : `-${ this.form.standYear }` )
} else {
this.form.standYear = year
this.$http.get('lawss/sarBussionessStand/getStandInfoByReviseStatus',{reviseStatus:'buss1_'+this.form.reviseStatus,standSort:this.form.standSort,taskId: this.taskIds}, {
this.$http.get('lawss/sarBussionessStand/getStandInfoByReviseStatus', { reviseStatus: `buss1_${ this.form.reviseStatus }`, standSort: this.form.standSort, taskId: this.taskIds }, {
_this: this
}, res => {
const standSn = res.data
this.form.standSn = standSn
this.form.standNumber = standSn
this.form.standNum = standSn + ''
this.form.standNum = `${ standSn }`
this.form.standNum = this.form.standNum.replace(/^0+/,"")
this.form.standNum = this.form.standNum.padStart(3,'0')
this.form.standNum = this.form.standNum.replace(/^0+/, '')
this.form.standNum = this.form.standNum.padStart(3, '0')
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : '-' + this.form.standYear )
this.form.standCode = this.form.standSort + this.form.standNum + ( this.form.standYear === '' ? '' : `-${ this.form.standYear }` )
this.standSort = this.form.standSort
this.standCode = this.form.standCode
this.formKey++
}, e => {
})
}
},
handle2 () {
this.$message({
@@ -328,7 +323,7 @@ export default {
this.handleSubmit()
},
handleSubmit() {
handleSubmit () {
this.addRule()
this.$refs['form'].validate((valid) => {
if (valid) {
@@ -336,20 +331,20 @@ export default {
const json = JSON.stringify(this.form);
const query = {
taskIds: this.$route.query.taskIds,
userId : this.$route.query.userId,
userId: this.$route.query.userId,
json: json
}
this.$http._post('lawss/activiti/completeTask', query).then(res => {
if (res.success) {
if(this.form.approvalOpinion === 1){
this.$message.warning("驳回成功")
if(this.form.approvalOpinion === 1) {
this.$message.warning('驳回成功')
}else{
this.$message.success('操作成功')
}
this.footerLoading = false
// this.$router.go(-2)
this.$close()
this.$close()
} else {
this.footerLoading = false
this.$message.error(res.message)
@@ -360,7 +355,7 @@ this.$close()
}
})
},
addRule() {
addRule () {
if (this.form.approvalOpinion === 0) {
this.rules.commentText = [
{ required: false }
@@ -391,7 +386,7 @@ this.$close()
this.$message.success('调整成功')
setTimeout(() => {
// this.$router.go(-2)
this.$close()
this.$close()
}, 100)
} else {
this.$message.warning(res.message)
@@ -405,14 +400,14 @@ this.$close()
this.dict = { ...res.data }
})
},
getEvaluation() {
getEvaluation () {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
res.data.forEach(item => {
item.score = ''
item.scoreMin = ''
item.reason = ''
@@ -11,31 +11,31 @@
</div>
<div class="content">
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
>
<template v-if="active === '1'">
<div>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">过程稿件</template>
</ProcessTitle>
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
<ProcessFile :form="form" :disabled="disabled" />
<ProcessTitle>
<template slot="title">适用范围</template>
</ProcessTitle>
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
<Range :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">关联信息</template>
</ProcessTitle>
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
<Info :form="form" :dict="dict" :disabled="disabled" />
<!--<ProcessTitle>-->
<!-- <template slot="title">文件汇总</template>-->
<!--</ProcessTitle>-->
@@ -43,85 +43,83 @@
<ProcessTitle>
<template slot="title">意见信息</template>
</ProcessTitle>
<TermInfo :data="form.infoList"></TermInfo>
<TermInfo :data="form.infoList" />
<div class="prc-content-border">
<UploadFormItem
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
></UploadFormItem>
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
/>
</div>
</div>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明" />
</template>
<template v-if="active === '2'">
<RoleInfo :roleForm="roleForm"></RoleInfo>
<RoleInfo :role-form="roleForm" />
</template>
<template v-if="active === '3'">
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
<PhoneHistortTable :prc-num="this.$route.query.prcNum" />
</template>
<template v-if="active === '4'">
<div style="height: 100%">
<ProcessTitle>
<template slot="title">条款信息</template>
</ProcessTitle>
<TermInfo :data="form.modelData"></TermInfo>
<TermInfo :data="form.modelData" />
</div>
</template>
<template v-if="active === '5'">
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
<Score :form="form" :stand-sort="form.standSort" :stand-name="form.standName" />
</template>
</el-form>
</div>
<ProcessFooter
show-submit
show-over2
show-transfer
:submitLoading="footerLoading"
@submit="handle2"
@transfer="handleTransfer"
@over2="handle1"
>
</ProcessFooter>
show-submit
show-over2
show-transfer
:submit-loading="footerLoading"
@submit="handle2"
@transfer="handleTransfer"
@over2="handle2"
/>
<!-- 福田全公司选人解决方案 -->
<phoneRoleTree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
:nodeList="nodeList"
></phoneRoleTree>
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
:node-list="nodeList"
@checkedRole="checkedRole"
/>
</div>
</template>
<script>
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import {getEvaluationIndex} from "api/businessApi";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from 'api/process'
import { getEvaluationIndex } from 'api/businessApi';
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
import Basic from "./components/Basic";
import ProcessFile from "./components/ProcessFile";
import Range from "./components/Range";
import Info from "./components/Info";
import RoleInfo from "./components/RoleInfo";
import FileSummary from "./components/FileSummary";
import TermInfo from "./components/TermInfo";
import Score from "./components/Score";
import Basic from './components/Basic';
import ProcessFile from './components/ProcessFile';
import Range from './components/Range';
import Info from './components/Info';
import RoleInfo from './components/RoleInfo';
import FileSummary from './components/FileSummary';
import TermInfo from './components/TermInfo';
import Score from './components/Score';
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
export default {
name: "step2",
name: 'Step2',
components: {
ProcessHeaderPhone,
PhoneHistortTable,
@@ -158,12 +156,12 @@ export default {
nodeList: []
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
handleTabs(name) {
handleTabs (name) {
this.active = name;
},
getData () {
@@ -201,7 +199,7 @@ export default {
this.handleSubmit()
},
handleSubmit() {
handleSubmit () {
this.addRule()
this.$refs['form'].validate((valid) => {
if (valid) {
@@ -209,20 +207,20 @@ export default {
const json = JSON.stringify(this.form);
const query = {
taskIds: this.$route.query.taskIds,
userId : this.$route.query.userId,
userId: this.$route.query.userId,
json: json
}
this.$http._post('lawss/activiti/completeTask', query).then(res => {
if (res.success) {
if(this.form.approvalOpinion === 1){
this.$message.warning("驳回成功")
if(this.form.approvalOpinion === 1) {
this.$message.warning('驳回成功')
}else{
this.$message.success('操作成功')
}
this.footerLoading = false
// this.$router.go(-2)
this.$close()
this.$close()
} else {
this.footerLoading = false
this.$message.error(res.message)
@@ -233,7 +231,7 @@ this.$close()
}
})
},
addRule() {
addRule () {
if (this.form.approvalOpinion === 0) {
this.rules.commentText = [
{ required: false }
@@ -264,7 +262,7 @@ this.$close()
this.$message.success('调整成功')
setTimeout(() => {
// this.$router.go(-2)
this.$close()
this.$close()
}, 100)
} else {
this.$message.warning(res.message)
@@ -278,14 +276,14 @@ this.$close()
this.dict = { ...res.data }
})
},
getEvaluation() {
getEvaluation () {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
res.data.forEach(item => {
item.score = ''
item.scoreMin = ''
item.reason = ''
@@ -11,31 +11,31 @@
</div>
<div class="content">
<el-form
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
v-if="reloadForm"
ref="form"
:model="form"
:rules="rules"
class="label-input-form phoneForm"
label-width="112px"
>
<template v-if="active === '1'">
<div>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<Basic :form="form" :dict="dict" :disabled="disabled"></Basic>
<Basic :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">过程稿件</template>
</ProcessTitle>
<ProcessFile :form="form" :disabled="disabled"></ProcessFile>
<ProcessFile :form="form" :disabled="disabled" />
<ProcessTitle>
<template slot="title">适用范围</template>
</ProcessTitle>
<Range :form="form" :dict="dict" :disabled="disabled"></Range>
<Range :form="form" :dict="dict" :disabled="disabled" />
<ProcessTitle>
<template slot="title">关联信息</template>
</ProcessTitle>
<Info :form="form" :dict="dict" :disabled="disabled"></Info>
<Info :form="form" :dict="dict" :disabled="disabled" />
<!--<ProcessTitle>-->
<!-- <template slot="title">文件汇总</template>-->
<!--</ProcessTitle>-->
@@ -43,85 +43,83 @@
<ProcessTitle>
<template slot="title">意见信息</template>
</ProcessTitle>
<TermInfo :data="form.infoList"></TermInfo>
<TermInfo :data="form.infoList" />
<div class="prc-content-border">
<UploadFormItem
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
></UploadFormItem>
label="汇总评审意见文件"
prop="summaryFileName"
:ids.sync="form.summaryFile"
:names.sync="form.summaryFileName"
view
:disabled="disabled"
/>
</div>
</div>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明"></ReceiptDescription>
<ReceiptDescription v-model="form.commentText" prop="commentText" title="回执说明" />
</template>
<template v-if="active === '2'">
<RoleInfo :roleForm="roleForm"></RoleInfo>
<RoleInfo :role-form="roleForm" />
</template>
<template v-if="active === '3'">
<PhoneHistortTable :prcNum="this.$route.query.prcNum"></PhoneHistortTable>
<PhoneHistortTable :prc-num="this.$route.query.prcNum" />
</template>
<template v-if="active === '4'">
<div style="height: 100%">
<ProcessTitle>
<template slot="title">条款信息</template>
</ProcessTitle>
<TermInfo :data="form.modelData"></TermInfo>
<TermInfo :data="form.modelData" />
</div>
</template>
<template v-if="active === '5'">
<Score :form="form" :standSort="form.standSort" :standName="form.standName"></Score>
<Score :form="form" :stand-sort="form.standSort" :stand-name="form.standName" />
</template>
</el-form>
</div>
<ProcessFooter
show-submit2
show-over2
show-transfer
:submitLoading="footerLoading"
@submit2="handle2"
@transfer="handleTransfer"
@over2="handle1"
>
</ProcessFooter>
show-submit2
show-over2
show-transfer
:submit-loading="footerLoading"
@submit2="handle2"
@transfer="handleTransfer"
@over2="handle2"
/>
<!-- 福田全公司选人解决方案 -->
<phoneRoleTree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
:nodeList="nodeList"
></phoneRoleTree>
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
:node-list="nodeList"
@checkedRole="checkedRole"
/>
</div>
</template>
<script>
import {inboundLiaisonDetail, processCreateStand, changeAssigneeNew} from 'api/process'
import {getEvaluationIndex} from "api/businessApi";
import { inboundLiaisonDetail, processCreateStand, changeAssigneeNew } from 'api/process'
import { getEvaluationIndex } from 'api/businessApi';
import ProcessHeaderPhone from '@/pages/processCenter/pages/components/ProcessHeaderPhone'
import ProcessTitle from '@/pages/processCenter/pages/components/ProcessTitle'
import ProcessFooter from '@/pages/processCenter/pages/components/ProcessFooter'
import PhoneHistortTable from '@/components/hzwlComponents/phoneComponents/phoneApprovalHistory'
import ReceiptDescription from "@/components/hzwlComponents/ReceiptDescription";
import ReceiptDescription from '@/components/hzwlComponents/ReceiptDescription';
import phoneRoleTree from '@/components/hzwlComponents/phoneComponents/phoneRoleTree'
import Basic from "./components/Basic";
import ProcessFile from "./components/ProcessFile";
import Range from "./components/Range";
import Info from "./components/Info";
import RoleInfo from "./components/RoleInfo";
import FileSummary from "./components/FileSummary";
import TermInfo from "./components/TermInfo";
import Score from "./components/Score";
import Basic from './components/Basic';
import ProcessFile from './components/ProcessFile';
import Range from './components/Range';
import Info from './components/Info';
import RoleInfo from './components/RoleInfo';
import FileSummary from './components/FileSummary';
import TermInfo from './components/TermInfo';
import Score from './components/Score';
import UploadFormItem from '@/components/hzwlComponents/UploadFormItem'
export default {
name: "step2",
name: 'Step2',
components: {
ProcessHeaderPhone,
PhoneHistortTable,
@@ -158,12 +156,12 @@ export default {
nodeList: []
}
},
created() {
created () {
this.getDicTypeListCode()
this.getData()
},
methods: {
handleTabs(name) {
handleTabs (name) {
this.active = name;
},
getData () {
@@ -208,7 +206,7 @@ export default {
this.handleSubmit()
},
handleSubmit() {
handleSubmit () {
this.addRule()
this.$refs['form'].validate((valid) => {
if (valid) {
@@ -216,20 +214,20 @@ export default {
const json = JSON.stringify(this.form);
const query = {
taskIds: this.$route.query.taskIds,
userId : this.$route.query.userId,
userId: this.$route.query.userId,
json: json
}
this.$http._post('lawss/activiti/completeTask', query).then(res => {
if (res.success) {
if(this.form.approvalOpinion === 1){
this.$message.warning("驳回成功")
if(this.form.approvalOpinion === 1) {
this.$message.warning('驳回成功')
}else{
this.$message.success('操作成功')
}
this.footerLoading = false
// this.$router.go(-2)
this.$close()
this.$close()
} else {
this.footerLoading = false
this.$message.error(res.message)
@@ -240,7 +238,7 @@ this.$close()
}
})
},
addRule() {
addRule () {
if (this.form.approvalOpinion === 0) {
this.rules.commentText = [
{ required: false }
@@ -271,7 +269,7 @@ this.$close()
this.$message.success('调整成功')
setTimeout(() => {
// this.$router.go(-2)
this.$close()
this.$close()
}, 100)
} else {
this.$message.warning(res.message)
@@ -285,14 +283,14 @@ this.$close()
this.dict = { ...res.data }
})
},
getEvaluation() {
getEvaluation () {
return new Promise((resolve, reject) => {
getEvaluationIndex({
indexType: 'quality'
}).then(res => {
if (res) {
const evalList = []
res.data.forEach(item =>{
res.data.forEach(item => {
item.score = ''
item.scoreMin = ''
item.reason = ''
@@ -1,22 +1,24 @@
<template>
<div class="root">
<div id="mountNode" ref="mountNode"></div>
<DialogTable ref="DialogTableRef"></DialogTable>
<loading :loading="loading">加载中...</loading>
<div id="mountNode" ref="mountNode" />
<DialogTable ref="DialogTableRef" />
<loading :loading="loading">
加载中...
</loading>
</div>
</template>
<script>
import G6 from '@antv/g6';
import DialogTable from "./components/DialogTable";
import DialogTable from './components/DialogTable';
export default {
name: "systemSearch",
name: 'SystemSearch',
components: {
DialogTable
},
data(){
data () {
return {
data: {},
loading: false,
@@ -47,88 +49,88 @@ export default {
// }
}
},
mounted() {
mounted () {
this.getData()
},
methods: {
async getData () {
this.loading = true
this.$http._getData('lawss/sarMenuStandardLimit/standardSystemTree').then(res => {
if (res.ok) {
this.data = res.data[0]
this.initGraph()
}
if (res.ok) {
this.data = res.data[0]
this.initGraph()
}
}).finally(() => {
this.loading = false
})
},
initGraph(){
initGraph () {
const that = this
// 实例化 minimap 插件
// 实例化 minimap 插件
const minimap = new G6.Minimap({
size: [100, 100],
className: 'minimap',
type: 'delegate',
size: [ 100, 100 ],
className: 'minimap',
type: 'delegate',
});
const tooltip = new G6.Tooltip({
offsetX: 10,
offsetY: 20,
getContent(e) {
getContent (e) {
const cfg = e.item.getModel()
const outDiv = document.createElement('div');
// outDiv.style.maxWidth = '200px';
outDiv.innerHTML = `
<div>${cfg.menuName}( ${cfg.gbStandCount}/${cfg.fbStandCount}/${cfg.esStandCount} )</div>`
<div>${ cfg.menuName }( ${ cfg.gbStandCount }/${ cfg.fbStandCount }/${ cfg.esStandCount } )</div>`
return outDiv
},
itemTypes: ['node']
itemTypes: [ 'node' ]
});
const mainColor = '#3170A7'
G6.registerNode('card-node', {
draw: function drawShape(cfg, group) {
const r = 2;
const color = '#5B8FF9';
const w = cfg.size[0];
const h = cfg.size[1];
const shape = group
group.addShape('rect', {
// 容器
attrs: {
x: 0,
y: 0,
width: w,
height: h,
stroke: mainColor,
radius: r,
fill: '#fff',
cursor: 'pointer',
},
name: 'box',
// draggable: true,
});
draw: function drawShape (cfg, group) {
const r = 2;
const color = '#5B8FF9';
const w = cfg.size[0];
const h = cfg.size[1];
const shape = group
group.addShape('rect', {
// 容器
attrs: {
x: 0,
y: 0,
width: w,
height: h,
stroke: mainColor,
radius: r,
fill: '#fff',
cursor: 'pointer',
},
name: 'box',
// draggable: true,
});
// 文字
group.addShape('text', {
attrs: {
textBaseline: 'top',
x: w / 2,
y: (h - 10) / 2,
fontSize: 12,
lineHeight: 20,
text: cfg.menuName.length > 5
? `${cfg.menuName.slice(0,5)}...( ${cfg.gbStandCount}/${cfg.fbStandCount}/${cfg.esStandCount} )`
: `${cfg.menuName}( ${cfg.gbStandCount}/${cfg.fbStandCount}/${cfg.esStandCount} )`,
fill: '#000',
textAlign: 'center',
cursor: 'pointer',
},
name: 'text',
});
// 文字
group.addShape('text', {
attrs: {
textBaseline: 'top',
x: w / 2,
y: (h - 10) / 2,
fontSize: 12,
lineHeight: 20,
text: cfg.menuName.length > 5
? `${ cfg.menuName.slice(0, 5) }...( ${ cfg.gbStandCount }/${ cfg.fbStandCount }/${ cfg.esStandCount } )`
: `${ cfg.menuName }( ${ cfg.gbStandCount }/${ cfg.fbStandCount }/${ cfg.esStandCount } )`,
fill: '#000',
textAlign: 'center',
cursor: 'pointer',
},
name: 'text',
});
cfg.children &&
cfg.children &&
group.addShape('marker', {
attrs: {
x: w / 2,
@@ -142,59 +144,58 @@ export default {
},
name: 'collapse-icon',
});
if (cfg.level === 0) {
const rect = group.find((ele) => ele.get('name') === 'box') // 获取图形
rect.attr('fill', mainColor)
rect.attr('stroke', mainColor) // 边框颜色
if (cfg.level === 0) {
const rect = group.find((ele) => ele.get('name') === 'box') // 获取图形
rect.attr('fill', mainColor)
rect.attr('stroke', mainColor) // 边框颜色
const text = group.find((ele) => ele.get('name') === 'text') // 获取图形
text.attr('fill','#fff')
} else if (cfg.level === 1) {
const rect = group.find((ele) => ele.get('name') === 'box') // 获取图形
rect.attr('fill', '#eee')
rect.attr('stroke', '#eee')
const text = group.find((ele) => ele.get('name') === 'text') // 获取图形
text.attr('fill', '#fff')
} else if (cfg.level === 1) {
const rect = group.find((ele) => ele.get('name') === 'box') // 获取图形
rect.attr('fill', '#eee')
rect.attr('stroke', '#eee')
const text = group.find((ele) => ele.get('name') === 'text') // 获取图形
text.attr('fill','#000')
}
return shape;
},
setState(name, value, item) {
if (name === 'collapsed') {
const marker = item.get('group').find((ele) => ele.get('name') === 'collapse-icon');
const icon = value ? G6.Marker.expand : G6.Marker.collapse;
marker.attr('symbol', icon);
}
},
});
const text = group.find((ele) => ele.get('name') === 'text') // 获取图形
text.attr('fill', '#000')
}
return shape;
},
setState (name, value, item) {
if (name === 'collapsed') {
const marker = item.get('group').find((ele) => ele.get('name') === 'collapse-icon');
const icon = value ? G6.Marker.expand : G6.Marker.collapse;
marker.attr('symbol', icon);
}
},
});
G6.registerEdge(
'step-line',
{
getControlPoints: function getControlPoints(cfg) {
const startPoint = cfg.startPoint;
const endPoint = cfg.endPoint;
return [
startPoint,
{
x: startPoint.x,
y: endPoint.y - 80,
},
{
x: endPoint.x,
y: endPoint.y - 80,
},
{
...endPoint,
y: endPoint.y - 20
}
];
},
'step-line',
{
getControlPoints: function getControlPoints (cfg) {
const startPoint = cfg.startPoint;
const endPoint = cfg.endPoint;
return [
startPoint,
{
x: startPoint.x,
y: endPoint.y - 80,
},
{
x: endPoint.x,
y: endPoint.y - 80,
},
{
...endPoint,
y: endPoint.y - 20
}
];
},
'polyline',
},
'polyline',
);
const graph = new G6.TreeGraph({
container: 'mountNode', // String | HTMLElement,必须,在 Step 1 中创建的容器 id 或容器本身
width: this.$refs.mountNode.scrollWidth, // Number,必须,图的宽度
@@ -203,12 +204,12 @@ export default {
// fitViewPadding: [20, 40, 50, 20], // 画布上四周的留白宽度
// 节点在默认状态下的样式配置(style)和其他配置
defaultNode: {
type:'card-node',
size: [160,30], // 节点大小
type: 'card-node',
size: [ 160, 30 ], // 节点大小
// 线的连接位置
anchorPoints: [
[0.5, 0],
[0.5, 1],
[ 0.5, 0 ],
[ 0.5, 1 ],
],
// width: 100,
// height: 40,
@@ -304,23 +305,33 @@ export default {
},
// 交互
modes: {
default: ['drag-canvas', 'zoom-canvas'], // 允许拖拽画布、放缩画布、拖拽节点
default: [ 'drag-canvas', 'zoom-canvas' ], // 允许拖拽画布、放缩画布、拖拽节点
},
// plugins: [minimap], // 将 minimap 实例配置到图上
plugins: [tooltip],
plugins: [ tooltip ],
});
this.setCollapse()
graph.data(this.data); // 读取 Step 2 中的数据源到图上
graph.render(); // 渲染图
// graph.fitView()
graph.fitCenter()
// graph.fitView()
graph.fitCenter()
// graph.focusItem(this.data.id)
// 添加事件监听
this.initGraphEvent(graph)
// 监听窗口尺寸变化
window.addEventListener('resize', () => {
// 获取新的窗口尺寸
const newWidth = this.$refs.mountNode.offsetWidth;
const newHeight = this.$refs.mountNode.offsetHeight
// 更新 G6 图表的尺寸
graph.changeSize(newWidth, newHeight);
});
},
setCollapse () {
G6.Util.traverseTree(this.data, function (item) {
G6.Util.traverseTree(this.data, (item) => {
if (item.level >= 2) {
//collapsed为true时默认收起
// collapsed为true时默认收起
item.collapsed = true
}
})