Files
foton-laws-system-front/src/pages/details/otherStandardDetails/index.vue
T
baoyu d89d607e11 国内标准详情页 过程稿件改为两行显示文件名
配置管理—机构管理—所属部门展示完整
2024-04-12 16:48:42 +08:00

4807 lines
170 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- eslint-disable -->
<!--国内标准法规详情页-->
<template>
<div :class="{'hidden': !isMoreAwayBtn}" class="other-standard-details v-class">
<!--title 标题-->
<div class="details-header">
<span v-if="sarStandardsInfoEO.standYear === null">
{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}} {{ sarStandardsInfoEO.standName ? sarStandardsInfoEO.standName : sarStandardsInfoEO.standEnName }}
</span>
<span v-else>
{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}}-{{
sarStandardsInfoEO.standYear
}} {{ sarStandardsInfoEO.standName ? sarStandardsInfoEO.standName : sarStandardsInfoEO.standEnName }}
</span>
</div>
<!--主体内容-->
<div class="details-content" style="position: relative">
<div class="details-content-modular basic-information">
</div>
<div
v-for="(item, index) in dynamicFormField"
v-if="item.isShowImp === '0'"
:key="index"
class="details-content-modular clearfix"
>
<el-collapse v-model="activeNames" @change="handleChange">
<div v-if="item.label === '基础信息'" class="details-content-modular basic-information"
style="border-top:none;position: absolute;right: 36px;">
<div class="modular-header" style="height: 50px;">
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" :loading="isSubmit"
class="collection-btn" icon="el-icon-star-on" title="取消收藏" @click="collectClick(sarStandardsInfoEO.collectId)"></el-button>
<el-button v-else :loading="isSubmit" class="collection-btn" icon="el-icon-star-off" title="收藏"
@click="collectClick()"></el-button>
<el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新记录</el-button>
<el-button class="relation-btn" @click="knowledgeSharing">标准问答</el-button>
<el-button v-if="false" class="relation-btn" @click="">标准需求翻译申请流程</el-button>
</div>
</div>
</div>
<el-collapse-item :name="item.label" @click.native="handleChange1(item.label)">
<template slot="title">
<div v-if="item.label === '基础信息'" class="modular-header">
<div class="modular-header-title"><i class="icon-modular-title"/><span>{{ item.label }}</span></div>
</div>
<div v-if="item.label !== '基础信息'" class="modular-header">
<div class="modular-header-title"><i class="icon-modular-title"/><span>{{ item.label }}</span></div>
</div>
</template>
<div class="modular-content">
<template v-if="item.label === '基础信息'">
<div class="details-content-modular basic-information" style="border-top:none; border-bottom: none;">
<div class="basic-information-content">
<p class="">
<label style=" margin-right: 164px;">标准号</label>
<span v-if="sarStandardsInfoEO.standYear">{{
sarStandardsInfoEO.standSortShow + ' ' + sarStandardsInfoEO.standNumber + '-' + sarStandardsInfoEO.standYear
}}</span>
<span v-else>{{ sarStandardsInfoEO.standSort + ' ' + sarStandardsInfoEO.standNumber }}</span>
</p>
<p><label style=" margin-right: 150px;">中文名称</label><span>{{
sarStandardsInfoEO.standName || '-'
}}</span></p>
<p v-if="activeState"><label style=" margin-right: 150px;">英文名称</label><span>{{
sarStandardsInfoEO.standEnName || '-'
}}</span></p>
<!--发布稿必读-->
<template v-for="(child, childIndex) in item.child1">
<p class="files-titles" style="border-bottom: 1px solid #E5E5E5">
<label style="float: left">{{ child.attrName }}</label>
<template v-if="child.value && child.value.length > 0">
<div style="position: relative;margin-left: 214px; line-height: 32px">
<div v-for="(file, fileIndex) in child1Func(child.value)" style="display: flex;">
<span v-if="child.value && child.value.length > 0 && child.value.length === 1"
style="display: flex; align-items: center;">
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer;display: inline-block" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName | ellipsis50 }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
</span>
<!--多个文件时-->
<div v-else-if="child.value && child.value.length > 0">
<span style="display: flex; align-items: center;">
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName | ellipsis50 }}</a>
<i v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'" class="icon-download" title="下载"
@click="downloadFile(file.id)"
/>
<i v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'" class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
</span>
</div>
</div>
<el-button v-if="child.attrField === 'FBGBJBD'" class="decomposition-btn"
@click="showItemsModel(child.attrField)">标准分解单
</el-button>
</div>
</template>
<template v-else-if="child.value === null">
<div style="position: relative;margin-left: 214px; line-height: 32px">-</div>
</template>
</p>
</template>
<!--发布稿必读-->
<template v-for="(child, childIndex) in item.child6">
<p class="files-titles" style="border-bottom: 1px solid #E5E5E5">
<label style="float: left">{{ child.attrName }}</label>
<template v-if="child.value && child.value.length > 0">
<div style="position: relative;margin-left: 214px; line-height: 32px">
<div v-for="(file, fileIndex) in child6Func(child.value)" style="display: flex;">
<span v-if="child.value && child.value.length > 0 && child.value.length === 1"
style="display: flex; align-items: center;">
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer;display: inline-block" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName | ellipsis50 }}</a>
<i v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'" class="icon-download" title="下载"
@click="downloadFile(file.id)"
/>
<i v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'" class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
</span>
<!--多个文件时-->
<div v-else-if="child.value && child.value.length > 0">
<span style="display: flex; align-items: center;">
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName | ellipsis50 }}</a>
<i v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'" class="icon-download" title="下载"
@click="downloadFile(file.id)"
/>
<i v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'" class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
</span>
</div>
</div>
<el-button v-if="child.attrField === 'FBGYWBD'" class="decomposition-btn"
@click="showItemsModel(child.attrField)">标准分解单
</el-button>
</div>
</template>
<template v-else-if="child.value === null">
<div style="position: relative;margin-left: 214px; line-height: 32px">-</div>
</template>
</p>
</template>
<!--修订本-->
<template v-for="(child, childIndex) in item.child5">
<p class="files-title">
<label style=" margin-right: 164px;">{{ child.attrName }}</label>
<template v-for="(file, fileIndex) in child5Func(child.value)"
v-if="child.value && child.value.length > 0">
<span>
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-for="(itemNam,index) in itemExistList"
v-if="child.attrField === itemNam "
:key="index"
class="decomposition-btn"
style="right:62px"
@click="showItemsModel(child.attrField)"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
class="decomposition-btn"
icon="icon-relation" style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);" @click="relateEvent1(child.value)">
更多
</el-button>
</template>
<template v-if="child.value === null">-</template>
</p>
</template>
<!--勘误件-->
<template v-for="(child, childIndex) in item.child4">
<p class="files-title">
<label style=" margin-right: 164px;">{{ child.attrName }}</label>
<template v-for="(file, fileIndex) in child4Func(child.value)"
v-if="child.value && child.value.length > 0">
<span>
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-for="(itemNam,index) in itemExistList"
v-if="child.attrField === itemNam "
:key="index"
class="decomposition-btn"
style="right:62px"
@click="showItemsModel(child.attrField)"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
class="decomposition-btn"
icon="icon-relation" style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);" @click="relateEvent1(child.value)">
更多
</el-button>
</template>
<template v-if="child.value === null">-</template>
</p>
</template>
<!--增补件必读-->
<template v-for="(child, childIndex) in item.child3">
<p class="files-title">
<label style=" margin-right: 164px;">{{ child.attrName }}</label>
<template v-for="(file, fileIndex) in child3Func(child.value)"
v-if="child.value && child.value.length > 0">
<span>
<a :title="file.oldFileName"
style="font-size: 16px;color: #409EFF;cursor: pointer" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-for="(itemNam,index) in itemExistList"
v-if="child.attrField === itemNam "
:key="index"
class="decomposition-btn"
style="right:62px"
@click="showItemsModel(child.attrField)"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
class="decomposition-btn"
icon="icon-relation" style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);" @click="relateEvent1(child.value)">
更多
</el-button>
</template>
<template v-if="child.value === null">-</template>
</p>
</template>
<p class="half">
<label style=" margin-right: 150px;" title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。">标准状态</label>
<span>{{ textStatusMap[sarStandardsInfoEO.textStatus] || '-' }}</span>
</p>
<p class="half"><label style=" margin-right: 150px;">发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span>
</p>
<p class="half"><label style=" margin-right: 150px;">标准体系</label><span>{{
sarStandardsInfoEO.standSystem || '-'
}}</span></p>
<p class="half">
<label style=" margin-right: 84px;">是否纳入认证清单</label>
<span>
{{
sarStandardsInfoEO.isRelateAccess ? (sarStandardsInfoEO.isRelateAccess === '1' ? '是' : '否') : '-'
}}
</span>
</p>
<template v-for="(child, childIndex) in item.child2">
<p class="half"><label style=" margin-right: 150px;">{{ child.attrName }}</label><span>{{ child.value || '-' }}</span>
</p>
</template>
<div v-if="item.label === '实施日期' && item.one.length > 6" class="modular-item-more">
<div class="wrap" @click="handleToggleShowAll(item)">
<span>{{ item.showAll ? '收起' : '更多' }}</span>
<img :class="{'is-show-all': item.showAll}" src="@/assets/images/shangqi/img/more.png">
</div>
</div>
</div>
</div>
</template>
<template v-for="(child, childIndex) in item.half" v-if="child.isShowImp === '0' && child.attrField !== 'CBCD'">
<!-- modular-item half 代替标准编号-->
<div
v-if=" child.attrField === 'DTBJH' || child.attrField === 'YYBJ' || child.attrField === 'BYYBJ' || child.attrField === 'CBBH' || child.attrField === 'DXBZ' || child.attrField === 'XGLC' || child.attrField === 'BDTBZBH' || child.attrField === 'BFDTBZ' || child.attrField === 'BBFDTBZ' "
:key="child.id"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
>
<label :title="child.attrName" class="modular-content-p-name">{{ child.attrName }}</label>
<span
:title="child.value || '-'"
class="modular-content-p-val"
>
<div v-if="child.value != null && child.value !== '' && child.value.split(',').length > 0">
<!--相关流程-->
<template v-if="child.attrField === 'XGLC' && child.value">
<p class="modular-content-p-val">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a :title="item" class="span-line"
style="cursor: pointer;color: #0c91e5;margin-right: 5px;" @click="processCenterClick(item)">{{ item }}</a>
</span>
</p>
</template>
<!--是否授权-->
<template v-else-if="child.attrField === 'QBSQ' && child.value">
<p class="modular-content-p-val">
<span v-if="child.value === '1'">
</span>
<span v-else>
</span>
</p>
</template>
<!--其他-->
<template v-else>
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a :title="item" class="span-line"
style="cursor: pointer;color: #0c91e5;margin-right: 5px;" @click="showReplaceStandInfo(item)">{{ item }}</a>
</span>
</template>
</div>
<div v-else>
{{ '-' }}
</div>
</span>
</div>
<!-- 其他项-->
<div
v-else
:key="child.id"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
>
<label :title="child.attrName" class="modular-content-p-name">{{ child.attrName }}</label>
<span
v-if="child.attrField === 'FGWHR'"
:title="child.value || '-'"
class="modular-content-p-val clearfix"
>
<template v-if="child.value">
{{ child.value }}
<put-question-button
:resId="sarStandardsInfoEO.id"
:resType="saveStandType"
style="float: right;"
></put-question-button>
</template>
<template v-else>
{{ '-' }}
</template>
</span>
<span
v-else-if="child.attrType === 'DATE_PICKER'"
class="modular-content-p-val"
>
{{ child.value ? child.value : '-' }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
:title="child.value || '-'"
class="modular-content-p-val"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
class="files-title"
>
<!--发布稿增补件单独设置下载权限-->
<template v-if="child.attrField === 'FBGBJBD' || child.attrField === 'ZBJBD'">
<a :title="file.oldFileName" target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{
file.oldFileName
}}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</template>
<template v-else>
<a :title="file.oldFileName" target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{
file.oldFileName
}}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</template>
<!-- <el-button-->
<!-- @click="showItemsModel(child.attrField)"-->
<!-- class="decomposition-btn"-->
<!-- icon="icon-separate"-->
<!-- >标准分解单</el-button>-->
</p>
</div>
</div>
</template>
<template
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0' && item.label === '关联信息'"
>
<div
:key="child.id"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
>
<label :title="child.attrName" class="modular-content-p-name">{{ child.attrName }}</label>
<!--相关流程-->
<template v-if="child.attrField === 'XGLC' && child.value">
<p class="modular-content-p-val">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a :title="item" class="span-line"
style="cursor: pointer;color: #0c91e5;margin-right: 5px;" @click="processCenterClick(item)">{{ item }}</a>
</span>
</p>
</template>
<template
v-else-if="child.attrField === 'DTBJH'|| child.attrField === 'BDTBZH' || child.attrField === 'BDTBZBH' || child.attrField === 'YYBJ' || child.attrField === 'BYYBJ' || child.attrField === 'CBBH' || child.attrField === 'DXBZ' || child.attrField === 'BFDTBZ' || child.attrField === 'BBFDTBZ'"
>
<p v-if="child.value" class="modular-content-p-val">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a :title="item" class="span-line"
style="cursor: pointer;color: #0c91e5;margin-right: 5px;" @click="showReplaceStandInfo(item)">{{ item }}</a>
</span>
</p>
<span v-else class="modular-content-p-val">-</span>
</template>
<span
v-else-if="child.attrField === 'SVPPS'"
:title="child.tips || '-'"
class="modular-content-p-val"
>
{{ !child.value || child.value === 'null' ? '-' : child.value }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
:title="child.value || '-'"
class="modular-content-p-val"
>
{{ child.value || '-' }}
<!-- 被代替标准号-->
</span>
<div v-else class="modular-content-p-flies">
<p
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
class="files-title"
>
<!-- <span style="cursor: pointer;" @click="openFileInPdf(file.id, file.oldFileName)">|{{file.id}}|</span>-->
<!--发布稿增补件单独设置下载权限-->
<template v-if="child.attrField === 'XGD' || child.attrField === 'FBGBJBD' || child.attrField === 'BPG'
|| child.attrField === 'SSG'|| child.attrField === 'ZQYJG'|| child.attrField === 'CA'
|| child.attrField === 'JDWJ' || child.attrField === 'GLWJ'">
<a :title="file.oldFileName" target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{
file.oldFileName
}}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45': 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <el-button v-if="file.fileSuffix='pdf'" type="primary" round>OCR</el-button>-->
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
<template v-else>
<a :title="file.oldFileName" target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{
file.oldFileName
}}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
</p>
</div>
</div>
</template>
<template
v-for="(child, childIndex) in item.one"
v-if="child.isShowImp === '0' && item.label == '过程稿件'"
>
<!-- 增补件(必读)和勘误件不放在过程稿件里了-->
<div
v-show="child.attrField !== 'ZBJBD' && child.attrField !== 'KWJ' && child.attrField !== 'FBGYWBD' "
:key="child.id"
:class="'modular-item half'"
>
<label :title="child.attrName" class="modular-content-p-name">{{ child.attrName }}</label>
<span
v-if="child.attrType !== 'FILE'"
:title="child.value || '-'"
class="modular-content-p-val"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
class="files-title"
>
<!--发布稿、增补件单独设置下载权限-->
<template v-if="child.attrField === 'XGD' || child.attrField === 'FBGBJBD' || child.attrField === 'BPG'
|| child.attrField === 'SSG'|| child.attrField === 'ZQYJG'|| child.attrField === 'CA'
|| child.attrField === 'JDWJ' || child.attrField === 'GLWJ'">
<a :title="file.oldFileName" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName | ellipsis }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
</template>
<template v-else>
<a :title="file.oldFileName" target="_blank"
@click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName | ellipsis }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
</template>
</p>
<el-button
v-for="(itemNam,index) in itemExistList"
v-if="child.attrField === itemNam "
:key="itemNam"
class="decomposition-btn"
@click="showItemsModel(child.attrField)"
>标准分解单
</el-button>
</div>
</div>
</template>
<template
v-for="(child, childIndex) in item.one"
v-if="child.isShowImp === '0' && item.label !== '关联信息' && item.label !== '过程稿件' && (item.label !== '实施日期' || (childIndex < 6 || item.showAll))"
>
<div
:key="child.id"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
>
<label :title="child.attrName" class="modular-content-p-name">{{ child.attrName }}</label>
<!--相关流程-->
<template v-if="child.attrField === 'XGLC' && child.value">
<p class="modular-content-p-val">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a :title="item" class="span-line"
style="cursor: pointer;color: #0c91e5;margin-right: 5px;" @click="processCenterClick(item)">{{ item }}</a>
</span>
</p>
</template>
<template
v-else-if="child.attrField === 'DTBJH'|| child.attrField === 'BDTBZBH' || child.attrField === 'YYBJ' || child.attrField === 'BYYBJ' || child.attrField === 'CBBH' || child.attrField === 'DXBZ' || child.attrField === 'BFDTBZ' || child.attrField === 'BBFDTBZ'"
>
<p v-if="child.value" class="modular-content-p-val">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a :title="item" class="span-line"
style="cursor: pointer;color: #0c91e5;margin-right: 5px;" @click="showReplaceStandInfo(item)">{{ item }}</a>
</span>
</p>
<span v-else class="modular-content-p-val">-</span>
</template>
<span
v-else-if="child.attrField === 'SVPPS'"
:title="child.tips || '-'"
class="modular-content-p-val"
>
{{ !child.value || child.value === 'null' ? '-' : child.value }}
</span>
<!-- 去掉模块结构字段 -->
<span
v-else-if="child.attrType !== 'FILE' && !['DYBXH','DYMC','DYBXHCAR','DYMCCAR'].includes(child.attrField)"
:title="child.value || '-'"
class="modular-content-p-val"
>
{{ !child.value || child.value === 'null' || child.value === '[]' ? '-' : child.value }}
</span>
<div v-else class="modular-content-p-flies">
<p
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
class="files-title"
>
<!-- <span style="cursor: pointer;" @click="openFileInPdf(file.id, file.oldFileName)">|{{file.id}}|</span>-->
<!--发布稿、增补件单独设置下载权限-->
<template v-if="child.attrField === 'GLWJ'">
<a :title="file.oldFileName" target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{
file.oldFileName
}}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- OCR按钮,根据文件名取后缀判断是否出现-->
<!-- <el-button v-if="judgeSuffix(file.fileName)" type="primary" size="mini" style="margin: 5px" @click="ocrFunction(file)" plain>OCR</el-button>-->
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
<template v-else>
<a :title="file.oldFileName" target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{
file.oldFileName
}}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
</p>
<el-button
v-for="(itemNam,index) in itemExistList"
v-if="child.attrField === itemNam "
:key="index"
class="decomposition-btn"
@click="showItemsModel(child.attrField)"
>标准分解单
</el-button>
</div>
</div>
</template>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<!-- <div v-show="!isMoreAwayBtn" class="more" @click="moreClick">更多<img src="@/assets/images/shangqi/img/more.png">-->
<!-- </div>-->
<!-- <div v-show="isMoreAwayBtn" class="put-away" @click="putAwayClick">收起<img src="@/assets/images/shangqi/img/more.png"></div>-->
<!--查看分解单-->
<el-drawer
:visible.sync="modalStandItemflag"
:wrapperClosable="false"
class="not-footer-drawer"
size="80%"
title="查看分解单"
@close="closeDrawer"
>
<div class="search-area">
<div class="left">
<el-form ref="ruleForm" :model="standardForm" class="label-input-form" inline>
<el-form-item class="search-item">
<el-input v-show="false" v-model="standItemSearch.orgName" size="small" style="height: 32px"/>
<el-input v-show="false" v-model="standItemSearch.responsibleUnit" size="small" style="height: 32px"/>
<el-popover
:value="false"
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
>
</el-popover>
</el-form-item>
<el-form-item class="search-item">
<el-input v-model="standItemSearch.itemsName" clearable maxlength="100" placeholder="根据条款名称查找"
size="small"></el-input>
</el-form-item>
<!-- 新车实施日期-->
<el-form-item class="search-item">
<div class="block">
<el-date-picker
v-model="standItemSearch.XCXSSRQ"
placeholder="新车实施日期"
type="date"
value-format="yyyy-MM-dd">
</el-date-picker>
</div>
</el-form-item>
<!-- //在产车实施日期-->
<el-form-item class="search-item">
<div class="block">
<el-date-picker
v-model="standItemSearch.ZCCSSRQ"
placeholder="在产车实施日期"
type="date"
value-format="yyyy-MM-dd">
</el-date-picker>
</div>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
:loading="searching"
class="common-button-primary"
size="mini"
type="primary"
@click="searchSarStandItems">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="mini"
@click="clearAllSearch">
清空
</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="action-bar">
<el-button class="common-button-default export-button" icon="export" size="mini"
@click="exportStandardItem"
>
导出
</el-button>
<el-button
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'bd291146ac1e42c48968c5142ae55375' : '960a97045a6e47b0b8e33ebc347e5fd9'"
class="common-button-primary"
size="mini"
type="primary"
@click="openRelatedTermsDrawer"
>关联条款
</el-button>
<el-button
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'bd291146ac1e42c48968c5142ae55375' : '960a97045a6e47b0b8e33ebc347e5fd9'"
class="common-button-primary"
size="mini"
type="primary"
@click="editResolveList"
>编辑
</el-button>
<el-upload
:key="cfjgscUploadKey"
style="display: inline-block;margin:0 5px;"
:show-file-list = 'false'
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'bd291146ac1e42c48968c5142ae55375' : '960a97045a6e47b0b8e33ebc347e5fd9'"
:limit="1"
ref="importSplitResultFile"
:action="splitResultPath"
:file-list="defaultImportSplitResultFileList"
:data="uploadFilesplitEo"
:headers="headers"
:on-success="uploadSplitResultSuccess"
:on-remove="removeSplitResultFile"
:before-upload="beforeSplitResultImport"
:on-change="handleUploadChange"
>
<el-button size="mini" icon="el-icon-upload">拆分结果上传
</el-button>
</el-upload>
<el-button
size="mini"
type="primary"
@click="uploadImportSplitResultModal"
>模板下载
</el-button>
<!--<el-button size="mini" type="primary" @click="handleImportSplitResult">拆分结果提交-->
<!--</el-button>-->
</div>
<div class="content">
<el-table
ref="multipleTable"
:data="standItemList"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
:height="tableHeight"
border
style="width: 100%"
tooltip-effect="dark"
@sort-change='sort'
@selection-change="selectAllStand">
<el-table-column
fixed="left"
type="selection"
width="60"
>
</el-table-column>
<el-table-column
label="序号"
align="center"
type="index"
width="50">
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (page7 - 1) * pageSize7 }}
</template>
</el-table-column>
<el-table-column
label="条款号"
prop="itemsNum"
show-overflow-tooltip
sortable="custom"
width="90"
>
</el-table-column>
<el-table-column
label="条款名称"
min-width="300"
prop="itemsName"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
:resizable="false"
label="条款内容"
min-width="200"
prop="termsConditions"
>
<template slot-scope="scope">
<!-- <div class="table-jump" @click="itemsTextDialog(scope.row.itemsNum, scope.row.termsConditions)">-->
<!-- {{ scope.row.termsConditions ? scope.row.termsConditions.replace(/<.*?>/ig, ' ') : '' }}-->
<!-- </div>-->
<div class="table-jump" style=" overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"
@click="itemsTextDialog(scope.row.itemsNum, scope.row.termsConditions)">
{{ scope.row.termsConditions ? scope.row.termsConditions.replace(/<.*?>/ig, ' ') : '' }}
</div>
<!-- <el-tooltip placement="top">-->
<!-- <div slot="content" v-html="scope.row.termsConditions" :disabled="scope.row.termsConditions"></div>-->
<!-- <div class="table-jump" style=" overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" @click="itemsTextDialog(scope.row.itemsNum, scope.row.termsConditions)">-->
<!-- {{ scope.row.termsConditions ? scope.row.termsConditions.replace(/<.*?>/ig, ' ') : '' }}-->
<!-- </div>-->
<!-- </el-tooltip>-->
</template>
</el-table-column>
<el-table-column
label="核心技术要求/变化点"
prop="readContent"
show-overflow-tooltip
width="170"
>
</el-table-column>
<el-table-column
label="基于上一版本差异"
prop="comparedWithPrevious"
show-overflow-tooltip
width="170">
</el-table-column>
<el-table-column
label="新车型实施日期(文本)"
prop="xccssrq"
width="180">
</el-table-column>
<el-table-column
label="在产车实施日期(文本)"
prop="zccssrq"
width="170">
</el-table-column>
<el-table-column
label="适用车型"
prop="applyArctic"
show-overflow-tooltip
width="90"
>
<template slot-scope="scope">
{{ filterApplyArctic(scope.row) }}
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="responsibleUnit"-->
<!-- label="责任部门">-->
<!-- </el-table-column>-->
<el-table-column
label="责任工程师"
prop="dutyEngineer"
width="100">
</el-table-column>
<!-- <el-table-column-->
<!-- show-overflow-tooltip-->
<!-- label="符合性状态"-->
<!-- width="100">-->
<!-- <template slot-scope="scope">-->
<!-- {{ scope.row.complianceRequire ? (scope.row.complianceRequire === '1' ? '是' : '否') : '-' }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- show-overflow-tooltip-->
<!-- prop="complianceState"-->
<!-- label="合规性分析"-->
<!-- width="100">-->
<!-- </el-table-column>-->
<el-table-column align="center" fixed="right" label="操作" width="50">
<template slot-scope="scope">
<div @click.stop>
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" :disabled="scope.row.enable==='0'">查看
</el-dropdown-item>
<!--<el-dropdown-item :disabled="scope.row.enable==='0'" :command="[scope.row, '编辑']">编辑</el-dropdown-item>-->
<!--<el-dropdown-item :disabled="scope.row.enable==='0'" :command="[scope.row, '删除']">删除</el-dropdown-item>-->
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
<loading :loading="tableLoading">数据加载中...</loading>
</div>
<pagination
:auto-size="true"
:page-size="pageSize7"
:page="page7"
:total="total7"
@pageChange="pageChange7"
@pageSizeChange="pageSizeChange7"></pagination>
<!-- <el-pagination-->
<!-- @size-change="pageSizeChange"-->
<!-- @current-change="pageChange"-->
<!-- :current-page="1"-->
<!-- :page-sizes="[10, 20, 30, 50]"-->
<!-- :page-size="100"-->
<!-- layout="sizes, prev, pager, next, jumper"-->
<!-- :total="standitemTotal">-->
<!-- </el-pagination>-->
<!-- <pagination :total="standitemTotal" @pageChange="pageChange"-->
<!-- @pageSizeChange="pageSizeChange"></pagination>-->
</el-drawer>
<!-- 编辑分解单的条款-->
<el-drawer
:before-close="resetEditResolveListForm"
:visible.sync="editResolveListShowflag"
:wrapperClosable="false"
class="label-input-form"
size="800px"
title="编辑"
>
<el-form ref="resolveListForm" :model="resolveListForm" :rules="resolveListFormRules" style="padding-left: 10px;">
<el-input
v-show="false"
v-model="resolveListForm.id"
/>
<el-form-item
class="add-form-item"
label="条款号"
>
<el-input
v-model="resolveListForm.itemsNum"
disabled
style="width: 45%"
/>
</el-form-item>
<el-form-item
class="add-form-item"
label="条款名称"
>
<el-input
v-model="resolveListForm.itemsName"
disabled
style="width: 45%"
/>
</el-form-item>
<el-form-item
class="add-form-item"
label="条款内容"
>
<el-input
v-model="resolveListForm.termsConditions"
disabled
style="width: 45%"
/>
</el-form-item>
<el-form-item
class="add-form-item"
label="核心技术要求/变化点"
>
<el-input
v-model="resolveListForm.readContent"
clearable
style="width: 45%"
/>
</el-form-item>
<el-form-item
class="add-form-item"
label="基于上一版本差异"
>
<el-input
v-model="resolveListForm.comparedWithPrevious"
clearable
style="width: 45%"
/>
</el-form-item>
<el-form-item
class="add-form-item"
label="新车型实施日期(文本)"
>
<el-date-picker
v-model="resolveListForm.xccssrq"
placeholder="请选择新车型实施日期"
prefix-icon="none"
style="width: 45%"
type="dates"
value-format="yyyy-MM-dd">
</el-date-picker>
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model.trim="resolveListForm.xccssrq"-->
<!-- clearable-->
<!-- />-->
</el-form-item>
<el-form-item
class="add-form-item"
label="在产车实施日期(文本)"
>
<el-date-picker
v-model="resolveListForm.zccssrq"
placeholder="请选择在产车实施日期"
prefix-icon="none"
style="width: 45%"
type="dates"
value-format="yyyy-MM-dd">
</el-date-picker>
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model.trim="resolveListForm.zccssrq"-->
<!-- clearable-->
<!-- />-->
</el-form-item>
<!--适用车型-->
<template>
<custom-select-array
v-model="resolveListForm.applyArctic"
:config="applyArcticOptions"
></custom-select-array>
</template>
<!-- 责任工程师-->
<template>
<el-form-item
class="add-form-item"
label-width="150px"
prop="ZRGCSUser"
>
<template slot="label">责任工程师</template>
<el-input v-model="resolveListForm.dutyEngineer" clearable placeholder="请选择责任工程师"
@click.native="choiceZRRS('zrgcs', '查询责任工程师', resolveListForm.dutyEngineer)">
</el-input>
</el-form-item>
</template>
<!-- <el-form-item-->
<!-- label="责任工程师"-->
<!-- class="add-form-item"-->
<!-- >-->
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model="resolveListForm.dutyEngineer"-->
<!-- clearable-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item-->
<!-- label="符合性状态"-->
<!-- class="add-form-item"-->
<!-- >-->
<!-- <template>-->
<!-- <el-radio v-model="resolveListForm.complianceRequire" label="1">符合</el-radio>-->
<!-- <el-radio v-model="resolveListForm.complianceRequire" label="2">不符合</el-radio>-->
<!-- </template>-->
<!-- &lt;!&ndash; <el-input&ndash;&gt;-->
<!-- &lt;!&ndash; style="width: 45%"&ndash;&gt;-->
<!-- &lt;!&ndash; v-model="resolveListForm.complianceRequire"&ndash;&gt;-->
<!-- &lt;!&ndash; clearable&ndash;&gt;-->
<!-- &lt;!&ndash; />&ndash;&gt;-->
<!-- </el-form-item>-->
<!-- <el-form-item-->
<!-- label="合规性分析"-->
<!-- class="add-form-item"-->
<!-- >-->
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model="resolveListForm.complianceState"-->
<!-- clearable-->
<!-- />-->
<!-- </el-form-item>-->
</el-form>
<div id="roleFormButton" class="demo-drawer-footer" style="margin-top: 8%">
<el-button
:loading="editLoading"
class="common-button-primary"
icon="el-icon-check"
size="mini"
type="primary"
@click="saveEditInfo"
>提交
</el-button
>
<el-button
class="common-button-default"
icon="el-icon-close"
size="mini"
@click="resetEditResolveListForm"
>取消
</el-button
>
</div>
</el-drawer>
<Role-tree
:is-title="drawerTitle"
:is-visible.sync="modalShowRoleFlag"
:nodeList="nodeList2"
@checkedRole="checkedRole2"
></Role-tree>
<Mechanism-tree
:is-visible.sync="modalshowflagZRBM"
:nodeList="nodeListZRBM"
is-title="选择部门信息"
@checkedRole="drawerCheckZRBM"
/>
<!--新增标准条款-->
<el-drawer
:before-close="resetForm"
:title="itemModalTitle"
:visible.sync="modalItemaddShowflag"
:wrapperClosable="false"
destroy-on-close
size="800px"
>
<div class="demo-drawer-content">
<el-form
v-if="modalItemaddShowflag"
ref="sarStandardsItemForm"
:model="standItemEO"
:rules="sarStandardItemRules"
class="label-input-form"
label-width="150px"
>
<el-form-item class="add-form-item" label="条款号" prop="itemsNum">
<el-input v-model="standItemEO.itemsNum" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
</el-form-item>
<el-form-item class="add-form-item" label="条款名称" prop="itemsName">
<el-input v-model="standItemEO.itemsName" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
</el-form-item>
<el-form-item class="add-form-item" label="内容简介" prop="termsConditions">
<el-input v-model="standItemEO.termsConditions" :disabled="itemFormdisableflag" placeholder="请输入内容"/>
</el-form-item>
<el-row>
<custom-org
v-model="standItemEO.responsibleUnit"
:config="{
attrName: '责任部门',
attrField: 'responsibleUnit',
selVal: 'ORGLIST',
valueName: standItemEO.orgName,
attrType: 'SEL_OPTION'
}"
:data-model="standItemEO"
:zNodes="zNodesSItem"
@on-checked="(checkName) => {standItemEO.ZRBM = standItemEO.responsibleUnit;standItemEO.orgName = checkName}"
></custom-org>
</el-row>
<el-row>
<custom-org
v-model="standItemEO.FO"
:config="{
attrName: 'FO',
attrField: 'FO',
selVal: 'USERLIST',
valueName: standItemEO.foShow,
attrType: 'SEL_OPTION'
}"
:data-model="standItemEO"
:zNodes="zNodesSItem"
@on-checked="(checkName) => {standItemEO.fo = standItemEO.FO;standItemEO.foShow = checkName}"
></custom-org>
</el-row>
<el-row>
<custom-org
v-model="standItemEO.dutyEngineer"
:config="{
attrName: '责任工程师',
attrField: 'dutyEngineer',
selVal: 'USERLIST',
valueName: standItemEO.dutyEngineerShow,
attrType: 'SEL_OPTION'
}"
:data-model="standItemEO"
:zNodes="zNodesSItem"
@on-checked="(checkName) => {standItemEO.dutyEngineerShow = checkName}"
></custom-org>
</el-row>
<el-row>
<custom-SVPPS
v-model="standItemEO.svpps"
:config="{
attrName: 'SVPPS',
attrField: 'SVPPS',
valueName: standItemEO.svppsShow,
value: standItemEO.svpps
}"
></custom-SVPPS>
</el-row>
<el-form-item class="add-form-item" label="适用车辆类型" prop="applyArctic">
<el-select v-model="standItemEO.applyArctic" :filterable="true" multiple placeholder="请选择">
<el-option
v-for="(opt, index) in applyArcticOptions"
:key="index"
:label="opt.label"
:value="opt.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item class="add-form-item" label="要求类型" prop="claimType">
<el-select v-model="standItemEO.claimType" :filterable="true" placeholder="请选择">
<el-option
v-for="(opt, index) in requestOptions"
:key="index"
:label="opt.label"
:value="opt.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item class="add-form-item" label="企标覆盖关系" prop="busStandCover">
<el-select
v-model="standItemEO.busStandCover"
:disabled="itemFormdisableflag"
placeholder="请选择"
>
<el-option
v-for="(item, index) in BZFGGXOUIUJ"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button v-if="!itemFormdisableflag" :loading="isSubmit" class="common-button-primary" icon="el-icon-check"
type="primary" @click="saveOrUpdateStandItem">
保存
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>
</div>
</el-drawer>
<!--导入模态窗-->
<el-dialog :footer-hide="true" :visible.sync="importModalshowflag" title="导入文件" width="400px" v-dragDialogWidth :close-on-click-modal="false">
<el-upload
ref="importFileAboutStand"
:action="importExcelUrl"
:before-upload="beforeUpload"
:file-list="defaultFileList"
:on-remove="removeOneFile"
:on-success="importFileSuccess"
:show-file-list="showUploadlist"
accept=".xlsx"
drag
multiple
name="file">
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
</div>
</el-upload>
</el-dialog>
<!--分解单-查看 (标准拆分-属性)-->
<el-drawer
:visible.sync="showItemInfoModal"
:wrapperClosable="false"
size="800px"
title="查看属性信息"
>
<div class="see-drawer-content">
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="条款号">条款号</label>
<span :title="standShowItemEO.itemsNum" class="see-drawer-val" style="font-size: 12px">{{
standShowItemEO.itemsNum
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="条款名称">条款名称</label>
<span :title="standShowItemEO.itemsName" class="see-drawer-val" style="font-size: 12px">{{
standShowItemEO.itemsName
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="内容简介">条款内容</label>
<span :title="standShowItemEO.termsConditions ? standShowItemEO.termsConditions.replace(/<.*?>/ig, ' ') : ''" class="see-drawer-val"
style="font-size: 12px">{{
standShowItemEO.termsConditions ? standShowItemEO.termsConditions.replace(/<.*?>/ig, ' ') : ''
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="核心技术要求">核心技术要求</label>
<span :title="standShowItemEO.readContent ? standShowItemEO.readContent.replace(/<.*?>/ig, ' ') : ''" class="see-drawer-val"
style="font-size: 12px">
{{
standShowItemEO.readContent ? standShowItemEO.readContent.replace(/<.*?>/ig, ' ') : ''
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="新车型实施日期">新车型实施日期</label>
<span :title="standShowItemEO.xcxssrq" class="see-drawer-val"
style="font-size: 12px">{{
standShowItemEO.xccssrq
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="在产车实施日期">在产车实施日期</label>
<span :title="standShowItemEO.zccssrq" class="see-drawer-val"
style="font-size: 12px">{{
standShowItemEO.zccssrq
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="适用车型">适用车型</label>
<span :title="standShowItemEO.applyArctic" class="see-drawer-val" style="font-size: 12px">{{
filterApplyArctic(standShowItemEO)
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="责任部门">责任部门</label>
<span :title="standShowItemEO.responsibleUnit" class="see-drawer-val" style="font-size: 12px">{{
standShowItemEO.responsibleUnit
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="责任工程师">责任工程师</label>
<span :title="standShowItemEO.dutyEngineer" class="see-drawer-val" style="font-size: 12px">
{{ standShowItemEO.dutyEngineer }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" style="font-size: 14px" title="基于上一版本差异">基于上一版本差异</label>
<span :title="standShowItemEO.comparedWithPrevious" class="see-drawer-val" style="font-size: 12px">
{{ standShowItemEO.comparedWithPrevious }}</span>
</div>
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" style="font-size: 14px" title="符合性状态">符合性状态</label>-->
<!-- <span class="see-drawer-val" style="font-size: 12px" :title="standShowItemEO.complianceRequire">-->
<!-- {{ standShowItemEO.complianceRequire ? (standShowItemEO.complianceRequire === '1' ? '是' : '否') : '-' }}-->
<!-- </span>-->
<!-- </div>-->
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" style="font-size: 14px" title="合规性分析">合规性分析</label>-->
<!-- <span class="see-drawer-val" style="font-size: 12px" :title="standShowItemEO.complianceState">-->
<!-- {{ standShowItemEO.complianceState }}</span>-->
<!-- </div>-->
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" title="FO">FO</label>-->
<!-- <span class="see-drawer-val" :title="standShowItemEO.foShow">{{ standShowItemEO.foShow }}</span>-->
<!-- </div>-->
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" title="责任工程师">责任工程师</label>-->
<!-- <span class="see-drawer-val" :title="standShowItemEO.dutyEngineerShow">{{-->
<!-- standShowItemEO.dutyEngineerShow-->
<!-- }}</span>-->
<!-- </div>-->
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" title="svpps">svpps</label>-->
<!-- <span class="see-drawer-val" :title="standShowItemEO.svppsShow">{{ standShowItemEO.svppsShow }}</span>-->
<!-- </div>-->
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" title="要求类型">要求类型</label>-->
<!-- <span class="see-drawer-val" :title="standShowItemEO.claimTypeShow">{{ standShowItemEO.claimTypeShow }}</span>-->
<!-- </div>-->
<!-- <div class="see-drawer-div">-->
<!-- <label class="see-drawer-name" title="企标覆盖关系">企标覆盖关系</label>-->
<!-- <span class="see-drawer-val"-->
<!-- :title="standShowItemEO.busStandCoverShow ? standShowItemEO.busStandCoverShow : busStandCoverName(standShowItemEO.busStandCover)">{{-->
<!-- standShowItemEO.busStandCoverShow ? standShowItemEO.busStandCoverShow : busStandCoverName(standShowItemEO.busStandCover)-->
<!-- }}</span>-->
<!-- </div>-->
</div>
</el-drawer>
<el-dialog
:before-close="relateDialogClose1"
:visible.sync="relateDialog1"
class="relateClass"
title="更多发布稿"
width="40%">
<div
v-for="(file, index) in relateNowList1"
v-if="relateNowList1"
:key="index"
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
>
{{ index + 1 }}.
<a :title="file.oldFileName" style="font-size: 16px;color: #409EFF;cursor: pointer"
target="_blank" @click="openFileInPdf(file.id, file.oldFileName)">{{ file.oldFileName }}</a>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
class="icon-download"
title="下载"
@click="downloadFile(file.id)"
/>
<i
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
class="icon-download2"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
/>
<div v-if="relateNowList.length >1">
<el-divider></el-divider>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="relateDialogClose1">关 闭</el-button>
</div>
</el-dialog>
<!-- 更新LOG -->
<el-dialog
:before-close="relateDialogClose"
:visible.sync="relateDialog"
class="relateClass"
title="更新记录"
width="60%">
<div
v-for="(item, index) in relateNowList"
v-if="relateNowList"
:key="index"
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
>
{{ index + 1 }}. {{ item.creationUserName }} {{ item.creationTime }} {{ item.content }}
<div v-if="relateNowList.length >1">
<el-divider></el-divider>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="relateDialogClose">关 闭</el-button>
</div>
</el-dialog>
<!-- 知识点分享 -->
<el-dialog
:visible.sync="knowledgeSharingDialog"
class="myDialog"
title="知识点分享"
width="800px">
<div class="action-bar">
<el-button :v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'PVBSWCJQ9X4RVBM9RK7L' : 'NJ3YL4SVEJADWH7ESHDX'"
class="common-button-primary add-button"
size="mini"
type="primary"
@click="addknowledge(1)"><i class="el-icon-plus"></i>新增
</el-button>
<el-button :v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '4V4592SVLAZY9HMC8WHU' : '485WL3QHGRJ27H2XD34Z'"
class="common-button-default delete-button"
size="mini"
@click="deleteknowledge(2)"><i class="iconfont">&#xe61b;</i>批量删除
</el-button>
</div>
<div class="knowContent">
<el-table
:data="knowList"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
border
height="100%"
style="width: 100%"
tooltip-effect="dark"
@selection-change="handleSelectionKnow"
>
<el-table-column
align="center"
type="selection"
width="55">
</el-table-column>
<el-table-column
label="序号"
align="center"
type="index"
width="50">
<template slot-scope="{scope, column, $index}">
{{ ($index + 1) + (pageNo - 1) * $store.getters.userInfo.configContent }}
</template>
</el-table-column>
<el-table-column
label="标题"
prop="title"
show-overflow-tooltip
width="150">
</el-table-column>
<el-table-column
label="内容"
prop="content"
show-overflow-tooltip>
</el-table-column>
<el-table-column
align="center"
label="时间"
prop="creationTime"
width="150">
<template slot-scope="scope">
{{ $moment(scope.row.creationTime).format('YYYY-MM-DD') }}
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="50">
<template slot-scope="scope">
<div style="display: inline-block" @click.stop>
<el-dropdown trigger="click" @command="handleCommand2">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>
<el-dropdown-item
:command="[scope.row, '编辑']"
:v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'XPMLS6UV5HXG7C9ZR6B8' : '5ZC797XABNFV36KWJCA5'">
编辑
</el-dropdown-item>
<el-dropdown-item
:command="[scope.row, '删除']"
:v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '4V4592SVLAZY9HMC8WHU' : '485WL3QHGRJ27H2XD34Z'">
删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
<pagination :total="total" @pageChange="pageChange1" @pageSizeChange="pageSizeChange1"></pagination>
</div>
</el-dialog>
<!-- 知识点新增 -->
<el-dialog
:before-close="AddKnowClose"
:close-on-click-modal="false"
:title="KnowTitle"
:visible.sync="AddKnowledgDialog"
destroy-on-close
width="600px">
<el-form ref="addForm" :model="addForm" :rules="addFormRules" class="label-input-form" label-width="130px">
<el-formItem class="add-form-item" label="标题" prop="title">
<el-input v-model="addForm.title" placeholder="请输入标题"></el-input>
</el-formItem>
<el-formItem class="add-form-item" label="内容" prop="content">
<el-input v-model="addForm.content" :autosize="{ minRows: 3, maxRows: 4}" placeholder="请输入内容" resize="none"
type="textarea"></el-input>
</el-formItem>
<el-formItem class="add-form-item" label="附件" prop="files">
<el-upload
ref="importFileAboutStand"
:action="importExcelUrl"
:before-upload="beforeUpload1"
:file-list="defaultFileList"
:on-remove="removeOneFile1"
:on-success="uploadSuccess1"
:show-file-list="showUploadlist2"
drag
multiple
name="file"
style="margin-top: 15px;">
<i class="el-icon-upload"></i>
<div class="el-upload__text">点击或拖拽上传文件</div>
</el-upload>
</el-formItem>
</el-form>
<div slot="footer" class="demo-drawer-footer">
<el-button :loading="AddKnowSubLoading" class="common-button-primary" icon="el-icon-check" size="mini"
type="primary" @click="AddKnowSub">
确定
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="AddKnowClose">取消</el-button>
</div>
</el-dialog>
<!-- 查看知识点详情-->
<el-dialog
:visible.sync="AddKnowledgDialogItem"
class="myDialog"
destroy-on-close
title="查看"
width="60%">
<div class="basic-information-content">
<p><label>标题:</label><span>{{ knowSee.title }}</span></p>
<p><label>内容:</label><span>{{ knowSee.content }}</span></p>
<p><label>附件:</label>
<span
v-for="(item,index) in knowSee.fileList"
:key="index"
class="fileCss"
@click="downloadFile(item.id)">{{ item.oldFileName }}</span>
</p>
<p><label>发布时间:</label><span>{{
knowSee.creationTime ? $moment(knowSee.creationTime).format('YYYY-MM-DD') : ''
}}</span></p>
</div>
</el-dialog>
<el-dialog
:before-close="comparisonClose"
:visible.sync="comparisonDialog"
class="myDialog1"
title="比对">
<div class="search-area">
<el-form :inline="true" class="label-input-form">
<el-form-item class="search-item" label="关键字">
<el-input v-model="comparisonTitle" placeholder="请输入关键字"></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-primary"
icon="el-icon-search"
size="mini"
type="primary"
@click="getComparison()">
</el-button>
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
size="mini"
@click="clearComparison()"></el-button>
<el-button class="common-button-primary" size="mini" type="primary" @click="addComparison">
<i class="el-icon-plus"></i>新增
</el-button>
</el-form-item>
</el-form>
</div>
<div class="action-bar">
<div class="myRadio">
<template>
<el-radio-group v-for="(item, index) in comparisonList" :key="index" v-model="comparisonId">
<el-radio :label="item.id">{{ item.listName }}</el-radio>
<br>
</el-radio-group>
</template>
</div>
<div slot="footer" class="demo-drawer-footer">
<el-button class="common-button-primary" icon="el-icon-check" size="mini" type="primary"
@click="comparisonSub">
确定
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="comparisonClose">取消</el-button>
</div>
</div>
</el-dialog>
<!-- 新增清单抽屉 -->
<el-drawer
:visible.sync="AddcomparisonDrawer"
destroy-on-close
size="800px"
title="比对清单新增"
>
<div class="demo-drawer-content">
<el-form
ref="listVO"
:model="listVO"
:rules="listVOFormRules"
class="label-input-form"
label-width="150px"
>
<el-form-item class="add-form-item" label="清单名称" prop="name">
<el-input v-model.trim="listVO.name" clearable placeholder="请输入清单名称"/>
</el-form-item>
<el-form-item class="add-form-item" label="是否公开" prop="public">
<el-radio-group v-model="listVO.public"
style="margin-bottom: 0px; display: flex; align-items: center; height: 50px;">
<el-radio :label="true">是</el-radio>
<el-radio :label="false">否</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
</div>
<div id="listFormButton" class="demo-drawer-footer">
<el-button class="common-button-primary" icon="el-icon-check" type="primary"
@click="submitDrawerForm('listVO')">
确定
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="AddcomparisonDrawer = false">取消
</el-button>
</div>
</el-drawer>
<!-- 导入失败-->
<el-dialog :close-on-click-modal="false" :visible.sync="importFailed" width="400px">
<p slot="title" style="color:#f60">
<span>导入失败</span>
</p>
<div style="max-height: 300px;overflow: auto;padding: 10px 0;">
<p v-html="importForm.content"></p>
</div>
<div slot="footer" class="demo-drawer-footer">
<el-button class="common-button-default" icon="el-icon-check" size="mini" type="primary"
@click="importFailed = false">
确认
</el-button>
</div>
</el-dialog>
<loading :loading="loading">数据获取中</loading>
<!-- 关联条款抽屉-->
<el-drawer
ref="relatedTermsDrawer"
:show-close="true"
:visible.sync="relatedTermsDrawerVisible"
:wrapperClosable="false"
destroy-on-close
size="800px"
title="关联条款"
>
<div class="demo-drawer-content">
<related-terms-select
ref="relatedTermsSelect"
:fileType="fileType"
:stand-id="standId"
@close="closeRelatedTermsDrawer"
@func="handleChangeList"
></related-terms-select>
</div>
<div class="demo-drawer-footer">
<el-button :loading="btnLoading" class="common-button-primary" icon="el-icon-check" size="mini" type="primary"
@click="handleRelatedTermsDrawerSubmit">提交
</el-button>
<el-button class="common-button-default" icon="el-icon-close" size="mini"
@click="handleRelatedTermsDrawerCancel">取消
</el-button>
</div>
</el-drawer>
<!--内容简介-->
<el-dialog :close-on-click-modal="false" :visible.sync="itemsTextDialogs" title="内容简介">
<div class="itemsTextBox" v-html="itemsText"></div>
<div slot="footer">
<el-button size="large" type="primary" @click="itemsTextDialogs = false">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
/* eslint-disable */
import PutQuestionButton from '@/components/PutQuestionButton'
import CustomSVPPS from '@/components/CustomFormComponents/SVPPS'
import CustomSelectArray from '@/components/CustomFormComponents/SelectArray'
import CustomOrg from '@/components/CustomFormComponents/OrgTree'
import {dateFormat} from '@/common/date'
import RelatedTermsSelect from './components/RelatedTermsSelect'
import {getBusStandFileByAttId} from 'api/process'
import {dicTypeData} from "api/unqualProcess";
export default {
name: 'OtherStandardDetails',
components: {
PutQuestionButton,
CustomSVPPS,
CustomSelectArray,
CustomOrg,
RelatedTermsSelect
},
filters: {
ellipsis(value) {
if (!value) return ''
return value
},
ellipsis50(value) {
if (!value) return ''
if (value.length > 50) {
return value.slice(0, 50) + '...'
}
return value
}
},
data() {
return {
cfjgscUploadKey:1,
externalStatus: '',
handleList: [],
CycxOptions: [],
activeNames: ['基础信息', '过程稿件', '实施日期'],
activeState: true,
itemExistList: [],
interpretationContent: '',
relatedTermsDrawerVisible: false,
btnLoading: false,
comparisonTitle: '',
AddKnowSubLoading: false,
listVO: {
name: '',
public: false
},
resolveListFormRules: {
applyArcticyRule: [
{required: true, message: '适用车型不能为空', trigger: 'blur'},
]
},
listVOFormRules: {
name: [
{required: true, message: '名称不能为空', trigger: 'blur'},
{type: 'string', max: 100, message: '名称不能超过100个字符', trigger: 'blur'}
]
},
AddcomparisonDrawer: false,
comparisonId: '',
comparisonList: [],
comparisonDialog: false,
knowSee: [],
AddKnowledgDialogItem: false,
showUploadlist2: true, // 导入过程中新增数据时,如果数据错误,不出现导入列表
importFileFormat: [],
knowId: '',
knowType: '',
KnowTitle: '',
knowIdList: '',
order: '',
orderBy: '',
total7: 0,
page7: 1,
pageSize7: 20,
addForm: {
title: '',
content: '',
fileId: ''
},
addFormRules: {
title: [
{required: true, message: '标题不能为空', trigger: 'blur'},
{type: 'string', max: 200, message: '标题不能超过200个字符', trigger: 'change'}
],
content: [
{required: true, message: '内容不能为空', trigger: 'blur'},
{type: 'string', max: 200, message: '内容不能超过200个字符', trigger: 'change'}
]
},
total: 0,
pageNo: 1,
pageSize: 10,
knowList: [],
AddKnowledgDialog: false,
knowledgeSharingDialog: false,
relateDialog: false,
relateDialog1: false,
relateList: [],
relateNowList: [],
relateNowList1: [],
loading: false,
showItemInfoModal: false,
standShowItemEO: {},
// 提交状态
isSubmit: false,
zNodesSItem: [],
zNodesSItemEngin: [],
zNodesSItemFO: [],
sarStandardsInfoEO: {
id: '',
standType: 'INLAND', // 标准分类
country: 'CN',
standSort: '',
applyArctic: '',
standNumber: '',
standYear: '',
standName: '',
standEnName: '',
standState: '',
standNature: '',
replaceStandNum: '',
replacedStandNum: '',
interStandNum: '',
adoptExtent: '',
emergyKind: '',
registerPutTime: '',
applyAuth: '',
issueTime: '',
putTime: '',
newcarPutTime: '',
productPutTime: '',
newproductPutTime: '',
draftingUnit: '',
draftUser: '',
standFile: '',
standModifyFile: '',
draftFile: '',
opinionFile: '',
sentScreenFile: '',
approvalFile: '',
relevanceFile: '',
standFileList: [],
standModifyFileList: [],
draftFileList: [],
opinionFileList: [],
sentScreenFileList: [],
approvalFileList: [],
relevanceFileList: [],
tags: '',
synopsis: '',
responsibleUnit: '',
category: '',
remark: '',
}, // 标准新增过程中用到的对象
standItemEO: {
id: '',
standId: '',
itemsNum: '',
itemsName: '',
parts: '',
mainPointImplementation: '', // 实施要点
termsConditions: '', // 内容简介
tackTime: '',
applyArctic: '', // 试用车型
energyKind: '', // 能源种类
responsibleUnit: '',
remarks: '',
orgName: '',
quoteStand: '',
relevanceFile: '',
fo: '',
foShow: '',
dutyEngineer: '',
dutyEngineerShow: '',
svpps: '',
claimType: '',
busStandCover: '',
fileType: '',
ZRBM: '',
FO: ''
}, // 标准条款新增过程中用到对象
standItemEODefault: {
id: '',
standId: '',
itemsNum: '',
itemsName: '',
parts: '',
mainPointImplementation: '', // 实施要点
termsConditions: '', // 内容简介
tackTime: '',
applyArctic: '', // 试用车型
energyKind: '', // 能源种类
responsibleUnit: '',
remarks: '',
orgName: '',
quoteStand: '',
relevanceFile: '',
fo: '',
foShow: '',
dutyEngineer: '',
dutyEngineerShow: '',
svpps: '',
claimType: '',
busStandCover: '',
fileType: '',
ZRBM: '',
FO: ''
},
applyArcticOptions: {
attrName: '适用车型',
attrField: 'applyArcticyRule',
options: []
}, // 适用车辆类型下拉框
modalshowflagZRBM: false,
nodeListZRBM: [],
nodeList2: [],
nodeList: [],
userType: '',
drawerTitle: '',
modalShowRoleFlag: false,
emergyKindOptions: [], // 能源种类下拉框
requestOptions: [],
BZFGGXOUIUJ: [], // 企标覆盖关系
itemModalTitle: '',
modalItemaddShowflag: false,
editResolveListShowflag: false,
resolveListForm: {
id: '',
itemsNum: '',
itemsName: '',
termsConditions: '',
readContent: '',
comparedWithPrevious: '',
xccssrq: '',
zccssrq: '',
applyArctic: '',
dutyEngineer: '',
complianceRequire: '',
complianceState: '',
},
editLoading: false,
itemAddOrUPdateFlag: '',
itemFormdisableflag: false, // 查看标准条款不可编辑
recommendList: [],
showModalTitle: '查看分解单',
replaceNumList: [],
replacedNumList: [],
// 代替,被代替标准号页面跳转
replaceStandInfoEO: {},
personCookieEO: {
cookieType: '',
resTitle: '',
resId: ''
},
saveStandType: this.$route.params.pageType,
opinionsProcessList: [], // 标准征求意见审批流程
notifiProcessList: [], // 标准法规实施通知及排查流程
modalStandItemflag: false,
tableLoading: false,
standItemSearch: {
XCXSSRQ: '',
ZCCSSRQ: '',
standId: '',
fileType: '',
itemsName: '',
pageSize: this.$store.getters.userInfo.configContent,
page: 1,
},
standitemTotal: 0,
searching: false,
searchInlandNodes: [], // 条款部门选择树形结构
standItemList: [],
tableHeight: null,
selectedItemList: [],
sarStandardItemRules: {
itemsNum: [
{required: true, message: '条款号不能为空', trigger: 'change'},
{required: true, validator: this.verify.validateStandardItem, trigger: 'change'},
{type: 'string', max: 100, message: '条款号不能超过100个字符', trigger: 'change'},
{validator: this.validCode, trigger: 'blur'}
],
itemsName: [
{required: true, message: '条款名称不能为空', trigger: 'change'},
{type: 'string', max: 100, message: '条款名称不能超过100个字符', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter, trigger: 'blur'}
],
// mainPointImplementation: [
// {type: 'string', max: 255, message: '实施要点不能超过255个字符', trigger: 'blur'}
// // {type: 'string', validator: this.verify.checkSpecialCharacter, trigger: 'blur'}
// ],
termsConditions: [
{required: true, message: '内容简介不能为空', trigger: 'change'},
{type: 'string', max: 500, message: '内容简介不能超过500个字符', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter, trigger: 'blur'}
],
responsibleUnit: [
{required: true, message: '责任部门不能为空', trigger: 'change'}
],
fo: [
{required: true, message: 'fo不能为空', trigger: 'change'}
// {type: 'string', max: 100, message: 'fo不能超过100个字符', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter2, trigger: 'blur'}
],
FO: [
{required: true, message: 'FO不能为空', trigger: 'change'}
// {type: 'string', max: 100, message: 'fo不能超过100个字符', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter2, trigger: 'blur'}
],
dutyEngineer: [
{required: true, message: '责任工程师不能为空', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter2, trigger: 'blur'}
],
svpps: [
{required: true, message: 'svpps不能为空', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter2, trigger: 'blur'}
],
// tackTime: [],
applyArctic: [
{type: 'Array', validator: this.verify.valiCategory, trigger: 'change'}
],
claimType: [
{required: true, message: '要求类型不能为空', trigger: 'change'}
],
busStandCover: [
{required: true, message: '企标覆盖关系不能为空', trigger: 'change'}
// {type: 'string', validator: this.verify.checkSpecialCharacter2, trigger: 'blur'}
],
// energyKind: [
// {type: 'Array', validator: this.verify.valiCategory, trigger: 'change'}
// ],
// orgName
remarks: [
{type: 'string', max: 1000, message: '备注不能超过1000个字符', trigger: 'change'}
// {validator: this.verify.checkSpecialCharacter, trigger: 'blur'}
]
},
importModalshowflag: false,
showUploadlist: true, // 导入过程中新增数据时,如果数据错误,不出现导入列表
importExcelUrl: 'api/att/attFile/uploadNew', // 导入EXCEL文档
exportModelFlag: false,
exportName: {},
standardForm: {},
defaultFileList: [], // 默认显示
currentFileList: '', // 当前操作的是哪个FormItem的上传
importModalshowflagtemp: false,
currentFile: '', // 当前操作的是哪个FormItem的上传
dynamicFormField: [],
displayLocation: [],
isMoreAwayBtn: false,
fileType: '',
editAddType: 1, // 1 新增、 2、编辑
importFailed: false,
importForm: {
content: ''
},
itemsText: '',
itemsTextDialogs: false,
textStatusMap: {},
standMap: {},
splitResultPath: 'api/lawss/sarFileSplitItems/importSplitItemsInfoZip',
defaultImportSplitResultFileList:[],
// 记录上传文件相关信息
uploadFilesplitEo: {
standId: '',
fileType: '',
attId: '',
fileName: '',
standNumSplit: '',
standNameSplit: '',
defaultFileList: [],
splitType: '全部章节'
},
headers:{
// token: JSON.parse(localStorage.getItem('userInfo')).token
}
}
},
props: {},
watch: {},
methods: {
// 模板下载
uploadImportSplitResultModal () {
window.open('/api/lawss/sarFileSplitItems/exportTemplate')
},
uploadSplitResultSuccess (res, file, fileList) {
if (res.ok) {
this.$message.success(res.message)
this.cfjgscUploadKey++
// this.uploadFilesplitEo.attId = res.data.attId
// this.uploadFilesplitEo.fileName = res.data.name
// if (res.data.standNum != null && res.data.standNum !== '') {
// this.uploadFilesplitEo.standNumSplit = res.data.standNum
// }
// if (res.data.standName != null && res.data.standName !== '') {
// this.uploadFilesplitEo.standNameSplit = res.data.standName
// }
// this.defaultImportSplitResultFileList.push(file)
// this.$message.success('文件上传成功')
// setTimeout(()=>{
// this.handleImportSplitResult();
// },1000)
} else {
// this.defaultImportSplitResultFileList = []
// this.uploadFilesplitEo.attId = ''
this.$message.error(res.message)
}
setTimeout(()=>{
this.$router.go(0)
},2000)
},
handleImportSplitResult(){
console.log(123333)
if (this.defaultImportSplitResultFileList.length) {
const file = this.defaultImportSplitResultFileList[0]
const fileTypeResult = this.beforeSplitResultImport(file.raw)
const _formData = new FormData()
_formData.append('standNumSplit', this.uploadFilesplitEo.standNumSplit)
_formData.append('standId', this.uploadFilesplitEo.standId)
_formData.append('standNameSplit', this.uploadFilesplitEo.standNameSplit)
// _formData.append('fileType', this.uploadFilesplitEo.fileType)
console.log(this.textStatusMap[sarStandardsInfoEO.textStatus])
_formData.append('fileType', this.textStatusMap[sarStandardsInfoEO.textStatus])
_formData.append('file', file.raw)
if (fileTypeResult) {
this.importSplitResultLoading = true
console.log(123)
this.$http.postData('lawss/sarFileSplitItems/importSplitItemsZip', _formData, {
}, res => {
this.importSplitResultLoading = false
if (res.ok) {
this.visibleImportSplitResultDialog = false
this.$message({
dangerouslyUseHTMLString: true,
message: res.message,
type: 'success'
})
} else {
this.$message({
dangerouslyUseHTMLString: true,
message: res.message,
type: 'warning'
})
}
})
}
} else {
this.$message.warning('请上传文件')
}
},
// 上传按钮 文件上传之前的钩子
beforeSplitResultImport(file) {
if (this.sarStandardsInfoEO.standYear) {
this.sarStandardsInfoEO.lawsNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear
} else {
this.sarStandardsInfoEO.lawsNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber
}
this.sarStandardsInfoEO.lawsName = this.sarStandardsInfoEO.standName
this.sarStandardsInfoEO.stateName = this.sarStandardsInfoEO.standStateShow
this.sarStandardsInfoEO.resType = this.$route.params.pageType
this.uploadFilesplitEo.standNumSplit = this.sarStandardsInfoEO.lawsNumber
this.uploadFilesplitEo.standNameSplit = this.sarStandardsInfoEO.lawsName
this.uploadFilesplitEo.standId = this.sarStandardsInfoEO.id
//this.uploadFilesplitEo.fileType = this.$route.params.pageType
this.uploadFilesplitEo.fileType = this.fileType;
// this.uploadFilesplitEo.fileType = this.sarStandardsInfoEO.textStatus
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
// const fileSuffix = file.name.split('.')[1] // 后缀名
if (this.defaultImportSplitResultFileList.length > 1) {
this.$message.warning('只能导入一个文件')
return false
}
if (fileSuffix !== '.zip') {
this.$message.warning('文件' + file.name + '格式不正确,请上传zip文件')
return false
}
if (file.size / 1024 / 1024 > 200) {
this.$message.warning('文件大小不能超过200M')
return false
}
return true
},
removeSplitResultFile (file, fileList) {
this.defaultImportSplitResultFileList = fileList
this.uploadFilesplitEo.attId = fileList.length > 0 ? this.uploadFilesplitEo.attId : ''
this.uploadFilesplitEo.defaultFileList = fileList
},
// 导入拆分结果
handleUploadChange (file, fileList) {
this.defaultImportSplitResultFileList = fileList
this.uploadFilesplitEo.defaultFileList = fileList
// this.$refs['uploadFileSplitEO'].validateField('defaultFileList')
},
filterApplyArctic(row) {
if (row.applyArctic) {
return row.applyArctic.replaceAll('\"', '').replaceAll('\[', '').replaceAll('\]', '')
} else {
return ""
}
},
handleChangeList(data) {
this.handleList = data
},
child1Func(child1) {
const list = []
if (child1 && child1.length > 1) {
for (let i = 0; i < child1.length; i++) {
list.push(child1[i])
}
return list
}
return child1
},
child3Func(child3) {
const list = []
if (child3 && child3.length > 1) {
list.push(child3[0])
return list
}
return child3
},
child4Func(child4) {
const list = []
if (child4 && child4.length > 1) {
list.push(child4[0])
return list
}
return child4
},
child5Func(child5) {
const list = []
if (child5 && child5.length > 1) {
list.push(child5[0])
return list
}
return child5
},
child6Func(child6) {
const list = []
if (child6 && child6.length > 1) {
for (let i = 0; i < child6.length; i++) {
list.push(child6[i])
}
// list.push(child6[0])
return list
}
return child6
},
handleChange(val) {
},
handleChange1(val) {
if (val && val === '基础信息') {
this.activeState = true;
}
},
judgeSuffix(fileName) {
if ('pdf' === fileName.substring(fileName.lastIndexOf('.') + 1)) {
return true;
} else return false;
},
ocrFunction(file) {
return "ocr"
},
FormatDate(date) {
return moment(date).format('YYYY-MM-DD');
},
// 将标准状态的id与name对应
setMap(data) {
data.forEach(item => {
this.$set(this.textStatusMap, item.value, item.label)
this.$set(this.standMap, item.value, item.label)
})
},
statusClick() {
let routeUrl = this.$router.resolve({
name: 'standInvolveProjectTwo',
query: {
resId: this.sarStandardsInfoEO.id
}
})
window.open(routeUrl.href, '_blank')
},
closeDrawer() {
this.modalStandItemflag = false
},
clearComparison() {
this.comparisonTitle = ''
this.getComparison()
},
// 验证条款号是否唯一
validCode(rule, value, callback) {
let find = 0
this.standItemList.map(item => {
if (item.itemsNum === value) {
find++
}
})
if (find > 1 && this.editAddType === 2) {
return callback(new Error('条款号已存在'))
} else if (find > 0 && this.editAddType === 1) {
return callback(new Error('条款号已存在'))
}
callback()
},
// 新增清单
submitDrawerForm(name) {
this.$refs[name].validate((valid) => {
if (valid) {
const formData = {
listName: this.listVO.name,
publicFlag: this.listVO.public ? '1' : '0' // 0: 不公开 1: 公开
}
this.$http.postData('lawss/sarStandCompareBase/saveSarStandCompareBase', formData,
{
_this: this,
loading: 'tableDataLoading'
}, res => {
if (res.ok) {
this.AddcomparisonDrawer = false
this.getComparison()
} else {
}
})
} else {
}
})
},
// 比对提交
comparisonSub() {
if (this.comparisonId === '') {
this.$message.error('请选择比对清单')
} else {
let standNum = ''
const item = this.sarStandardsInfoEO
if (item.standYear) {
standNum = `${item.standSortShow} ${item.standNumber}-${item.standYear}`
} else {
standNum = `${item.standSortShow} ${item.standNumber}`
}
const formData = {
compareBaseId: this.comparisonId,
list: [{
country: this.sarStandardsInfoEO.countryShow,
standNum: standNum,
standName: this.sarStandardsInfoEO.standName,
standId: this.sarStandardsInfoEO.id,
standType: this.$route.params.pageType
}]
}
this.$http.postData('lawss/SarStandCompareList/save', formData, {
_this: this
}, res => {
if (res.ok) {
this.$router.push({
name: 'ViewStandardComparisonLibrary',
params: {
listId: this.comparisonId
}
})
}
})
}
},
// 比对关闭
comparisonClose() {
this.comparisonTitle = ''
this.comparisonId = ''
this.comparisonDialog = false
},
// 获取清单
getComparison() {
this.$http.get('lawss/sarStandCompareBase/page', {
listName: this.comparisonTitle,
page: '1',
pageSize: '99999',
publicFlag: 1
}, {
_this: this
}, res => {
if (res.ok) {
this.comparisonList = res.data.list
}
})
},
// 打开比对模态框
comparisonDialogOpen() {
this.comparisonDialog = true
this.getComparison()
},
// 比对新增
addComparison() {
this.AddcomparisonDrawer = true
this.listVO.name = ''
this.listVO.public = false
},
beforeUpload1(file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
if (fileSuffix === '.pdf' || fileSuffix === '.doc' || fileSuffix === '.docx' || fileSuffix === '.PDF' || fileSuffix === '.ppt' || fileSuffix === '.pptx') {
return true
} else {
this.$message.error('文件' + file.name + '格式不正确,请上传doc、docx、ppt、pptx、pdf、或PDF文件')
return false
}
// 判断文件上传大小
if (file.size / 1024 / 1024 > 200) {// eslint-disable-line
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
uploadSuccess1(res, file, fileList) {
if (res.ok) {
this.addForm.fileId += res.data.id + ','
this.$message({
message: '文件上传成功',
type: 'success'
})
} else {
this.importFailed = true
this.importForm.content = res.message
}
},
removeOneFile1(file, fileList) {
let ids = this.addForm.fileId.split(',')
if (file.response) {
let fileIds = file.response.data.id
let newIdList = this.removeAaary(ids, fileIds)
this.addForm.fileId = newIdList.join(',')
}
},
// 删除数组中的某个对象
removeAaary(_arr, _obj) {
var length = _arr.length
for (var i = 0; i < length; i++) {
if (_arr[i] === _obj) {
if (i === 0) {
_arr.shift() // 删除并返回数组的第一个元素
return _arr
} else if (i === length - 1) {
_arr.pop() // 删除并返回数组的最后一个元素
return _arr
} else {
_arr.splice(i, 1) // 删除下标为i的元素
return _arr
}
}
}
},
handleSelectionKnow(val) {
this.knowIdList = ''
val.map((item, index) => {
if (val.length === 1) {
this.knowIdList += item.id
} else if (index === val.length - 1) {
this.knowIdList += item.id
} else if (val.length > 1) {
this.knowIdList += item.id + ','
}
})
},
// 确定新增
AddKnowSub() {
this.$refs['addForm'].validate((valid) => {
if (valid) {
this.AddKnowSubLoading = true
if (this.knowType === 1) {
this.$http.postData('lawss/sarKnowledgeShare/addKnowShare', {
content: this.addForm.content,
title: this.addForm.title,
sarId: this.$route.params.id,
sarType: this.$route.params.pageType,
file: this.addForm.fileId
}, {
_this: this
}, res => {
if (res.ok) {
this.AddKnowClose()
this.getKnowList()
this.AddKnowSubLoading = false
} else {
this.AddKnowSubLoading = false
}
})
} else {
this.$http.putData('lawss/sarKnowledgeShare/updateKnowShare', {
content: this.addForm.content,
title: this.addForm.title,
sarId: this.$route.params.id,
sarType: this.$route.params.pageType,
file: this.addForm.fileId,
id: this.knowId
}, {
_this: this
}, res => {
if (res.ok) {
this.AddKnowClose()
this.getKnowList()
this.AddKnowSubLoading = false
} else {
this.AddKnowSubLoading = false
}
})
}
}
})
},
// 关闭知识点新增
AddKnowClose() {
this.defaultFileList = []
this.addForm.title = ''
this.addForm.content = ''
this.addForm.fileId = ''
this.knowId = ''
this.AddKnowledgDialog = false
},
//查看分解单分页
pageChange7(page) {
this.page7 = page
this.selectSarStandItems()
},
pageSizeChange7(pageSize) {
this.pageSize7 = pageSize
this.selectSarStandItems()
},
// 知识点分页
pageChange1(page) {
this.pageNo = page
this.getKnowList()
},
pageSizeChange1() {
this.getKnowList()
},
selectAskReply(){
return new Promise((resolve,reject)=>{
this.$http.post('lawss/AskQuestions/selectAskReply', {
id: this.$route.params.id
}, {
_this: this
}, res => {
resolve(res)
},e => reject(e));
})
},
jump(){
return new Promise((resolve,reject)=>{
this.$http.post('lawss/AskQuestions/jump', {
standId: this.$route.params.id,
userId : this.$store.getters.userInfo.userId,
}, {
_this: this
}, res => {
resolve(res)
},e => reject(e));
})
},
//标准问答按钮
knowledgeSharing() {
this.jump().then(res =>{
let activeName = res.data
this.selectAskReply()
.then((res)=>{
if( res && res.data.length === 0){
this.$router.push({
name: 'MyQuestions3',
query: {
activeName,
type: this.$route.params.pageType,
id: this.$route.params.id,
dialogVisible: true
},
})
}else{
const data = res.data[0].askQuestions
this.$router.push({
name: 'MyQuestions3',
query: {
activeName,
type: this.$route.params.pageType,
// classification: data.classification,
id: this.$route.params.id,
dialogVisible: false
},
})
}
}).catch(e =>{
console.log(e)
})
})
// this.$router.push({
// // path: '/standQA',
// query: {
// standId: this.$route.params.id,
// standType: this.sarStandardsInfoEO.standType,
// sourceType: 'details',
// },
// name: 'MyQuestions2',
// })
},
// 获取知识点列表数据
getKnowList() {
this.$http.get('lawss/sarKnowledgeShare/page', {
sarId: this.$route.params.id,
sarType: this.$route.params.pageType,
page: this.pageNo,
pageSize: this.$store.getters.userInfo.configContent
}, {
_this: this
}, res => {
if (res.ok) {
this.knowList = res.data.list
this.total = res.data.count
}
})
},
handleCommand2(command) {
switch (command[1]) {
case '查看':
this.handleKnow(command[0])
break
case '编辑':
this.addknowledge(2, command[0])
break
case '删除':
this.deleteknowledge(1, command[0])
break
}
},
// 查看知识点
handleKnow(row) {
this.AddKnowledgDialogItem = true
this.knowSee = row
},
// 点击新增知识点
addknowledge(type, row) {
this.knowType = type
if (type === 1) {
this.KnowTitle = '新增知识点'
this.AddKnowledgDialog = true
} else {
this.KnowTitle = '编辑知识点'
this.AddKnowledgDialog = true
this.addForm.title = row.title
this.addForm.content = row.content
this.knowId = row.id
this.addForm.fileId = row.file
let fileList = row.fileList
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
let obj = {name: '', response: {}}
obj.name = fileList[i].oldFileName
obj.response.data = fileList[i]
this.defaultFileList.push(obj)
}
}
}
},
// 删除知识点
deleteknowledge(type, row) {
// type = 2为批量删除 1为单条删除
var ids = ''
if (type === 2) {
if (this.knowIdList.length === 0) {
this.$message.warning('请选择要删除的数据')
return
}
ids = this.knowIdList
} else {
ids = row.id
}
let title = ''
if (type === 2) {
title = '确定删除选中数据?'
} else {
title = '确定删除此数据?'
}
this.$confirm(title, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.put('lawss/sarKnowledgeShare/deleteKnowShare', {ids: ids}, {
_this: this
}, res => {
if (res.ok) {
this.getKnowList()
this.$message({
type: 'success',
message: '删除成功!'
})
} else {
this.$message({
type: 'error',
message: '删除失败'
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
// 代替标准编号
showReplaceStandInfo(item) {
this.replaceStandInfoEO.standNumber = item
// this.replaceStandInfoEO.standType = this.sarStandardsInfoEO.standType
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', this.replaceStandInfoEO, {
_this: this
}, res => {
if (res.data != null) {
let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id: res.data.id,
pageType: this.$route.params.pageType
}
})
window.open(routeUrl.href, '_blank')
} else {
this.$message.error('标准号已不存在!')
}
}, e => {
})
},
clickButtonToUpload(current) {
this.currentFileList = current
this.currentFile = JSON.parse(JSON.stringify(current).replace('List', ''))
// this.importModalshowflagtemp = true
this.importModalshowflag = true
// this.$refs.importFileAboutStand.clearFiles()
this.defaultFileList = []
if (this.standItemEO[this.currentFile] === 'null' || this.standItemEO[this.currentFile] == null) {
this.standItemEO[this.currentFile] = ''
}
let fileList
if (this.standItemEO[this.currentFile] != null && this.standItemEO[this.currentFile] !== '') {
let paramefile = this.standItemEO[this.currentFile]
if (paramefile.charAt(paramefile.length - 1) === ',') {
paramefile = paramefile.substring(0, paramefile.length - 1)
}
this.$http.get('att/attFile/getMultiFileInfos', {
fileIds: paramefile
}, {
_this: this
}, res => {
fileList = res.data
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
let obj = {name: '', response: {}}
obj.name = fileList[i].oldFileName
obj.response.data = fileList[i]
this.defaultFileList.push(obj)
}
}
}, e => {
})
}
},
// 新增、编辑上传文件之前的钩子
beforeUpload(file) {
var filename = file.name
var index1 = filename.lastIndexOf('.')
var index2 = filename.length
var fileSuffix = filename.substring(index1, index2)
// const fileSuffix = file.name.split('.')[1] // 后缀名
// 判断上传文件格式
// if (fileSuffix === 'pdf' || fileSuffix === 'PDF' || fileSuffix === 'doc' || fileSuffix === 'docx' || fileSuffix === 'ppt' || fileSuffix === 'pptx') {
if (fileSuffix === '.xlsx') {
return true
} else {
// this.$message.error('文件' + file.name + '格式不正确,请上传pdf、PDF、doc、docx、ppt、pptx文件')
this.$message.error('文件' + file.name + '格式不正确,请上传xlsx文件')
return false
}
// 判断文件上传大小
if (file.size / 1024 / 1024 <= 200) {// eslint-disable-line
return true
} else {
this.$message.error('文件' + file.name + '大小不超过200M')
return false
}
return true
},
// 导入标准数据成功后执行
importFileSuccess(res, file, fileList) {
if (res.ok) {
// 使用字条款是否展示模态框判断导入的文件是标准,还是条款modalStandItemflag
// this.selectSarStandItems(this.standItemSearch.standId)
// this.showUploadlist = true
this.selectSarStandItems()
this.importModalshowflag = false
this.$message({
message: res.message,
type: 'success'
})
} else {
this.importFailed = true
this.importForm.content = res.message
this.showUploadlist = false
}
},
removeOneFile(file, fileList) {
// this.sarStandardsInfoEO[this.currentFileList] = this.removeAaary(this.sarStandardsInfoEO[this.currentFileList], file.response.data)
let ids = this.sarStandardsInfoEO[this.currentFile].split(',')
if (file.response) {
let fileIds = file.response.data.id
let newIdList = this.removeAaary(ids, fileIds)
let newStr = ''
if (newIdList != null && newIdList.length > 0) {
for (let i = 0; i < newIdList.length; i++) {
if (newIdList[i] !== '') {
newStr += newIdList[i] + ','
}
}
this.sarStandardsInfoEO[this.currentFile] = newStr
} else {
this.sarStandardsInfoEO[this.currentFile] = ''
}
}
},
// 导入文件大小超出范围
handleSizeError(file) {
this.$message.error('文件' + file.name + '大小不超过200M')
},
// 导入标准文件格式错误执行
handleFormatError(file) {
this.$message.error('文件' + file.name + '格式不正确,请上传以.xlsx结尾的excel文件')
},
// 子条款部门名称改变后
itemOrgNameChange() {
if (this.standItemEO.orgName === '') {
this.standItemEO.responsibleUnit = ''
}
this.getOrgTreeSource()
},
treeDblClickEngin(treeId, treeNode) {
this.standItemEO.dutyEngineer = treeNode.id
this.standItemEO.dutyEngineerShow = treeNode.name
$('#enginBtnS').click()
},
treeDblClickFO(treeId, treeNode) {
this.standItemEO.fo = treeNode.id
this.standItemEO.foShow = treeNode.name
$('#foBtnS').click()
},
// 标准条款新增
saveOrUpdateStandItem() {
this.$refs['sarStandardsItemForm'].validate((valid) => {
if (valid) {
let nowstandItem = JSON.parse(JSON.stringify(this.standItemEO))
nowstandItem.applyArctic = nowstandItem.applyArctic.join(',')
nowstandItem.standId = this.standItemSearch.standId
nowstandItem.fileType = this.fileType
// 新增
if (this.itemAddOrUPdateFlag === 1) {
this.$http.postData('lawss/sarStandItems/addSarStandItemsList', nowstandItem, {
_this: this,
loading: 'isSubmit'
}, res => {
this.selectSarStandItems(this.standItemSearch.standId)
this.resetForm()
}, e => {
})
} else {
// 修改
this.$http.postData('lawss/sarStandItems/updateStandItem', nowstandItem, {
_this: this,
loading: 'isSubmit'
}, res => {
this.selectSarStandItems(this.standItemSearch.standId)
this.standItemEO.responsibleUnit = ''
this.selectedItemList = []
this.resetForm()
}, e => {
})
}
} else {
this.$message.error('请检查表单是否填写正确!')
}
})
},
// 表单清空
resetForm() {
this.$nextTick(() => {
// this.$refs['sarStandardsItemForm'].resetFields()
this.$refs['sarStandardsItemForm'].clearValidate()
})
this.modalItemaddShowflag = false
},
drawerCheckZRBM(data) {
let idList = ''
let nameList = ''
data.forEach(item => {
// if (item.hasChild === '0' && item.children === null) {
if (nameList.length > 0) {
nameList += ','
idList += ','
}
idList += item.id
nameList += item.name
// }
})
if (this.drawerTitle === '责任部门') {
this.sarStandardsInfoEO.ZRBMId = idList;
this.sarStandardsInfoEO['ZRBM'] = nameList;
} else if (this.drawerTitle === '查询责任部门') {
this.advanceSearchMapping['ZRBM'] = nameList
}
},
choiceZRRS(type, title, id) {
this.nodeList2 = []
if (id) {
let ids = id.split(',')
let idList = []
ids.forEach(item => {
let a, b
a = item.substring(item.indexOf('(') + 1)
b = a.substring(0, a.lastIndexOf(')'))
idList.push(b)
})
idList = idList.join(',')
this.nodeList2.push(idList)
}
this.userType = type
this.drawerTitle = title
this.modalShowRoleFlag = true
},
checkedRole2(data) {
let idList = ''
let nameList = ''
data.forEach(item => {
if (nameList.length > 0) {
nameList += ','
idList += ','
}
idList += item.id
nameList += item.name
})
if (this.drawerTitle === '查询责任工程师') {
this.resolveListForm.dutyEngineer = nameList
}
},
// select(selection, row) {
// // 清除 所有勾选项
// this.$refs.multipleTable.clearSelection()
// // 当表格数据都没有被勾选的时候 就返回
// // 主要用于将当前勾选的表格状态清除
// if (selection.length === 0) return
// this.$refs.multipleTable.toggleRowSelection(row, true)
// },
selectAllStand(alldata) {
this.selectedItemList = alldata
},
editResolveList() {
if (this.selectedItemList.length < 1) {
this.$message.warning('请选择一条数据')
} else if (this.selectedItemList.length === 1) {
this.resolveListForm = JSON.parse(JSON.stringify(this.selectedItemList[0]))
this.resolveListForm.termsConditions = this.resolveListForm.termsConditions ? this.resolveListForm.termsConditions.replace(/<.*?>/ig, ' ') : ''
// this.resolveListForm.readContent = this.readContent?this.readContent.replace(/<.*?>/ig, ' '):''
this.resolveListForm.xccssrq = this.resolveListForm.xccssrq ? this.resolveListForm.xccssrq.split(',') : ''
this.resolveListForm.zccssrq = this.resolveListForm.zccssrq ? this.resolveListForm.zccssrq.split(',') : ''
this.editResolveListShowflag = true
} else {
this.$message.warning('仅可选择一条数据')
}
},
saveEditInfo() {
if (typeof this.resolveListForm.xccssrq !== 'string') {
this.resolveListForm.xccssrq = this.resolveListForm.xccssrq.join(',')
}
if (typeof this.resolveListForm.zccssrq !== 'string') {
this.resolveListForm.zccssrq = this.resolveListForm.zccssrq.join(',')
}
if (typeof this.resolveListForm.applyArctic !== 'string') {
this.resolveListForm.applyArctic = this.resolveListForm.applyArctic.join(',')
}
this.$http.putData(
'SarStandItems/sar-stand-items/updateSarItemAndInterpretation',
this.resolveListForm,
{
_this: this,
},
(res) => {
if (res.ok) {
this.$message.success('修改成功')
this.resetEditResolveListForm()
this.showItemsModel()
}
}
)
},
resetEditResolveListForm() {
this.resolveListForm.applyArctic = ''
this.resolveListForm.dutyEngineer = ''
this.editResolveListShowflag = false
},
// 分页点击后方法
pageChange(page) {
this.standItemSearch.page = page
this.selectSarStandItems()
},
// 分页每页显示数改变后方法
pageSizeChange(pageSize) {
// this.standItemSearch.pageSize = this.$store.getters.userInfo.configContent
this.standItemSearch.pageSize = pageSize;
this.selectSarStandItems()
// 此处需要调用接口,修改个人配置
},
selectStandMessage() {
return new Promise((resolve, reject) => {
this.$http.get('sarStandardsInfo/sar-standards-info/getStandInfoById', {id: this.sarStandardsInfoEO.id}, {
_this: this
}, res => {
this.sarStandardsInfoEO = res.data || {}
this.itemExistList = new Set(this.sarStandardsInfoEO.attrInfoMap.itemExistList)
if (this.sarStandardsInfoEO.issueTime != null && this.sarStandardsInfoEO.issueTime !== '') {
this.sarStandardsInfoEO.issueTime = this.sarStandardsInfoEO.issueTime.split(' ')[0]
}
if (this.sarStandardsInfoEO.putTime != null && this.sarStandardsInfoEO.putTime !== '') {
this.sarStandardsInfoEO.putTime = this.sarStandardsInfoEO.putTime.split(' ')[0]
}
// 代替标准号
if (this.sarStandardsInfoEO.replaceStandNum) {
this.sarStandardsInfoEO.replaceStandNum = this.sarStandardsInfoEO.replaceStandNum.replace(/<br \/>/g, '\r\n')
this.sarStandardsInfoEO.replaceStandNum = this.sarStandardsInfoEO.replaceStandNum.replace(/<br \/>/g, '\n')
}
if (this.sarStandardsInfoEO.replaceStandNum != null && this.sarStandardsInfoEO.replaceStandNum !== '') {
this.replaceNumList = this.sarStandardsInfoEO.replaceStandNum.split(',')
}
// // eslint-disable-next-line no-mixed-operators
Object.keys((this.sarStandardsInfoEO && this.sarStandardsInfoEO.attrInfoMap) || {}).forEach((key) => {
if (this.sarStandardsInfoEO.attrInfoMap[key]) {
this.sarStandardsInfoEO[key] = this.sarStandardsInfoEO.attrInfoMap[key]
}
})
this.addPersonCookie()
resolve(res.data)
}, e => {
reject(e)
})
})
},
// 新增浏览记录
addPersonCookie() {
this.personCookieEO.cookieType = this.$route.params.pageType
if (this.sarStandardsInfoEO.standYear != null && this.sarStandardsInfoEO.standYear !== '') {
this.personCookieEO.resTitle = this.sarStandardsInfoEO.standName + '(编号:' + this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear + ')'
} else {
this.personCookieEO.resTitle = this.sarStandardsInfoEO.standName + '(编号:' + this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + ')'
}
this.personCookieEO.resId = this.$route.params.id
this.$http.postData('person/personCookies/create', this.personCookieEO, {
_this: this
}, res => {
}, e => {
})
},
// 获取组织机构数据
getOrgTreeSource() {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
this.searchInlandNodes = treeNode
}
}, e => {
})
},
getUserTreeSource() {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
treeNode[index] = treeItem
})
this.zNodesSItemEngin = treeNode
}
}, e => {
})
},
// 查询相近标准
selectCloseStand(id) {
let obj = {}
obj.id = id
let url = ''
url = 'lawss/sarStandardsInfo/selectCloseStand'
this.$http.get(url, obj, {
_this: this
}, res => {
if (res.ok) {
this.recommendList = res.data
}
}, e => {
})
},
getBusStandFileByAttId(attId) {
return new Promise((resolve, reject) => {
getBusStandFileByAttId({
attId
}).then(res => {
if (res.ok) {
resolve(res.data)
} else {
reject()
}
}).catch(e => {
reject(e)
})
})
},
openFileInPdf(attId, oldFileName) {
if (this.$route.params.pageType === 'INLAND_STAND' && this.$hasPermission('2d6ab9d465ab73d415194e1ca4313793')) {
this.$preview(attId)
} else if (this.$route.params.pageType === 'FOREIGN_STAND' && this.$hasPermission('ee684b4a9975f5d8a6dfe898c0332f98')) {
this.$preview(attId)
} else {
this.$message.error('没有在线预览文档权限!')
}
/*
// 判断是否是图片格式,图片格式不预览,直接下载
let index1 = oldFileName.lastIndexOf('.')
let index2 = oldFileName.length
let fileSuffix = oldFileName.substring(index1, index2)
//把后缀转大写
if (fileSuffix !== undefined && fileSuffix !== null) {
fileSuffix = fileSuffix.toUpperCase()
}
// 判断上传文件格式
if (fileSuffix === '.PNG' || fileSuffix === '.JPG' || fileSuffix === '.JPEG') {
this.downloadFile(attId)
return true
}
// 缺少文件
if (this.$route.params.pageType === 'INLAND_STAND') {
if (this.$hasPermission('2d6ab9d465ab73d415194e1ca4313793')) {
if (fileSuffix === '.PDG' || fileSuffix === '.pdg') {
this.getBusStandFileByAttId(attId)
.then(res => {
if (res) {
const editFileInfo = res
if (editFileInfo.fileSuffix === 'pdg' || editFileInfo.fileSuffix === 'PDG') {
window.open('book://ssreader/e0?url=' + editFileInfo.downLoadUrl)
} else {
const nowTime = new Date().getTime()
window.open(onlyOfficeUrl + '/onlyOffice?oldFileName=' + editFileInfo.oldFileName + '&fileType=' + editFileInfo.fileSuffix + '&attId=' + editFileInfo.id + '&fileUrl=' + editFileInfo.downLoadUrl + '&key=' + editFileInfo.id + nowTime + '&filePath=' + editFileInfo.filePath + '&fileName=' + editFileInfo.fileName)
}
}
}).catch(e => {
console.log(e)
this.$message.warning('文件不存在,预览失败')
})
} else {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
}
} else {
this.$message.error('没有在线预览文档权限!')
}
} else {
// 国外在线预览权限
if (this.$hasPermission('ee684b4a9975f5d8a6dfe898c0332f98')) {
// if (this.$hasPermission('02fd6eff0537c283dd071683de10689f')) {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
} else {
this.$message.error('没有在线预览文档权限!')
}
}
*/
if (this.$route.params.pageType === 'INLAND_STAND') {
let standNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear || this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber
this.$http.get('sarStandardsInfo/sar-standards-info/logInvalid', {
standNumber: standNumber,
standName: this.sarStandardsInfoEO.standName
}, {
_this: this
}, res => {
})
} else {
let standNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear || this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber
this.$http.get('sarStandardsInfo/sar-standards-info/logForeign', {
standNumber: standNumber,
standName: this.sarStandardsInfoEO.standEnName
}, {
_this: this
}, res => {
})
}
},
showItemsModel(attField) {
if (attField) {
this.fileType = attField
}
this.getOrgTreeSource()
this.selectedItemList = []
this.selectSarStandItems()
this.modalStandItemflag = true
this.$nextTick(() => {
this.tableHeight = $('.content').height()
window.onresize = function () {
this.tableHeight = $('.content').height()
}.bind(this)
})
},
sort(column) {
this.order = column.order;
this.orderBy = column.prop;
this.selectSarStandItems();
},
// 分解单----查看标准条款相关
selectSarStandItems(id, flag) {
this.tableLoading = true
this.standItemSearch.standId = this.sarStandardsInfoEO.id
this.standItemSearch.fileType = this.fileType
console.log("---------------------------------------------")
this.$http.get('SarStandItems/sar-stand-items/querySarItemAndInterpretation', {
...this.standItemSearch,
pageSize: this.pageSize7, page: this.page7, order: this.order, orderBy: this.orderBy
}, {}, res => {
this.selectedItemList = []
if (res.data) {
this.standItemList = res.data.list;
this.total7 = res.data.count // 分页需要
this.tableLoading = false
}
}, e => {
})
},
downloadFile(attId) {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSarNew?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
if (this.$route.params.pageType === 'INLAND_STAND') {
let standNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear || this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber
this.$http.get('sarStandardsInfo/sar-standards-info/logInvalidDownload1', {
standNumber: standNumber,
standName: this.sarStandardsInfoEO.standName
}, {
_this: this
}, res => {
})
} else {
let standNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear || this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber
this.$http.get('sarStandardsInfo/sar-standards-info/logForeignDownload1', {
standNumber: standNumber,
standName: this.sarStandardsInfoEO.standEnName
}, {
_this: this
}, res => {
})
}
},
downloadFileByWater(attId, fileSuffix) {
if (fileSuffix !== undefined && fileSuffix !== null) {
fileSuffix = fileSuffix.toUpperCase()
}
if (fileSuffix === 'PDF' || fileSuffix === 'DOC' || fileSuffix === 'DOCX') {
if (attId != null && attId !== '') {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
window.location.href = '/api/att/attFile/downloadFileForSarWaterMarkNew?fileId=' + res.data.attId + '&userId=' + this.$store.getters.userInfo.userId
} else {
this.$message.error('当前暂时无法下载,请稍后重试')
}
}, e => {
this.$message.error('当前暂时无法下载,请稍后重试')
})
} else {
this.$message.error('请选择要下载的文件')
}
} else {
this.$message.error('水印下载仅支持PDF、DOC、DOCX格式文件')
}
if (this.$route.params.pageType === 'INLAND_STAND') {
let standNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear || this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber
this.$http.get('sarStandardsInfo/sar-standards-info/logInvalidDownload2', {
standNumber: standNumber,
standName: this.sarStandardsInfoEO.standName
}, {
_this: this
}, res => {
})
} else {
let standNumber = this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear || this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber
this.$http.get('sarStandardsInfo/sar-standards-info/logForeignDownload2', {
standNumber: standNumber,
standName: this.sarStandardsInfoEO.standEnName
}, {
_this: this
}, res => {
})
}
},
/**
* @Description: 跳转流程
*/
processCenterClick(item) {
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
prcNum: item
}
})
window.open(routeUrl.href, '_blank')
},
searchSarStandItems() {
this.page7 = 1
this.selectSarStandItems()
},
// 清空搜索框
clearAllSearch() {
// 标准条款搜索
this.page7 = 1
this.standItemSearch.responsibleUnit = ''
this.standItemSearch.orgName = ''
this.standItemSearch.parts = ''
this.standItemSearch.nameOrRequest = ''
this.standItemSearch.fileType = ''
this.standItemSearch.itemsName = ''
this.standItemSearch.ZCCSSRQ = ''
this.standItemSearch.XCXSSRQ = ''
this.selectSarStandItems()
},
inputChange() {
this.standItemSearch.responsibleUnit = ''
this.getOrgTreeSource()
},
searchInlandNodesClick(treeId, treeNode) {
this.standItemSearch.responsibleUnit = treeNode.id
this.standItemSearch.orgName = treeNode.name
$('#searchInlandDeptBtn').click()
},
// 点击条款表格上面的操作按钮新增
addItemModal() {
this.editAddType = 1
this.getOrgTreeSource()
this.itemModalTitle = '新增标准法规条款'
this.modalItemaddShowflag = true
this.standItemEO = {...this.standItemEODefault}
this.$nextTick(() => {
// this.$refs['sarStandardsItemForm'].resetFields()
this.$refs['sarStandardsItemForm'].clearValidate()
})
this.itemAddOrUPdateFlag = 1
this.itemFormdisableflag = false
},
// 模板下载
uploadImportModal(flag) {
window.open('/api/att/attFile/uploadModalFile?fileName=分解单导入模板.xlsx')
},
// 点击导入标准
addImportModal(flag) {
this.importModalshowflag = true
this.importExcelUrl = '/api/lawss/sarStandItems/importSarStandItemsList?standId=' + this.standItemSearch.standId + '&fileType=' + this.fileType
this.$nextTick(() => {
this.$refs.importFileAboutStand.clearFiles()
})
},
exportStandardItem() {
this.$confirm('您是否要导出数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
roundButton: false,
type: 'warning'
}).then(() => {
if (this.selectedItemList != null && this.selectedItemList.length > 0) {
const ids = this.selectedItemList.reduce((init,item,index,arr)=>{
init.push(item.id)
return init
},[])
window.open('/api/lawss/sarFileSplitItems/exportStandardItemExcel?idList=' + ids.join(','))
this.$message.success('导出成功')
} else if (this.standItemList.length > 0) {
window.open('/api/lawss/sarFileSplitItems/exportStandardItemExcel?standId=' + this.$route.params.id + '&fileType=' + this.fileType)
} else {
this.$message.warning('暂无可导出的数据')
}
}).catch(() => {
})
},
// 标准条款删除
deleteStandItem(item, flag) {
// flag==1 删除单条 flag==2 批量删除
let ids = []
if (flag === 1) {
// item的id
ids.push(item.id)
// ids.push(this.standItemEO.id)
this.$confirm('确认删除该条数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
confirmButtonClass: 'common-button-primary',
roundButton: false
}).then(() => {
this.$http.post('lawss/sarStandItems/deleteStandItem', {
id: ids,
standId: this.standItemSearch.standId
}, {
_this: this
}, res => {
if (res.ok) {
this.selectSarStandItems(this.standItemSearch.standId, 1)
this.selectedItemList = []
}
}, e => {
})
}).catch(() => {
// 取消删除,清空选择
// this.$refs.selections.clearSelection()
})
} else {
if (this.selectedItemList.length === 0) {
this.$message.error('请先选择要删除的数据!')
} else {
ids = this.selectedItemList
this.$confirm('确认删除选中数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http.post('lawss/sarStandItems/deleteStandItem', {
id: ids,
standId: this.standItemSearch.standId
}, {
_this: this
}, res => {
this.selectSarStandItems(this.standItemSearch.standId, 1)
this.selectedItemList = []
}, e => {
})
}).catch(() => {
// 取消删除,清空选择
// this.$refs.selections.clearSelection()
})
}
}
},
// 分解单-查看
handlePreview(item) {
this.standShowItemEO = item
this.showItemInfoModal = true
let fileList = []
item.defaultFileList = []
if (this.standShowItemEO.tackTime != null && this.standShowItemEO.tackTime !== '') {
this.standShowItemEO.tackTime = this.standShowItemEO.tackTime.split(' ')[0]
}
this.standShowItemEO.responsibleUnit = this.standShowItemEO.responsibleUnitShow
// 请求文件信息
if (item.relevanceFile != null && item.relevanceFile !== '') {
let paramefile = item.relevanceFile
if (paramefile.charAt(paramefile.length - 1) === ',') {
paramefile = paramefile.substring(0, paramefile.length - 1)
}
this.$http.get('att/attFile/getMultiFileInfos', {
fileIds: paramefile
}, {
_this: this
}, res => {
fileList = res.data
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
let obj = {name: '', response: {}}
obj.name = fileList[i].oldFileName
obj.response.data = fileList[i]
item.defaultFileList.push(obj)
}
}
this.standShowItemEO = JSON.parse(JSON.stringify(item))
if (this.standShowItemEO.tackTime != null && this.standShowItemEO.tackTime !== '') {
this.standShowItemEO.tackTime = this.standShowItemEO.tackTime.split(' ')[0]
}
// let selectNode = this.getTreeNameByid(this.standShowItemEO.responsibleUnit)
this.standShowItemEO.orgName = this.standShowItemEO.responsibleUnitShow
}, e => {
})
}
},
// 分解单-编辑
selectStandardPro(item) {
this.editAddType = 2
this.itemModalTitle = '编辑标准法规条款'
item.orgName = ''
this.standItemEO = JSON.parse(JSON.stringify(item))
this.standItemEO.standId = this.standItemSearch.standId
this.standItemEO.quoteStand = item.quoteStand
this.standItemEO.applyArctic = this.standItemEO.applyArctic ? this.standItemEO.applyArctic.split(',') : []
this.itemAddOrUPdateFlag = 2
this.itemFormdisableflag = false
if (this.standItemEO.tackTime != null && this.standItemEO.tackTime !== '') {
this.standItemEO.tackTime = new Date(this.standItemEO.tackTime)
}
this.standItemEO.orgName = this.standItemEO.responsibleUnitShow
this.standItemEO.ZRBM = this.standItemEO.responsibleUnit
this.standItemEO.FO = this.standItemEO.fo
this.updateResidToAttid('relevanceFile')
this.modalItemaddShowflag = true
this.$nextTick(() => {
this.$refs['sarStandardsItemForm'].clearValidate()
})
},
// 修改过程中,将resId 修改成 attid
updateResidToAttid(filetype) {
if (this.sarStandardsInfoEO[filetype] !== null && this.sarStandardsInfoEO[filetype] !== '') {
this.$http.get('lawss/attFile/getMultiFileInfosByResid', {
fileIds: this.sarStandardsInfoEO[filetype], fileType: 'stand'
}, {
_this: this
}, res => {
this.sarStandardsInfoEO[filetype] = res.data
}, e => {
})
}
},
/**
* 展示位置
*/
queryDisplayLocation() {
return new Promise((resolve, reject) => {
this.$http.get('lawssBase/utArea/getAreaList', {
sarType: 'INLAND_STAND'
}, {
_this: this
}, res => {
// this.showRegionOptions = res.data || []
resolve(res.data || [])
}, e => {
reject(e)
})
})
},
/**
* 获取新增弹框的表单
*/
getAddFormFieldList(isEdit) {
return new Promise((resolve, reject) => {
this.$http.get('lawss/sarStandAttrDetails/list', {}, {_this: this},
res => {
if (res.ok) {
// const { data: { STAND: data } } = res
const {data = {}} = res
this.formFieldListData = data[this.$route.params.pageType]
// this.resolveFormFieldList()
resolve(data[this.$route.params.pageType])
} else {
reject(res)
}
}, e => {
reject(e)
})
})
},
// 点击更多按钮事件
moreClick() {
this.dynamicFormField.map(item => {
item.isShowImp = '0'
item.child.map(child => {
child.isShowImp = '0'
})
})
this.isMoreAwayBtn = true
},
// 点击收起按钮事件
putAwayClick() {
this.dynamicFormField = JSON.parse(sessionStorage.getItem('displayLocation'))
this.isMoreAwayBtn = false
},
// 鼠标滚轮事件
handleScroll(e) {
// 该语句可以用来判断滚轮是向上滑动还是向下
const direction = e.deltaY > 0 ? 'down' : 'up'
if (direction === 'down') {
this.moreClick()
}
},
// ...
handleCommand(command) {
switch (command[1]) {
case '查看':
this.handlePreview(command[0])
break
case '编辑':
this.selectStandardPro(command[0], 'edit')
break
case '删除':
this.deleteStandItem(command[0], 1)
break
}
},
/**
* 点击 加收藏 按钮事件
* @param collectId 有值:取消收藏 无值:加收藏
*/
collectClick(collectId) {
this.isSubmit = true
if (collectId) {
// 取消收藏
this.$http.put('person/personCollect/updateByUserId', {
id: collectId,
loading: ''
}, {
_this: this
}, res => {
this.isSubmit = false
this.sarStandardsInfoEO.collectId = ''
}, e => {
this.isSubmit = false
})
} else {
// 加收藏
let collectTitle
if (this.sarStandardsInfoEO.standYear != null && this.sarStandardsInfoEO.standYear !== '') {
collectTitle = this.sarStandardsInfoEO.standName + ' ( 编号:' + this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear + ' )'
} else {
collectTitle = this.sarStandardsInfoEO.standName + ' ( 编号:' + this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standNumber + ' )'
}
let personCollect = {
collectResId: this.sarStandardsInfoEO.id,
collectTitle: collectTitle,
collectType: this.$route.params.pageType, // 国内收藏type
userId: this.$store.getters.userInfo.userId
}
this.$http.postData('person/personCollect', personCollect, {
_this: this
}, res => {
this.isSubmit = false
this.sarStandardsInfoEO.collectId = res.data.id
}, e => {
this.isSubmit = false
})
}
},
relateEvent1(list) {
this.relateDialog1 = true
this.relateNowList1 = list
},
// 更新LOG
relateEvent() {
this.$http.get('lawss/sarUpdLog/getLogList', {
sarId: this.$route.params.id,
sarType: this.$route.params.pageType
}, {
_this: this
}, res => {
if (res.data.length > 0) {
this.relateDialog = true
this.relateList = res.data
var i
for (i = 0; i < this.relateList.length; i++) {
let obj = {creationUserName: '', creationTime: '', content: ''}
obj.creationUserName = this.relateList[i].creationUserName
obj.creationTime = this.relateList[i].creationTime
obj.content = this.relateList[i].content
this.relateNowList.push(obj)
}
} else {
this.$message({
message: '暂无数据',
type: 'warning'
})
}
}, e => {
})
},
relateDialogClose() {
this.relateDialog = false
this.relateNowList = []
},
relateDialogClose1() {
this.relateDialog1 = false
this.relateNowList = []
},
halfClass(data, nextData, index) {
const halfType = ['INPUT_STR', 'DATE_PICKER', 'SEL_OPTION', 'INPUT_NUM']
let flag = false
if (halfType.includes(data.attrType)) { // 是 50% 显示的组件时
// 1. 判断下一个节点是否为50%显示的组件
if (nextData && halfType.includes(nextData.attrType)) { //
flag = true
} else if (index % 2 === 0) { // 下一个节点不是50%显示的组件 判断是否为奇数节点
flag = false
} else { // 下个组件不是50%显示的组件 并且刚好时偶数节点
flag = true
}
}
return flag ? '' : 'clear'
},
handleToggleShowAll(item) {
if (!item.showAll) {
item.showAll = true
} else {
item.showAll = false
}
},
// 根据企标覆盖关系value值获取名称
busStandCoverName(value) {
let busStandCoverName = ''
this.BZFGGXOUIUJ.map(item => {
if (item.value === value) {
busStandCoverName = item.label
}
})
return busStandCoverName
},
dateFormat(str) {
return dateFormat(str)
},
openRelatedTermsDrawer() {
// 打开关联条款弹框
this.relatedTermsDrawerVisible = true
this.btnLoading = false
},
handleRelatedTermsDrawerCancel() {
// this.relatedTermsDrawerVisible = false
this.$refs['relatedTermsSelect'].handleCancel()
},
//关联成功的提示
handleRelatedTermsDrawerSubmit() {
this.btnLoading = true
if (this.handleList.length) {
this.$refs['relatedTermsSelect'].handleSubmit(() => {
this.selectSarStandItems()
this.btnLoading = false
this.$message({
message: '关联成功',
type: 'success'
});
})
} else {
this.$message.warning('请至少勾选一条条款进行关联')
this.btnLoading = false
}
},
closeRelatedTermsDrawer() {
this.$refs['relatedTermsDrawer'].closeDrawer()
},
itemsTextDialog(itemsNum, text) {
this.itemsTextDialogs = true
this.itemsText = '<p>' + itemsNum + '</p>' + text.replace(/''/g, '\'')
}
},
computed: {
titleShow() {
return (this.sarStandardsInfoEO.standSortShow || '') + this.sarStandardsInfoEO.standNumber + '-' + this.sarStandardsInfoEO.standYear + '《' + this.sarStandardsInfoEO.standName + '》' + '标准详情'
},
titleHidden() {
return (this.sarStandardsInfoEO.standSortShow || '') + this.sarStandardsInfoEO.standNumber + '《' + this.sarStandardsInfoEO.standName + '》' + '标准详情'
},
visibleBtn() {
return this.$route.name === 'DomesticStandardDetails'
},
sarType() {
return this.$route.params.pageType
},
standNum() {
const item = this.sarStandardsInfoEO
if (item.standYear) {
return `${item.standSort} ${item.standNumber}-${item.standYear}`
} else {
return `${item.standSort} ${item.standNumber}`
}
},
standId() {
const item = this.sarStandardsInfoEO
return item.id
}
},
/*created() {
dicTypeData().then(res => {
// 能源类型数据字典
this.CycxOptions = res.data.CLLX
})
},*/
async mounted() {
let external = localStorage.getItem("external");
if (external !== undefined && external !== null) {
this.externalStatus = external
}
this.sarStandardsInfoEO.id = this.$route.params.id
// await this.selectStandMessage()
this.standItemEO.standId = this.$route.params.id
// 从数据库中查询各下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '', {
_this: this
}, res => {
this.CycxOptions = res.data.CLLX
this.applyArcticOptions.options = res.data.ENERGYTYPES // 根据需求文档,产品类别对应标准属性中的“适用车辆类型”
this.emergyKindOptions = res.data.ENERGYTYPES
this.requestOptions = res.data.REQUESTTYPE
this.BZFGGXOUIUJ = res.data.BZFGGXOUIUJ // 企标覆盖关系
this.setMap(res.data.WBZTCLASS) // 标准状态
this.setMap(res.data.SARPROPERTY) // 标准性质
}, e => {
})
Promise.all([this.queryDisplayLocation(), this.selectStandMessage(), this.getAddFormFieldList()]).then((values) => {
const [displayLocation, standEO, formFieldList] = values
const dynamicFormField = standEO ? standEO.attrInfoMap : {}
formFieldList.forEach((field) => {
// 相关流程权限
// if (field.attrField === 'XGLC' && !this.$_has('6A52PZCAX8BAUUJ2TSQ4')) {
// return
// }
displayLocation.forEach((location) => {
location.isShowImp = '0'
if (dynamicFormField && (this.externalStatus === 'external' ? field.attrField !== 'XGLC' : true)) {
let value = dynamicFormField[field.attrField]
if (field.attrField === 'SVPPS') {
let tips = dynamicFormField.SVPPSTips
field['tips'] = tips
}
if (value && typeof value === 'number') {
value = this.$dateFormat(value, 'yyyy-MM-dd')
}
field['value'] = value
if (field.showRegionId === location.value) {
if (!location.child) {
location['child'] = []
}
location['child'].push(field)
// if (field.isShowImp === '0') {
// location.isShowImp = '0'
// }
}
}
if (location.label === '过程稿件') {
location.isShowImp = '0'
}
})
})
displayLocation.forEach(location => {
// 动态属性字段-FBGBJBD 单独添加至基础信息
const list = displayLocation.filter(item => item.label === '过程稿件');
if (location.label === '基础信息' && list && list.length > 0) {
//发布稿必读
if (!list[0].child) {
location['child1'] = []
} else {
const childList = list[0].child.filter(item => item.attrField === 'FBGBJBD');
location['child1'] = childList
}
//增补件必读
if (!list[0].child) {
location['child3'] = []
} else {
const childList = list[0].child.filter(item => item.attrField === 'ZBJBD');
location['child3'] = childList
}
//勘误件
if (!list[0].child) {
location['child4'] = []
} else {
const childList = list[0].child.filter(item => item.attrField === 'KWJ');
location['child4'] = childList
}
//修订本
if (!list[0].child) {
location['child5'] = []
} else {
const childList = list[0].child.filter(item => item.attrField === 'XDB');
location['child5'] = childList
}
//修订本
if (!list[0].child) {
location['child6'] = []
} else {
const childList = list[0].child.filter(item => item.attrField === 'FBGYWBD');
location['child6'] = childList
}
}
// 动态属性字段-SYRZ 单独添加至基础信息
const list2 = displayLocation.filter(item => item.label === '适用范围');
if (location.label === '基础信息' && list2 && list2.length > 0) {
if (!list2[0].child) {
location['child2'] = []
} else {
const childList = list2[0].child.filter(item => item.attrField === 'SYRZ');
if (childList.length) {
childList.forEach(item => {
if (item.value === "[]") {
item.value = ''
}
})
}
location['child2'] = childList
}
}
for (let i = 0; i < displayLocation.length; i++) {
// sss
if (displayLocation[i].label !== '基础信息' && displayLocation[i].label !== '过程稿件') {
const childList = displayLocation[i].child.filter(item => item.value !== null && item.value !== '');
if (childList.length === 0) {
displayLocation.splice(i, 1)
}
}
}
const child = location.child || []
const one = []
const half = []
child.map(field => {
if (['DATE_PICKER', 'SEL_OPTION', 'INPUT_NUM'].includes(field.attrType)) {
half.push(field)
} else {
if (field.attrField && field.attrField !== 'FBGBJBD' && field.attrField !== 'SYRZ') {
one.push(field)
}
}
})
const fieldsIsTextAreaOrFile = child.filter(field => {
return field.attrType === 'TEXTAREA' || field.attrType === 'FILE'
})
const fieldOthers = child.filter(field => {
return field.attrType !== 'TEXTAREA' && field.attrType !== 'FILE'
})
location.child = [...fieldOthers, ...fieldsIsTextAreaOrFile]
location.one = one
location.half = half
location.showAll = false
})
this.$http.get('sarLawsAttrDetailedList/sar-laws-attr-detailed-list', {
id: this.$route.params.id
}, {
_this: this
}, res => {
displayLocation.map(item => {
if (item.value === '2URVBGR2Y4UG77KZ5YPL') {
for (let key in res.data) {
item.one.push({
attrName: key,
value: res.data[key].join(','),
isShowImp: '0',
id: key
})
}
}
})
this.dynamicFormField = displayLocation
console.log(this.dynamicFormField)
})
sessionStorage.setItem('displayLocation', JSON.stringify(displayLocation))
this.loading = false
})
/**
* 自定义鼠标滚轮事件
* chrome and ie
*/
window.addEventListener('mousewheel', this.handleScroll, false)
// firefox
window.addEventListener('DOMMouseScroll', this.handleScroll, false)
},
destroyed() {
window.removeEventListener('mousewheel', this.handleScroll, false)
window.removeEventListener('DOMMouseScroll', this.handleScroll, false)
sessionStorage.removeItem('displayLocation')
window.onresize = null
this.tableHeight = ''
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
@import '~@/assets/styles/style';
.files-title {
display: flex;
align-items: center;
a {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
width: calc(~'100% - 40px');
white-space: break-spaces;
}
}
.files-titles {
a {
overflow: hidden;
text-overflow: ellipsis;
max-width: 780px;
white-space: nowrap;
display: block;
}
}
/deep/ .el-icon-circle-close:before {
margin-left: 250px;
}
/deep/ .el-tag.el-tag--info {
margin-left: 30px;
}
/deep/ .el-radio {
margin-left: 30px;
}
/deep/ .label-input-form .add-form-item .el-form-item__content .el-input .el-input__inner {
width: 600px;
margin-left: 20px;
}
/deep/ .label-input-form .add-form-item .el-form-item__label {
width: 150px;
}
/deep/ .el-collapse-item__header {
border-bottom: none !important;
}
/deep/ .decomposition-btn {
position: absolute;
top: 6px;
right: 0;
padding: 0 10px;
height: 30px;
line-height: 30px;
font-size: 14px;
color: #07C160;
border: 1px solid #07C160;
background: rgba(1, 193, 96, 0.1);
/deep/ .icon-separate {
display: inline-block;
margin-right: 3px;
width: 16px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
background-image: url("~assets/images/shangqi/standardDetails/separate.png");
}
}
/deep/ .el-collapse {
border: none;
}
/deep/ .el-collapse-item__wrap {
border: none;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0px;
font-size: 16px;
color: #303133;
line-height: 1.769230769230769;
}
/deep/ .btn1 #question {
padding: 0 10px;
margin-left: 10px;
height: 30px;
line-height: 30px;
font-size: 14px;
color: #409EFF;;
border: 1px solid #409EFF;
background: rgba(64, 158, 255, 0.1);
.icon-separate {
display: inline-block;
margin-right: 3px;
width: 16px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
background-image: url("~assets/images/shangqi/standardDetails/separate.png");
}
}
.other-standard-details {
padding: 15px 30px 0;
width: 1200px;
margin: 0 auto;
height: 100%;
.itemsTextBox {
min-height: 300px;
max-height: 500px;
overflow: auto;
line-height: 20px;
/deep/ td {
border: 1px solid #606266;
text-align: center;
}
}
/deep/ .el-radio-group {
display: block;
margin-bottom: 10px;
}
/deep/ .icon-download {
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
background-image: url("~assets/images/shangqi/img/download.png");
}
/deep/ .icon-download2 {
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
background-image: url("~assets/images/shangqi/img/download2.png");
}
.action-bar {
border-top: 0px;
}
.fileCss {
margin-right: 10px;
cursor: pointer;
}
.fileCss:hover {
color: #0c91e5;
}
.myDialog1 {
/deep/ .el-dialog__body {
padding: 0px 20px 10px;
}
.myRadio {
min-height: 200px;
max-height: 400px;
overflow: auto;
}
}
.myDialog {
min-width: 700px;
.el-dialog {
min-width: 700px;
width: 70%;
}
/deep/ .el-dialog__body {
padding: 0px 20px 56px;
.basic-information-content {
color: #333333;
font-size: 16px;
/*font-weight: 400;*/
.standard-text {
height: 50px;
line-height: 50px;
border-bottom: 1px solid #E5E5E5;
}
& > p {
min-height: 55px;
line-height: 55px;
border-bottom: 1px solid #E5E5E5;
}
}
}
.knowContent {
height: 500px;
}
}
.details-header {
padding: 34px 0;
font-size: 20px;
font-weight: bold;
color: #555555;
text-align: center;
& > span {
width: 100%;
}
}
/deep/ .details-content {
/*padding: 0 67px;*/
.details-content-modular {
.modular-header {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 50px;
border-bottom: 1px solid #E5E5E5;
.modular-header-title {
font-size: 18px;
font-weight: bold;
color: #3B424C;
& > .icon-modular-title {
display: inline-block;
margin-left: -28px;
width: 18px;
height: 18px;
background-size: 100% 100%;
background-position: center center;
background-image: url("~assets/images/shangqi/standardDetails/modular-title.png");
position: relative;
top: 2px;;
}
& > span {
padding-left: 10px;
}
}
.modular-header-btn {
& > button {
height: 30px;
line-height: 30px;
font-size: 14px;
padding: 0 10px;
font-family: 'Microsoft Yahei', '\5FAE\8F6F\96C5\9ED1', Arial, sans-serif !important;
& > i {
display: inline-block;
margin-right: 3px;
width: 18px;
height: 18px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: text-bottom;
}
}
.collection-btn {
padding: 0;
border: none;
i {
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
}
/*background: rgba(244, 162, 39, 0.1);*/
.icon-collection {
background-image: url("~assets/images/shangqi/standardDetails/collection.png");
}
&:hover {
background: transparent;
}
}
.relation-btn {
color: #409EFF;
border: 1px solid #409EFF;
background: rgba(64, 158, 255, 0.1);
.icon-relation {
background-image: url("~assets/images/shangqi/standardDetails/relation.png");
}
}
}
}
.basic-information-content {
color: #333333;
font-size: 16px;
/*font-weight: 400;*/
.standard-text {
height: 50px;
line-height: 50px;
border-bottom: 1px solid #E5E5E5;
}
}
.modular-content {
.modular-item-more {
padding: 5px 0;
width: 100%;
float: left;
text-align: center;
line-height: 30px;
display: flex;
justify-content: center;
align-items: center;
.wrap {
cursor: pointer;
span {
color: #409EFF;
}
img {
height: 10px;
margin-left: 5px;
transition: all .2s linear;
&.is-show-all {
transform: rotate(180deg);
}
}
}
}
& > div:not(.modular-item-more) {
position: relative;
//英文名称变粗
border-bottom: 1px solid #E5E5E5;
min-height: 43px;
line-height: 43px;
.modular-content-p-name {
display: inline-block;
width: 213px;
height: 43px;
line-height: 43px;
font-size: 16px;
color: #333333;
vertical-align: top;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.modular-content-p-val {
line-height: 32px;
display: inline-block;
width: calc(~'100% - 225px');
//min-height: 50px;
//line-height: 50px;
//font-size: 16px;
//color: #999999;
word-break: break-all;
//overflow: hidden;
//white-space: nowrap;
//text-overflow: ellipsis;
}
.modular-content-p-flies {
line-height: 32px;
//position: relative;
display: inline-block;
width: calc(~'100% - 225px');
& > .files-title {
width: calc(~'100% - 10px');
//报批稿撑开
//min-height: 50px;
//line-height: 50px;
//font-size: 16px;
color: #409EFF;
& > a {
cursor: pointer;
}
& > i {
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download {
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2 {
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
.decomposition-btn {
position: absolute;
//报批稿撑开
//top: 10px;
right: 0;
margin-right: 10px;
padding: 0 10px;
height: 30px;
line-height: 30px;
font-size: 14px;
color: #07C160;
border: 1px solid #07C160;
background: rgba(1, 193, 96, 0.1);
.icon-separate {
display: inline-block;
margin-right: 3px;
width: 16px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
background-image: url("~assets/images/shangqi/standardDetails/separate.png");
}
}
}
}
}
}
.basic-information {
border-top: 2px dashed #D1D1D1;
.modular-header {
height: 60px;
border-bottom: none;
}
.basic-information-content {
& > p {
min-height: 43px;
line-height: 43px;
border-bottom: 1px solid #E5E5E5;
}
}
}
}
.more, .put-away {
position: fixed;
bottom: 0;
width: 1200px;
display: flex;
justify-content: center;
align-items: center;
//margin-bottom: 20px;
color: #409EFF;
font-size: 16px;
cursor: pointer;
background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, #fff 70%);
padding-bottom: 34px;
padding-top: 34px;
& > img {
margin-left: 5px;
width: 14px;
height: 14px;
}
}
.put-away {
& > img {
transform: rotate(180deg);
}
}
.not-footer-drawer {
.search-area {
margin-bottom: 0;
border-bottom: 5px solid #f6f6f6;
}
.content {
padding: 0 10px;
flex: auto;
//height: calc(~'100% - 105px - 56px');
}
.pagination {
position: static;
}
}
}
.half {
width: 50%;
float: left;
}
.hidden {
overflow: hidden;
}
.clearfix {
&:after {
clear: both;
}
&:after, &:before {
display: table;
content: "";
}
}
.details-container .el-divider {
height: 1px;
background-color: #d5d8da;
}
.span-line:hover {
text-decoration: underline;
}
.relateClass {
.el-dialog__body {
max-height: 460px;
overflow-y: auto;
}
}
.over {
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
::v-deep .el-drawer__header {
& > span:first-child {
outline: none !important;
}
}
::v-deep .el-drawer {
outline: none !important;
}
</style>