Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage

This commit is contained in:
wangzhijiang
2022-08-08 14:27:11 +08:00
5 changed files with 215 additions and 95 deletions
@@ -106,7 +106,7 @@ public class SarFileCompareResCommentServiceImpl extends ServiceImpl<SarFileComp
if (StringUtils.isEmpty(rc.getParentId())) {
SarFileCompareResComVO resComVO = wrapperSarFileCompareResComVO(rc);
for (SarFileCompareResComment rc1 : list) {
if (!StringUtils.isEmpty(rc.getParentId()) && rc.getParentId().equals(resComVO.getId())) {
if (!StringUtils.isEmpty(rc1.getParentId()) && rc1.getParentId().equals(resComVO.getId())) {
resComVO.addResComVo(wrapperSarFileCompareResComVO(rc1));
}
}
@@ -36,8 +36,8 @@
<a-icon type="message"/>
</div>
</div>
<div class="inside-box" v-if="item.projectCommentVOList && item.projectCommentVOList.length > 0">
<div class="box-content-inside" v-for="(val,indexOne) in item.projectCommentVOList" :key="indexOne">
<div class="inside-box" v-if="item.resComVoList && item.resComVoList.length > 0">
<div class="box-content-inside" v-for="(val,indexOne) in item.resComVoList" :key="indexOne">
<div class="img-box">
<img src="../../../../assets/daiban.png" class="img" alt="">
</div>
@@ -97,7 +97,7 @@
</template>
<script>
import { getAction, postAction } from '@/api/manage'
import { getAction, postAction, putAction } from '@/api/manage'
export default {
name: 'commentList',
@@ -112,9 +112,9 @@
confirmLoading: false,
visibleComment: false,
url: {
list: '/compare/sarFileCompareResComment/list',
add: '/sarFileCompareResComment/add',
edit: '/project/projectReplyEO/add'
list: '/compare/sarFileCompareResComment/queryListByInfoId',
add: '/compare/sarFileCompareResComment/add',
edit: '/compare/sarFileCompareResComment/edit'
},
rules: {
commentContent: [
@@ -161,7 +161,7 @@
getList() {
this.loading = true
getAction(this.url.list, {
projectLibraryId: this.$route.query.id,
id: this.$route.query.id,
commentContent: this.commentContent
}).then((res) => {
if (res.success) {
@@ -178,21 +178,25 @@
if (valid) {
let url = ''
let query = {}
let Action
if (this.title == this.$t('publishComment')) {
url = this.url.add
Action = postAction
query = {
commentContent: this.formInline.commentContent,
projectLibraryId: this.$route.query.id
comment: this.formInline.commentContent,
infoId: this.$route.query.id
}
} else if (this.title == this.$t('replyToComments')) {
url = this.url.edit
Action = postAction
url = this.url.add
query = {
replyContent: this.formInline.replyContent,
projectCommentId: this.formInline.projectCommentId
comment: this.formInline.replyContent,
parentId: this.formInline.projectCommentId,
infoId: this.$route.query.id
}
}
this.confirmLoading = true
postAction(url, query).then((res) => {
Action(url, query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.visibleComment = false
@@ -200,7 +204,7 @@
this.getList()
} else {
this.confirmLoading = false
this.$message.success(this.$t('operationFailed'))
this.$message.warning(this.$t('operationFailed'))
}
})
}
@@ -29,43 +29,38 @@
<div class="detail-content-header-content">
<div class="detail-content-header-content-left"
:class="{'detail-content-header-content-left-active':isDisplay}">
所选标准:GB 23456-2020 机动车标准 FMVSS 114 中文.word
{{$t('selectedStandard')}}{{resultData.serialNumberLeft}} {{resultData.fileNameLeft}}
</div>
<div class="detail-content-header-content-content"
:class="{'detail-content-header-content-left-active':isDisplay}">
所选标准:GB 23456-2020 机动车标准 FMVSS 114 中文.word
{{$t('selectedStandard')}}{{resultData.serialNumberRight}} {{resultData.fileNameRight}}
</div>
<div class="detail-content-header-content-right" v-if="!isDisplay">
操作
{{$t('operation')}}
</div>
</div>
</div>
<a-checkbox-group @change="checkboxChange" v-model="checkboxList"
style="width: 100%;overflow: overlay;height: calc(100vh - 300px)">
<div class="detail-content-content" v-for="item in 4">
<a-checkbox value="A" class="detail-checkbox">
<div class="detail-content-content" v-for="(item,index) in resultData.resList">
<a-checkbox :value="item.id" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text-left"
:class="{'detail-content-content-text-dis':isDisplay}">
<div class="detail-content-left">
<div class="detail-content-left-top">
<span>第10条</span>
<span style="margin-left: 10px">光反射器</span>
</div>
<div class="detail-content-left-button">
12. 附加光反射器,可以是贴纸,具有以下规格: a) 正面左右两侧呈白色或淡黄色; b) 背面左右两侧呈红色; c) 防护板
sdf kdsf kljsfkldsfdsfdsf
<span>{{item.itemsNumLeft}}</span>
<span style="margin-left: 10px">{{item.itemsNameLeft}}</span>
</div>
<div class="detail-content-left-button" v-html="item.itemsTextLeft"></div>
</div>
<div class="detail-content-right">
<div class="detail-content-left-top">
<span>第10条</span>
<span style="margin-left: 10px">光反射器</span>
</div>
<div class="detail-content-left-button">
12. 附加光反射器,可以是贴纸,具有以下规格: a) 正面左右两侧呈白色或淡黄色; b) 背面左右两侧呈红色; c) 防护板收到反是馈就但是罚款决定书发的科技示范
<span>{{item.itemsNumRight}}</span>
<span style="margin-left: 10px">{{item.itemsNameRight}}</span>
</div>
<div class="detail-content-left-button" v-html="item.itemsTextRight"></div>
</div>
<div class="detail-content-bottom">
<div class="detail-content-bottom-left" :title="$t('comparisonDifferenceComment')">
@@ -73,41 +68,27 @@
{{$t('comparisonDifferenceComment')}}:
</div>
<div class="detail-content-bottom-right">
差异是各单位在结构上的差别程度成员在时间横轴上的位置的差别程经理与其他的差别程度 横轴上的位置的差别程经理与其他的差别程度差异
{{item.comment}}
</div>
</div>
</div>
<div class="detail-content-content-text-right" v-if="!isDisplay">
<span class="text-button-one">
<a class="text-button" @click="comparaEdit">{{$t('edit')}}</a>
<a class="text-button" @click="comparaDelete">{{$t('delete')}}</a>
<a class="text-button" @click="comparaEdit(item)">{{$t('edit')}}</a>
<a class="text-button" @click="comparaDelete(item)">{{$t('delete')}}</a>
</span>
</div>
</div>
</div>
</a-checkbox-group>
<div class="detail-content-content">
<a-checkbox value="D" class="detail-checkbox">
<a-checkbox @change="fullCheckboxChange" v-model="fullCheckbox" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text-left"
:class="{'detail-content-content-text-dis':isDisplay}">
<div class="detail-content-content-text-left-text">
{{$t('fullTextComments')}}: 文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
{{$t('fullTextComments')}}: {{resultData.comments}}
</div>
</div>
<div class="detail-content-content-text-right" v-if="!isDisplay">
@@ -133,7 +114,7 @@
<a-button key="back" @click="visible = false">
{{$t('cancel')}}
</a-button>
<a-button type="primary" @click="fullTextCommentsSubmit">
<a-button type="primary" :loading="confirmLoading" @click="fullTextCommentsSubmit">
{{$t('submit')}}
</a-button>
</template>
@@ -142,9 +123,9 @@
<div class="title-text-Remarks" :title="$t('fullTextComments')">
<span>{{$t('fullTextComments')}}</span>
</div>
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="dreUserIdName">
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment">
<a-textarea :placeholder="$t('pleaseEnter')+$t('fullTextComments')"
v-model="formInlineText.fullTextComments"
v-model="formInlineText.comment"
:rows="4"/>
</a-form-model-item>
</div>
@@ -152,9 +133,9 @@
<div class="title-text-Remarks" :title="$t('comparativeComments')">
<span>{{$t('comparativeComments')}}</span>
</div>
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="dreUserIdName">
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment">
<a-textarea :placeholder="$t('pleaseEnter')+$t('comparativeComments')"
v-model="formInlineText.comparativeComments"
v-model="formInlineText.comment"
:rows="4"/>
</a-form-model-item>
</div>
@@ -168,6 +149,7 @@
<script>
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import commentList from './commentList'
import { putAction } from '../../../../api/manage'
export default {
name: 'comparisonResults',
@@ -185,7 +167,9 @@
title: '',
indeterminate: false,
checkAll: false,
isDisplay: false
isDisplay: false,
fullCheckbox: false,
resultData: {}
}
},
mounted() {
@@ -210,51 +194,129 @@
},
getData() {
let query = {
id: this.$route.query.id
id: this.$route.query.id,
infoId: this.$route.query.id
}
getAction('/compare/sarFileCompareItemComment/list', query).then((res) => {
this.loading = true
getAction('/compare/sarFileCompareItemComment/queryCompareResult', query).then((res) => {
if (res.success) {
this.resultData = res.result || {}
this.loading = false
} else {
this.resultData = {}
this.loading = false
}
})
},
checkboxChange(checkedList) {
this.indeterminate = !!checkedList.length && checkedList.length < this.checkboxList.length
this.checkAll = checkedList.length === this.checkboxList.length
this.indeterminate = !!checkedList.length && checkedList.length < this.resultData.resList.length || (this.fullCheckbox && this.checkboxList.length < this.resultData.resList.length) || (!this.fullCheckbox && !!checkedList.length)
this.checkAll = checkedList.length === this.resultData.resList.length && this.fullCheckbox
},
fullCheckboxChange(event) {
this.indeterminate = !!this.checkboxList.length && this.checkboxList.length < this.resultData.resList.length || (event.target.checked && this.checkboxList.length < this.resultData.resList.length) || (!this.fullCheckbox && !!this.checkboxList.length)
this.checkAll = this.checkboxList.length === this.resultData.resList.length && event.target.checked
},
onChange(event) {
this.checkAll = event.target.checked
if (event.target.checked) {
this.checkboxList = ['A', 'B', 'C', 'D']
this.resultData.resList.forEach(res => {
this.checkboxList.push(res.id)
})
this.fullCheckbox = true
this.indeterminate = false
} else {
this.checkboxList = []
this.fullCheckbox = false
}
if (this.checkboxList.length == 0) {
if (this.checkboxList.length == 0 && !this.fullCheckbox) {
this.checkAll = false
this.indeterminate = false
}
},
fullTextCommentsSubmit() {
this.$refs.ruleForm.validate(valid => {
this.$refs.ruleFormText.validate(valid => {
if (valid) {
if (this.title == this.$t('fullTextComments')) {
this.fullTextComments()
} else {
this.comparaComments()
}
}
})
},
fullTextEdit() {
this.visible = true
this.title = this.$t('fullTextComments')
this.formInlineText = {}
this.$nextTick(() => {
this.$refs.ruleFormText.clearValidate()
fullTextComments() {
this.confirmLoading = true
let query = {
id: this.$route.query.id,
comments: this.formInlineText.comment
}
putAction('/compare/sarFileCompareInfo/editComments', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.confirmLoading = false
this.visible = false
this.getData()
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
},
comparaEdit() {
comparaComments() {
this.confirmLoading = true
let query = {
infoId: this.$route.query.id,
id: this.formInlineText.id,
comment: this.formInlineText.comment
}
putAction('/compare/sarFileCompareItemComment/edit', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.confirmLoading = false
this.visible = false
this.getData()
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
},
fullTextEdit(item) {
this.visible = true
this.title = this.$t('comparativeComments')
this.formInlineText = {}
this.title = this.$t('fullTextComments')
this.formInlineText.comment = this.resultData.comments || ''
this.formInlineText = { ...this.formInlineText }
this.$nextTick(() => {
this.$refs.ruleFormText.clearValidate()
this.rulesText = {
comment: [
{
max: 300,
message: this.$t('fullTextComments') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
]
}
this.rulesText = { ...this.rulesText }
})
},
comparaEdit(item) {
this.visible = true
this.title = this.$t('comparativeComments')
this.formInlineText = JSON.parse(JSON.stringify(item))
this.formInlineText = { ...this.formInlineText }
this.$nextTick(() => {
this.$refs.ruleFormText.clearValidate()
this.rulesText = {
comment: [
{
max: 300,
message: this.$t('comparativeComments') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
]
}
this.rulesText = { ...this.rulesText }
})
},
comparaDelete(val) {
@@ -262,10 +324,10 @@
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
deleteAction(_this.url.deleteOne, { id: val.id }).then((res) => {
deleteAction('/compare/sarFileCompareItemComment/delete', { id: val.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
_this.getData()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
@@ -45,7 +45,7 @@
<div class="detail-content-content-right">
<div class="detail-content-content-right-data" @click="detailLeft(index,item)"
v-for="(item,index) in resultData.textLeft"
:class="{'detail-content-content-right-data-blue':false}">
:class="{'detail-content-content-right-data-blue':item.reviewed == '1'?true:false}">
<div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29">
{{item.itemsNum + ' ' + item.itemsName}}
</div>
@@ -76,7 +76,7 @@
<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"
:class="{'detail-content-content-right-data-blue-right':false}">
:class="{'detail-content-content-right-data-blue-right':item.reviewed == '1'?true:false}">
<div class="detail-content-content-right-data-text" style="margin-bottom: 10px;color: #040B29">
{{item.itemsNum + ' ' + item.itemsName}}
</div>
@@ -119,7 +119,7 @@
<a-button type="primary" @click="fullTextCommentsEdit">
{{$t('edit')}}
</a-button>
<a-button type="primary" :confirm-loading="confirmLoading" @click="fullTextCommentsSubmit">
<a-button type="primary" :loading="confirmLoading" @click="fullTextCommentsSubmit">
{{$t('submit')}}
</a-button>
</template>
@@ -130,7 +130,7 @@
</div>
<a-form-model-item class="itemModel" style="width: calc(100% - 113px)" prop="comment">
<a-textarea :placeholder="$t('pleaseEnter')+$t('fullTextComments')"
v-model="formInlineText.comment"
v-model.trim="formInlineText.comment"
:disabled="fullTextDisabled"
:rows="4"/>
</a-form-model-item>
@@ -142,7 +142,7 @@
</template>
<script>
import { postAction } from '../../../../api/manage'
import { postAction, putAction } from '../../../../api/manage'
export default {
name: 'documentDataComparison',
@@ -207,6 +207,28 @@
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.loading = false
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 }
let detailLeftColor = document.getElementsByClassName('detail-content-content-right-data-color')
if (detailLeftColor && detailLeftColor.length > 0) {
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
}
let 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'
// })
@@ -230,7 +252,11 @@
},
addFullTextCommentClick() {
this.visible = true
this.fullTextDisabled = true
if (this.formInlineText.comment) {
this.fullTextDisabled = true
} else {
this.fullTextDisabled = false
}
},
turnOffAutomaticMatchingClick() {
this.isMatching = !this.isMatching
@@ -242,16 +268,17 @@
fullTextCommentsSubmit() {
this.$refs.ruleFormText.validate(valid => {
if (valid) {
let formInlineText = JSON.parse(JSON.stringify(this.formInlineText))
this.confirmLoading = true
let query = {
infoId: this.$route.query.id,
comment: this.formInlineText.comment
id: this.$route.query.id,
comments: formInlineText.comment
}
postAction('/compare/sarFileCompareItemComment/add', query).then((res) => {
putAction('/compare/sarFileCompareInfo/editComments', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.confirmLoading = false
this.fullTextDisabled = false
this.visible = false
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
@@ -269,6 +296,8 @@
postAction('/compare/sarFileCompareInfo/getComparisonDetail', query).then((res) => {
if (res.success) {
this.resultData = res.result || {}
this.formInlineText.comment = res.result.comments || ''
this.formInlineText = { ...this.formInlineText }
this.loading = false
} else {
this.resultData = {}
@@ -298,10 +327,10 @@
}
let detailContent = document.getElementsByClassName('detail-content-content-right-right-top')
let detailRight = document.getElementsByClassName('detail-content-content-right-data-right')
this.dataRight = this.resultData.textRight[item.targetStand - 1]
this.dataRight = this.resultData.textRight[item.targetStand]
if (detailRight && detailRight.length > 0) {
detailRight[item.itemsDisplayNum - 1].classList.add('detail-content-content-right-data-color-right')
detailContent[0].scrollTop = detailRight[item.targetStand - 1].offsetTop - 150
detailRight[item.targetStand].classList.add('detail-content-content-right-data-color-right')
detailContent[0].scrollTop = detailRight[item.targetStand].offsetTop - 150
}
}
},
@@ -324,12 +353,12 @@
if (detailLeftColor && detailLeftColor.length > 0) {
detailLeftColor[0].classList.remove('detail-content-content-right-data-color')
}
this.dataLeft = this.resultData.textLeft[item.targetStand - 1]
this.dataLeft = this.resultData.textLeft[item.targetStand]
let detailContent = document.getElementsByClassName('detail-content-content-right-top')
let detailLeft = document.getElementsByClassName('detail-content-content-right-data')
if (detailLeft && detailLeft.length > 0) {
detailLeft[item.itemsDisplayNum - 1].classList.add('detail-content-content-right-data-color')
detailContent[0].scrollTop = detailLeft[item.targetStand - 1].offsetTop - 150
detailLeft[item.targetStand].classList.add('detail-content-content-right-data-color')
detailContent[0].scrollTop = detailLeft[item.targetStand].offsetTop - 150
}
}
},
@@ -489,8 +518,9 @@
.detail-content-content-left {
width: 180px;
height: auto;
height: 520px;
float: left;
overflow: auto;
}
.detail-content-content-right-top {
@@ -510,6 +540,7 @@
.detail-content-content-right {
width: 100%;
display: inline-block;
}
.detail-content-content-right-right {
@@ -294,8 +294,31 @@
})
window.open(newUrl.href, '_blank')
},
subscribe() {
subscribe(record) {
let _this = this
this.$confirm({
content: record.releaseState == 'draft' ? _this.$t('confirmRelease') : _this.$t('confirmWithdraw'),
onOk() {
let releaseState = ''
if (record.releaseState == 'draft') {
releaseState = 'published'
} else {
releaseState = 'draft'
}
let query = {
releaseState: releaseState,
id: record.id
}
postAction('/compare/sarFileCompareInfo/changeState', query).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
},
edit(row) {
let newUrl = this.$router.resolve({