对接条款比对
This commit is contained in:
@@ -67,6 +67,8 @@ const getSplitMenusByInfo = (params) => getAction('/split/sarFileSplitMenu/getSp
|
||||
const documentSplitView = (params) => postAction('/laws/DocumentTool/documentSplit/queryDocumentSplitDetail', params)
|
||||
// 文档对比-文档对比-条款对比对比按钮
|
||||
const clauseComparisonEvent = (params) => postAction('/compare/sarFileCompareItem/clauseComparisonEvent', params)
|
||||
// 文档对比-文档对比-条款对比对比按钮
|
||||
const getComparisonTermsViewList = (params) => getAction('/compare/sarItemsCompareHis/page', params)
|
||||
|
||||
|
||||
// 文档对比-文档对比-自动匹配
|
||||
@@ -147,6 +149,7 @@ export {
|
||||
getSplitMenusByInfo,
|
||||
documentSplitView,
|
||||
clauseComparisonEvent,
|
||||
getComparisonTermsViewList,
|
||||
clauseComparison,
|
||||
addFullTextComment,
|
||||
deleteComparisonResult,
|
||||
|
||||
@@ -277,18 +277,31 @@ export default {
|
||||
},
|
||||
// 对比结果按钮点击
|
||||
comparisonResultsClick (item) {
|
||||
if (item.releaseState === 'draft') {
|
||||
item.isDisplay = 2
|
||||
if (item.compareType === 'item') {
|
||||
this.$router.push({
|
||||
path: '/documentTool/comparisonTermsView',
|
||||
query: {
|
||||
id: item.id,
|
||||
titleLeft: item.titleLeft,
|
||||
titleRight: item.titleRight,
|
||||
serialNumberLeft: item.serialNumberLeft,
|
||||
serialNumberRight: item.serialNumberRight
|
||||
}
|
||||
})
|
||||
} else {
|
||||
item.isDisplay = 1
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/documentTool/ComparisonResults',
|
||||
query: {
|
||||
id: item.id,
|
||||
isDisplay: item.isDisplay
|
||||
if (item.releaseState === 'draft') {
|
||||
item.isDisplay = 2
|
||||
} else {
|
||||
item.isDisplay = 1
|
||||
}
|
||||
})
|
||||
this.$router.push({
|
||||
path: '/documentTool/ComparisonResults',
|
||||
query: {
|
||||
id: item.id,
|
||||
isDisplay: item.isDisplay
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 撤回按钮点击
|
||||
subscribe (record) {
|
||||
|
||||
@@ -159,7 +159,9 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
handleBack () {
|
||||
|
||||
this.$router.push({
|
||||
path: '/documentTool/documentComparison'
|
||||
})
|
||||
},
|
||||
// 左侧树选择
|
||||
onSelectLeft (selectedKeys, exports) {
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
need-custom-back-func
|
||||
@back="handleBack">
|
||||
<div class="can-scroll-content">
|
||||
<div class="can-scroll-content-header">
|
||||
{{$route.query.titleLeft + ' ' + $route.query.serialNumberLeft + ' —— ' + $route.query.titleRight + ' ' + $route.query.serialNumberRight}}
|
||||
</div>
|
||||
<j-table
|
||||
ref="table"
|
||||
size="middle"
|
||||
@@ -14,32 +17,26 @@
|
||||
:loading="loading"
|
||||
:pagination="ipagination"
|
||||
:scroll="{x: '100%', y: yScrollHeight}"
|
||||
@operationClick="operationClick"
|
||||
:operation-list="operationList">
|
||||
|
||||
<!--新文本跳转标准详情-->
|
||||
<template v-slot:newTextDetail="{text, record}">
|
||||
<a-tooltip overlay-class-name="tooltip-style">
|
||||
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
|
||||
<div class="table-text can-click-table-text" v-if="text || text === 0" @click="toDetailPage('new', record)">{{
|
||||
text
|
||||
}}
|
||||
</div>
|
||||
<div v-else class="table-text">{{ global.emptyLine }}</div>
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</j-table>
|
||||
</div>
|
||||
<viewDifferenceModal ref="viewDifferenceModalRef"/>
|
||||
</internal-detail-page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
||||
import JTable from '../../../components/jero/JTable.vue'
|
||||
import { JeroListMixin } from '../../../mixins/JeroListMixin.js'
|
||||
import viewDifferenceModal from './modules/viewDifferenceModal'
|
||||
export default {
|
||||
name: 'comparisonTermsView',
|
||||
mixins: [JeroListMixin],
|
||||
components: {
|
||||
InternalDetailPage,
|
||||
JTable
|
||||
JTable,
|
||||
viewDifferenceModal
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
@@ -48,39 +45,39 @@ export default {
|
||||
columns: [
|
||||
{
|
||||
title: '旧条款号',
|
||||
dataIndex: 'serialNumberLeft',
|
||||
dataIndex: 'oldItemsNum',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '旧条款名称',
|
||||
dataIndex: 'serialNumberLeft',
|
||||
dataIndex: 'oldItemsName',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '新条款号',
|
||||
dataIndex: 'serialNumberLeft',
|
||||
dataIndex: 'newItemsNum',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '新条款名称',
|
||||
dataIndex: 'serialNumberLeft',
|
||||
dataIndex: 'newItemsName',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: '比对时间',
|
||||
dataIndex: 'serialNumberLeft',
|
||||
dataIndex: 'createTime',
|
||||
width: 170,
|
||||
ellipsis: true,
|
||||
ellipsis: true
|
||||
},
|
||||
// 操作
|
||||
{
|
||||
title: this.$t('operation'),
|
||||
fixed: 'right',
|
||||
width: 250,
|
||||
width: 100,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
@@ -88,22 +85,46 @@ export default {
|
||||
operationList: [
|
||||
{
|
||||
text: '查看差异',
|
||||
clickEvent: 'viewDifference'
|
||||
},
|
||||
]
|
||||
clickEvent: 'viewDifferenceClick'
|
||||
}
|
||||
],
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
standHisId: this.$route.query.id,
|
||||
url: {
|
||||
list: '/compare/sarItemsCompareHis/page'
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
standHisId: {
|
||||
immediate: true,
|
||||
handler (val) {
|
||||
this.queryParam.standHisId = val
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleBack () {
|
||||
|
||||
this.$router.push({
|
||||
path: '/documentTool/documentComparison'
|
||||
})
|
||||
},
|
||||
viewDifference () {
|
||||
|
||||
viewDifferenceClick (item) {
|
||||
console.log(item)
|
||||
this.$refs.viewDifferenceModalRef.open(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.can-scroll-content{
|
||||
padding: 24px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.can-scroll-content-header{
|
||||
font-size: 16px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -0,0 +1,198 @@
|
||||
<template>
|
||||
<j-modal
|
||||
title="比对结果"
|
||||
width="80%"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
:maskClosable="false"
|
||||
switchFullscreen
|
||||
@cancel="visible = false">
|
||||
<div class="can-scroll-content">
|
||||
<div class="detail-content-top">
|
||||
相似度:<span style="color: red">{{similarityDegree}}</span> <span>({{textContent}})</span>
|
||||
</div>
|
||||
<div class="detail-content">
|
||||
<!--左边的文档-->
|
||||
<div class="detail-content-left">
|
||||
<!--左侧标准信息-->
|
||||
<div class="detail-content-left-container">
|
||||
<div class="detail-content-left-scroll">
|
||||
<div class="detail-content-left-item">
|
||||
<div class="detail-content-item-text" style="margin-bottom: 10px;color: #040B29" v-html="textLeft">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--右侧文档-->
|
||||
<div class="detail-content-right">
|
||||
<!--右侧标准信息-->
|
||||
<div class="detail-content-right-container">
|
||||
<div class="detail-content-right-scroll">
|
||||
<div class="detail-content-right-item">
|
||||
<div class="detail-content-item-text" v-html="textRight">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</j-modal>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'viewDifferenceModal',
|
||||
data () {
|
||||
return {
|
||||
confirmLoading: false,
|
||||
visible: false,
|
||||
textLeft: '',
|
||||
textRight: '',
|
||||
similarityDegree: '',
|
||||
textContent: ''
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
open (item) {
|
||||
this.textLeft = item.oldItemsText
|
||||
this.textRight = item.newItemsText
|
||||
this.similarityDegree = item.similarityDegree
|
||||
if (parseFloat(item.similarityDegree) < parseFloat('75%')) {
|
||||
this.textContent = '不相似'
|
||||
} else if (parseFloat(item.similarityDegree) >= parseFloat('75%') && parseFloat(item.similarityDegree) !== parseFloat('100%')) {
|
||||
this.textContent = '相似'
|
||||
} else if (parseFloat(item.similarityDegree) === parseFloat('100%')) {
|
||||
this.textContent = '相同'
|
||||
}
|
||||
this.visible = true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.can-scroll-content {
|
||||
height: calc(100% - 52px);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.detail-content {
|
||||
height: calc(100% - 12px);
|
||||
/*background-color: #eff1f4;*/
|
||||
}
|
||||
|
||||
.detail-content-left {
|
||||
width: 50%;
|
||||
float: left;
|
||||
height: 100%;
|
||||
border-right: 2px #EFF1F3 solid;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 2px #EFF1F3 solid;
|
||||
/*display: flex;*/
|
||||
}
|
||||
|
||||
.detail-content-right {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
float: left;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 2px #EFF1F3 solid;
|
||||
/*display: flex;*/
|
||||
}
|
||||
|
||||
.item-model {
|
||||
width: calc(100% - 232px);
|
||||
}
|
||||
.detail-content-left-container {
|
||||
height: calc(100vh - 300px);
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
overflow-y: auto;
|
||||
transition: all 1s;
|
||||
border-radius: 4px;
|
||||
scroll-behavior: smooth;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.detail-content-right-container {
|
||||
height: calc(100vh - 300px);
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
display: inline-block;
|
||||
transition: all 1s;
|
||||
scroll-behavior: smooth;
|
||||
flex: 1;
|
||||
|
||||
.standard-name {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.detail-content-left-scroll {
|
||||
width: calc(100% - 20px);
|
||||
display: inline-block;
|
||||
height: calc(100% - 10px);
|
||||
margin: 0 10px 0 10px;
|
||||
overflow: auto;
|
||||
background-color: white;
|
||||
border-radius: 7px;
|
||||
}
|
||||
|
||||
.detail-content-right-scroll {
|
||||
width: calc(100% - 10px);
|
||||
display: inline-block;
|
||||
height: calc(100% - 10px);
|
||||
margin-left: 10px;
|
||||
overflow: auto;
|
||||
border-radius: 7px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.detail-content-left-item {
|
||||
padding: 16px 20px;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #fff;
|
||||
cursor: pointer;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.detail-content-right-item {
|
||||
padding: 16px 20px;
|
||||
box-sizing: border-box;
|
||||
/*border: 1px solid #EFF1F3;*/
|
||||
cursor: pointer;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.detail-content-left-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.detail-content-item-text {
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #040B29;
|
||||
word-break: break-word;
|
||||
|
||||
/deep/ table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/deep/ img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 3px;
|
||||
}
|
||||
|
||||
.detail-content-top {
|
||||
padding: 12px 24px;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 2px solid #EFF1F3 ;
|
||||
font-size: 16px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user