Files
laws-sinotruk-client/src/components/StandardResolutionSheet.vue
T

306 lines
7.3 KiB
Vue

<template>
<div class="sheet-box">
<!--标准目录-->
<div class="standard-catalogue part-common">
<div class="part-title">{{ $t('standardRegulationLibrary.standardCatalogue') }}</div>
<div class="has-title-part-content">
<a-tree :show-line="false" :show-icon="false" :tree-data="treeData" :selected-keys="selectedTreeKeys" @select="handleTreeSelected">
</a-tree>
</div>
</div>
<!--标准内容-->
<div class="sheet-container part-ml">
<!--标准名称-->
<div class="standard-name">
<a-tooltip placement="topLeft">
<template #title>
{{}}
</template>
<span></span>
</a-tooltip>
<a-button type="link" :icon="showClauseLable ? 'fullscreen' : 'fullscreen-exit'" @click="handleClauseChange(!showClauseLable)">
{{ showClauseLable ? $t('open') : $t('putAway') }}
</a-button>
</div>
<!--条文内容-->
<div class="standard-content"></div>
</div>
<!--条文标签-->
<div class="clause-label part-ml part-common" v-show="showClauseLable">
<div class="part-title">{{ $t('standardRegulationLibrary.clauseLabel') }}</div>
<div class="has-title-part-content">
<div class="clause-item" v-for="(clause, index) in clauseField" :key="index">
<label>{{ clause.title }}</label>
<span></span>
</div>
</div>
</div>
<!--条文条文标签切换-->
<div class="clause-label-change part-ml part-common">
<!--条文-->
<div class="clause-label-change-item" :class="{'clause-label-change-item-selected': !showClauseLable}" @click="handleClauseChange(false)">
<i class="iconfont icon-ios-list-box" />
<span>条文</span>
</div>
<!--条文标签-->
<div class="clause-label-change-item" :class="{'clause-label-change-item-selected': showClauseLable}" @click="handleClauseChange(true)">
<i class="iconfont icon-biaoqian-mianxing" />
<span>条文标签</span>
</div>
</div>
</div>
</template>
<script>
import '@assets/less/common.less'
export default {
name: 'StandardResolutionSheet',
data () {
return {
showClauseLable: true, // 是否展示条文标签
clauseField: [
// 条文号
{
title: this.$t('standardRegulationLibrary.clauseNumber'),
fieldName: ''
},
// 条文标题
{
title: this.$t('standardRegulationLibrary.clauseTitle'),
fieldName: ''
},
// 法规要求类型
{
title: this.$t('standardRegulationLibrary.regulatoryRequirementsType'),
fieldName: ''
},
// 功能分类
{
title: this.$t('standardRegulationLibrary.functionalClassification'),
fieldName: ''
},
// 功能专业
{
title: this.$t('standardRegulationLibrary.functionalSpecialty'),
fieldName: ''
},
// 分组编码
{
title: this.$t('standardRegulationLibrary.blockCoding'),
fieldName: ''
},
// 分组名称
{
title: this.$t('standardRegulationLibrary.groupName'),
fieldName: ''
},
// 新认证实施时间
{
title: this.$t('standardRegulationLibrary.newCertificationImplementationTime'),
fieldName: ''
},
// 已认证实施时间
{
title: this.$t('standardRegulationLibrary.certifiedImplementationTime'),
fieldName: ''
},
// 新注册实施时间
{
title: this.$t('standardRegulationLibrary.newRegistrationImplementationTime'),
fieldName: ''
},
// 适用车型
{
title: this.$t('standardRegulationLibrary.applicableVehicleType'),
fieldName: ''
},
// 动力类型
{
title: this.$t('standardRegulationLibrary.dynamicType'),
fieldName: ''
}
],
treeData: [
{
title: '0-0',
key: '0-0',
children: [
{
title: '0-0-0',
key: '0-0-0',
children: [
{ title: '0-0-0-0', key: '0-0-0-0' },
{ title: '0-0-0-1', key: '0-0-0-1' },
{ title: '0-0-0-2', key: '0-0-0-2' }
]
},
{
title: '0-0-1',
key: '0-0-1',
children: [
{ title: '0-0-1-0', key: '0-0-1-0' },
{ title: '0-0-1-1', key: '0-0-1-1' },
{ title: '0-0-1-2', key: '0-0-1-2' }
]
}
]
}
],
selectedTreeKeys: []
}
},
methods: {
handleTreeSelected (selectedKeys) {
this.selectedTreeKeys = selectedKeys
},
handleClauseChange (flag) {
this.showClauseLable = flag
}
}
}
</script>
<style scoped lang="less">
.sheet-box {
width: 100%;
height: 100%;
display: flex;
justify-content: space-between;
}
.part-ml {
margin-left: 16px;
}
.part-common {
border-radius: 8px;
background: #FFFFFF;
}
.standard-catalogue {
height: 100%;
width: 15%;
min-width: 280px;
/deep/ .ant-tree li .ant-tree-node-content-wrapper.ant-tree-node-selected {
background-color: transparent !important;
color: @primary-color;
}
}
.sheet-container {
height: 100%;
flex: 1;
width: 0;
}
.clause-label {
width: 25%;
min-width: 400px;
height: 100%;
.clause-item {
display: flex;
margin-bottom: 20px;
label {
width: 12rem;
font-size: 14px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
color: #86909C;
margin-right: 20px;
}
span {
white-space: pre-wrap;
word-break: break-all;
font-size: 14px;
font-family: PingFang SC-Regular, PingFang SC, sans-serif;
color: #1D2129;
}
}
}
.clause-label-change {
width: 6%;
min-width: 130px;
height: 100%;
padding-top: 56px;
&-item {
height: 56px;
display: flex;
align-items: center;
padding: 0 16px;
font-size: 16px;
font-family: PingFang SC-Semibold, PingFang SC, sans-serif;
font-weight: 600;
color: #1D2129;
cursor: pointer;
.iconfont {
color: @primary-color;
}
span {
margin-left: 8px;
}
}
&-item-selected {
background: #FAE6E5;
}
}
.part-title {
height: 56px;
background: rgba(213, 44, 38, 0.12);
border-radius: 8px 8px 0 0;
line-height: 56px;
padding: 0 24px;
font-size: 16px;
font-family: PingFang SC-Semibold, PingFang SC, sans-serif;
font-weight: 600;
color: #1D2129;
}
.has-title-part-content {
height: calc(100% - 56px);
overflow: auto;
padding: 24px;
}
.standard-name {
height: 56px;
background: #FFFFFF;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 24px;
margin-bottom: 16px;
}
.standard-name > span {
font-size: 16px;
font-family: PingFang SC-Semibold, PingFang SC, sans-serif;
font-weight: 600;
color: #1D2129;
flex: 1;
width: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
}
.standard-content {
height: calc(100% - 72px);
background: #FFFFFF;
border-radius: 8px;
overflow: auto;
padding: 24px;
}
</style>