对接条款比对
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 documentSplitView = (params) => postAction('/laws/DocumentTool/documentSplit/queryDocumentSplitDetail', params)
|
||||||
// 文档对比-文档对比-条款对比对比按钮
|
// 文档对比-文档对比-条款对比对比按钮
|
||||||
const clauseComparisonEvent = (params) => postAction('/compare/sarFileCompareItem/clauseComparisonEvent', params)
|
const clauseComparisonEvent = (params) => postAction('/compare/sarFileCompareItem/clauseComparisonEvent', params)
|
||||||
|
// 文档对比-文档对比-条款对比对比按钮
|
||||||
|
const getComparisonTermsViewList = (params) => getAction('/compare/sarItemsCompareHis/page', params)
|
||||||
|
|
||||||
|
|
||||||
// 文档对比-文档对比-自动匹配
|
// 文档对比-文档对比-自动匹配
|
||||||
@@ -147,6 +149,7 @@ export {
|
|||||||
getSplitMenusByInfo,
|
getSplitMenusByInfo,
|
||||||
documentSplitView,
|
documentSplitView,
|
||||||
clauseComparisonEvent,
|
clauseComparisonEvent,
|
||||||
|
getComparisonTermsViewList,
|
||||||
clauseComparison,
|
clauseComparison,
|
||||||
addFullTextComment,
|
addFullTextComment,
|
||||||
deleteComparisonResult,
|
deleteComparisonResult,
|
||||||
|
|||||||
@@ -277,18 +277,31 @@ export default {
|
|||||||
},
|
},
|
||||||
// 对比结果按钮点击
|
// 对比结果按钮点击
|
||||||
comparisonResultsClick (item) {
|
comparisonResultsClick (item) {
|
||||||
if (item.releaseState === 'draft') {
|
if (item.compareType === 'item') {
|
||||||
item.isDisplay = 2
|
this.$router.push({
|
||||||
|
path: '/documentTool/comparisonTermsView',
|
||||||
|
query: {
|
||||||
|
id: item.id,
|
||||||
|
titleLeft: item.titleLeft,
|
||||||
|
titleRight: item.titleRight,
|
||||||
|
serialNumberLeft: item.serialNumberLeft,
|
||||||
|
serialNumberRight: item.serialNumberRight
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
item.isDisplay = 1
|
if (item.releaseState === 'draft') {
|
||||||
}
|
item.isDisplay = 2
|
||||||
this.$router.push({
|
} else {
|
||||||
path: '/documentTool/ComparisonResults',
|
item.isDisplay = 1
|
||||||
query: {
|
|
||||||
id: item.id,
|
|
||||||
isDisplay: item.isDisplay
|
|
||||||
}
|
}
|
||||||
})
|
this.$router.push({
|
||||||
|
path: '/documentTool/ComparisonResults',
|
||||||
|
query: {
|
||||||
|
id: item.id,
|
||||||
|
isDisplay: item.isDisplay
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
// 撤回按钮点击
|
// 撤回按钮点击
|
||||||
subscribe (record) {
|
subscribe (record) {
|
||||||
|
|||||||
@@ -159,7 +159,9 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleBack () {
|
handleBack () {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/documentTool/documentComparison'
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 左侧树选择
|
// 左侧树选择
|
||||||
onSelectLeft (selectedKeys, exports) {
|
onSelectLeft (selectedKeys, exports) {
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
need-custom-back-func
|
need-custom-back-func
|
||||||
@back="handleBack">
|
@back="handleBack">
|
||||||
<div class="can-scroll-content">
|
<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
|
<j-table
|
||||||
ref="table"
|
ref="table"
|
||||||
size="middle"
|
size="middle"
|
||||||
@@ -14,32 +17,26 @@
|
|||||||
:loading="loading"
|
:loading="loading"
|
||||||
:pagination="ipagination"
|
:pagination="ipagination"
|
||||||
:scroll="{x: '100%', y: yScrollHeight}"
|
:scroll="{x: '100%', y: yScrollHeight}"
|
||||||
|
@operationClick="operationClick"
|
||||||
:operation-list="operationList">
|
: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>
|
</j-table>
|
||||||
</div>
|
</div>
|
||||||
|
<viewDifferenceModal ref="viewDifferenceModalRef"/>
|
||||||
</internal-detail-page>
|
</internal-detail-page>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
||||||
import JTable from '../../../components/jero/JTable.vue'
|
import JTable from '../../../components/jero/JTable.vue'
|
||||||
|
import { JeroListMixin } from '../../../mixins/JeroListMixin.js'
|
||||||
|
import viewDifferenceModal from './modules/viewDifferenceModal'
|
||||||
export default {
|
export default {
|
||||||
name: 'comparisonTermsView',
|
name: 'comparisonTermsView',
|
||||||
|
mixins: [JeroListMixin],
|
||||||
components: {
|
components: {
|
||||||
InternalDetailPage,
|
InternalDetailPage,
|
||||||
JTable
|
JTable,
|
||||||
|
viewDifferenceModal
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -48,39 +45,39 @@ export default {
|
|||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
title: '旧条款号',
|
title: '旧条款号',
|
||||||
dataIndex: 'serialNumberLeft',
|
dataIndex: 'oldItemsNum',
|
||||||
width: 170,
|
width: 170,
|
||||||
ellipsis: true,
|
ellipsis: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '旧条款名称',
|
title: '旧条款名称',
|
||||||
dataIndex: 'serialNumberLeft',
|
dataIndex: 'oldItemsName',
|
||||||
width: 170,
|
width: 170,
|
||||||
ellipsis: true,
|
ellipsis: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '新条款号',
|
title: '新条款号',
|
||||||
dataIndex: 'serialNumberLeft',
|
dataIndex: 'newItemsNum',
|
||||||
width: 170,
|
width: 170,
|
||||||
ellipsis: true,
|
ellipsis: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '新条款名称',
|
title: '新条款名称',
|
||||||
dataIndex: 'serialNumberLeft',
|
dataIndex: 'newItemsName',
|
||||||
width: 170,
|
width: 170,
|
||||||
ellipsis: true,
|
ellipsis: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '比对时间',
|
title: '比对时间',
|
||||||
dataIndex: 'serialNumberLeft',
|
dataIndex: 'createTime',
|
||||||
width: 170,
|
width: 170,
|
||||||
ellipsis: true,
|
ellipsis: true
|
||||||
},
|
},
|
||||||
// 操作
|
// 操作
|
||||||
{
|
{
|
||||||
title: this.$t('operation'),
|
title: this.$t('operation'),
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
width: 250,
|
width: 100,
|
||||||
scopedSlots: { customRender: 'action' }
|
scopedSlots: { customRender: 'action' }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -88,22 +85,46 @@ export default {
|
|||||||
operationList: [
|
operationList: [
|
||||||
{
|
{
|
||||||
text: '查看差异',
|
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: {
|
methods: {
|
||||||
handleBack () {
|
handleBack () {
|
||||||
|
this.$router.push({
|
||||||
|
path: '/documentTool/documentComparison'
|
||||||
|
})
|
||||||
},
|
},
|
||||||
viewDifference () {
|
viewDifferenceClick (item) {
|
||||||
|
console.log(item)
|
||||||
|
this.$refs.viewDifferenceModalRef.open(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.can-scroll-content{
|
||||||
|
padding: 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.can-scroll-content-header{
|
||||||
|
font-size: 16px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
</style>
|
</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