update 文档比对

This commit is contained in:
赵霄
2023-09-18 15:05:46 +08:00
parent b9d19e081b
commit e9c563383f
6 changed files with 218 additions and 300 deletions
-12
View File
@@ -322,18 +322,6 @@ export const constantRouterMap = [
} }
] ]
}, },
// 文档对比-发起对比
{
path: '/initiateDocumentComparison',
name: 'initiateDocumentComparison',
component: () => import(/* webpackChunkName: "user" */ '@/views/documentTool/modules/InitiateComparison')
},
// 文档对比-发起对比
{
path: '/documentDataComparison',
name: 'documentDataComparison',
component: () => import(/* webpackChunkName: "user" */ '@/views/documentTool/modules/DocumentDataComparison')
},
// 文档对比-对比结果 // 文档对比-对比结果
{ {
path: '/comparisonResults', path: '/comparisonResults',
@@ -3,44 +3,42 @@
<div class="table-page-search-wrapper"> <div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery"> <a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24"> <a-row :gutter="24">
<!--编号-->
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<a-form-item :label="$t('number')" :labelCol="{span: 6}" :wrapperCol="{span: 14}"> <a-form-item :label="$t('number')" :labelCol="{span: 6}" :wrapperCol="{span: 14}">
<a-input :placeholder="$t('pleaseEnter') + $t('number')" <a-input :placeholder="$t('pleaseEnter') + $t('number')"
v-model="queryParam.serialNumber"></a-input> v-model="queryParam.serialNumber"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<!--标题-->
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<a-form-item :label="$t('title')" :labelCol="{span: 6}" :wrapperCol="{span: 14}"> <a-form-item :label="$t('title')" :labelCol="{span: 6}" :wrapperCol="{span: 14}">
<a-input :placeholder="$t('pleaseEnter') + $t('title')" <a-input :placeholder="$t('pleaseEnter') + $t('title')"
v-model="queryParam.title"></a-input> v-model="queryParam.title"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<!--发布情况-->
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<a-form-item :label="$t('docTool.comparison.releaseSituation')" :labelCol="{span: 6}" :wrapperCol="{span: 14}"> <a-form-item :label="$t('docTool.comparison.releaseSituation')" :labelCol="{span: 6}" :wrapperCol="{span: 14}">
<j-dict-select-tag v-model="queryParam.releaseState" <j-dict-select-tag v-model="queryParam.releaseState"
:placeholder="$t('pleaseSelect')+$t('docTool.comparison.releaseSituation')" :placeholder="$t('pleaseSelect')+$t('docTool.comparison.releaseSituation')"
type="select" type="select"
:triggerChange="false" dictCode="release_condition"/> :triggerChange="false" dictCode="release_condition" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<div style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons"> <div style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery">{{$t('query')}}</a-button> <a-button type="primary" @click="searchQuery">{{ $t('query') }}</a-button>
<a-button style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button> <a-button style="margin-left: 8px" @click="searchReset">{{ $t('reset') }}</a-button>
</div> </div>
</a-row> </a-row>
</a-form> </a-form>
</div> </div>
<div class="table-operator"> <div class="table-operator">
<!-- v-has="'documentComparison:Initiate'"--> <!-- v-has="'documentComparison:Initiate'"-->
<div @click="initiatingProcessClick" class="operator-text"> <a-button icon="block" type="primary" ghost @click="initiatingProcessClick">{{ $t('docTool.comparison.initiateComparison') }}
<a-icon type="block"/> </a-button>
{{$t('docTool.comparison.initiateComparison')}} <!-- v-has="'documentComparison:batchDelete'"-->
</div> <a-button type="primary" icon="delete" ghost @click="batchDel" v-has="'split:sarFileSplitInfo:deleteBatch'">{{ $t('batchDelete') }}</a-button>
<!-- v-has="'documentComparison:batchDelete'"-->
<div @click="batchDelete" class="operator-text">
<a-icon type="delete"/>
{{$t('batchDelete')}}
</div>
</div> </div>
<div> <div>
<j-table <j-table
@@ -57,36 +55,37 @@
@change="handleTableChange" @change="handleTableChange"
> >
<template v-slot:operation="{text,record}"> <template v-slot:operation="{text,record}">
<a class="text-operation" @click="comparisonResultsClick(record)">{{$t('docTool.comparison.comparisonResults')}}</a> <a class="text-operation" @click="comparisonResultsClick(record)">{{ $t('docTool.comparison.comparisonResults') }}</a>
<a-divider type="vertical" v-if="record.createBy === userInfoQuery.username || administrators" /> <a-divider type="vertical" v-if="record.createBy === userInfoQuery.username || administrators" />
<a-dropdown v-if="record.createBy === userInfoQuery.username || administrators"> <a-dropdown v-if="record.createBy === userInfoQuery.username || administrators">
<a class="ant-dropdown-link"> <a class="ant-dropdown-link">
{{ $t('more') }} <a-icon type="down"/> {{ $t('more') }}
<a-icon type="down" />
</a> </a>
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item> <a-menu-item>
<a v-if="record.createBy === userInfoQuery.username || administrators" @click="subscribe(record)"> <a v-if="record.createBy === userInfoQuery.username || administrators" @click="subscribe(record)">
{{!record.releaseState || record.releaseState === 'draft' ? $t('release') :$t('withdraw')}} {{ !record.releaseState || record.releaseState === 'draft' ? $t('release') : $t('withdraw') }}
</a> </a>
</a-menu-item> </a-menu-item>
<a-menu-item> <a-menu-item>
<a v-if="(record.createBy === userInfoQuery.username || administrators) && record.releaseState === 'draft'" <a v-if="(record.createBy === userInfoQuery.username || administrators) && record.releaseState === 'draft'"
@click="edit(record)">{{$t('edit')}}</a> @click="edit(record)">{{ $t('edit') }}</a>
</a-menu-item> </a-menu-item>
<a-menu-item> <a-menu-item>
<a v-if="(record.createBy === userInfoQuery.username || administrators) && record.releaseState === 'draft'" <a v-if="(record.createBy === userInfoQuery.username || administrators) && record.releaseState === 'draft'"
@click="deleteData(record)">{{$t('delete')}}</a> @click="deleteData(record)">{{ $t('delete') }}</a>
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
</a-dropdown> </a-dropdown>
</template> </template>
<template v-slot:serialNumberRight="{text,record}"> <template v-slot:serialNumberRight="{text,record}">
<a @click="serialNumberRightClick(record)" :title="text">{{text}}</a> <a @click="serialNumberRightClick(record)" :title="text">{{ text }}</a>
</template> </template>
<template v-slot:serialNumberLeft="{text,record}"> <template v-slot:serialNumberLeft="{text,record}">
<a @click="serialNumberLeftClick(record)" :title="text">{{text}}</a> <a @click="serialNumberLeftClick(record)" :title="text">{{ text }}</a>
</template> </template>
</j-table> </j-table>
</div> </div>
@@ -94,11 +93,11 @@
</template> </template>
<script> <script>
import { postAction, deleteAction } from '@/api/manage' import { postAction, deleteAction } from '../../../api/manage.js'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import JDictSelectTag from '@/components/dict/JDictSelectTag' import JDictSelectTag from '../../../components/dict/JDictSelectTag.vue'
import JTable from '@/components/jero/JTable' import JTable from '../../../components/jero/JTable.vue'
import { JeroListMixin } from '../../mixins/JeroListMixin' import { JeroListMixin } from '../../../mixins/JeroListMixin.js'
export default { export default {
name: 'DocumentComparison', name: 'DocumentComparison',
@@ -113,7 +112,7 @@ export default {
}, },
loading: false, loading: false,
dataSource: [ dataSource: [
{id: 1} { id: 1 }
], ],
selectedRowKeys: [], selectedRowKeys: [],
selectionRows: [], selectionRows: [],
@@ -137,7 +136,6 @@ export default {
columns: [ columns: [
{ {
title: this.$t('number') + ' 1', title: this.$t('number') + ' 1',
align: 'left',
dataIndex: 'serialNumberLeft', dataIndex: 'serialNumberLeft',
width: 170, width: 170,
ellipsis: true, ellipsis: true,
@@ -145,7 +143,6 @@ export default {
}, },
{ {
title: this.$t('title') + ' 1', title: this.$t('title') + ' 1',
align: 'left',
dataIndex: 'titleLeft', dataIndex: 'titleLeft',
width: 170, width: 170,
ellipsis: true, ellipsis: true,
@@ -153,14 +150,12 @@ export default {
}, },
{ {
title: this.$t('docTool.comparison.textStatus') + ' 1', title: this.$t('docTool.comparison.textStatus') + ' 1',
align: 'left', width: 150,
width: 200,
ellipsis: true, ellipsis: true,
dataIndex: 'fileTypeLeft' dataIndex: 'fileTypeLeft'
}, },
{ {
title: this.$t('number') + ' 2', title: this.$t('number') + ' 2',
align: 'left',
dataIndex: 'serialNumberRight', dataIndex: 'serialNumberRight',
ellipsis: true, ellipsis: true,
scopedSlots: { customRender: 'serialNumberRight' }, scopedSlots: { customRender: 'serialNumberRight' },
@@ -168,7 +163,6 @@ export default {
}, },
{ {
title: this.$t('title') + ' 2', title: this.$t('title') + ' 2',
align: 'left',
dataIndex: 'titleRight', dataIndex: 'titleRight',
scopedSlots: { customRender: 'serialNumberRight' }, scopedSlots: { customRender: 'serialNumberRight' },
ellipsis: true, ellipsis: true,
@@ -176,35 +170,30 @@ export default {
}, },
{ {
title: this.$t('docTool.comparison.textStatus') + ' 2', title: this.$t('docTool.comparison.textStatus') + ' 2',
align: 'left', width: 150,
width: 200,
ellipsis: true, ellipsis: true,
dataIndex: 'fileTypeRight' dataIndex: 'fileTypeRight'
}, },
{ {
title: this.$t('docTool.comparison.releaseSituation'), title: this.$t('docTool.comparison.releaseSituation'),
align: 'left',
width: 170, width: 170,
ellipsis: true, ellipsis: true,
dataIndex: 'releaseStateTitle' dataIndex: 'releaseStateTitle'
}, },
{ {
title: this.$t('creator'), title: this.$t('creator'),
align: 'left', width: 150,
width: 170,
ellipsis: true, ellipsis: true,
dataIndex: 'createBy' dataIndex: 'createBy'
}, },
{ {
title: this.$t('remarks'), title: this.$t('remarks'),
align: 'left',
ellipsis: true, ellipsis: true,
width: 270, width: 270,
dataIndex: 'remark' dataIndex: 'remark'
}, },
{ {
title: this.$t('operation'), title: this.$t('operation'),
align: 'center',
fixed: 'right', fixed: 'right',
width: 310, width: 310,
scopedSlots: { customRender: 'operation' } scopedSlots: { customRender: 'operation' }
@@ -319,7 +308,7 @@ export default {
// 发起对比按钮点击 // 发起对比按钮点击
initiatingProcessClick () { initiatingProcessClick () {
this.$router.push({ this.$router.push({
path: '/initiateDocumentComparison' path: '/documentTool/InitiateComparison'
}) })
// let newUrl = this.$router.resolve({ // let newUrl = this.$router.resolve({
// path: '/initiateDocumentComparison' // path: '/initiateDocumentComparison'
@@ -366,5 +355,5 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import '~@assets/less/common.less'; @import '~../../../assets/less/common.less';
</style> </style>
@@ -1,130 +1,117 @@
<template> <template>
<a-spin :spinning="loading"> <internal-detail-page :title="$t('docTool.comparison.documentComparison')" :content-padding="0" :loading="loading">
<div class="doc-detail-wrap"> <template v-slot:titleRightCustom>
<div class="doc-detail-header" style="position: fixed;top: 0"> <a-button class="header-btn" type="primary" icon="eye" ghost @click="viewTheComparisonResultsClick">
<div class="doc-detail-title"> {{ $t('docTool.comparison.viewTheComparisonResults') }}
<span style="line-height: 66px;display: inline-block;float: left" @click="goBack"> </a-button>
<a-icon type="arrow-left" style="margin-right: 6px;"/> <a-button class="header-btn" type="primary" icon="message" ghost @click="addFullTextCommentClick">
</span> {{ $t('docTool.comparison.addFullTextComment') }}
<span> {{$t('docTool.comparison.documentComparison')}}</span> </a-button>
</div> <a-button class="header-btn" type="primary" :icon="isMatching?'close-circle':'check-circle'" ghost @click="turnOffAutomaticMatchingClick">
<div class="doc-detail-right"> {{ isMatching ? $t('docTool.comparison.turnOffAutomaticMatching') : $t('docTool.comparison.turnOnAutoMatch') }}
<div @click="viewTheComparisonResultsClick" class="operator-text-text" </a-button>
:title="$t('docTool.comparison.viewTheComparisonResults')"> </template>
<a-icon type="eye"/> <div class="can-scroll-content">
{{$t('docTool.comparison.viewTheComparisonResults')}}
</div>
<div @click="addFullTextCommentClick" class="operator-text-text"
:title="$t('docTool.comparison.addFullTextComment')">
<a-icon type="message"/>
{{$t('docTool.comparison.addFullTextComment')}}
</div>
<div @click="turnOffAutomaticMatchingClick" class="operator-text-text"
:title="isMatching ? $t('docTool.comparison.turnOffAutomaticMatching'):$t('docTool.comparison.turnOnAutoMatch')">
<a-icon :type="isMatching?'close-circle':'check-circle'"/>
{{isMatching ? $t('docTool.comparison.turnOffAutomaticMatching'):$t('docTool.comparison.turnOnAutoMatch')}}
</div>
</div>
</div>
<div class="detail-content"> <div class="detail-content">
<div class="detail-content-cont"> <div class="detail-content-left">
<div class="detail-content-left"> <div class="detail-content-left-header"
<div class="detail-content-left-header" :title="resultData.serialNumberLeft + resultData.fileNameLeft">
:title="resultData.serialNumberLeft + resultData.fileNameLeft"> {{ this.resultData.serialNumberLeft }}&nbsp;
{{this.resultData.serialNumberLeft}}&nbsp; {{ this.resultData.fileNameLeft }}
{{this.resultData.fileNameLeft}} </div>
</div> <div class="detail-content-content-left">
<div class="detail-content-content-left"> <a-tree
<a-tree class="draggable-tree"
class="draggable-tree" @select="onSelectLeft"
@select="onSelectLeft" :tree-data="resultData.menuLeft"
:tree-data="resultData.menuLeft" />
/> </div>
</div> <div class="detail-content-content-right-top">
<div class="detail-content-content-right-top"> <div class="detail-content-content-right">
<div class="detail-content-content-right"> <div class="detail-content-content-right-data" @click="detailLeft(index,item)"
<div class="detail-content-content-right-data" @click="detailLeft(index,item)" v-for="(item,index) in resultData.textLeft" :key="index"
v-for="(item,index) in resultData.textLeft" :key="index" :class="{'detail-content-content-right-data-blue':item.reviewed === '1'}">
:class="{'detail-content-content-right-data-blue':item.reviewed === '1'}"> <div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29">
<div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29"> {{ item.itemsNum + ' ' + item.itemsName }}
{{item.itemsNum + ' ' + item.itemsName}}
</div>
<div class="detail-content-content-right-data-text" v-html="item.itemsText"></div>
</div> </div>
<div class="detail-content-content-right-data-text" v-html="item.itemsText"></div>
</div> </div>
</div> </div>
</div> </div>
<div class="detail-content-right"> </div>
<div class="detail-content-left-header"> <div class="detail-content-right">
<div class="detail-content-left-header">
<span class="detail-content-left-header-text" <span class="detail-content-left-header-text"
:title="resultData.serialNumberRight + resultData.fileNameRight"> :title="resultData.serialNumberRight + resultData.fileNameRight">
{{this.resultData.serialNumberRight}}&nbsp; {{ this.resultData.serialNumberRight }}&nbsp;
{{this.resultData.fileNameRight}} {{ this.resultData.fileNameRight }}
</span> </span>
<!-- <span class="detail-content-left-header-text-right">--> <!-- <span class="detail-content-left-header-text-right">-->
<!-- <span style="color: #9B9DA9">相似度:</span>--> <!-- <span style="color: #9B9DA9">相似度:</span>-->
<!-- <span style="color: #E83030">98%</span>--> <!-- <span style="color: #E83030">98%</span>-->
<!-- </span>--> <!-- </span>-->
</div> </div>
<div class="detail-content-content-left"> <div class="detail-content-content-left">
<a-tree <a-tree
class="draggable-tree" class="draggable-tree"
@select="onSelectRight" @select="onSelectRight"
:tree-data="resultData.menuRight" :tree-data="resultData.menuRight"
/> />
</div> </div>
<div class="detail-content-content-right-right-top"> <div class="detail-content-content-right-right-top">
<div class="detail-content-content-right-right"> <div class="detail-content-content-right-right">
<div class="detail-content-content-right-data-right" @click="detailRight(index,item)" <div class="detail-content-content-right-data-right" @click="detailRight(index,item)"
v-for="(item,index) in resultData.textRight" :key="index" v-for="(item,index) in resultData.textRight" :key="index"
:class="{'detail-content-content-right-data-blue-right':item.reviewed === '1'}"> :class="{'detail-content-content-right-data-blue-right':item.reviewed === '1'}">
<div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29"> <div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29">
{{item.itemsNum + ' ' + item.itemsName}} {{ item.itemsNum + ' ' + item.itemsName }}
</div> </div>
<div class="detail-content-content-right-data-text" v-html="item.itemsText"> <div class="detail-content-content-right-data-text" v-html="item.itemsText">
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="remarks"> </div>
<a-form-model :model="formInline"
class="formAdd" :rules="rules" <div class="remarks">
ref="ruleForm"> <a-form-model :model="formInline"
<div class="box-title-text-remarks"> class="formAdd" :rules="rules"
<div class="title-text-remarks" :title="$t('docTool.comparison.comparisonOfArticles')" style="width: 84px"> ref="ruleForm">
<span>{{$t('docTool.comparison.comparisonOfArticles')}}</span> <div class="box-title-text-remarks">
</div> <div class="title-text-remarks" :title="$t('docTool.comparison.comparisonOfArticles')" style="width: 84px">
<a-form-model-item class="item-model" prop="comment"> <span>{{ $t('docTool.comparison.comparisonOfArticles') }}</span>
<a-textarea :placeholder="$t('pleaseEnter')+$t('docTool.comparison.comparisonOfArticles')"
v-model="formInline.comment"
:maxLength="500"
:rows="3"/>
</a-form-model-item>
</div> </div>
</a-form-model> <a-form-model-item class="item-model" prop="comment">
</div> <a-textarea :placeholder="$t('pleaseEnter')+$t('docTool.comparison.comparisonOfArticles')"
<div class="submit-button"> v-model="formInline.comment"
<a-button style="margin-right: 10px" :maxLength="500"
type="primary" @click="consistentAssessmentClick()">{{$t('docTool.comparison.consistentAssessment')}} :rows="3" />
</a-button> </a-form-model-item>
<a-button type="primary" @click="submit()">{{$t('preservation')}}</a-button> </div>
</div> </a-form-model>
</div> </div>
</div> </div>
<div class="submit-button">
<a-button style="margin-right: 10px" type="primary" @click="consistentAssessmentClick()">{{ $t('docTool.comparison.consistentAssessment') }}
</a-button>
<a-button type="primary" @click="submit()">{{ $t('preservation') }}</a-button>
</div>
<comparison-add-full-comment ref="comparisonAddFullComment"></comparison-add-full-comment> <comparison-add-full-comment ref="comparisonAddFullComment"></comparison-add-full-comment>
</a-spin> </internal-detail-page>
</template> </template>
<script> <script>
import { postAction, getAction } from '@/api/manage' import { postAction, getAction } from '../../../api/manage.js'
// 添加全文评论弹框 // 添加全文评论弹框
import ComparisonAddFullComment from './ComparisonAddFullComment' import ComparisonAddFullComment from '../modules/ComparisonAddFullComment.vue'
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
export default { export default {
name: 'DocumentDataComparison', name: 'DocumentDataComparison',
components: { ComparisonAddFullComment }, components: { ComparisonAddFullComment, InternalDetailPage },
data () { data () {
return { return {
formInline: {}, formInline: {},
@@ -409,79 +396,64 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.doc-detail-wrap { .header-btn {
.doc-detail-header { margin-left: 12px;
width: 100%; }
z-index: 1000;
height: 68px;
line-height: 68px;
padding: 0 0 0 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
border-bottom: 2px #eff1f3 solid;
background: #fff;
.doc-detail-title { .header-btn:first-child {
display: inline-block; margin-left: 0;
text-overflow: ellipsis; }
white-space: nowrap;
overflow: hidden;
font-size: 20px;
font-weight: 400;
color: #040B29;
line-height: 68px;
}
}
.doc-detail-right {
width: 600px;
line-height: 68px;
display: flex;
.operator-text-text { .can-scroll-content {
cursor: pointer; height: calc(100% - 52px);
margin-right: 53px; overflow: auto;
font-size: 14px; }
font-weight: 400;
color: #040B29; .doc-detail-right {
display: inline-block; width: 600px;
width: 33.3%; line-height: 68px;
text-overflow: ellipsis; display: flex;
white-space: nowrap;
overflow: hidden; .operator-text-text {
text-align: right; cursor: pointer;
} margin-right: 53px;
font-size: 14px;
font-weight: 400;
color: #040B29;
display: inline-block;
width: 33.3%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-align: right;
} }
} }
.detail-content { .detail-content {
padding-top: 68px; height: calc(100% - 131px);
background: #fff; display: flex;
padding-bottom: 30px;
overflow-y: auto;
&-cont {
width: 100%;
overflow: hidden;
display: flex;
}
&-left { &-left {
width: 50%; width: 50%;
height: calc(100vh - 210px); height: 100%;
border-right: 2px #EFF1F3 solid; border-right: 2px #EFF1F3 solid;
padding: 24px 32px; padding: 24px 32px;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid; border-bottom: 2px #EFF1F3 solid;
} }
&-right { &-right {
width: 50%; width: 50%;
height: calc(100vh - 210px); height: 100%;
padding: 24px 32px; padding: 24px 32px;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid; border-bottom: 2px #EFF1F3 solid;
} }
&-left-header { &-left-header {
margin-bottom: 24px; margin-bottom: 24px;
} }
&-left-header-text { &-left-header-text {
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
@@ -499,6 +471,7 @@ export default {
height: 520px; height: 520px;
float: left; float: left;
overflow: auto; overflow: auto;
/deep/ .ant-tree-node-content-wrapper { /deep/ .ant-tree-node-content-wrapper {
display: inline-block !important; display: inline-block !important;
color: #040B29 !important; color: #040B29 !important;
@@ -543,14 +516,8 @@ export default {
} }
.submit-button { .submit-button {
width: 100%; height: 52px;
height: 60px;
text-align: right; text-align: right;
padding: 14px 32px 0; padding: 10px 24px;
box-sizing: border-box;
border-top: 2px #eff1f3 solid;
background: #ffffff;
position: fixed;
bottom: 0;
} }
</style> </style>
@@ -1,15 +1,7 @@
<template> <template>
<div class="doc-detail-wrap"> <internal-detail-page :title="$t('docTool.comparison.initiateComparison')" :content-padding="0" :loading="loading">
<div class="doc-detail-header"> <div class="can-scroll-content">
<div class="doc-detail-title"> <div class="detail-content-box">
<span style="line-height: 66px;display: inline-block;float: left" @click="goBack">
<a-icon type="arrow-left" style="margin-right: 6px;"/>
</span>
<span> {{$t('docTool.comparison.initiateComparison')}}</span>
</div>
</div>
<div class="detail-content">
<div style="width: 100%;height: auto;overflow: hidden">
<div class="detail-content-left"> <div class="detail-content-left">
<a-form layout="inline" @keyup.enter.native="searchQueryLeft"> <a-form layout="inline" @keyup.enter.native="searchQueryLeft">
<a-row :gutter="24"> <a-row :gutter="24">
@@ -27,8 +19,8 @@
</a-col> </a-col>
<span style="text-align:right;overflow: hidden;" class="table-page-search-submitButtons"> <span style="text-align:right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="8" :sm="24"> <a-col :md="8" :sm="24">
<a-button @click="searchResetLeft">{{$t('reset')}}</a-button> <a-button @click="searchResetLeft">{{ $t('reset') }}</a-button>
<a-button style="margin-left: 8px" type="primary" @click="searchQueryLeft">{{$t('query')}}</a-button> <a-button style="margin-left: 8px" type="primary" @click="searchQueryLeft">{{ $t('query') }}</a-button>
</a-col> </a-col>
</span> </span>
</a-row> </a-row>
@@ -49,13 +41,14 @@
</j-table> </j-table>
<div class="box-button-standard"> <div class="box-button-standard">
<span class="box-button-standard-left" :title="$t('docTool.comparison.selectedStandard')"> <span class="box-button-standard-left" :title="$t('docTool.comparison.selectedStandard')">
{{$t('docTool.comparison.selectedStandard')}} {{ $t('docTool.comparison.selectedStandard') }}
</span> </span>
<span class="box-button-standard-right" <span class="box-button-standard-right"
@click="selectLeftClick(selectedRowsLeft[0])" @click="selectLeftClick(selectedRowsLeft[0])"
:title="selectedRowsLeft[0]?selectedRowsLeft[0].serialNumber+' '+selectedRowsLeft[0].fileName:$t('docTool.comparison.noComparisonDocumentSelected')" :title="selectedRowsLeft[0]?selectedRowsLeft[0].serialNumber+' '+selectedRowsLeft[0].fileName:$t('docTool.comparison.noComparisonDocumentSelected')"
:class="{'box-button-standard-right-color':selectedRowsLeft[0]}"> :class="{'box-button-standard-right-color':selectedRowsLeft[0]}">
{{selectedRowsLeft[0]?selectedRowsLeft[0].serialNumber+' '+selectedRowsLeft[0].fileName:$t('docTool.comparison.noComparisonDocumentSelected')}} {{ selectedRowsLeft[0] ? selectedRowsLeft[0].serialNumber + ' ' + selectedRowsLeft[0].fileName : $t('docTool.comparison.noComparisonDocumentSelected')
}}
</span> </span>
</div> </div>
</div> </div>
@@ -76,8 +69,8 @@
</a-col> </a-col>
<span style="text-align:right;overflow: hidden;" class="table-page-search-submitButtons"> <span style="text-align:right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="8" :sm="24"> <a-col :md="8" :sm="24">
<a-button @click="searchResetRight">{{$t('reset')}}</a-button> <a-button @click="searchResetRight">{{ $t('reset') }}</a-button>
<a-button style="margin-left: 8px" type="primary" @click="searchQueryRight">{{$t('query')}}</a-button> <a-button style="margin-left: 8px" type="primary" @click="searchQueryRight">{{ $t('query') }}</a-button>
</a-col> </a-col>
</span> </span>
</a-row> </a-row>
@@ -98,56 +91,59 @@
</j-table> </j-table>
<div class="box-button-standard"> <div class="box-button-standard">
<span class="box-button-standard-left" :title="$t('docTool.comparison.selectedStandard')"> <span class="box-button-standard-left" :title="$t('docTool.comparison.selectedStandard')">
{{$t('docTool.comparison.selectedStandard')}} {{ $t('docTool.comparison.selectedStandard') }}
</span> </span>
<span class="box-button-standard-right" <span class="box-button-standard-right"
@click="selectLeftClick(selectedRowsRight[0])" @click="selectLeftClick(selectedRowsRight[0])"
:title="selectedRowsRight[0]?selectedRowsRight[0].serialNumber+' '+selectedRowsRight[0].fileName:$t('docTool.comparison.noComparisonDocumentSelected')" :title="selectedRowsRight[0]?selectedRowsRight[0].serialNumber+' '+selectedRowsRight[0].fileName:$t('docTool.comparison.noComparisonDocumentSelected')"
:class="{'box-button-standard-right-color':selectedRowsRight[0]}"> :class="{'box-button-standard-right-color':selectedRowsRight[0]}">
{{selectedRowsRight[0]?selectedRowsRight[0].serialNumber+' '+selectedRowsRight[0].fileName:$t('docTool.comparison.noComparisonDocumentSelected')}} {{ selectedRowsRight[0] ? selectedRowsRight[0].serialNumber + ' ' + selectedRowsRight[0].fileName : $t('docTool.comparison.noComparisonDocumentSelected')
}}
</span> </span>
</div> </div>
</div> </div>
</div> </div>
<div class="remarks"> <div class="remarks">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm"> <a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<div class="box-title-text-remarks"> <div class="box-title-text-remarks">
<div class="title-text-remarks" :title="$t('docTool.comparison.remarkInfo')"> <div class="title-text-remarks" :title="$t('docTool.comparison.remarkInfo')">
<span>{{$t('docTool.comparison.remarkInfo')}}</span> <span>{{ $t('docTool.comparison.remarkInfo') }}</span>
</div> </div>
<a-form-model-item class="item-model" prop="remark"> <a-form-model-item class="item-model" prop="remark">
<a-textarea :placeholder="$t('pleaseEnter')+$t('docTool.comparison.remarkInfo')" <a-textarea :placeholder="$t('pleaseEnter')+$t('docTool.comparison.remarkInfo')"
:maxLength="300" :maxLength="300"
v-model="formInline.remark" v-model="formInline.remark"
:rows="4"/> :rows="4" />
</a-form-model-item> </a-form-model-item>
</div> </div>
</a-form-model> </a-form-model>
</div> </div>
<div class="submit-button">
<a-button class="box-button" type="primary" @click="submit">{{$t('docTool.comparison.initiateDocumentComparison')}}</a-button>
</div>
</div> </div>
<!-- <JLoading :loading="loading">{{$t('pleaseWaitWhileRunning')}}</JLoading>-->
<div class="box-button">
<a-button type="primary" @click="submit">{{ $t('docTool.comparison.initiateDocumentComparison') }}</a-button>
</div>
<div id="images"> <div id="images">
<div class="image" v-viewer="{movable: false}"> <div class="image" v-viewer="{movable: false}">
<img v-show="image" :src="imageUrl"> <img v-show="image" :src="imageUrl">
</div> </div>
</div> </div>
</div> </internal-detail-page>
</template> </template>
<script> <script>
import JTable from '@/components/jero/JTable' import JTable from '../../../components/jero/JTable.vue'
import { getAction, downloadFile, getFileAccessHttpUrl } from '@/api/manage' import { getAction, downloadFile, getFileAccessHttpUrl } from '../../../api/manage.js'
import { previewPdf } from '@/utils/previewPdf' import { previewPdf } from '../../../utils/previewPdf.js'
import { Base64 } from 'js-base64' import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
export default { export default {
name: 'InitiateComparison', name: 'InitiateComparison',
components: { JTable }, components: { JTable, InternalDetailPage },
data () { data () {
return { return {
loading: false, loading: false,
@@ -347,7 +343,7 @@ export default {
}, },
submit () { submit () {
this.$router.push({ this.$router.push({
path: '/documentDataComparison', path: '/documentTool/DocumentDataComparison'
}) })
// if (!this.selectedRowsRight[0] || !this.selectedRowsLeft[0]) { // if (!this.selectedRowsRight[0] || !this.selectedRowsLeft[0]) {
// this.$message.warning(this.$t('pleaseSelectTheDataCompared')) // this.$message.warning(this.$t('pleaseSelectTheDataCompared'))
@@ -470,59 +466,33 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import'~@assets/less/common.less'; @import '~../../../assets/less/common.less';
.doc-detail-wrap { .can-scroll-content {
padding-bottom: 20px; height: calc(100% - 52px);
position: relative; overflow: auto;
.doc-detail-header {
width: 100%;
z-index: 1000;
height: 68px;
line-height: 68px;
padding: 0 0 0 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
border-bottom: 2px #eff1f3 solid;
background: #fff;
position: fixed;
top: 0;
.doc-detail-title {
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 20px;
font-weight: 400;
color: #040B29;
line-height: 68px;
}
}
} }
.detail-content { .detail-content-box {
padding-top: 68px; display: flex;
height: calc(100% - 152px);
} }
.detail-content-left { .detail-content-left {
width: 50%; width: 50%;
float: left;
border-right: 2px #EFF1F3 solid; border-right: 2px #EFF1F3 solid;
padding: 24px 32px; padding: 24px 32px;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid; border-bottom: 2px #EFF1F3 solid;
height: 610px; height: 100%;
} }
.detail-content-right { .detail-content-right {
width: 50%; width: 50%;
float: left;
padding: 24px 32px; padding: 24px 32px;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid; border-bottom: 2px #EFF1F3 solid;
height: 610px; height: 100%;
} }
.box-title-text-remarks { .box-title-text-remarks {
@@ -545,6 +515,11 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.box-button {
padding: 10px 24px;
text-align: right;
}
.box-button-standard { .box-button-standard {
width: 100%; width: 100%;
margin-top: 20px; margin-top: 20px;
@@ -586,7 +561,6 @@ export default {
width: 50%; width: 50%;
padding: 0 32px; padding: 0 32px;
box-sizing: border-box; box-sizing: border-box;
margin-bottom: 60px;
} }
.item-model { .item-model {
@@ -93,14 +93,14 @@
</template> </template>
<script> <script>
import '@assets/less/common.less' import '../../../assets/less/common.less'
import JTable from '@/components/jero/JTable' import JTable from '../../../components/jero/JTable.vue'
// 拆分已入库文本弹框 // 拆分已入库文本弹框
import SplitText from './modules/SplitText' import SplitText from '../modules/SplitText.vue'
// 导入拆分结果弹框 // 导入拆分结果弹框
import ImportResult from './modules/ImportResult' import ImportResult from '../modules/ImportResult.vue'
import { JeroListMixin } from '../../mixins/JeroListMixin.js' import { JeroListMixin } from '../../../mixins/JeroListMixin.js'
import { releaseSplitStandard } from '../../api/documentToolApi.js' import { releaseSplitStandard } from '../../../api/documentToolApi.js'
export default { export default {
name: 'DocumentSplit', name: 'DocumentSplit',
@@ -180,21 +180,21 @@
</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 SplitAddForm from './modules/SplitAddForm.vue' import SplitAddForm from '../modules/SplitAddForm.vue'
// 条款内容弹框 // 条款内容弹框
import SplitClauseDetail from './modules/SplitClauseDetail.vue' import SplitClauseDetail from '../modules/SplitClauseDetail.vue'
// 添加左侧树节点弹框 // 添加左侧树节点弹框
import SplitDetailNodeAdd from './modules/SplitDetailNodeAdd.vue' import SplitDetailNodeAdd from '../modules/SplitDetailNodeAdd.vue'
// 批量设置弹框 // 批量设置弹框
import SplitDetailBatchSetting from './modules/SplitDetailBatchSetting.vue' import SplitDetailBatchSetting from '../modules/SplitDetailBatchSetting.vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { postAction, getAction, downloadFile } from '../../api/manage.js' import { postAction, getAction } from '../../../api/manage.js'
import { ConfigurableTableMixin } from '../../mixins/ConfigurableTableMixin.js' import { ConfigurableTableMixin } from '../../../mixins/ConfigurableTableMixin.js'
import { getDocSplitTableHeader, getDocSplitSearch } from '../../api/documentToolApi.js' import { getDocSplitTableHeader, getDocSplitSearch } from '../../../api/documentToolApi.js'
import Search from '../../components/customField/Search.vue' import Search from '../../../components/customField/Search.vue'
export default { export default {
name: 'DocumentSplitDetail', name: 'DocumentSplitDetail',
@@ -554,7 +554,7 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import '~../../assets/less/common.less'; @import '~@assets/less/common.less';
.page-left-right-layout { .page-left-right-layout {
height: 100%; height: 100%;