919 lines
29 KiB
Vue
919 lines
29 KiB
Vue
<template>
|
|
<internal-detail-page :title="$t('docTool.comparison.documentComparison')"
|
|
:content-padding="0"
|
|
:loading="loading"
|
|
need-custom-back-func
|
|
@back="handleBack">
|
|
<template v-slot:titleRightCustom>
|
|
<!--查看比对结果-->
|
|
<a-button class="header-btn"
|
|
type="primary"
|
|
icon="eye"
|
|
ghost
|
|
@click="viewTheComparisonResultsClick"
|
|
v-has="'docComparison:dataComparison:viewTheComparisonResults'">
|
|
{{ $t('docTool.comparison.viewTheComparisonResults') }}
|
|
</a-button>
|
|
<!--添加全文评论-->
|
|
<a-button class="header-btn"
|
|
type="primary"
|
|
icon="message"
|
|
ghost
|
|
@click="addFullTextCommentClick"
|
|
v-has="'docComparison:dataComparison:addFullTextComment'">
|
|
{{ $t('docTool.comparison.addFullTextComment') }}
|
|
</a-button>
|
|
<!--关闭/打开自动匹配-->
|
|
<a-button class="header-btn"
|
|
type="primary"
|
|
:icon="isMatching?'close-circle':'check-circle'"
|
|
ghost
|
|
@click="turnOffAutomaticMatchingClick"
|
|
v-has="'docComparison:dataComparison:turnOffAutomaticMatching'">
|
|
{{ isMatching ? $t('docTool.comparison.turnOffAutomaticMatching') : $t('docTool.comparison.turnOnAutoMatch') }}
|
|
</a-button>
|
|
</template>
|
|
<div class="can-scroll-content">
|
|
<div class="detail-content">
|
|
<div class="detail-content-left">
|
|
<div class="standard-catalogue part-common" :class="{'hide-catalogue': !leftCatalogueShow}">
|
|
<div class="catalogue-show" @click="changeLeftCatalogueShow">
|
|
<a-icon :type="leftCatalogueShow ? 'left' : 'right'" />
|
|
</div>
|
|
<div class="part-title" v-show="leftCatalogueShow">{{ $t('standardRegulationLibrary.standardCatalogue') }}</div>
|
|
<div class="has-title-part-content" v-show="leftCatalogueShow">
|
|
<a-tree
|
|
class="draggable-tree"
|
|
:selected-keys="leftTreeSelectedKeys"
|
|
:replace-fields="{key: 'menuId'}"
|
|
@select="onSelectLeft"
|
|
:tree-data="resultData.menuLeft">
|
|
<a-icon slot="switcherIcon" type="down" :style="{ fontSize: '12px', color: '#103770' }" />
|
|
<template slot="title" slot-scope="{title}">
|
|
<!-- 目录前三个和有子集的标题加粗 -->
|
|
<span :style="title.indexOf('.')===-1?'font-weight: 600;':''">{{ title }}</span>
|
|
</template>
|
|
</a-tree>
|
|
</div>
|
|
</div>
|
|
<div class="detail-content-content-right-top">
|
|
<!--标准名称-->
|
|
<div class="standard-name">
|
|
<a-tooltip placement="topLeft">
|
|
<template #title>
|
|
{{ resultData.serialNumberLeft }} {{ resultData.fileNameLeft }}
|
|
</template>
|
|
<span>{{ resultData.serialNumberLeft }} {{ resultData.fileNameLeft }}</span>
|
|
</a-tooltip>
|
|
</div>
|
|
<div class="detail-content-content-right">
|
|
<div class="detail-content-content-right-data" @click="detailLeft(index,item)"
|
|
v-for="(item,index) in resultData.textLeft" :key="index"
|
|
:class="{'detail-content-content-right-data-blue':item.reviewed === '1'}">
|
|
<div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29">
|
|
{{ item.itemsNum + ' ' + item.itemsName }}
|
|
</div>
|
|
<div class="detail-content-content-right-data-text" v-html="item.itemsText"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="detail-content-right">
|
|
<div class="standard-catalogue part-common" :class="{'hide-catalogue': !rightCatalogueShow}">
|
|
<div class="catalogue-show" @click="changeRightCatalogueShow">
|
|
<a-icon :type="rightCatalogueShow ? 'left' : 'right'" />
|
|
</div>
|
|
<div class="part-title" v-show="rightCatalogueShow">{{ $t('standardRegulationLibrary.standardCatalogue') }}</div>
|
|
<div class="has-title-part-content" v-show="rightCatalogueShow">
|
|
<a-tree
|
|
class="draggable-tree"
|
|
:selected-keys="rightTreeSelectedKeys"
|
|
:replace-fields="{key: 'menuId'}"
|
|
@select="onSelectRight"
|
|
:tree-data="resultData.menuRight">
|
|
<a-icon slot="switcherIcon" type="down" :style="{ fontSize: '12px', color: '#103770' }" />
|
|
<template slot="title" slot-scope="{title}">
|
|
<!-- 目录前三个和有子集的标题加粗 -->
|
|
<span :style="title.indexOf('.')===-1?'font-weight: 600;':''">{{ title }}</span>
|
|
</template>
|
|
</a-tree>
|
|
</div>
|
|
</div>
|
|
<div class="detail-content-content-right-right-top">
|
|
<!--标准名称-->
|
|
<div class="standard-name">
|
|
<a-tooltip placement="topLeft">
|
|
<template #title>
|
|
{{ resultData.serialNumberRight }} {{ resultData.fileNameRight }}
|
|
</template>
|
|
<span>{{ resultData.serialNumberRight }} {{ resultData.fileNameRight }}</span>
|
|
</a-tooltip>
|
|
</div>
|
|
<div class="detail-content-content-right-right">
|
|
<div class="detail-content-content-right-data-right" @click="detailRight(index,item)"
|
|
v-for="(item,index) in resultData.textRight" :key="index"
|
|
: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">
|
|
{{ item.itemsNum + ' ' + item.itemsName }}
|
|
</div>
|
|
<div class="detail-content-content-right-data-text" v-html="item.itemsText">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="remarks">
|
|
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
|
<div class="box-title-text-remarks">
|
|
<div class="title-text-remarks" :title="$t('docTool.comparison.comparisonOfArticles')" style="width: 84px">
|
|
<span>{{ $t('docTool.comparison.comparisonOfArticles') }}</span>
|
|
</div>
|
|
<a-form-model-item class="item-model" prop="comment">
|
|
<a-textarea :placeholder="$t('pleaseEnter')+$t('docTool.comparison.comparisonOfArticles')"
|
|
v-model="formInline.comment"
|
|
:maxLength="500"
|
|
:rows="3" />
|
|
</a-form-model-item>
|
|
</div>
|
|
</a-form-model>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="submit-button">
|
|
<!--一致-->
|
|
<a-button style="margin-right: 10px"
|
|
type="primary"
|
|
@click="consistentAssessmentClick"
|
|
v-has="'docComparison:dataComparison:consistentAssessment'">
|
|
{{ $t('docTool.comparison.consistentAssessment') }}
|
|
</a-button>
|
|
<!--保存-->
|
|
<a-button type="primary" @click="submit" v-has="'docComparison:dataComparison:save'">{{ $t('preservation') }}</a-button>
|
|
</div>
|
|
|
|
<!--全文评论-->
|
|
<comparison-add-full-comment ref="comparisonAddFullComment" />
|
|
</internal-detail-page>
|
|
</template>
|
|
|
|
<script>
|
|
// 添加全文评论弹框
|
|
import ComparisonAddFullComment from './modules/ComparisonAddFullComment.vue'
|
|
import InternalDetailPage from '../../../components/InternalDetailPage.vue'
|
|
import { docComparsionConsistentAndSave, getComparisonDetail, clauseComparison } from '../../../api/documentToolApi.js'
|
|
|
|
export default {
|
|
name: 'DocumentDataComparison',
|
|
components: { ComparisonAddFullComment, InternalDetailPage },
|
|
data () {
|
|
return {
|
|
formInline: {},
|
|
loadingText: false,
|
|
rules: {},
|
|
loading: false,
|
|
resultData: {},
|
|
isMatching: true, // 自动匹配是否开启
|
|
dataLeft: {},
|
|
dataRight: {},
|
|
pageFrom: null,
|
|
leftCatalogueShow: true, // 左侧的标准目录是否展示
|
|
rightCatalogueShow: true, // 右侧的标准目录是否展示
|
|
leftTreeSelectedKeys: [], // 左侧被选中树节点
|
|
rightTreeSelectedKeys: [] // 右侧被选中树节点
|
|
}
|
|
},
|
|
mounted () {
|
|
this.getData()
|
|
document.title = this.$t('docTool.comparison.documentComparison') + ' - ' + this.$t('edit')
|
|
},
|
|
methods: {
|
|
// 文档对比的一致按钮点击
|
|
consistentAssessmentClick () {
|
|
if (!this.dataLeft.id && !this.dataRight.id) {
|
|
this.$message.warning(this.$t('docTool.comparison.pleaseSelectTheDataCompared'))
|
|
return
|
|
}
|
|
const query = {
|
|
itemsIdLeft: this.dataLeft.id,
|
|
itemsIdRight: this.dataRight.id,
|
|
infoId: this.$route.query.id,
|
|
comment: '一致'
|
|
}
|
|
this.loading = true
|
|
docComparsionConsistentAndSave(query).then((res) => {
|
|
if (res.success) {
|
|
this.$message.success(this.$t('operationSuccessful'))
|
|
this.formInline = {}
|
|
this.resultData.textRight.forEach(val => {
|
|
if (val.id === this.dataRight.id) {
|
|
val.reviewed = 1
|
|
}
|
|
})
|
|
this.resultData.textLeft.forEach(val => {
|
|
if (val.id === this.dataLeft.id) {
|
|
val.reviewed = 1
|
|
}
|
|
})
|
|
this.resultData = { ...this.resultData }
|
|
const detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
|
|
if (detailLeftColor && detailLeftColor.length > 0) {
|
|
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
|
|
}
|
|
const detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right')
|
|
if (detailRightColor && detailRightColor.length > 0) {
|
|
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
|
|
}
|
|
this.dataLeft = {}
|
|
this.dataRight = {}
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
}
|
|
}).finally(() => {
|
|
this.loading = false
|
|
})
|
|
},
|
|
// 文档对比的保存按钮点击
|
|
submit () {
|
|
if (!this.dataLeft.id && !this.dataRight.id) {
|
|
this.$message.warning(this.$t('docTool.comparison.pleaseSelectTheDataCompared'))
|
|
return
|
|
}
|
|
this.$refs.ruleForm.validate(valid => {
|
|
if (valid) {
|
|
const query = {
|
|
itemsIdLeft: this.dataLeft.id,
|
|
itemsIdRight: this.dataRight.id,
|
|
infoId: this.$route.query.id,
|
|
comment: this.formInline.comment
|
|
}
|
|
this.loading = true
|
|
docComparsionConsistentAndSave(query).then((res) => {
|
|
if (res.success) {
|
|
this.$message.success(this.$t('operationSuccessful'))
|
|
this.formInline = {}
|
|
this.resultData.textRight.forEach(val => {
|
|
if (val.id === this.dataRight.id) {
|
|
val.reviewed = 1
|
|
}
|
|
})
|
|
this.resultData.textLeft.forEach(val => {
|
|
if (val.id === this.dataLeft.id) {
|
|
val.reviewed = 1
|
|
}
|
|
})
|
|
this.resultData = { ...this.resultData }
|
|
const detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
|
|
if (detailLeftColor && detailLeftColor.length > 0) {
|
|
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
|
|
}
|
|
const detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right')
|
|
if (detailRightColor && detailRightColor.length > 0) {
|
|
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
|
|
}
|
|
this.dataLeft = {}
|
|
this.dataRight = {}
|
|
// this.$router.push({
|
|
// path: '/documentComparison'
|
|
// })
|
|
} else {
|
|
this.$message.warning(this.$t('operationFailed'))
|
|
}
|
|
}).finally(() => {
|
|
this.loading = false
|
|
})
|
|
}
|
|
})
|
|
},
|
|
// 查看对比结果按钮点击
|
|
viewTheComparisonResultsClick () {
|
|
this.$router.push({
|
|
path: '/documentTool/ComparisonResults',
|
|
query: {
|
|
id: this.$route.query.id,
|
|
isDisplay: 2
|
|
}
|
|
})
|
|
},
|
|
// 添加全文评论按钮点击
|
|
addFullTextCommentClick () {
|
|
const query = {
|
|
id: this.$route.query.id
|
|
}
|
|
getComparisonDetail(query).then((res) => {
|
|
if (res.success) {
|
|
this.$refs.comparisonAddFullComment.open(res.result.comments || '')
|
|
}
|
|
})
|
|
},
|
|
// 关闭自动匹配、开启自动匹配
|
|
turnOffAutomaticMatchingClick () {
|
|
this.isMatching = !this.isMatching
|
|
this.$message.success(this.$t('operationSuccessful'))
|
|
},
|
|
// 获取文件对比详情
|
|
getData () {
|
|
const query = {
|
|
id: this.$route.query.id
|
|
}
|
|
this.loading = true
|
|
getComparisonDetail(query).then((res) => {
|
|
if (res.success) {
|
|
this.resultData = res.result || {}
|
|
} else {
|
|
this.resultData = {}
|
|
}
|
|
}).finally(() => {
|
|
this.loading = false
|
|
})
|
|
},
|
|
// 点击左侧文档内容
|
|
detailLeft (num, item) {
|
|
this.leftTreeSelectedKeys = [item.menuId]
|
|
const detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
|
|
if (detailLeftColor && detailLeftColor.length > 0) {
|
|
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
|
|
}
|
|
if (item.id === this.dataLeft.id && !this.isMatching) {
|
|
this.dataLeft = {}
|
|
return
|
|
}
|
|
const detailLeft = document.getElementsByClassName('detail-content-content-right-data')
|
|
if (detailLeft && detailLeft.length > 0) {
|
|
detailLeft[num].classList.add('detail-content-content-right-data-color')
|
|
}
|
|
this.dataLeft = item
|
|
this.dataLeft.numIndex = num
|
|
if (this.isMatching) {
|
|
const detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right')
|
|
if (detailRightColor && detailRightColor.length > 0) {
|
|
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
|
|
}
|
|
if (item.targetStand > -1) {
|
|
const detailContent = document.getElementsByClassName('detail-content-content-right-right-top')
|
|
const detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
|
|
this.dataRight = this.resultData.textRight[item.targetStand]
|
|
if (detailRight && detailRight.length > 0) {
|
|
detailRight[item.targetStand].classList.add('detail-content-content-right-data-color-right')
|
|
detailContent[0].scrollTop = detailRight[item.targetStand].offsetTop - 150
|
|
}
|
|
this.dataRight.numIndex = item.targetStand
|
|
this.clauseComparison()
|
|
}
|
|
}
|
|
},
|
|
// 点击右侧文档内容
|
|
detailRight (num, item) {
|
|
this.rightTreeSelectedKeys = [item.menuId]
|
|
const detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right')
|
|
if (detailRightColor && detailRightColor.length > 0) {
|
|
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
|
|
}
|
|
if (item.id === this.dataRight.id && !this.isMatching) {
|
|
this.dataRight = {}
|
|
return
|
|
}
|
|
const detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
|
|
if (detailRight && detailRight.length > 0) {
|
|
detailRight[num].classList.add('detail-content-content-right-data-color-right')
|
|
}
|
|
this.dataRight = item
|
|
this.dataRight.numIndex = num
|
|
if (this.isMatching) {
|
|
const detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
|
|
if (detailLeftColor && detailLeftColor.length > 0) {
|
|
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
|
|
}
|
|
if (item.targetStand > -1) {
|
|
this.dataLeft = this.resultData.textLeft[item.targetStand]
|
|
this.dataLeft.numIndex = item.targetStand
|
|
const detailContent = document.getElementsByClassName('detail-content-content-right-top')
|
|
const detailLeft = document.getElementsByClassName('detail-content-content-right-data')
|
|
if (detailLeft && detailLeft.length > 0 && item.targetStand >= 0) {
|
|
detailLeft[item.targetStand].classList.add('detail-content-content-right-data-color')
|
|
detailContent[0].scrollTop = detailLeft[item.targetStand].offsetTop - 150
|
|
}
|
|
this.clauseComparison()
|
|
}
|
|
}
|
|
},
|
|
// 自动匹配
|
|
clauseComparison () {
|
|
const query = {
|
|
leftId: this.dataLeft.id,
|
|
rightId: this.dataRight.id
|
|
}
|
|
this.loadingText = true
|
|
clauseComparison(query).then((res) => {
|
|
if (res.success) {
|
|
this.loadingText = false
|
|
this.resultData.textLeft[this.dataLeft.numIndex].itemsText = res.result[0]
|
|
this.resultData.textRight[this.dataRight.numIndex].itemsText = res.result[1]
|
|
} else {
|
|
this.loadingText = false
|
|
}
|
|
})
|
|
},
|
|
// 左侧树选择
|
|
onSelectLeft (selectedKeys, exports) {
|
|
const node = exports.node.$vnode.data.props.dataRef
|
|
const detailLeft = document.getElementsByClassName('detail-content-content-right-data')
|
|
const detailLeftContent = document.getElementsByClassName('detail-content-content-right')[0]
|
|
let dataItem, num
|
|
for (let i = 0; i < this.resultData.textLeft.length; i++) {
|
|
if (node.menuId === this.resultData.textLeft[i].menuId) {
|
|
dataItem = this.resultData.textLeft[i]
|
|
num = i
|
|
detailLeftContent.scrollTop = detailLeft[i].offsetTop - 150
|
|
break
|
|
}
|
|
}
|
|
// 处理数据框选
|
|
const detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
|
|
if (detailLeftColor && detailLeftColor.length > 0) {
|
|
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
|
|
}
|
|
if (dataItem.id === this.dataLeft.id && !this.isMatching) {
|
|
this.dataLeft = {}
|
|
return
|
|
}
|
|
if (detailLeft && detailLeft.length > 0) {
|
|
detailLeft[num].classList.add('detail-content-content-right-data-color')
|
|
}
|
|
this.dataLeft = dataItem
|
|
this.dataLeft.numIndex = num
|
|
// 处理选中右侧树
|
|
if (this.isMatching) {
|
|
const detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
|
|
const detailRightContent = document.getElementsByClassName('detail-content-content-right-right')[0]
|
|
let rightDataItem, rightNum
|
|
for (let i = 0; i < this.resultData.textRight.length; i++) {
|
|
if (node.menuId === this.resultData.textRight[i].menuId) {
|
|
rightDataItem = this.resultData.textLeft[i]
|
|
rightNum = i
|
|
detailRightContent.scrollTop = detailRight[i].offsetTop - 150
|
|
break
|
|
}
|
|
}
|
|
// 处理选中右侧数据
|
|
if (!rightDataItem) {
|
|
return
|
|
}
|
|
const detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right')
|
|
if (detailRightColor && detailRightColor.length > 0) {
|
|
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
|
|
}
|
|
if (rightDataItem.id === this.dataRight.id && !this.isMatching) {
|
|
this.dataRight = {}
|
|
return
|
|
}
|
|
if (detailRight && detailRight.length > 0) {
|
|
detailRight[rightNum].classList.add('detail-content-content-right-data-color-right')
|
|
}
|
|
this.dataRight = rightDataItem
|
|
this.dataRight.numIndex = rightNum
|
|
}
|
|
},
|
|
// 右侧树选中
|
|
onSelectRight (selectedKeys, exports) {
|
|
const node = exports.node.$vnode.data.props.dataRef
|
|
const detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
|
|
const detailRightContent = document.getElementsByClassName('detail-content-content-right-right')[0]
|
|
let rightDataItem, rightNum
|
|
for (let i = 0; i < this.resultData.textRight.length; i++) {
|
|
if (node.menuId === this.resultData.textRight[i].menuId) {
|
|
rightDataItem = this.resultData.textLeft[i]
|
|
rightNum = i
|
|
detailRightContent.scrollTop = detailRight[i].offsetTop - 150
|
|
break
|
|
}
|
|
}
|
|
// 处理选中右侧数据
|
|
if (!rightDataItem) {
|
|
return
|
|
}
|
|
const detailRightColor = document.getElementsByClassName('detail-content-content-right-data-color-right')
|
|
if (detailRightColor && detailRightColor.length > 0) {
|
|
detailRightColor[0].classList.remove('detail-content-content-right-data-color-right')
|
|
}
|
|
if (rightDataItem.id === this.dataRight.id && !this.isMatching) {
|
|
this.dataRight = {}
|
|
return
|
|
}
|
|
if (detailRight && detailRight.length > 0) {
|
|
detailRight[rightNum].classList.add('detail-content-content-right-data-color-right')
|
|
}
|
|
this.dataRight = rightDataItem
|
|
this.dataRight.numIndex = rightNum
|
|
if (this.isMatching) {
|
|
const detailLeft = document.getElementsByClassName('detail-content-content-right-data')
|
|
const detailLeftContent = document.getElementsByClassName('detail-content-content-right')[0]
|
|
let dataItem, num
|
|
for (let i = 0; i < this.resultData.textLeft.length; i++) {
|
|
if (node.menuId === this.resultData.textLeft[i].menuId) {
|
|
dataItem = this.resultData.textLeft[i]
|
|
num = i
|
|
detailLeftContent.scrollTop = detailLeft[i].offsetTop - 150
|
|
break
|
|
}
|
|
}
|
|
// 处理数据框选
|
|
if (!dataItem) {
|
|
return
|
|
}
|
|
const detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
|
|
if (detailLeftColor && detailLeftColor.length > 0) {
|
|
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
|
|
}
|
|
if (dataItem.id === this.dataLeft.id && !this.isMatching) {
|
|
this.dataLeft = {}
|
|
return
|
|
}
|
|
if (detailLeft && detailLeft.length > 0) {
|
|
detailLeft[num].classList.add('detail-content-content-right-data-color')
|
|
}
|
|
this.dataLeft = dataItem
|
|
this.dataLeft.numIndex = num
|
|
}
|
|
},
|
|
handleBack () {
|
|
this.$router.push({
|
|
path: '/documentTool/documentComparison'
|
|
})
|
|
},
|
|
changeLeftCatalogueShow () {
|
|
this.leftCatalogueShow = !this.leftCatalogueShow
|
|
},
|
|
changeRightCatalogueShow () {
|
|
this.rightCatalogueShow = !this.rightCatalogueShow
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="less">
|
|
.header-btn {
|
|
margin-left: 12px;
|
|
}
|
|
|
|
.header-btn:first-child {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.can-scroll-content {
|
|
height: calc(100% - 52px);
|
|
overflow: auto;
|
|
}
|
|
|
|
.doc-detail {
|
|
background: #fff;
|
|
height: 100%;
|
|
|
|
.doc-detail-wrap {
|
|
.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;
|
|
|
|
.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 {
|
|
height: calc(100% - 131px);
|
|
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;
|
|
}
|
|
|
|
.detail-content-left-header {
|
|
width: 100%;
|
|
font-size: 16px;
|
|
font-family: Blue Sky Noto;
|
|
font-weight: 400;
|
|
color: #040B29;
|
|
margin-bottom: 24px;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.box-title-text-remarks {
|
|
line-height: 1.4;
|
|
display: flex;
|
|
/*align-items: center;*/
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.item-model {
|
|
width: calc(100% - 232px);
|
|
}
|
|
|
|
.title-text-remarks {
|
|
width: 68px;
|
|
color: #000F16;
|
|
display: inline-block;
|
|
font-weight: 500;
|
|
font-size: 14px;
|
|
margin-right: 16px;
|
|
margin-top: 6px;
|
|
text-align: right;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.box-button {
|
|
height: 38px;
|
|
/*margin-top: 2px;*/
|
|
}
|
|
|
|
.remarks {
|
|
margin-top: 20px;
|
|
width: 50%;
|
|
display: inline-block;
|
|
padding: 0 32px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.itemModel {
|
|
width: calc(100% - 232px);
|
|
}
|
|
|
|
.submit-button {
|
|
height: 52px;
|
|
text-align: right;
|
|
padding: 10px 24px;
|
|
}
|
|
|
|
.detail-content-content-left {
|
|
width: 180px;
|
|
height: calc(100% - 48px);
|
|
float: left;
|
|
overflow: auto;
|
|
}
|
|
|
|
.detail-content-content-right-top {
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
transition: all 1s;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
.detail-content-content-right-right-top {
|
|
height: 100%;
|
|
overflow-y: auto;
|
|
transition: all 1s;
|
|
scroll-behavior: smooth;
|
|
|
|
.standard-name {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.detail-content-content-right-right {
|
|
margin-right: 0;
|
|
width: calc(100% - 10px);
|
|
}
|
|
}
|
|
|
|
.detail-content-content-right {
|
|
height: calc(100% - 25px - 40px);
|
|
width: calc(100% - 20px);
|
|
display: inline-block;
|
|
margin: 0 10px 0 10px;
|
|
overflow: auto;
|
|
}
|
|
|
|
.detail-content-content-right-right {
|
|
height: calc(100% - 25px - 40px);
|
|
width: calc(100% - 20px);
|
|
display: inline-block;
|
|
margin: 0 10px 0 10px;
|
|
overflow: auto;
|
|
}
|
|
|
|
.detail-content-content-right-data {
|
|
padding: 16px 20px;
|
|
box-sizing: border-box;
|
|
border: 1px solid #EFF1F3;
|
|
cursor: pointer;
|
|
background-color: white;
|
|
}
|
|
|
|
.detail-content-content-right-data-right {
|
|
padding: 16px 20px;
|
|
box-sizing: border-box;
|
|
border: 1px solid #EFF1F3;
|
|
cursor: pointer;
|
|
background-color: white;
|
|
}
|
|
|
|
.detail-content-content-right-data:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.detail-content-content-right-data-text {
|
|
font-size: 16px;
|
|
font-weight: 400;
|
|
color: #040B29;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.detail-content-left-header-text {
|
|
width: 100%;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: inline-block;
|
|
font-size: 16px;
|
|
font-family: Blue Sky Noto;
|
|
font-weight: 400;
|
|
color: #040B29;
|
|
}
|
|
|
|
.detail-content-left-header-text-right {
|
|
text-align: right;
|
|
display: inline-block;
|
|
width: 200px;
|
|
float: right;
|
|
}
|
|
|
|
.doc-detail-right {
|
|
width: 600px;
|
|
line-height: 68px;
|
|
display: flex;
|
|
|
|
.doc-detail-btn {
|
|
margin-left: 10px;
|
|
}
|
|
}
|
|
|
|
.operator-text-text {
|
|
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-content-right-data-blue {
|
|
border: 1px #21c9cc solid;
|
|
}
|
|
|
|
.detail-content-content-right-data-blue-right {
|
|
border: 1px #21c9cc solid;
|
|
}
|
|
|
|
.detail-content-content-right-data-color {
|
|
border: 2px red solid;
|
|
}
|
|
|
|
.detail-content-content-right-data-color-right {
|
|
border: 2px red solid;
|
|
}
|
|
|
|
::v-deep .delClass {
|
|
background: #ff7168;
|
|
font-weight: 700;
|
|
}
|
|
|
|
::v-deep .insertClass {
|
|
background: rgba(85, 183, 255, .6);
|
|
font-weight: 700;
|
|
}
|
|
|
|
/deep/ .ant-tree li span.ant-tree-switcher {
|
|
float: right;
|
|
}
|
|
|
|
::-webkit-scrollbar {
|
|
width: 3px;
|
|
}
|
|
|
|
.part-common {
|
|
border-radius: 8px;
|
|
background: #FFFFFF;
|
|
}
|
|
|
|
.standard-catalogue {
|
|
height: calc(100% - 20px);
|
|
width: 15%;
|
|
min-width: 200px;
|
|
margin: 10px 10px 10px 0;
|
|
position: relative;
|
|
|
|
/deep/ .ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected {
|
|
background-color: transparent !important;
|
|
color: @primary-color;
|
|
}
|
|
|
|
.catalogue-show {
|
|
position: absolute;
|
|
width: 12px;
|
|
height: 24px;
|
|
left: 100%;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
background-color: @primary-color;
|
|
border-radius: 0 12px 12px 0;
|
|
cursor: pointer;
|
|
color: white;
|
|
|
|
.anticon {
|
|
left: -2px;
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
}
|
|
}
|
|
}
|
|
|
|
.hide-catalogue {
|
|
width: 0;
|
|
min-width: 0;
|
|
}
|
|
|
|
.part-title {
|
|
height: 40px;
|
|
background: rgba(213, 44, 38, 0.12);
|
|
border-radius: 8px 8px 0 0;
|
|
line-height: 40px;
|
|
padding: 0 24px;
|
|
font-size: 16px;
|
|
font-family: PingFang SC-Semibold, PingFang SC, sans-serif;
|
|
font-weight: 600;
|
|
color: #1D2129;
|
|
}
|
|
|
|
.has-title-part-content {
|
|
height: calc(100% - 40px);
|
|
overflow: auto;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
.standard-name {
|
|
margin: 10px 10px 5px 10px;
|
|
height: 40px;
|
|
background: #FFFFFF;
|
|
border-radius: 8px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0 24px;
|
|
}
|
|
|
|
.standard-name > span {
|
|
font-size: 16px;
|
|
font-family: PingFang SC-Semibold, PingFang SC, sans-serif;
|
|
font-weight: 600;
|
|
color: #1D2129;
|
|
flex: 1;
|
|
width: 0;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
cursor: pointer;
|
|
}
|
|
</style>
|