update 标准分解单样式
This commit is contained in:
+1
-1
@@ -69,7 +69,7 @@ const getDictTreeList = (params) => getAction('/sys/dictItem/treeList', params)
|
|||||||
export const ajaxGetDictItems = (code, params) => getAction(`/sys/dict/getDictItems/${code}`, params)
|
export const ajaxGetDictItems = (code, params) => getAction(`/sys/dict/getDictItems/${code}`, params)
|
||||||
// 从缓存中获取字典配置
|
// 从缓存中获取字典配置
|
||||||
function getDictItemsFromCache (dictCode) {
|
function getDictItemsFromCache (dictCode) {
|
||||||
if (Vue.ls.get(UI_CACHE_DB_DICT_DATA) && Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode]) {
|
if (Vue.ls.get(UI_CACHE_DB_DICT_DATA) && Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode] && Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode].length > 0) {
|
||||||
return Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode]
|
return Vue.ls.get(UI_CACHE_DB_DICT_DATA)[dictCode]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ module.exports = {
|
|||||||
standardResolutionSheet: 'Standard resolution sheet', // 标准分解单
|
standardResolutionSheet: 'Standard resolution sheet', // 标准分解单
|
||||||
updateRecord: 'Update record', // 更新记录
|
updateRecord: 'Update record', // 更新记录
|
||||||
submitQuestion: 'Submit a question', // 提交问题
|
submitQuestion: 'Submit a question', // 提交问题
|
||||||
|
standardCatalogue: 'Standard catalogue', // 标准目录
|
||||||
|
clauseLabel: 'Clause label', // 条文标签
|
||||||
|
clauseNumber: 'Article number', // 条文号
|
||||||
|
clauseTitle: 'Title of article', // 条文标题
|
||||||
|
regulatoryRequirementsType: 'Types of regulatory requirements', // 法规要求类型
|
||||||
|
functionalClassification: 'Functional classification', // 功能分类
|
||||||
|
functionalSpecialty: 'Functional specialty', // 功能专业
|
||||||
|
blockCoding: 'Block coding', // 分组编码
|
||||||
|
groupName: 'Group name', // 分组名称
|
||||||
|
newCertificationImplementationTime: 'New certification implementation time', // 新认证实施时间
|
||||||
|
certifiedImplementationTime: 'Certified implementation time', // 已认证实施时间
|
||||||
|
newRegistrationImplementationTime: 'New registration implementation time', // 新注册实施时间
|
||||||
|
applicableVehicleType: 'Applicable vehicle type', // 适用车型
|
||||||
|
dynamicType: 'Dynamic type', // 动力类型
|
||||||
// 国内标准
|
// 国内标准
|
||||||
domesticStandard: {
|
domesticStandard: {
|
||||||
treeSearchPlaceholder: 'Please enter the tree system', // 请输入树状图体系
|
treeSearchPlaceholder: 'Please enter the tree system', // 请输入树状图体系
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ module.exports = {
|
|||||||
standardResolutionSheet: '标准分解单',
|
standardResolutionSheet: '标准分解单',
|
||||||
updateRecord: '更新记录',
|
updateRecord: '更新记录',
|
||||||
submitQuestion: '提交问题',
|
submitQuestion: '提交问题',
|
||||||
|
standardCatalogue: '标准目录',
|
||||||
|
clauseLabel: '条文标签',
|
||||||
|
clauseNumber: '条文号',
|
||||||
|
clauseTitle: '条文标题',
|
||||||
|
regulatoryRequirementsType: '法规要求类型', // 法规要求类型
|
||||||
|
functionalClassification: '功能分类', // 功能分类
|
||||||
|
functionalSpecialty: '功能专业', // 功能专业
|
||||||
|
blockCoding: '分组编码', // 分组编码
|
||||||
|
groupName: '分组名称', // 分组名称
|
||||||
|
newCertificationImplementationTime: '新认证实施时间', // 新认证实施时间
|
||||||
|
certifiedImplementationTime: '已认证实施时间', // 已认证实施时间
|
||||||
|
newRegistrationImplementationTime: '新注册实施时间', // 新注册实施时间
|
||||||
|
applicableVehicleType: '适用车型', // 适用车型
|
||||||
|
dynamicType: '动力类型', // 动力类型
|
||||||
// 国内标准
|
// 国内标准
|
||||||
domesticStandard: {
|
domesticStandard: {
|
||||||
treeSearchPlaceholder: '请输入树状图体系',
|
treeSearchPlaceholder: '请输入树状图体系',
|
||||||
|
|||||||
@@ -1,21 +1,163 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="sheet-box">
|
<div class="sheet-box">
|
||||||
<!-- 标准目录-->
|
<!--标准目录-->
|
||||||
<div class="standard-catalogue part-common">
|
<div class="standard-catalogue part-common">
|
||||||
<div class="part-title">标准目录</div>
|
<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)">
|
||||||
|
<a-icon type="profile" />
|
||||||
|
<span>条文</span>
|
||||||
|
</div>
|
||||||
|
<!--条文标签-->
|
||||||
|
<div class="clause-label-change-item" :class="{'clause-label-change-item-selected': showClauseLable}" @click="handleClauseChange(true)">
|
||||||
|
<a-icon type="profile" />
|
||||||
|
<span>条文标签</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 标准内容-->
|
|
||||||
<div class="sheet-container part-ml part-common"></div>
|
|
||||||
<!-- 条文标签-->
|
|
||||||
<div class="clause-label part-ml part-common"></div>
|
|
||||||
<!-- 条文、条文标签切换-->
|
|
||||||
<div class="clause-label-change part-ml part-common"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import '@assets/less/common.less'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StandardResolutionSheet'
|
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>
|
</script>
|
||||||
|
|
||||||
@@ -39,6 +181,12 @@ export default {
|
|||||||
.standard-catalogue {
|
.standard-catalogue {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 15%;
|
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 {
|
.sheet-container {
|
||||||
@@ -49,18 +197,62 @@ export default {
|
|||||||
|
|
||||||
.clause-label {
|
.clause-label {
|
||||||
width: 25%;
|
width: 25%;
|
||||||
|
min-width: 400px;
|
||||||
height: 100%;
|
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 {
|
.clause-label-change {
|
||||||
width: 6%;
|
width: 6%;
|
||||||
|
min-width: 130px;
|
||||||
height: 100%;
|
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;
|
||||||
|
|
||||||
|
span {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-item-selected {
|
||||||
|
background: #FAE6E5;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.part-title {
|
.part-title {
|
||||||
height: 56px;
|
height: 56px;
|
||||||
background: rgba(213, 44, 38, 0.12);
|
background: rgba(213, 44, 38, 0.12);
|
||||||
border-radius: 8px 8px 0px 0px;
|
border-radius: 8px 8px 0 0;
|
||||||
line-height: 56px;
|
line-height: 56px;
|
||||||
padding: 0 24px;
|
padding: 0 24px;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
@@ -68,4 +260,42 @@ export default {
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #1D2129;
|
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>
|
</style>
|
||||||
|
|||||||
@@ -85,38 +85,19 @@ export default {
|
|||||||
loading: false,
|
loading: false,
|
||||||
partList: [], // 页面模块列表
|
partList: [], // 页面模块列表
|
||||||
form: {}, // 页面字段
|
form: {}, // 页面字段
|
||||||
|
// 页面数据
|
||||||
detailData: {
|
detailData: {
|
||||||
modification_list: [
|
// 修改单
|
||||||
{
|
modification_list: [],
|
||||||
id: 1,
|
// 报批稿
|
||||||
fileName: '国内文字占位符段落标题标准.pdf'
|
draft_for_review: [],
|
||||||
},
|
// 送审稿
|
||||||
{
|
draft_for_approval: [],
|
||||||
id: 2,
|
// 征求意见稿
|
||||||
fileName: '国内标准国内文字占位符段落标题标准.pdf'
|
draft_for_comment: [],
|
||||||
},
|
// 草案
|
||||||
{
|
draft: []
|
||||||
id: 3,
|
}
|
||||||
fileName: '国内标准国内标准.pdf'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
draft_for_review: [{
|
|
||||||
id: 11,
|
|
||||||
fileName: '国内文字占位符段落标题标准.pdf'
|
|
||||||
}],
|
|
||||||
draft_for_approval: [{
|
|
||||||
id: 21,
|
|
||||||
fileName: '国内标准国内文字占位符段落标题标准.pdf'
|
|
||||||
}],
|
|
||||||
draft_for_comment: [{
|
|
||||||
id: 31,
|
|
||||||
fileName: '国内标准国内标准.pdf'
|
|
||||||
}],
|
|
||||||
draft: [{
|
|
||||||
id: 311,
|
|
||||||
fileName: '国内标准国内标准.pdf'
|
|
||||||
}]
|
|
||||||
} // 页面数据
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -128,6 +109,9 @@ export default {
|
|||||||
this.initForm()
|
this.initForm()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 获取页面字段
|
||||||
|
*/
|
||||||
initForm () {
|
initForm () {
|
||||||
getDomesticStandardFormModal().then(res => {
|
getDomesticStandardFormModal().then(res => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<!-- $t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')-->
|
<!-- $t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')-->
|
||||||
<a-input-search v-model="treeInput" :placeholder="$t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')"
|
<a-input-search v-model="treeInput" :placeholder="$t('standardRegulationLibrary.domesticStandard.treeSearchPlaceholder')"
|
||||||
@search="handleTreeSearch" />
|
@search="handleTreeSearch" />
|
||||||
<a-tree :show-line="true" :show-icon="true" :tree-data=treeData :selected-keys="selectedTreeKeys">
|
<a-tree :show-line="true" :show-icon="true" :tree-data="treeData" :selected-keys="selectedTreeKeys">
|
||||||
<a-icon type="folder" slot="folder" class="tree-icon" />
|
<a-icon type="folder" slot="folder" class="tree-icon" />
|
||||||
|
|
||||||
<template #custom="record">
|
<template #custom="record">
|
||||||
|
|||||||
+11
-11
@@ -7,22 +7,22 @@
|
|||||||
@close="handleCancel"
|
@close="handleCancel"
|
||||||
:visible="visible"
|
:visible="visible"
|
||||||
:maskClosable="false"
|
:maskClosable="false"
|
||||||
style="height: 100%;overflow: auto;"
|
class="custom-drawer-style"
|
||||||
>
|
>
|
||||||
<a-spin :spinning="confirmLoading" style="width: 100%;height:100%">
|
<div class="custom-drawer-style-scroll">
|
||||||
<div class="drawer-container">
|
<a-spin :spinning="confirmLoading" style="width: 100%;height:100%">
|
||||||
<add-form ref="addForm"
|
<add-form ref="addForm"
|
||||||
:get-form-func="getFormFunc"
|
:get-form-func="getFormFunc"
|
||||||
:get-document-info-func="getDocumentInfoFunc"
|
:get-document-info-func="getDocumentInfoFunc"
|
||||||
@submitFormData="submitFormData" />
|
@submitFormData="submitFormData" />
|
||||||
</div>
|
</a-spin>
|
||||||
<div class="drawer-footer">
|
</div>
|
||||||
<a-button @click="handleOk" type="primary" style="margin-bottom: 0;">
|
<div class="custom-drawer-style-bottom-btn">
|
||||||
{{ $t('preservation') }}
|
<a-button @click="handleOk" type="primary" style="margin-bottom: 0;" :loading="confirmLoading">
|
||||||
</a-button>
|
{{ $t('preservation') }}
|
||||||
<a-button @click="handleCancel" style="margin-bottom: 0;">{{ $t('close') }}</a-button>
|
</a-button>
|
||||||
</div>
|
<a-button @click="handleCancel" style="margin-bottom: 0;" :loading="confirmLoading">{{ $t('close') }}</a-button>
|
||||||
</a-spin>
|
</div>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -175,8 +175,8 @@
|
|||||||
</a-spin>
|
</a-spin>
|
||||||
</div>
|
</div>
|
||||||
<div class="custom-drawer-style-bottom-btn">
|
<div class="custom-drawer-style-bottom-btn">
|
||||||
<a-button @click="handleCancel" style="margin-bottom: 0;">{{ $t('close') }}</a-button>
|
<a-button @click="handleCancel" style="margin-bottom: 0;" :loading="confirmLoading">{{ $t('close') }}</a-button>
|
||||||
<a-button @click="handleOk" type="primary" style="margin-bottom: 0;">
|
<a-button @click="handleOk" type="primary" style="margin-bottom: 0;" :loading="confirmLoading">
|
||||||
{{ $t('preservation') }}
|
{{ $t('preservation') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user