Merge branch 'dev_third_stage'

# Conflicts:
#	jero-web/src/common/lang/en-us.js
#	jero-web/src/common/lang/zh-cn.js
This commit is contained in:
zer0Black
2022-07-20 20:24:14 +08:00
44 changed files with 4147 additions and 491 deletions
+13
View File
@@ -770,6 +770,7 @@ module.exports = {
SynchronousReportLibrary: 'Synchronous Report Library',
FreezeConfiguration: 'Freeze Configuration',
distributionAndCollection: 'Distribution And Collection',
OneclickCollection: 'One-click Collection',
deleteConfiguration: 'Delete Configuration',
addConfiguration: 'Add Configuration',
electricMachinery: 'ElectricMachinery',
@@ -1152,4 +1153,16 @@ module.exports = {
TechnicalEvaluationResultsForReference:'Technical Evaluation Results For Reference',
ComplianceConfirmationRecord:'Compliance Confirmation Record',
complianceConfirmation:'Compliance Confirmation',
noComparisonDocumentSelected:'No comparison document selected',
RemarkInfo:'Remarks Info',
initiateDocumentComparison:'Initiate Document Comparison',
comparativeComments:'Comparative Comments',
viewTheComparisonResults:'View The Comparison Results',
addFullTextComment:'Add Full Text Comment',
turnOffAutomaticMatching:'Turn Off Automatic Matching',
Deriveconformanceresults:'Derive Conformance Results',
Regulatorycompliancekanban:'Regulatory Compliance Kanban',
exportComparisonReport:'Export Comparison Report',
comparisonDifferenceComment:'Comparison Difference Comment',
fullTextComments:'Full text comments',
}
+13
View File
@@ -785,6 +785,7 @@ module.exports = {
SynchronousReportLibrary: '同步上报库',
FreezeConfiguration: '冻结配置',
distributionAndCollection: '下发收集',
OneclickCollection: '一键下发收集',
deleteConfiguration: '删除配置',
addConfiguration: '添加配置',
electricMachinery: '电机',
@@ -1156,4 +1157,16 @@ module.exports = {
TechnicalEvaluationResultsForReference:'技术评估结果参考',
ComplianceConfirmationRecord:'符合性确认记录',
complianceConfirmation:'符合性确认',
Deriveconformanceresults:'导出符合性结果',
Regulatorycompliancekanban:'法规符合性看板',
noComparisonDocumentSelected:'未选择对比文档',
RemarkInfo:'备注信息',
initiateDocumentComparison:'发起文档对比',
comparativeComments:'对比评论',
viewTheComparisonResults:'查看对比结果',
addFullTextComment:'添加全文评论',
turnOffAutomaticMatching:'关闭自动匹配',
exportComparisonReport:'导出对比报告',
comparisonDifferenceComment:'对比差异评论',
fullTextComments:'全文评论',
}
+215 -19
View File
@@ -2,7 +2,7 @@
<div class='diolag-area'>
<a-spin :spinning='spinLoading'>
<a-form-model
class='tag-module'
class='formAdd'
ref='ruleForm'
:model='form'
:rules='rules'
@@ -10,10 +10,29 @@
:wrapper-col='wrapperCol'
>
<a-row :gutter='24'>
<a-col :span='24'>
<span style='display: flex;justify-content: center;margin-bottom: 20px;'> <span style='margin-top: 6px;margin-right: 7px'>{{$t('cutoffTime')}}</span>
<a-date-picker :placeholder="$t('PleaseSelect')+$t('cutoffTime')" @change="onChange" @ok="onOk" />
</span>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('cutoffTime')">
{{$t('cutoffTime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="legalTaskConfirmation">
<a-date-picker class="box-input"
style='width: 160px'
:placeholder="$t('PleaseSelect')+$t('cutoffTime')"
@change="onChange" @ok="onOk"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="form.legalTaskConfirmation"
:disabled="false"/>
</a-form-model-item>
</div>
<!-- <a-col :span='24'>-->
<!-- <span style='display: flex;justify-content: center;margin-bottom: 20px;'> <span style='margin-top: 6px;margin-right: 7px'>{{$t('cutoffTime')}}</span>-->
<!-- <a-date-picker :placeholder="$t('PleaseSelect')+$t('cutoffTime')" @change="onChange" @ok="onOk" />-->
<!-- </span>-->
<!-- </a-col>-->
</a-col>
</a-row>
</a-form-model>
@@ -22,6 +41,33 @@
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
</div>
<!-- 错误数据提示-->
<a-modal
:title="$t('operationFailed')"
:width="860"
v-model="visibleoperationFailed"
:maskClosable="false"
:footer="null"
@cancel='cancleoperationFailed'
:body-style="bodystyle"
>
<a-row :gutter="24">
<a-col :span="24">
<div style='font-size: 18px;margin-bottom: 20px;display: flex;justify-content: center'
class="box-title-text-index" v-for='(item,key) in NotSelectedRowKeysValue'>
<span v-html='item'></span>
<!-- <div>{{$t('NiOnumberis')}}{{ item.nioNumber }},{{$t('Statusis')}}-->
<!-- <span style='color: red'>{{ item.state }}</span>,{{$t('NoOperationPermissionForthisbutton')}}。-->
<!-- </div>-->
</div>
</a-col>
</a-row>
<div class="imports-footer">
<div class="imports-footer-wrap">
<a-button class="imports-btn" type="primary" @click="cancleoperationFailed">{{$t('cancel')}}</a-button>
</div>
</div>
</a-modal>
</div>
</template>
@@ -43,7 +89,9 @@ export default {
selectedRowKeysDate: {},
loading: false,
editId: '',
visibleoperationFailed:false,
newVisible: false,
NotSelectedRowKeysValue:[],
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
@@ -53,7 +101,11 @@ export default {
sm: { span: 14 }
},
form: {},
rules: {},
rules: {
legalTaskConfirmation:[
{ required: true, message: this.$t('PleaseSelect')+this.$t('cutoffTime'), trigger: 'change' }
]
},
areaTable: [],
flag: false, //表单提交标识
spinLoading: false,
@@ -62,6 +114,7 @@ export default {
pageNo: 1,
pageSize: 10,
pickerDate: '',
bodystyle:{}
}
},
props: {
@@ -73,6 +126,11 @@ export default {
},
mounted() {
this.loadData()
this.bodystyle = {
height: '480px',
overflow: 'hidden',
overflowY: 'scroll',
}
},
methods: {
loadData() {
@@ -105,19 +163,90 @@ export default {
},
//保存
handleSubmit() {
let _this = this
let param = {ids: this.selectedRowKeysArray, deadline: `${this.pickerDate}`, }
this.confirmLoading = true
postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
if (res.success) {
this.$emit('areaVisibleTaskCutOffTimeflag', false)
this.$message.success(_this.$t('OperationSuccessful'))
this.confirmLoading = false
} else {
this.$message.warning(_this.$t('operationFailed'))
this.confirmLoading = false
// let _this = this
// let param = {ids: this.selectedRowKeysArray, deadline: `${this.pickerDate}`, }
// this.confirmLoading = true
// postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
// if (res.success) {
// this.$emit('areaVisibleTaskCutOffTimeflag', false)
// this.$message.success(_this.$t('OperationSuccessful'))
// this.confirmLoading = false
// } else {
// this.$message.warning(_this.$t('operationFailed'))
// this.confirmLoading = false
// }
// })
this.$refs.ruleForm.validate(valid => {
if(valid){
let long = localStorage.getItem('language')
let cut = ''
if (long && long == 'zh-cn') {
this.cut = 'cn'
} else if (long && long == 'en-us') {
this.cut = 'en'
}
})
// let _array = []
// this.selectedRowKeysValue.forEach((item, index) => {
// _array.push(item.id)
// })
let _this = this
let param = {
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
ids: this.selectedRowKeysArray,
cut: this.cut,
deadline: `${this.pickerDate}`
}
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/issueCollection',
method: 'post',
data: param,
transformRequest: [function(data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': _this.token
}
})
.then((res) => {
if (res.data.success) {
// _this.$message.success(this.$t('OperationSuccessful'))
if(res.data.result.length == 0){
this.visibleoperationFailed = false
_this.$message.success(this.$t('OperationSuccessful'))
this.$emit('areaVisibleTaskCutOffTimeflag', false)
this.$emit('GetgetTableList')
}else{
this.NotSelectedRowKeysValue = res.data.result
this.visibleoperationFailed = true
}
// this.$emit('areaVisibleTaskCutOffTimeflag', false)
// this.$emit('GetgetTableList')
} else {
_this.$message.warning(this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
}
})
},
// 错误数据的弹框
cancleoperationFailed() {
this.visibleoperationFailed = false
this.$emit('areaVisibleTaskCutOffTimeflag', false)
this.$emit('GetgetTableList')
// this.GetgetTableList()
},
onChange(val) {
this.pickerDate = moment(val).format('YYYY-MM-DD HH:mm:ss')
@@ -131,7 +260,10 @@ export default {
<style lang='less' scoped>
@import '~@assets/less/common.less';
.box-title-text-index {
line-height: 1.4;
display: flex;
}
.diolag-area {
.table-area {
margin: 20px 0;
@@ -150,6 +282,70 @@ export default {
justify-content: center;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index:100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
/deep/.add-input{
min-height: 135px!important;
}
</style>
<style lang='less'>
.area-module {
.ant-modal-wrap {
@@ -0,0 +1,366 @@
<template>
<div class='diolag-area'>
<a-spin :spinning='spinLoading'>
<a-form-model
class='formAdd'
ref='ruleForm'
:model='form'
:rules='rules'
:label-col='labelCol'
:wrapper-col='wrapperCol'
>
<a-row :gutter='24'>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('cutoffTime')">
{{$t('cutoffTime')}}</span>
</div>
<a-form-model-item class="itemModel" prop="legalTaskConfirmation">
<a-date-picker class="box-input"
style='width: 160px'
:placeholder="$t('PleaseSelect')+$t('cutoffTime')"
@change="onChange" @ok="onOk"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="form.legalTaskConfirmation"
:disabled="false"/>
</a-form-model-item>
</div>
<!-- <a-col :span='24'>-->
<!-- <span style='display: flex;justify-content: center;margin-bottom: 20px;'> <span style='margin-top: 6px;margin-right: 7px'>{{$t('cutoffTime')}}</span>-->
<!-- <a-date-picker :placeholder="$t('PleaseSelect')+$t('cutoffTime')" @change="onChange" @ok="onOk" />-->
<!-- </span>-->
<!-- </a-col>-->
</a-col>
</a-row>
</a-form-model>
</a-spin>
<div class='drawer-bootom-button'>
<a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>
<a-button @click='handleSubmit' type='primary' :loading='confirmLoading'>{{ $t('submit') }}</a-button>
</div>
<!-- 错误数据提示-->
<a-modal
:title="$t('operationFailed')"
:width="860"
v-model="visibleoperationFailed"
:maskClosable="false"
:footer="null"
class='modelbox'
@cancel='cancleoperationFailed'
:body-style="bodystyle"
>
<a-row :gutter="24">
<a-col :span="24">
<div style='font-size: 18px;margin-bottom: 20px;display: flex;justify-content: center'
class="box-title-text-index" v-for='(item,key) in NotSelectedRowKeysValue'>
<span v-html='item'></span>
<!-- <div>{{$t('NiOnumberis')}}{{ item.nioNumber }},{{$t('Statusis')}}-->
<!-- <span style='color: red'>{{ item.state }}</span>,{{$t('NoOperationPermissionForthisbutton')}}。-->
<!-- </div>-->
</div>
</a-col>
</a-row>
<div class="imports-footer">
<div class="imports-footer-wrap">
<a-button class="imports-btn" type="primary" @click="cancleoperationFailed">{{$t('cancel')}}</a-button>
</div>
</div>
</a-modal>
</div>
</template>
<script>
import { putAction, postAction, getAction, deleteAction } from '@/api/manage'
import axios from 'axios'
import Vue from 'vue'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import moment from 'moment'
import eventBUs from '../../common/event'
export default {
name: 'diolagArea',
components: {},
data() {
return {
token:Vue.ls.get(ACCESS_TOKEN),
title: this.$t('add'),
total: 0,
selectedRowKeysDate: {},
loading: false,
editId: '',
visibleoperationFailed:false,
newVisible: false,
NotSelectedRowKeysValue:[],
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 14 }
},
form: {},
rules: {
legalTaskConfirmation:[
{ required: true, message: this.$t('PleaseSelect')+this.$t('cutoffTime'), trigger: 'change' }
]
},
areaTable: [],
flag: false, //表单提交标识
spinLoading: false,
confirmLoading: false,
selectedRowKeys: [],
pageNo: 1,
pageSize: 10,
pickerDate: '',
bodystyle:{}
}
},
props: {
selectedRowKeysArray: {
type: String,
default: '',
require: true
}
},
mounted() {
this.loadData()
this.bodystyle = {
height: '480px',
overflow: 'hidden',
overflowY: 'scroll',
}
},
methods: {
loadData() {
this.loading = true
let params = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.form
}
getAction(`sys/user/page`, params).then(res => {
if (res.success) {
this.areaTable = [...res.result.records]
this.total = res.result.total
}
}).finally(() => {
this.loading = false
})
},
searchQuery() {
this.loadData()
},
searchReset() {
this.form = {}
this.loadData()
},
handleCancel() {
this.$emit('areaVisibleTaskCutOffTimeAll', false)
},
handleTableChange(val) {
},
//保存
handleSubmit() {
// let _this = this
// let param = {ids: this.selectedRowKeysArray, deadline: `${this.pickerDate}`, }
// this.confirmLoading = true
// postAction('/params/collectManifest/updateDeadlineBatch', param).then((res) => {
// if (res.success) {
// this.$emit('areaVisibleTaskCutOffTime', false)
// this.$message.success(_this.$t('OperationSuccessful'))
// this.confirmLoading = false
// } else {
// this.$message.warning(_this.$t('operationFailed'))
// this.confirmLoading = false
// }
// })
this.$refs.ruleForm.validate(valid => {
if(valid){
let long = localStorage.getItem('language')
let cut = ''
if (long && long == 'zh-cn') {
this.cut = 'cn'
} else if (long && long == 'en-us') {
this.cut = 'en'
}
// let _array = []
// this.selectedRowKeysValue.forEach((item, index) => {
// _array.push(item.id)
// })
let _this = this
let param = {
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
cut: this.cut,
deadline: `${this.pickerDate}`
}
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/issueCollectionAll',
method: 'post',
data: param,
transformRequest: [function(data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': _this.token
}
})
.then((res) => {
if (res.data.success) {
// _this.$message.success(this.$t('OperationSuccessful'))
if(res.data.result.length == 0){
this.visibleoperationFailed = false
_this.$message.success(this.$t('OperationSuccessful'))
this.$emit('areaVisibleTaskCutOffTimeAll', false)
this.$emit('GetgetTableList')
}else{
this.NotSelectedRowKeysValue = res.data.result
this.visibleoperationFailed = true
}
// this.$emit('areaVisibleTaskCutOffTime', false)
// this.$emit('GetgetTableList')
} else {
_this.$message.warning(this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
}
})
},
// 错误数据的弹框
cancleoperationFailed() {
this.visibleoperationFailed = false
this.$emit('areaVisibleTaskCutOffTimeAll', false)
this.$emit('GetgetTableList')
// this.GetgetTableList()
},
onChange(val) {
this.pickerDate = moment(val).format('YYYY-MM-DD HH:mm:ss')
},
onOk(val) {
this.pickerDate = moment(val).format('YYYY-MM-DD HH:mm:ss')
},
}
}
</script>
<style lang='less' scoped>
@import '~@assets/less/common.less';
.box-title-text-index {
line-height: 1.4;
display: flex;
}
.diolag-area {
.table-area {
margin: 20px 0;
.action-edit {
margin-right: 10px;
}
}
.table-del {
color: red;
}
}
.drawer-bootom-button{
display: flex;
justify-content: center;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 114px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 48px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index:100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
/deep/.add-input{
min-height: 135px!important;
}
</style>
<style lang='less'>
.area-module {
.ant-modal-wrap {
.ant-modal {
.ant-modal-content {
.ant-modal-footer {
text-align: center;
}
}
}
}
}
.page{
display: flex;
justify-content: flex-end;
margin-bottom: 20px;
}
</style>
@@ -97,6 +97,9 @@
this.$route.path == '/handshakeProcess' ||
this.$route.path == '/projectStatusAndProgress' ||
this.$route.path == '/TaskPlanList' ||
this.$route.path == '/documentDataComparison' ||
this.$route.path == '/comparisonResults' ||
this.$route.path == '/initiateDocumentComparison' ||
this.$route.path == '/evaluationProcess' ||
this.$route.path == '/evaluationResultsClause' ||
this.$route.path == '/evaluationResultsWhole' ||
@@ -9,7 +9,7 @@
name="file"
:file-list="myfileList"
:multiple="true"
:action="uploadAction+'?state='+state+'&cut='+cut"
:action="uploadAction+'?state='+2+'&cut='+cut"
:headers="headers"
@preview="preview"
:before-upload="beforeUpload"
+15
View File
@@ -382,6 +382,21 @@ export const constantRouterMap = [
name: 'evaluationProcess',
component: () => import(/* webpackChunkName: "user" */ '@/views/processCenter/processForm/evaluationProcess/index')
},
{
path: '/initiateDocumentComparison',
name: 'initiateDocumentComparison',
component: () => import(/* webpackChunkName: "user" */ '@/views/documentTools/documentComparison/components/initiateComparison')
},
{
path: '/documentDataComparison',
name: 'documentDataComparison',
component: () => import(/* webpackChunkName: "user" */ '@/views/documentTools/documentComparison/components/documentDataComparison')
},
{
path: '/comparisonResults',
name: 'comparisonResults',
component: () => import(/* webpackChunkName: "user" */ '@/views/documentTools/documentComparison/components/comparisonResults')
},
{
path: '/handshakeProcess',
name: 'handshakeProcess',
@@ -139,6 +139,7 @@
pageSize: 10,
pageNo: 1,
CategoryTreeList:[],
serialNumber:'',
queryParam: {},
gatherResultList:[
{
@@ -224,6 +225,7 @@
},
searchReset() {
this.queryParam = {}
this.$route.query.serialNumber = ''
this.pageNo = 1
this.getList()
},
@@ -246,6 +248,7 @@
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
serialNumber: this.$route.query.serialNumber?this.$route.query.serialNumber:'',
...queryParam
}
this.loading = true
@@ -174,6 +174,7 @@
toggleSearchStatus: false,
dataSource: [],
selectedRowKeys: [],
serialNumber:'',
total: 0,
pageSize: 10,
pageNo: 1,
@@ -297,6 +298,7 @@
},
searchReset() {
this.queryParam = {}
this.$route.query.serialNumber = ''
this.pageNo = 1
this.getList()
},
@@ -319,6 +321,7 @@
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
serialNumber: this.$route.query.serialNumber?this.$route.query.serialNumber:'',
...queryParam
}
this.loading = true
@@ -0,0 +1,464 @@
<template>
<div class="doc-detail">
<div class="doc-detail-wrap">
<div class="doc-detail-header" style="position: fixed;top: 0">
<div class="doc-detail-title">
<span style="line-height: 66px;display: inline-block;float: left" @click="Fallback">
<a-icon type="arrow-left" style="margin-right: 6px;"/>
</span>
<span> {{$t('comparisonResults')}}</span>
</div>
<div class="doc-detail-right">
<div @click="exportComparisonReportClick" class="operator-text-text"
:title="$t('exportComparisonReport')">
<a-icon type="export" />
{{$t('exportComparisonReport')}}
</div>
<div @click="commentClick" class="operator-text-text"
:title="$t('comment')">
<a-icon type="message"/>
{{$t('comment')}}
</div>
</div>
</div>
<div style="padding-top: 68px;background: #fff">
<div class="detail-content">
<div class="detail-content-header" style="margin-bottom: 20px">
<a-checkbox @change="onChange" style="margin-left: 20px;float: left"></a-checkbox>
<div class="detail-content-header-content">
<div class="detail-content-header-content-left">
所选标准:GB 23456-2020 机动车标准 FMVSS 114 中文.word
</div>
<div class="detail-content-header-content-content">
所选标准:GB 23456-2020 机动车标准 FMVSS 114 中文.word
</div>
<div class="detail-content-header-content-right">
操作
</div>
</div>
</div>
<a-checkbox-group @change="onChange" style="width: 100%;overflow: overlay;height: calc(100vh - 300px)">
<div class="detail-content-content">
<a-checkbox value="A" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text-left">
<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
</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) 防护板收到反是馈就但是罚款决定书发的科技示范
</div>
</div>
<div class="detail-content-bottom">
<div class="detail-content-bottom-left" :title="$t('comparisonDifferenceComment')">
<a-icon type="message"/>
{{$t('comparisonDifferenceComment')}}:
</div>
<div class="detail-content-bottom-right">
差异是各单位在结构上的差别程度成员在时间横轴上的位置的差别程经理与其他的差别程度 横轴上的位置的差别程经理与其他的差别程度差异
</div>
</div>
</div>
<div class="detail-content-content-text-right">
<span class="text-button-one">
<a class="text-button">{{$t('edit')}}</a>
<a class="text-button">{{$t('delete')}}</a>
</span>
</div>
</div>
</div>
<div class="detail-content-content">
<a-checkbox value="A" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text-left">
<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
</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) 防护板收到反是馈就但是罚款决定书发的科技示范
</div>
</div>
<div class="detail-content-bottom">
<div class="detail-content-bottom-left" :title="$t('comparisonDifferenceComment')">
<a-icon type="message"/>
{{$t('comparisonDifferenceComment')}}:
</div>
<div class="detail-content-bottom-right">
差异是各单位在结构上的差别程度成员在时间横轴上的位置的差别程经理与其他的差别程度 横轴上的位置的差别程经理与其他的差别程度差异
</div>
</div>
</div>
<div class="detail-content-content-text-right">
<span class="text-button-one">
<a class="text-button">{{$t('edit')}}</a>
<a class="text-button">{{$t('delete')}}</a>
</span>
</div>
</div>
</div>
<div class="detail-content-content">
<a-checkbox value="A" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text-left">
<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
</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) 防护板收到反是馈就但是罚款决定书发的科技示范
</div>
</div>
<div class="detail-content-bottom">
<div class="detail-content-bottom-left" :title="$t('comparisonDifferenceComment')">
<a-icon type="message"/>
{{$t('comparisonDifferenceComment')}}:
</div>
<div class="detail-content-bottom-right">
差异是各单位在结构上的差别程度成员在时间横轴上的位置的差别程经理与其他的差别程度 横轴上的位置的差别程经理与其他的差别程度差异
</div>
</div>
</div>
<div class="detail-content-content-text-right">
<span class="text-button-one">
<a class="text-button">{{$t('edit')}}</a>
<a class="text-button">{{$t('delete')}}</a>
</span>
</div>
</div>
</div>
</a-checkbox-group>
<div class="detail-content-content">
<a-checkbox value="A" class="detail-checkbox">
</a-checkbox>
<div class="detail-content-content-text">
<div class="detail-content-content-text-left">
<div class="detail-content-content-text-left-text">
{{$t('fullTextComments')}}: 文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
文字占位符评论文字内容文字占位符评论文
字内容文字占位符评论文字内容文字
占位符评论文字内容文字占位符评论文字内容文字占
</div>
</div>
<div class="detail-content-content-text-right">
<span class="text-button-one">
<a class="text-button">{{$t('edit')}}</a>
<a class="text-button">{{$t('delete')}}</a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
export default {
name: 'comparisonResults',
data() {
return {
loading: false
}
},
methods: {
Fallback() {
this.$router.push({
path: '/documentComparison'
})
},
commentClick() {
},
exportComparisonReportClick() {
}
}
}
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
.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;
}
}
.doc-detail-right {
width: 300px;
line-height: 68px;
/*display: flex;*/
text-align: right;
.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;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-align: right;
}
}
}
.detail-content {
padding: 24px 32px 0 32px;
box-sizing: border-box;
}
.detail-content-header {
width: 100%;
height: 56px;
line-height: 56px;
}
.detail-content-header-content {
width: calc(100% - 56px);
margin-left: 20px;
display: inline-block;
height: 56px;
font-size: 14px;
font-family: Blue Sky Noto;
font-weight: bold;
color: #040B29;
.detail-content-header-content-left {
width: calc(50% - 64px);
height: 56px;
display: inline-block;
background: rgba(4, 11, 41, 0.0300);
border-radius: 4px 0px 0px 4px;
border-right: 1px #EFF1F3 solid;
padding-left: 24px;
}
.detail-content-header-content-content {
width: calc(50% - 64px);
display: inline-block;
height: 56px;
background: rgba(4, 11, 41, 0.0300);
border-radius: 4px 0px 0px 4px;
border-right: 1px #EFF1F3 solid;
padding-left: 24px;
}
.detail-content-header-content-right {
width: 128px;
display: inline-block;
height: 56px;
background: rgba(4, 11, 41, 0.0300);
border-radius: 4px 0px 0px 4px;
padding-left: 24px;
}
}
.detail-content-content {
width: 100%;
height: auto;
position: relative;
margin-bottom: 24px;
}
.detail-checkbox {
margin-left: 28px;
float: left;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
}
.detail-content-content-text {
width: calc(100% - 56px);
margin-left: 56px;
border: 1px solid #EFF1F3;
border-radius: 4px;
overflow: hidden;
.detail-content-content-text-left {
width: calc(100% - 128px);
float: left;
border-right: 1px solid #EFF1F3;
padding: 24px;
box-sizing: border-box;
overflow: hidden;
}
.detail-content-content-text-right {
width: 128px;
float: left;
height: auto;
text-align: center;
.text-button-one {
display: inline-block;
width: 128px;
position: absolute;
top: 50%;
transform: translate(-50%, -50%);
}
.text-button {
margin-right: 8px;
}
}
}
.detail-content-left {
width: 50%;
display: inline-block;
float: left;
padding-right: 24px;
border-right: 1px #EFF1F3 solid;
}
.detail-content-right {
width: 50%;
display: inline-block;
float: left;
padding-left: 24px;
}
.detail-content-left-top {
font-size: 16px;
font-family: Blue Sky Noto;
font-weight: 400;
color: #040B29;
}
.detail-content-left-button {
font-size: 14px;
font-weight: 400;
color: #040B29;
margin-top: 10px;
}
.detail-content-bottom {
width: 100%;
margin-top: 14px;
padding: 24px;
box-sizing: border-box;
background: rgba(4, 11, 41, 0.0300);
border-radius: 4px;
float: left;
}
.detail-content-bottom-left {
width: 115px;
font-size: 14px;
font-weight: 400;
color: #040B29;
float: left;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.detail-content-bottom-right {
width: calc(50% - 115px);
float: left;
font-size: 14px;
font-weight: 400;
color: #040B29;
}
.detail-content-content-text-left-text {
width: 100%;
font-size: 14px;
font-weight: 400;
color: #040B29;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
</style>
@@ -0,0 +1,385 @@
<template>
<div class="doc-detail">
<div class="doc-detail-wrap">
<div class="doc-detail-header" style="position: fixed;top: 0">
<div class="doc-detail-title">
<span style="line-height: 66px;display: inline-block;float: left" @click="Fallback">
<a-icon type="arrow-left" style="margin-right: 6px;"/>
</span>
<span> {{$t('DocumentComparison')}}</span>
</div>
<div class="doc-detail-right">
<div @click="viewTheComparisonResultsClick" class="operator-text-text"
:title="$t('viewTheComparisonResults')">
<a-icon type="eye"/>
{{$t('viewTheComparisonResults')}}
</div>
<div @click="addFullTextCommentClick" class="operator-text-text"
:title="$t('addFullTextComment')">
<a-icon type="message"/>
{{$t('addFullTextComment')}}
</div>
<div @click="turnOffAutomaticMatchingClick" class="operator-text-text"
:title="$t('turnOffAutomaticMatching')">
<a-icon type="close-circle"/>
{{$t('turnOffAutomaticMatching')}}
</div>
</div>
</div>
<div style="padding-top: 68px;background: #fff">
<div class="detail-content">
<div style="width: 100%;height: auto;overflow: hidden">
<div class="detail-content-left">
<div class="detail-content-left-header">
GB 23145-2020 机动车标准 FMVSS 114 中文.word
</div>
<div class="detail-content-content-left">
<a-tree
class="draggable-tree"
:tree-data="gData"
/>
</div>
<div class="detail-content-content-right">
<div class="detail-content-content-right-data">
<div class="detail-content-content-right-data-text">
1、范围
</div>
<div class="detail-content-content-right-data-text">
本标准规定了汽车用LED光源/模块或含有LED光源/模块的前照灯配光性能、光色温度循环等试验方法和检验规则等,
本标准适用于M、N类汽车使用的LED前照灯、或主要由LED光源或LED模块形成远光或近光的LED前照灯。
</div>
</div>
<div class="detail-content-content-right-data">
<div class="detail-content-content-right-data-text">
1、范围
</div>
<div class="detail-content-content-right-data-text">
本标准规定了汽车用LED光源/模块或含有LED光源/模块的前照灯配光性能、光色温度循环等试验方法和检验规则等,
本标准适用于M、N类汽车使用的LED前照灯、或主要由LED光源或LED模块形成远光或近光的LED前照灯。
</div>
</div>
</div>
</div>
<div class="detail-content-right">
<div class="detail-content-left-header">
<span class="detail-content-left-header-text">
GB 23145-2020 机动车标准 FMVSS 114 中文.word
</span>
<span class="detail-content-left-header-text-right">
<span style="color: #9B9DA9">相似度:</span>
<span style="color: #E83030">98%</span>
</span>
</div>
<div class="detail-content-content-left">
<a-tree
class="draggable-tree"
:tree-data="gData"
/>
</div>
<div class="detail-content-content-right">
<div class="detail-content-content-right-data">
<div class="detail-content-content-right-data-text">
1、范围
</div>
<div class="detail-content-content-right-data-text">
本标准规定了汽车用LED光源/模块或含有LED光源/模块的前照灯配光性能、光色温度循环等试验方法和检验规则等,
本标准适用于M、N类汽车使用的LED前照灯、或主要由LED光源或LED模块形成远光或近光的LED前照灯。
</div>
</div>
<div class="detail-content-content-right-data">
<div class="detail-content-content-right-data-text">
1、范围
</div>
<div class="detail-content-content-right-data-text">
本标准规定了汽车用LED光源/模块或含有LED光源/模块的前照灯配光性能、光色温度循环等试验方法和检验规则等,
本标准适用于M、N类汽车使用的LED前照灯、或主要由LED光源或LED模块形成远光或近光的LED前照灯。
</div>
</div>
<div class="detail-content-content-right-data">
<div class="detail-content-content-right-data-text">
1、范围
</div>
<div class="detail-content-content-right-data-text">
本标准规定了汽车用LED光源/模块或含有LED光源/模块的前照灯配光性能、光色温度循环等试验方法和检验规则等,
本标准适用于M、N类汽车使用的LED前照灯、或主要由LED光源或LED模块形成远光或近光的LED前照灯。
</div>
</div>
<div class="detail-content-content-right-data">
<div class="detail-content-content-right-data-text">
1、范围
</div>
<div class="detail-content-content-right-data-text">
本标准规定了汽车用LED光源/模块或含有LED光源/模块的前照灯配光性能、光色温度循环等试验方法和检验规则等,
本标准适用于M、N类汽车使用的LED前照灯、或主要由LED光源或LED模块形成远光或近光的LED前照灯。
</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('comparativeComments')">
<span>{{$t('comparativeComments')}}</span>
</div>
<a-form-model-item class="itemModel" prop="dreUserIdName">
<a-textarea :placeholder="$t('pleaseEnter')+$t('comparativeComments')"
v-model="formInline.RemarkInfo"
:rows="4"/>
</a-form-model-item>
</div>
</a-form-model>
</div>
<div class="submit-button">
<a-button class="box-button" type="primary" @click="submit">{{$t('preservation')}}</a-button>
</div>
</div>
</div>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
export default {
name: 'documentDataComparison',
data() {
return {
formInline: {},
rules: {},
gData: [
{
title: '0-0sdf dsfdsfdsfdsfds',
key: '0-0',
children: [
{
title: '0-0-0sdfdsfdsfdsfdsfdsfdsf',
key: '0-0-0'
},
{
title: '0-0-1',
key: '0-0-1'
}
]
}
]
}
},
methods: {
Fallback() {
this.$router.push({
path: '/documentComparison'
})
},
submit() {
},
viewTheComparisonResultsClick() {
},
addFullTextCommentClick() {
},
turnOffAutomaticMatchingClick() {
}
}
}
</script>
<style>
.detail-content-content-left .ant-tree-node-content-wrapper {
display: inline-block !important;
color: #040B29 !important;
width: 100px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
</style>
<style lang="less" scoped>
@import '~@assets/less/common.less';
.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-left {
width: 50%;
float: left;
height: 620px;
overflow-y: auto;
border-right: 2px #EFF1F3 solid;
padding: 24px 32px;
box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid;
}
.detail-content-right {
width: 50%;
height: 620px;
overflow-y: auto;
float: left;
padding: 24px 32px;
box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid;
}
.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;
}
.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%;
padding: 0 32px;
box-sizing: border-box;
}
.itemModel {
width: calc(100% - 232px);
}
.submit-button {
width: 100%;
margin-top: 20px;
text-align: right;
padding: 0 32px;
box-sizing: border-box;
}
.detail-content-content-left {
width: 140px;
height: auto;
float: left;
}
.detail-content-content-right {
width: calc(100% - 150px);
display: inline-block;
margin-left: 10px;
float: left;
}
.detail-content-content-right-data {
padding: 22px 24px;
box-sizing: border-box;
border: 1px solid #EFF1F3;
border-radius: 4px;
margin-bottom: 22px;
}
.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: calc(100% - 200px);
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;
}
</style>
@@ -0,0 +1,445 @@
<template>
<div class="doc-detail">
<div class="doc-detail-wrap">
<div class="doc-detail-header" style="position: fixed;top: 0">
<div class="doc-detail-title">
<span style="line-height: 66px;display: inline-block;float: left" @click="Fallback">
<a-icon type="arrow-left" style="margin-right: 6px;"/>
</span>
<span> {{$t('initiateComparison')}}</span>
</div>
</div>
<div style="padding-top: 68px;background: #fff">
<div class="detail-content">
<div style="width: 100%;height: auto;overflow: hidden">
<div class="detail-content-left">
<a-form layout="inline" @keyup.enter.native="searchQueryLeft">
<a-row :gutter="24">
<a-col :md="8" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParamLeft.serialNumber"></j-input>
</div>
</a-col>
<a-col :md="8" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParamLeft.title"></j-input>
</div>
</a-col>
<span style="text-align:right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="8" :sm="24">
<a-button class="box-button" type="primary" @click="searchQueryLeft">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px"
@click="searchResetLeft">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
<a-table
ref="table"
size="middle"
:loading="loadingLeft"
:pagination="false"
:scroll="{x: '100%',y:400}"
rowKey="id"
:data-source="dataSourceLeft"
:row-selection="{ selectedRowKeys: selectedRowKeysLeft, onChange: onSelectChangeLeft }"
:columns="columns"
>
</a-table>
<div class="page">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSizeLeft"
:total="totalLeft"
:current="pageNoLeft"
@change="pageOnChangeLeft"
@showSizeChange="SizeChangeLeft"
/>
</div>
<div class="box-button-standard">
<span class="box-button-standard-left">
{{$t('selectedStandard')}}
</span>
<span class="box-button-standard-right">
{{$t('noComparisonDocumentSelected')}}
</span>
</div>
</div>
<div class="detail-content-right">
<a-form layout="inline" @keyup.enter.native="searchQueryRight">
<a-row :gutter="24">
<a-col :md="8" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('standard')">
<span>{{$t('standard')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParamRight.serialNumber"></j-input>
</div>
</a-col>
<a-col :md="8" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParamRight.title"></j-input>
</div>
</a-col>
<span style="text-align:right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="8" :sm="24">
<a-button class="box-button" type="primary" @click="searchQueryRight">{{$t('query')}}</a-button>
<a-button class="box-button" style="margin-left: 8px"
@click="searchResetRight">{{$t('reset')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
<a-table
ref="table"
size="middle"
:loading="loadingRight"
:pagination="false"
:scroll="{x: '100%',y:400}"
rowKey="id"
:data-source="dataSourceRight"
:row-selection="{ selectedRowKeys: selectedRowKeysRight, onChange: onSelectChangeRight }"
:columns="columns"
>
</a-table>
<div class="page">
<a-pagination
:show-total="total => $t('total')+` ${total} `+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSizeRight"
:total="totalRight"
:current="pageNoRight"
@change="pageOnChangeRight"
@showSizeChange="SizeChangeRight"
/>
</div>
<div class="box-button-standard">
<span class="box-button-standard-left">
{{$t('selectedStandard')}}
</span>
<span class="box-button-standard-right">
{{$t('noComparisonDocumentSelected')}}
</span>
</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('standard')">
<span>{{$t('RemarkInfo')}}</span>
</div>
<a-form-model-item class="itemModel" prop="dreUserIdName">
<a-textarea :placeholder="$t('pleaseEnter')+$t('RemarkInfo')"
v-model="formInline.RemarkInfo"
:rows="4"/>
</a-form-model-item>
</div>
</a-form-model>
</div>
<div class="submit-button">
<a-button class="box-button" type="primary" @click="submit">{{$t('initiateDocumentComparison')}}</a-button>
</div>
</div>
</div>
</div>
<JLoading :loading="loading">{{$t('dataLoading')}}</JLoading>
</div>
</template>
<script>
export default {
name: 'initiateDocumentComparison',
data() {
return {
loading: false,
loadingLeft: false,
loadingRight: false,
queryParamLeft: {},
queryParamRight: {},
pageSizeLeft: 10,
totalLeft: 0,
pageNoLeft: 1,
pageSizeRight: 10,
selectedRowKeysRight: [],
dataSourceRight: [],
totalRight: 0,
pageNoRight: 1,
formInline: {},
rules: {},
columns: [
{
title: this.$t('number'),
align: 'center',
width: 70,
customRender: function(t, r, index) {
return parseInt(index) + 1
}
},
{
title: this.$t('standard'),
align: 'center',
ellipsis: true,
dataIndex: 'standard'
},
{
title: this.$t('title'),
align: 'center',
ellipsis: true,
dataIndex: 'title'
},
{
title: this.$t('TextStatus'),
align: 'center',
ellipsis: true,
dataIndex: 'TextStatus'
},
{
title: this.$t('fileName'),
align: 'center',
ellipsis: true,
dataIndex: 'fileName'
},
{
title: this.$t('textInformation'),
align: 'center',
ellipsis: true,
dataIndex: 'textInformation'
}
],
dataSourceLeft: [],
selectedRowKeysLeft: []
}
},
mounted() {
},
methods: {
Fallback() {
this.$router.push({
path: '/documentComparison'
})
},
searchQueryLeft() {
},
searchResetLeft() {
},
onSelectChangeLeft(value) {
this.selectedRowKeysLeft = value
},
pageOnChangeLeft(page) {
this.pageNoLeft = page
this.getList()
},
SizeChangeLeft(pageSize) {
this.pageNoLeft = 1
this.pageSizeLeft = pageSize
this.getList()
},
searchQueryRight() {
},
searchResetRight() {
},
onSelectChangeRight(value) {
this.selectedRowKeysRight = value
},
pageOnChangeRight(page) {
this.pageNoRight = page
this.getList()
},
SizeChangeRight(pageSize) {
this.pageNoRight = 1
this.pageSizeRight = pageSize
this.getList()
},
submit() {
}
}
}
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
.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-left {
width: 50%;
float: left;
border-right: 2px #EFF1F3 solid;
padding: 24px 32px;
box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid;
}
.detail-content-right {
width: 50%;
float: left;
padding: 24px 32px;
box-sizing: border-box;
border-bottom: 2px #EFF1F3 solid;
}
.page {
text-align: right;
margin-top: 20px;
}
.box-title-text {
line-height: 1.4;
display: flex;
align-items: center;
margin-bottom: 10px;
}
.box-title-text-Remarks {
line-height: 1.4;
display: flex;
/*align-items: center;*/
margin-bottom: 10px;
}
.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;
}
.title-text {
width: 60px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
margin-top: 3px;
text-align: right;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: calc(100% - 60px);
height: 38px;
margin-top: 2px;
}
.box-button {
height: 38px;
/*margin-top: 2px;*/
}
.text-operation {
margin-right: 8px;
}
.box-button-standard {
width: 100%;
margin-top: 20px;
}
.box-button-standard-left {
width: 111px;
height: 46px;
display: inline-block;
border: 1px solid #CED0D8;
border-right: none;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
line-height: 46px;
color: #040B29;
}
.box-button-standard-right {
width: calc(100% - 111px);
height: 46px;
display: inline-block;
border: 1px solid #CED0D8;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
line-height: 46px;
color: #9B9DA9;
}
.Remarks {
margin-top: 20px;
width: 50%;
padding: 0 32px;
box-sizing: border-box;
}
.itemModel {
width: calc(100% - 232px);
}
.submit-button {
width: 100%;
margin-top: 20px;
text-align: right;
padding: 0 32px;
box-sizing: border-box;
}
</style>
@@ -106,10 +106,10 @@
//url传参严格按照当前命名
url: {
list: '',
deleteBatch:'',
deleteBatch: ''
},
loading: false,
dataSource: [],
dataSource: [{}],
selectedRowKeys: [],
total: 0,
pageSize: 10,
@@ -203,7 +203,7 @@
}
},
mounted() {
this.getList()
// this.getList()
},
methods: {
searchQuery() {
@@ -251,18 +251,24 @@
this.selectedRowKeys = value
},
comparisonResultsClick() {
let newUrl = this.$router.resolve({
path: '/comparisonResults'
})
window.open(newUrl.href, '_blank')
},
subscribe() {
},
edit(){
edit() {
},
initiatingProcessClick(){
initiatingProcessClick() {
let newUrl = this.$router.resolve({
path: '/initiateDocumentComparison'
})
window.open(newUrl.href, '_blank')
},
deleteData(val){
deleteData(val) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmDelete'),
@@ -277,7 +283,7 @@
})
}
})
},
}
}
}
</script>
@@ -158,7 +158,7 @@ export default {
title: this.$t('status'),
align: 'center',
width: '5%',
dataIndex: 'state'
dataIndex: 'state_dictText'
},
{
title: this.$t('creater'),
@@ -3,7 +3,7 @@
<div class="Virtual-detail-header" style="position: fixed;top: 0">
<div class="Virtual-detail-title">
<span>
{{$t('ParameteItemCollectionList')}}
{{$t('ParameteItemCollectionList')}}(Model - year market)——{{$t(this.paramsManifest.title)}}
</span>
</div>
</div>
@@ -115,10 +115,15 @@
<a-icon type="plus"/>
{{$t('addTo')}}
</div>
<!-- 下发收集 -->
<div @click="distributionAndCollectionJurisdiction" class="operator-text-title">
<!-- &lt;!&ndash; 下发收集 &ndash;&gt;-->
<!-- <div @click="distributionAndCollectionJurisdiction" class="operator-text-title">-->
<!-- <a-icon type="solution"/>-->
<!-- {{$t('distributionAndCollection')}}-->
<!-- </div>-->
<!-- 一键下发收集 -->
<div @click="defOneclickCollection" class="operator-text-title" v-if='currentPersonRole == "homo"'>
<a-icon type="solution"/>
{{$t('distributionAndCollection')}}
{{$t('OneclickCollection')}}
</div>
<!-- 冻结配置-->
<div @click="freezeConfiguration" class="operator-text-title">
@@ -131,10 +136,10 @@
{{$t('SynchronousReportLibrary')}}
</div>
<!-- 截止时间-->
<div @click="TaskCutOffTimeLibrary" class="operator-text-title">
<a-icon type="bulb"/>
{{$t('TaskCutOffTime')}}
</div>
<!-- <div @click="TaskCutOffTimeLibrary" class="operator-text-title">-->
<!-- <a-icon type="bulb"/>-->
<!-- {{$t('TaskCutOffTime')}}-->
<!-- </div>-->
<!-- 批量删除-->
<div @click="handleDelJurisdiction" class="operator-text-title">
<a-icon type="delete"/>
@@ -149,6 +154,12 @@
<span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }}
</div>
</a-popconfirm>
<!-- 下发收集 -->
<div @click="distributionAndCollectionJurisdiction" class="operator-text" v-if='currentPersonRole == "homo"'>
<a-icon type="solution"/>
{{$t('distributionAndCollection')}}
</div>
<!-- 分配填写人-->
<div @click="assignedBy" class="operator-text" v-if='currentPersonRole == "sdt" '>
<a-icon type="copy"/>
@@ -252,12 +263,19 @@
@GetgetLoginUserType='GetgetLoginUserType'
@areaVisibleAssignedbyflag='areaVisibleAssignedbyflag' @areaVisible='areaVisibleAssignedby = false'/>
</a-modal>
<!-- 截至时间--->
<a-modal v-model="areaVisibleTaskCutOffTime" :title="$t('TaskCutOffTime')" width='600px' :footer="null">
<!-- 下发收集--->
<a-modal v-model="areaVisibleTaskCutOffTime" :title="$t('distributionAndCollection')" width='600px' :footer="null">
<task-cut-off-time v-if='areaVisibleTaskCutOffTime' :selectedRowKeysArray='selectedRowKeysArray'
@GetgetTableList='GetgetTableList'
@areaVisibleTaskCutOffTimeflag='areaVisibleTaskCutOffTimeflag'/>
</a-modal>
<!-- 一键下发收集--->
<a-modal v-model="OneclickCollection" :title="$t('OneclickCollection')" width='600px' :footer="null">
<task-time v-if='OneclickCollection' :selectedRowKeysArray='selectedRowKeysArray'
@GetgetTableList='GetgetTableList'
@areaVisibleTaskCutOffTimeAll='areaVisibleTaskCutOffTimeAll'/>
</a-modal>
<!-- 引用参数--->
<a-modal v-model="areaVisiblereferenceparameter" :title="$t('referenceparameter')" width='650px' :footer="null">
<reference-parameter v-if='areaVisiblereferenceparameter' :paramsManifest='paramsManifest'
@@ -399,6 +417,7 @@
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import SynchronousSubmissionLibrary from '@/components/SynchronousSubmissionLibrary/index'
import TaskCutOffTime from '@/components/TaskCutOffTime/index'
import TaskTime from '@/components/TaskCutOffTime/indexonekey'
import ReferenceParameter from '@/components/ReferenceParameter/index'
import AssignedBy from '@/components/AssignedBy/index'
import axios from 'axios'
@@ -415,6 +434,7 @@
TaskCutOffTime,
ReferenceParameter,
SynchronousSubmissionLibrary,
TaskTime,
globalAdvancedQuery
},
data() {
@@ -531,6 +551,11 @@
text: this.$t('status'),
options: this.statusList//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
{
type: 'string',
value: 'paramsBatch',
text: this.$t('parameterBatch')
},
],
selectedRowKeys: [],
textLoading: false,
@@ -565,6 +590,7 @@
areaVisibleFreeze: false, // 冻结配置
areaVisibleAssignedby: false, // 分配填写人弹框
areaVisibleTaskCutOffTime: false, // 截至时间弹框
OneclickCollection:false,
areaVisiblereferenceparameter: false, // 引用参数弹框
areaVisibsynchronous: false, // 同步上报库弹框
visibleoperationFailed: false, // 数据失败的弹框
@@ -1077,62 +1103,72 @@
},
// 下发收集的权限
distributionAndCollectionJurisdiction() {
let homodistributionAndCollection = this.homodistributionAndCollection()
if (homodistributionAndCollection == 1) {
this.distributionAndCollection()
} else if (homodistributionAndCollection == 0) {
this.visibleoperationFailed = true
this.jurisdiction = 'HOMOZFSJ'
} else if (homodistributionAndCollection == 3) {
this.visibleoperationFailed = true
this.NoEngineer = 0
if(this.selectedRowKeysValue.length == 0){
this.$message.warning(this.$t('selectLeastOne'))
}else{
this.areaVisibleTaskCutOffTime = true
}
// let homodistributionAndCollection = this.homodistributionAndCollection()
// if (homodistributionAndCollection == 1) {
// this.areaVisibleTaskCutOffTime = true
// // this.distributionAndCollection()
// } else if (homodistributionAndCollection == 0) {
// this.visibleoperationFailed = true
// this.jurisdiction = 'HOMOZFSJ'
// } else if (homodistributionAndCollection == 3) {
// this.visibleoperationFailed = true
// this.NoEngineer = 0
// }
},
// 下发收集---请求接口
distributionAndCollection() {
let _array = []
this.selectedRowKeysValue.forEach((item, index) => {
_array.push(item.id)
})
let _this = this
let param = {
paramsManifestId: this.$route.query.id,
projectId: this.$route.query.projectId,
ids: _array.join(',')
}
this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/issueCollection',
method: 'post',
data: param,
transformRequest: [function(data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': _this.token
}
})
.then((res) => {
if (res.data.success) {
_this.$message.success(this.$t('OperationSuccessful'))
_this.areaVisible = false
this.textLoading = false
_this.GetgetTableList()
} else {
this.textLoading = false
_this.$message.warning(this.$t('operationFailed'))
}
})
.catch((error) => {
this.textLoading = false
})
// 一键下发收集
defOneclickCollection() {
this.OneclickCollection = true
},
// // 下发收集---请求接口
// distributionAndCollection() {
//
// let _array = []
// this.selectedRowKeysValue.forEach((item, index) => {
// _array.push(item.id)
// })
// let _this = this
// let param = {
// paramsManifestId: this.$route.query.id,
// projectId: this.$route.query.projectId,
// ids: _array.join(',')
// }
// this.textLoading = true
// axios({
// url: '/jero-boot/params/collectManifest/issueCollection',
// method: 'post',
// data: param,
// transformRequest: [function(data) {
// let ret = ''
// for (let it in data) {
// ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
// }
// return ret
// }],
// headers: {
// 'Content-Type': 'application/x-www-form-urlencoded',
// 'X-Access-Token': _this.token
// }
// })
// .then((res) => {
// if (res.data.success) {
// _this.$message.success(this.$t('OperationSuccessful'))
// _this.areaVisible = false
// this.textLoading = false
// _this.GetgetTableList()
// } else {
// this.textLoading = false
// _this.$message.warning(this.$t('operationFailed'))
// }
// })
// .catch((error) => {
// this.textLoading = false
// })
// },
// 同步上报库 权限
handleSynchronousReportLibraryJurisdiction() {
let homoJurisdictionSynchronousLibrary = this.homoJurisdictionSynchronousLibrary()
@@ -1402,20 +1438,26 @@
this.areaVisibleAssignedby = val
},
// 截止时间
TaskCutOffTimeLibrary() {
let dreTaskCutOffTimeLibrary = this.dreTaskCutOffTimeLibrary()
if (dreTaskCutOffTimeLibrary == 1) {
this.areaVisibleTaskCutOffTime = true
} else if (dreTaskCutOffTimeLibrary == 0) {
this.visibleoperationFailed = true
this.jurisdiction = 'HOMOJZSJ'
}
},
// TaskCutOffTimeLibrary() {
// let dreTaskCutOffTimeLibrary = this.dreTaskCutOffTimeLibrary()
// if (dreTaskCutOffTimeLibrary == 1) {
// this.areaVisibleTaskCutOffTime = true
// } else if (dreTaskCutOffTimeLibrary == 0) {
// this.visibleoperationFailed = true
// this.jurisdiction = 'HOMOJZSJ'
// }
// },
// 截至时间确定弹框关闭
areaVisibleTaskCutOffTimeflag(val) {
console.log(val)
this.areaVisibleTaskCutOffTime = val
this.$refs.CollectionTabel.getTableList()
},
areaVisibleTaskCutOffTimeAll(val){
console.log(val)
this.OneclickCollection = val
this.$refs.CollectionTabel.getTableList()
},
//引用参数
referenceparameter() {
let dreJurisdictionreferenceParameter = this.dreJurisdictionreferenceParameter()
@@ -226,7 +226,8 @@
if (res.success) {
this.conFlag = res.result
if (this.conFlag == true) {
this.paramsConfigEOList.splice(item.displaySeq + 1, 0, {
console.log(this.paramsConfigEOList)
this.paramsConfigEOList.splice(this.paramsConfigEOList.length + 1, 0, {
id: '',
configName: '', // 配置名称
version: '', // 版本
@@ -12,7 +12,7 @@
<a-row :gutter='24'>
<a-col :span='9'>
<a-form-model-item :label="$t('areaOfResponsibility')">
<j-dict-select-tag class="box-input" v-model="formData.areaOfResponsibility"
<j-dict-select-tag class="box-input" v-model="formData.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('areaOfResponsibility')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
@@ -20,10 +20,10 @@
</a-col>
<a-col :span='9'>
<a-form-model-item :label="$t('RelatedItems')" prop='ListTitle'>
<a-select class="box-input" v-model="formData.RelatedItems"
<a-select class="box-input" v-model="formData.projectNameId"
:placeholder="$t('PleaseSelect')+$t('RelatedItems')">
<a-select-option v-for="(element,index) in item.RelatedItemList" :key="element.value" :value="element.value">
{{element.label}}
<a-select-option v-for="(element,index) in RelatedItemList" :key="element.id" :value="element.id">
{{element.projectName}}
</a-select-option>
</a-select>
</a-form-model-item>
@@ -69,8 +69,8 @@
<!-- />-->
<!-- </div>-->
<div class="table-operator" >
<a-button type="primary" @click="handleExportXls()">{{ $t('CommentsCollectionResultsForReference') }}</a-button>
<a-button type="primary" @click="handleExportXls()">{{ $t('TechnicalEvaluationResultsForReference') }}</a-button>
<a-button type="primary" v-if='this.opinionGather > 0' @click="handlecomments()">{{ $t('CommentsCollectionResultsForReference') }}</a-button>
<a-button type="primary" v-if='this.technologyEvaluation > 0' @click="handletechnical()">{{ $t('TechnicalEvaluationResultsForReference') }}</a-button>
</div>
<!-- <div class='drawer-bootom-button'>-->
<!-- <a-button style='margin-right: .8rem' @click='handleCancel'>{{ $t('cancel') }}</a-button>-->
@@ -94,13 +94,15 @@ export default {
title: this.$t('add'),
total: 0,
selectedRowKeysDate: {},
opinionGather:'',
technologyEvaluation:'',
loading: false,
editId: '',
RelatedItemList:[],
columns: [
{
title: this.$t('areaOfResponsibility'),
dataIndex: 'areaOfResponsibility',
dataIndex: 'dutyTerritory_dicText',
width: 120,
align: 'center',
ellipsis: true
@@ -109,28 +111,28 @@ export default {
title: this.$t('RelatedItems'),
align: 'center',
width: 120,
dataIndex: 'RelatedItems',
dataIndex: 'projectName',
ellipsis: true
},
{
title: this.$t('designComplianceReview'),
align: 'center',
width: 250,
dataIndex: 'designComplianceReview',
dataIndex: 'designStatus_dicText',
ellipsis: true
},
{
title: this.$t('preHomeConfirmation'),
align: 'center',
width: 270,
dataIndex: 'preHomeConfirmation',
dataIndex: 'prehomoStatus_dicText',
ellipsis: true
},
{
title: this.$t('verificationComplianceReview'),
align: 'center',
width: 270,
dataIndex: 'verificationComplianceReview',
dataIndex: 'verifyStatus_dicText',
scopedSlots: { customRender: 'file' },
ellipsis: true
}
@@ -161,61 +163,31 @@ export default {
pageNo: 1,
pageSize: 10,
listVisible: false,
listVisibleRowDate: {}
}
},
props: {
version: {
type: Number,
default: '',
required: false
},
projectId: {
type: String,
default: '',
require: true
},
item: {
type: String,
type: Object,
default: '',
require: true
},
paramsManifestId: {
type: Object,
type: String,
default: '',
require: true
},
url: {
type: Object,
default: '',
require: true
}
},
mounted() {
this.loadData()
console.log(this.item)
this.getRelatedItemList()
},
methods: {
// 清单列表传出数据
listVisibleRow(val) {
this.selectedRowKeys = []
let newAreaTable=JSON.parse(JSON.stringify(this.areaTable))
newAreaTable.forEach((item, index) => {
if( item.id == this.listVisibleRowDate.id ) {
let _obj = {...item}
_obj.paramsTemplateId = val[0].id
_obj.paramsTemplateName = val[0].paramsTemplateName
this.areaTable.splice(index, 1,_obj)
getRelatedItemList(){
getAction('/project/projectNameInfoEO/list', {}).then((res) => {
if (res.success) {
this.RelatedItemList = res.result
}
})
console.log(this.areaTable,'this.areaTable')
this.listVisible = false
},
// 下载文件
editArea(val) {
// this.listVisibleRowDate = val
console.log(val)
// this.listVisible = true
},
pageOnChange(page, pageSize) {
this.pageNo = page
@@ -226,30 +198,51 @@ export default {
this.pageSize = pageSize
this.loadData()
},
dowloadfile(item){
let query = {
id: item.exportFileId
}
downloadFile('/sys/common/downLoadFile', item.exportFileName, query, this.Deselect)
// 法规意见收集列表
handlecomments(){
this.$router.push({
path: '/collectionOfRegulatoryOpinions',
query:{
serialNumber:this.item.serialNumber
}
})
},
// 法规技术评估列表
handletechnical(){
this.$router.push({
path: '/technologyAssessment',
query:{
serialNumber:this.item.serialNumber
}
})
},
loadData() {
let _this = this
let params = {
pageNo: this.pageNo,
pageSize: this.pageSize,
paramsManifestId:this.paramsManifestId,
...this.formData
id:this.paramsManifestId,
dutyTerritory:this.formData.dutyTerritory?this.formData.dutyTerritory:'',
projectName:this.formData.projectName?this.formData.projectName:'',
projectNameId:this.formData.projectNameId?this.formData.projectNameId:'',
}
getAction('params/report/exportHistoryPage', params).then((res) => {
this.loading = true
getAction('project/lawsComplianceBoard/queryComplianceResultList', params).then((res) => {
if (res.success) {
this.areaTable = res.result.records
this.total = res.result.total
this.areaTable = res.result.complianceResultList
this.opinionGather = res.result.opinionGather
this.technologyEvaluation = res.result.technologyEvaluation
this.loading = false
}else{
this.loading = false
}
})
},
//导出
handleExportXls(){
let query = {
id:this.paramsManifestId,
...this.formData
}
downloadFile('/project/lawsComplianceBoard/exportComplianceResultDetail', this.$t('complianceResults')+'.xls', query, this.Deselect)
},
searchQuery() {
this.loadData()
@@ -273,65 +266,6 @@ export default {
this.newVisible = true
this.form = {}
},
//新增
handleSubmit() {
let _this = this
if (this.selectedRowKeys.length == 0) {
this.$message.warning(this.$t('pleaseSelectData'))
} else if (this.selectedRowKeys.length > 1) {
this.$message.warning(this.$t('OnlyOneSelected'))
} else {
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.flag = true
this.spinLoading = true
this.confirmLoading = true
let _tt = {
paramsTemplateId: this.selectedRowKeysDate[0].paramsTemplateId,
projectId: this.selectedRowKeysDate[0].projectId,
title: this.selectedRowKeysDate[0].title,
paramsTemplatePublishVersion: this.selectedRowKeysDate[0].paramsTemplatePublishVersion,
sourceManifestId: this.selectedRowKeysDate[0].id,
}
axios({
url: `/jero-boot/params/manifest/copy`,
method: 'post',
data: _tt,
transformRequest: [function (data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token':_this.token
}
})
.then( (res) =>{
if (res.data.success) {
_this.$emit('copysubmit')
_this.$message.success(res.data.message)
_this.flag = false
_this.spinLoading = false
_this.confirmLoading = false
}else{
_this.$message.warning(res.data.message)
_this.flag = false
_this.spinLoading = false
_this.confirmLoading = false
}
})
.catch( (error) =>{
console.log(error);
});
} else {
return false
}
})
}
},
},
watch: {
selectedRowKeyS(val) {
+96 -66
View File
@@ -8,8 +8,8 @@
<div class="title-text" :title="$t('standard')">
<span>{{ $t('standard') }}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serialNumber"></j-input>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
v-model="queryParam.serialNumber"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -17,8 +17,8 @@
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParam.projectName"></j-input>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParam.title"></a-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -26,10 +26,10 @@
<div class="title-text" :title="$t('status')">
<span>{{ $t('status') }}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
<j-dict-select-tag class="box-input" v-model="queryParam.state"
:placeholder="$t('PleaseSelect')+$t('status')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
:triggerChange="false" :dictCode="'state'"/>
</div>
</a-col>
<a-col :md="6" :sm="8">
@@ -37,10 +37,21 @@
<div class="title-text" :title="$t('technicalField')">
<span>{{ $t('technicalField') }}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.dutyTerritory"
:placeholder="$t('PleaseSelect')+$t('technicalField')"
:type="'select'"
:triggerChange="false" :dictCode="'duty_territory'"/>
<a-tree-select
tree-node-filter-prop="title"
v-model="queryParam.technologyTerritory"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="CategoryTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('technicalField')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="queryParam.technologyTerritory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('technicalField')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
@@ -56,6 +67,14 @@
</a-row>
</a-form>
</div>
<div class="table-operator" style="overflow:hidden;margin-bottom: 20px">
<div style="float: right;margin-bottom: 0px;margin-left: 20px">
<div class="operator-text" @click="deriveconformanceresults()">
<a-icon type="solution"/>
{{ $t('Deriveconformanceresults') }}
</div>
</div>
</div>
<div>
<a-table
ref="table"
@@ -105,6 +124,7 @@ import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
// import eventBUs from '../../../common/event'
import Vue from 'vue'
import moment from 'moment'
export default {
name: 'index',
@@ -118,6 +138,7 @@ export default {
loading: false,
toggleSearchStatus: false,
selectedRowKeys: [],
CategoryTreeList:[],
paramsManifestId:'',
item:{},
selectedRowKeysArray: '',
@@ -127,40 +148,13 @@ export default {
{ required: true, message: this.$t('PleaseEnter') + this.$t('templateName'), trigger: 'change' }
]
},
fieldList: [
{
type: 'string',
value: 'standard',
text: this.$t('standard')
},
{
type: 'string',
value: 'title',
text: this.$t('title')
},
{
type: '',
value: 'status',
text: this.$t('status'),
dictCode: 'implement_type'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
{
type: 'string',
value: 'category',
text: this.$t('category')
},
{
type: '',
value: 'technicalField',
text: this.$t('technicalField'),
dictCode: 'implement_type'//只要 dictCode 有值,无论 type 是什么,都显示为字典下拉框
},
],
fieldList: [],
visible: false,
dataSource: [],
confirmLoading: false,
url: {
list: 'params/report/page'
list: 'project/lawsComplianceBoard/page',
getSysCategoryTree: '/sys/category/getSysCategoryTree',
},
total: 0,
pageSize: 10,
@@ -170,17 +164,20 @@ export default {
{
title: this.$t('standard'),
align: 'center',
dataIndex: 'standard'
dataIndex: 'serialNumber',
width: 180
},
{
title: this.$t('title'),
align: 'center',
dataIndex: 'title'
dataIndex: 'title',
width: 180
},
{
title: this.$t('status'),
align: 'center',
dataIndex: 'status'
dataIndex: 'state_dicText',
width: 180
},
// {
// title: this.$t('category'),
@@ -190,7 +187,7 @@ export default {
{
title: this.$t('technicalField'),
align: 'center',
dataIndex: 'technicalField'
dataIndex: 'technologyTerritory_dicText'
},
{
title: this.$t('RegulatoryProcessEvaluationResults'),
@@ -203,14 +200,29 @@ export default {
queryParam: {},
areaVisible: false,
paramsTemplateName: '',
queryConditionVOList: [],
drawerVisible: false,
titleTag: ''
}
},
mounted() {
this.getList()
this.getSysCategoryTree()
this.queryConditionInventory()
},
methods: {
queryConditionInventory() {
let query = {
flag: 1
}
getAction('/project/projectLawsInventoryEO/queryConditionInventory', query).then((res) => {
if (res.success) {
this.fieldList = res.result || []
} else {
this.fieldList = []
}
})
},
handleCancel() {
this.areaVisible = false
},
@@ -233,35 +245,39 @@ export default {
}
})
},
getSysCategoryTree() {
getAction(this.url.getSysCategoryTree, {}).then((res) => {
if (res.success) {
this.CategoryTreeList = res.result
} else {
this.CategoryTreeList = []
}
})
},
handleToggleSearch() {
this.toggleSearchStatus = !this.toggleSearchStatus
},
onSelectChange(value) {
this.selectedRowKeys = value
this.selectedRowKeysArray = this.selectedRowKeys.join(',')
},
deriveconformanceresults(){
let query = {
...this.queryParam,
exportAll:'yes',
ids: this.selectedRowKeys.join(',')
}
downloadFile('/project/lawsComplianceBoard/exportComplianceResult', this.$t('complianceResults')+'.xls', query, this.Deselect)
},
// 导出历史
handlecody(e) {
this.drawerVisible = true
this.titleTag = e.standard + this.$t('ComplianceConfirmationRecord')
this.titleTag = e.serialNumber + this.$t('ComplianceConfirmationRecord')
this.paramsManifestId = e.id
this.item = {...e}
},
hideModal() {
this.visible = false
},
//编辑
edit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
},
//删除
deleteLib(val) {
let newUrl = this.$router.resolve({
path: '/managementdetails',
query: val
})
window.open(newUrl.href, '_blank')
},
//虚拟清单名称事件
entryNameClick(item) {
this.$router.push({
@@ -275,6 +291,8 @@ export default {
},
searchReset() {
this.queryParam = {}
this.territory = ''
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.resetLine()
this.$refs.globalAdvancedQueryRef.emitCallback()
},
@@ -298,31 +316,43 @@ export default {
handleSuperQuery(params, matchType) {
let sqp = {}
if (!params || (params && params.length == 0)) {
sqp['superQueryParams'] = ''
this.queryConditionVOList = []
this.$refs.globalAdvancedQueryRef.superQueryFlag = false
} else {
this.$refs.globalAdvancedQueryRef.superQueryFlag = true
sqp['superQueryParams'] = encodeURI(JSON.stringify(params))
sqp['superQueryMatchType'] = matchType
this.queryConditionVOList = params
this.queryConditionVOList.forEach(res => {
res.type = matchType
})
}
this.queryParamQuery = sqp
this.getList()
},
getList() {
let territory = ''
if (this.queryParam.technologyTerritory) {
this.territory = this.queryParam.technologyTerritory.join(',')
}
// let queryParam = JSON.parse(JSON.stringify(this.queryParam))
let queryConditionVOList = JSON.parse(JSON.stringify(this.queryConditionVOList))
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
...this.queryParamQuery,
...this.queryParam
queryConditionVOList: JSON.stringify(queryConditionVOList),
technology_territory: this.territory,
serial_number:this.queryParam.serialNumber,
title:this.queryParam.title,
state:this.queryParam.state
}
this.loading = true
getAction(this.url.list, query).then((res) => {
if (res.success) {
postAction(this.url.list, query).then((res) => {
if (res) {
if (res.result.current > 1 && res.result.records.length == 0) {
this.pageNo = res.result.current - 1
this.getList()
return
}
console.log(res.result)
this.dataSource = res.result.records || []
this.total = res.result.total