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