[update] 法规符合性排查流程的条款内容显示修改

This commit is contained in:
lideqin
2024-07-22 19:04:37 +08:00
parent 7dd37330f8
commit 566f6331c9
8 changed files with 148 additions and 19 deletions
@@ -15,6 +15,14 @@
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!--条文内容-->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<template slot="result" slot-scope="{text, record}"> <template slot="result" slot-scope="{text, record}">
<j-dict-select-tag <j-dict-select-tag
style="width: 100%" style="width: 100%"
@@ -27,15 +35,18 @@
</j-expand-table> </j-expand-table>
</div> </div>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
<script> <script>
import JExpandTable from '@/components/JExpandTable' import JExpandTable from '@/components/JExpandTable'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'DesignEngineerEvaluation', name: 'DesignEngineerEvaluation',
components: { JExpandTable }, components: { JExpandTable, SplitClauseDetail },
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
@@ -78,7 +89,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -299,6 +310,10 @@ export default {
}, },
handleTableChange (pagination) { handleTableChange (pagination) {
this.ipagination = pagination this.ipagination = pagination
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }
@@ -198,6 +198,14 @@
</a-tooltip> </a-tooltip>
</template> </template>
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!-- 操作栏 --> <!-- 操作栏 -->
<div slot="action" slot-scope="{record}" class="action-span-cell"> <div slot="action" slot-scope="{record}" class="action-span-cell">
<a @click="handleDelete(record.uid)" class="table-ope-btn" :disabled="disabled">{{ $t('delete') }}</a> <a @click="handleDelete(record.uid)" class="table-ope-btn" :disabled="disabled">{{ $t('delete') }}</a>
@@ -216,6 +224,8 @@
disabledSourceSearch/> disabledSourceSearch/>
<!-- 手动新增弹框 --> <!-- 手动新增弹框 -->
<manual-add-modal ref="manualAddRef" @ok="manualAddOk"/> <manual-add-modal ref="manualAddRef" @ok="manualAddOk"/>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
@@ -227,7 +237,8 @@ import ManualAddModal from './ManualAddModal'
import { StandardSource, DecompositionSource } from '@/enums/commonEnums' import { StandardSource, DecompositionSource } from '@/enums/commonEnums'
import { import {
regulatoryComplianceCheckGenerate, regulatoryComplianceCheckGenerate,
interpretGetFileByStandardId } from '@/api/workCenter' interpretGetFileByStandardId
} from '@/api/workCenter'
import { getFormDictTreeList, queryDepartTreeList } from '../../../../api/api' import { getFormDictTreeList, queryDepartTreeList } from '../../../../api/api'
import MarketRegulationsListSelection from '../../../../components/selection/MarketRegulationsListSelection' import MarketRegulationsListSelection from '../../../../components/selection/MarketRegulationsListSelection'
import Vue from 'vue' import Vue from 'vue'
@@ -235,6 +246,7 @@ import { ACCESS_TOKEN } from '@/store/mutation-types'
import { previewPdf } from '@/utils/previewPdf' import { previewPdf } from '@/utils/previewPdf'
import { getFileAccessHttpUrl, downloadFile } from '@/api/manage' import { getFileAccessHttpUrl, downloadFile } from '@/api/manage'
import { kkFilePreview } from '@/utils/kkFilePreview' import { kkFilePreview } from '@/utils/kkFilePreview'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw'] const FILE_TYPE_IMGS = ['jpg', 'jpeg', 'png', 'raw']
const FILE_TYPE_PDF = 'pdf' const FILE_TYPE_PDF = 'pdf'
@@ -251,7 +263,8 @@ export default {
MarketRegulationsListSelection, MarketRegulationsListSelection,
JTable, JTable,
ManualAddModal, ManualAddModal,
StandardSelectionModal StandardSelectionModal,
SplitClauseDetail
}, },
props: { props: {
disabled: { disabled: {
@@ -406,7 +419,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -532,6 +545,10 @@ export default {
splitFileSourceChange () { splitFileSourceChange () {
this.$forceUpdate() this.$forceUpdate()
}, },
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
},
getCountryOption () { getCountryOption () {
getFormDictTreeList({ dictId: '1801130851452059649' }).then(res => { getFormDictTreeList({ dictId: '1801130851452059649' }).then(res => {
if (res.success) { if (res.success) {
@@ -13,6 +13,14 @@
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!-- 佐证材料 --> <!-- 佐证材料 -->
<template v-slot:material="{text, record}"> <template v-slot:material="{text, record}">
<a v-if="text" class="link-a" @click="handleMaterialClick(record)">{{ $t('view') }}</a> <a v-if="text" class="link-a" @click="handleMaterialClick(record)">{{ $t('view') }}</a>
@@ -22,18 +30,22 @@
</j-table> </j-table>
<!-- 文件列表查看 --> <!-- 文件列表查看 -->
<upload-file ref="uploadFile" disabled></upload-file> <upload-file ref="uploadFile" disabled></upload-file>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
<script> <script>
import JTable from '@/components/jero/JTable' import JTable from '@/components/jero/JTable'
import UploadFile from '@/components/UploadFile' import UploadFile from '@/components/UploadFile'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'FinishAuditBaseInfo', name: 'FinishAuditBaseInfo',
components: { components: {
JTable, JTable,
UploadFile UploadFile,
SplitClauseDetail
}, },
data () { data () {
return { return {
@@ -73,7 +85,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -200,6 +212,10 @@ export default {
handleTableChange (pagination, filters, sorter) { handleTableChange (pagination, filters, sorter) {
// 分页、排序、筛选变化时触发 // 分页、排序、筛选变化时触发
this.ipagination = pagination this.ipagination = pagination
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }
@@ -38,18 +38,29 @@
:pagination="ipagination" :pagination="ipagination"
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
</j-table> </j-table>
</div> </div>
</div> </div>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
<script> <script>
import JTable from '@/components/jero/JTable' import JTable from '@/components/jero/JTable'
import UserSelection from '@/components/selection/UserSelection' import UserSelection from '@/components/selection/UserSelection'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'InterfacePersonDeliveryBaseInfo', name: 'InterfacePersonDeliveryBaseInfo',
components: { JTable, UserSelection }, components: { JTable, UserSelection, SplitClauseDetail },
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
@@ -113,7 +124,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -170,6 +181,10 @@ export default {
// 选择用户得到用户名 // 选择用户得到用户名
userSelectNameChange (value, fieldName) { userSelectNameChange (value, fieldName) {
this.formInline[fieldName + '_dictText'] = value this.formInline[fieldName + '_dictText'] = value
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }
@@ -20,6 +20,14 @@
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!-- 佐证材料 --> <!-- 佐证材料 -->
<template v-slot:material="{text, record}"> <template v-slot:material="{text, record}">
<a v-if="text" class="link-a" @click="handleMaterialClick(record)">{{ $t('view') }}</a> <a v-if="text" class="link-a" @click="handleMaterialClick(record)">{{ $t('view') }}</a>
@@ -95,6 +103,8 @@
<main-finder-collect-edit-modal ref="editRef" @ok="editOk"/> <main-finder-collect-edit-modal ref="editRef" @ok="editOk"/>
<!-- 文件列表查看 --> <!-- 文件列表查看 -->
<upload-file ref="uploadFile" disabled></upload-file> <upload-file ref="uploadFile" disabled></upload-file>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
@@ -104,10 +114,11 @@ import UserSelection from '@/components/selection/UserSelection'
import { downFile } from '../../../../api/manage' import { downFile } from '../../../../api/manage'
import MainFinderCollectEditModal from './MainFinderCollectEditModal' import MainFinderCollectEditModal from './MainFinderCollectEditModal'
import UploadFile from '@/components/UploadFile' import UploadFile from '@/components/UploadFile'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'MainFinderCollectBaseInfo', name: 'MainFinderCollectBaseInfo',
components: { JTable, UserSelection, MainFinderCollectEditModal, UploadFile }, components: { JTable, UserSelection, MainFinderCollectEditModal, UploadFile, SplitClauseDetail },
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
@@ -165,7 +176,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -386,6 +397,10 @@ export default {
const index = this.dataSource.findIndex(item => item.id === result.id) const index = this.dataSource.findIndex(item => item.id === result.id)
this.dataSource[index] = Object.assign({}, result) this.dataSource[index] = Object.assign({}, result)
this.$forceUpdate() this.$forceUpdate()
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }
@@ -49,6 +49,13 @@
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
</j-table> </j-table>
</div> </div>
</template> </template>
@@ -81,6 +88,14 @@
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<template slot="result" slot-scope="{text, record}"> <template slot="result" slot-scope="{text, record}">
<j-dict-select-tag <j-dict-select-tag
style="width: 100%" style="width: 100%"
@@ -157,6 +172,8 @@
<!-- 选用户弹框 --> <!-- 选用户弹框 -->
<user-select-modal ref="userSelectModal" type="checkbox" @change="userSelectModalChange" @nameChange="userSelectNameChange"/> <user-select-modal ref="userSelectModal" type="checkbox" @change="userSelectModalChange" @nameChange="userSelectNameChange"/>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
@@ -170,13 +187,14 @@ import Vue from 'vue'
import { ACCESS_TOKEN, TENANT_ID } from '@/store/mutation-types' import { ACCESS_TOKEN, TENANT_ID } from '@/store/mutation-types'
import store from '@/store' import store from '@/store'
import { downFile } from '../../../../api/manage' import { downFile } from '../../../../api/manage'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
// 导入的加载提示 // 导入的加载提示
let importModalLoading let importModalLoading
export default { export default {
name: 'MainFinderDistributesBaseInfo', name: 'MainFinderDistributesBaseInfo',
components: { JExpandTable, JTable, UserSelection, UserSelectModal }, components: { JExpandTable, JTable, UserSelection, UserSelectModal, SplitClauseDetail },
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
@@ -281,7 +299,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -335,7 +353,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -824,6 +842,10 @@ export default {
}, },
userSelectNameChangeForm (value, fieldName) { userSelectNameChangeForm (value, fieldName) {
this.personFormInline[fieldName + '_dictText'] = value this.personFormInline[fieldName + '_dictText'] = value
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }
@@ -13,6 +13,14 @@
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
<!-- 佐证材料 --> <!-- 佐证材料 -->
<template v-slot:material="{text, record}"> <template v-slot:material="{text, record}">
<a v-if="text" class="link-a" @click="handleMaterialClick(record)">{{ $t('view') }}</a> <a v-if="text" class="link-a" @click="handleMaterialClick(record)">{{ $t('view') }}</a>
@@ -22,19 +30,22 @@
</j-table> </j-table>
<!-- 文件列表查看 --> <!-- 文件列表查看 -->
<upload-file ref="uploadFile" disabled></upload-file> <upload-file ref="uploadFile" disabled></upload-file>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
<script> <script>
import JTable from '@/components/jero/JTable' import JTable from '@/components/jero/JTable'
import { downFile } from '../../../../api/manage'
import UploadFile from '@/components/UploadFile' import UploadFile from '@/components/UploadFile'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'MainFinderSingleAuditBaseInfo', name: 'MainFinderSingleAuditBaseInfo',
components: { components: {
JTable, JTable,
UploadFile UploadFile,
SplitClauseDetail
}, },
props: { props: {
disabled: { disabled: {
@@ -88,7 +99,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -214,6 +225,10 @@ export default {
}, },
handleMaterialClick (record) { handleMaterialClick (record) {
this.$refs.uploadFile.open(record.material) this.$refs.uploadFile.open(record.material)
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }
@@ -23,12 +23,21 @@
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
:loading="loading" :loading="loading"
@change="handleTableChange"> @change="handleTableChange">
<!-- 条款内容 -->
<template slot="item_content" slot-scope="{text, record}">
<div class="table-text" v-if="text || text === 0" @click="showContent(text,record)">
{{ text && text !== 'null' ? text.replace(/<.*?>/ig, ' ') : '' }}
</div>
<div class="table-text" v-else>{{ global.emptyLine }}</div>
</template>
</j-table> </j-table>
</div> </div>
<!-- 选用户弹框 --> <!-- 选用户弹框 -->
<user-select-modal ref="userSelectModal" type="checkbox" @change="userSelectModalChange" @nameChange="userSelectNameChange"/> <user-select-modal ref="userSelectModal" type="checkbox" @change="userSelectModalChange" @nameChange="userSelectNameChange"/>
<!-- 条款内容 -->
<split-clause-detail ref="splitClauseDetail" />
</div> </div>
</template> </template>
@@ -36,10 +45,11 @@
import JTable from '@/components/jero/JTable' import JTable from '@/components/jero/JTable'
import UserSelectModal from '@/components/selection/UserSelectModal' import UserSelectModal from '@/components/selection/UserSelectModal'
import UserSelection from '@/components/selection/UserSelection' import UserSelection from '@/components/selection/UserSelection'
import SplitClauseDetail from '../../../documentTool/documentSplit/modules/SplitClauseDetail'
export default { export default {
name: 'MainFinderTwiceDistributesBaseInfo', name: 'MainFinderTwiceDistributesBaseInfo',
components: { JTable, UserSelectModal, UserSelection }, components: { JTable, UserSelectModal, UserSelection, SplitClauseDetail },
props: { props: {
disabled: { disabled: {
type: Boolean, type: Boolean,
@@ -92,7 +102,7 @@ export default {
align: 'center', align: 'center',
width: 180, width: 180,
dataIndex: 'termContent', dataIndex: 'termContent',
scopedSlots: { customRender: 'text' } scopedSlots: { customRender: 'item_content' }
}, },
{ // 车型 { // 车型
title: this.$t('vehicleType'), title: this.$t('vehicleType'),
@@ -185,6 +195,10 @@ export default {
userNameChange (value, fieldName) { userNameChange (value, fieldName) {
const dataIndex = this.dataSource.findIndex(item => item.id === fieldName) const dataIndex = this.dataSource.findIndex(item => item.id === fieldName)
this.dataSource[dataIndex].designEngineer_dictText = value this.dataSource[dataIndex].designEngineer_dictText = value
},
// 显示条款内容弹框
showContent (val) {
this.$refs.splitClauseDetail.open(val)
} }
} }
} }