Files
foton-laws-system-front/src/pages/details/otherStandardDetails/index.vue
T

4338 lines
162 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.
<!--国内标准法规详情页-->
<template>
<div class="other-standard-details v-class" :class="{'hidden': !isMoreAwayBtn}">
<!--title 标题-->
<div class="details-header">
<span v-if="sarStandardsInfoEO.standYear === null">{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}} {{ sarStandardsInfoEO.standName }}</span>
<span v-else>{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}}-{{ sarStandardsInfoEO.standYear }} {{ sarStandardsInfoEO.standName }}</span>
</div>
<!--主体内容-->
<div class="details-content" style="position: relative">
<div class="details-content-modular basic-information">
</div>
<div
class="details-content-modular clearfix"
v-for="(item, index) in dynamicFormField"
:key="index"
v-if="item.isShowImp === '0'"
>
<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" @click="collectClick(sarStandardsInfoEO.collectId)"
title="取消收藏" class="collection-btn" icon="el-icon-star-on" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off"
:loading="isSubmit"></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 class="relation-btn" @click="showItemsModel()">标准分解单</el-button>-->
</div>
</div>
</div>
<el-collapse-item :name="item.label" @click.native="handleChange1(item.label)">
<template slot="title">
<div class="modular-header" v-if="item.label === '基础信息'">
<div class="modular-header-title"><i class="icon-modular-title"/><span>{{ item.label }}</span></div>
</div>
<div class="modular-header" v-if="item.label !== '基础信息'">
<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><label style=" margin-right: 150px;">标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>-->
<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.standYear || '-' }}</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-title">
<label style=" margin-right: 164px;">{{ child.attrName }}</label>
<template v-if="child.value && child.value.length > 0"
v-for="(file, fileIndex) in child1Func(child.value)">
<span>
<a style="font-size: 16px;color: #409EFF;cursor: pointer"
@click="openFileInPdf(file.id, file.oldFileName)" target="_blank"
:title="file.oldFileName">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-if="child.attrField === itemNam "
v-for="(itemNam,index) in itemExistList"
:key="index"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
style="right:62px"
icon="icon-separate"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
class="decomposition-btn" icon="icon-relation" @click="relateEvent1(child.value)">
更多
</el-button>
</template>
<template v-if="child.value === null">-</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-if="child.value && child.value.length > 0"
v-for="(file, fileIndex) in child5Func(child.value)">
<span>
<a style="font-size: 16px;color: #409EFF;cursor: pointer"
@click="openFileInPdf(file.id, file.oldFileName)" target="_blank"
:title="file.oldFileName">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-if="child.attrField === itemNam "
v-for="(itemNam,index) in itemExistList"
:key="index"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
style="right:62px"
icon="icon-separate"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
class="decomposition-btn" icon="icon-relation" @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-if="child.value && child.value.length > 0"
v-for="(file, fileIndex) in child4Func(child.value)">
<span>
<a style="font-size: 16px;color: #409EFF;cursor: pointer"
@click="openFileInPdf(file.id, file.oldFileName)" target="_blank"
:title="file.oldFileName">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-if="child.attrField === itemNam "
v-for="(itemNam,index) in itemExistList"
:key="index"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
style="right:62px"
icon="icon-separate"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
class="decomposition-btn" icon="icon-relation" @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-if="child.value && child.value.length > 0"
v-for="(file, fileIndex) in child3Func(child.value)">
<span>
<a style="font-size: 16px;color: #409EFF;cursor: pointer"
@click="openFileInPdf(file.id, file.oldFileName)" target="_blank"
:title="file.oldFileName">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<el-button
v-if="child.attrField === itemNam "
v-for="(itemNam,index) in itemExistList"
:key="index"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
style="right:62px"
icon="icon-separate"
>标准分解单
</el-button>
<el-button v-if="child.value && child.value.length > 1"
style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
class="decomposition-btn" icon="icon-relation" @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>{{
standMap[sarStandardsInfoEO.standNature] || '-'
}}</span></p>
<p class="half" v-if="saveStandType === 'INLAND_STAND'"><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>
<!-- <p><label>文本说明</label><span style="color: #999999">{{ sarStandardsInfoEO.synopsis || '-' }}</span></p>-->
<!-- <p><label>重要度</label><span>{{ sarStandardsInfoEO.isRelateAccess === '1' ? 'A' : 'B'}}</span></p>-->
<!-- <p><label>纳入标准法规清单的国家/地区</label><span>{{ sarStandardsInfoEO.accessCountry || '-' }}</span></p>-->
</div>
</div>
</template>
<template
v-for="(child, childIndex) in item.half"
v-if="child.isShowImp === '0' && child.attrField !== 'CBCD'"
>
<!-- modular-item half 代替标准编号-->
<div
:key="child.id"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
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' "
>
<label class="modular-content-p-name" :title="child.attrName">{{ child.attrName }}</label>
<span
class="modular-content-p-val"
:title="child.value || '-'"
>
<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 @click="processCenterClick(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;"
class="span-line">{{ 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 @click="showReplaceStandInfo(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;"
class="span-line">{{ 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 class="modular-content-p-name" :title="child.attrName">{{ child.attrName }}</label>
<span
v-if="child.attrField === 'FGWHR'"
class="modular-content-p-val clearfix"
:title="child.value || '-'"
>
<template v-if="child.value">
{{ child.value }}
<put-question-button
style="float: right;"
:resId="sarStandardsInfoEO.id"
:resType="saveStandType"
></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.substring(0, 10) : '-' }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
<!--发布稿增补件单独设置下载权限-->
<template v-if="child.attrField === 'FBGBJBD' || child.attrField === 'ZBJBD'">
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</template>
<template v-else>
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <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 class="modular-content-p-name" :title="child.attrName">{{ 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 @click="processCenterClick(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;"
class="span-line">{{ 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 class="modular-content-p-val" v-if="child.value">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a @click="showReplaceStandInfo(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;"
class="span-line">{{ item }}</a>
</span>
</p>
<span class="modular-content-p-val" v-else>-</span>
</template>
<span
v-else-if="child.attrField === 'SVPPS'"
class="modular-content-p-val"
:title="child.tips || '-'"
>
{{ !child.value || child.value === 'null' ? '-' : child.value }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
<!-- <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 @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <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 @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
</p>
<!-- <el-button-->
<!-- v-if="child.attrField === 'FBGBJBD' || child.attrField === 'SSG' || child.attrField === 'ZQYJG' || child.attrField === 'BPG' || child.attrField === 'ZBJBD' || child.attrField === 'CA'"-->
<!-- @click="showItemsModel(child.attrField)"-->
<!-- class="decomposition-btn"-->
<!-- icon="icon-separate"-->
<!-- >标准分解单</el-button>-->
</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'"
:key="child.id"
:class="'modular-item half'"
>
<label class="modular-content-p-name" :title="child.attrName">{{ child.attrName }}</label>
<span
v-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
<!-- <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 @click="openFileInPdf(file.id, file.oldFileName)" target="_blank" :title="file.oldFileName">{{
file.oldFileName | ellipsis
}}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- 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 @click="openFileInPdf(file.id, file.oldFileName)" target="_blank" :title="file.oldFileName">{{
file.oldFileName | ellipsis
}}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
</p>
<el-button
v-if="child.attrField === itemNam "
v-for="(itemNam,index) in itemExistList"
:key="index"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
icon="icon-separate"
>标准分解单
</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 class="modular-content-p-name" :title="child.attrName">{{ 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 @click="processCenterClick(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;"
class="span-line">{{ 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 class="modular-content-p-val" v-if="child.value">
<span v-for="(item, index) in child.value.split(',')" :key="index">
<a @click="showReplaceStandInfo(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;"
class="span-line">{{ item }}</a>
</span>
</p>
<span class="modular-content-p-val" v-else>-</span>
</template>
<span
v-else-if="child.attrField === 'SVPPS'"
class="modular-content-p-val"
:title="child.tips || '-'"
>
{{ !child.value || child.value === 'null' ? '-' : child.value }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
<!-- <span style="cursor: pointer;" @click="openFileInPdf(file.id, file.oldFileName)">|{{file.id}}|</span>-->
<!--发布稿、增补件单独设置下载权限-->
<template v-if="child.attrField === 'GLWJ'">
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- 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 @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
/>
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
</template>
</p>
<el-button
v-if="child.attrField === itemNam "
v-for="(itemNam,index) in itemExistList"
:key="index"
@click="showItemsModel(child.attrField)"
class="decomposition-btn"
icon="icon-separate"
>标准分解单
</el-button>
</div>
</div>
</template>
<div class="modular-item-more" v-if="item.label === '实施日期' && item.one.length > 6">
<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>
</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
title="查看分解单"
:wrapperClosable="false"
:visible.sync="modalStandItemflag"
size="80%"
class="not-footer-drawer"
@close="closeDrawer"
>
<div class="search-area">
<div class="left">
<el-form inline :model="standardForm" ref="ruleForm" class="label-input-form">
<el-form-item class="search-item">
<el-input size="small" v-model="standItemSearch.orgName" v-show="false" style="height: 32px"/>
<el-input size="small" v-model="standItemSearch.responsibleUnit" v-show="false" style="height: 32px"/>
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
</el-popover>
</el-form-item>
<el-form-item class="search-item">
<el-input v-model="standItemSearch.itemsName" size="small" placeholder="根据条款名称查找" clearable
maxlength="100"></el-input>
</el-form-item>
<!-- 新车实施日期-->
<el-form-item class="search-item">
<div class="block">
<el-date-picker
v-model="standItemSearch.XCXSSRQ"
type="date"
value-format="yyyy-MM-dd"
placeholder="新车实施日期">
</el-date-picker>
</div>
</el-form-item>
<!-- //在产车实施日期-->
<el-form-item class="search-item">
<div class="block">
<el-date-picker
v-model="standItemSearch.ZCCSSRQ"
type="date"
value-format="yyyy-MM-dd"
placeholder="在产车实施日期">
</el-date-picker>
</div>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
:loading="searching"
type="primary"
size="mini"
class="common-button-primary"
@click="searchSarStandItems">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
@click="clearAllSearch"
size="mini">
清空
</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"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '52HT9PLW49G6ZWS9RZSC' : '9CLEQQBS75SYV8JQQYFB'">
导出
</el-button>
<el-button
size="mini"
type="primary"
class="common-button-primary"
@click="openRelatedTermsDrawer"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '824f3bf9edef83fc7488917136167232'"
>关联条款
</el-button>
<el-button
size="mini"
type="primary"
class="common-button-primary"
@click="editResolveList"
>编辑</el-button>
</div>
<div class="content">
<el-table
@sort-change='sort'
ref="multipleTable"
:data="standItemList"
tooltip-effect="dark"
border
style="width: 100%"
:height="tableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@select="select"
@selection-change="selectAllStand">
<el-table-column
type="selection"
fixed="left"
width="60"
>
</el-table-column>
<el-table-column
sortable="custom"
show-overflow-tooltip
prop="itemsNum"
width="90"
label="条款号"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="itemsName"
min-width="300"
label="条款名称"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="termsConditions"
min-width="200"
label="条款内容"
:resizable="false"
>
<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>
</template>
</el-table-column>
<el-table-column
prop="readContent"
width="170"
label="核心技术要求/变化点"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="comparedWithPrevious"
label="基于上一版本差异"
width="170">
</el-table-column>
<el-table-column
prop="xccssrq"
label="新车型实施日期(文本)"
width="180">
</el-table-column>
<el-table-column
prop="zccssrq"
label="在产车实施日期(文本)"
width="170">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="applyArctic"
label="适用车型"
width="90"
>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="responsibleUnit"-->
<!-- label="责任部门">-->
<!-- </el-table-column>-->
<el-table-column
prop="dutyEngineer"
label="责任工程师"
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 label="操作" align="center" width="50" fixed="right">
<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 :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-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
: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
title="编辑"
:visible.sync="editResolveListShowflag"
class="label-input-form"
:before-close="resetEditResolveListForm"
size="800px"
:wrapperClosable="false"
>
<el-form :model="resolveListForm" ref="resolveListForm">
<el-input
v-show="false"
v-model="resolveListForm.id"
/>
<el-form-item
label="条款号"
class="add-form-item"
>
<el-input
style="width: 45%"
v-model="resolveListForm.itemsNum"
disabled
/>
</el-form-item>
<el-form-item
label="条款名称"
class="add-form-item"
>
<el-input
style="width: 45%"
v-model="resolveListForm.itemsName"
disabled
/>
</el-form-item>
<el-form-item
label="条款内容"
class="add-form-item"
>
<el-input
style="width: 45%"
v-model="resolveListForm.termsConditions"
disabled
/>
</el-form-item>
<el-form-item
label="核心技术要求/变化点"
class="add-form-item"
>
<el-input
style="width: 45%"
v-model="resolveListForm.readContent"
clearable
/>
</el-form-item>
<el-form-item
label="基于上一版本差异"
class="add-form-item"
>
<el-input
style="width: 45%"
v-model="resolveListForm.comparedWithPrevious"
clearable
/>
</el-form-item>
<el-form-item
label="新车型实施日期(文本)"
class="add-form-item"
>
<el-date-picker
type="dates"
value-format="yyyy-MM-dd"
style="width: 45%"
prefix-icon="none"
v-model="resolveListForm.xccssrq"
placeholder="请选择新车型实施日期">
</el-date-picker>
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model.trim="resolveListForm.xccssrq"-->
<!-- clearable-->
<!-- />-->
</el-form-item>
<el-form-item
label="在产车实施日期(文本)"
class="add-form-item"
>
<el-date-picker
type="dates"
value-format="yyyy-MM-dd"
prefix-icon="none"
style="width: 45%"
v-model="resolveListForm.zccssrq"
placeholder="请选择在产车实施日期">
</el-date-picker>
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model.trim="resolveListForm.zccssrq"-->
<!-- clearable-->
<!-- />-->
</el-form-item>
<!--适用车型-->
<template>
<custom-select-array
:config="applyArcticOptions"
v-model="resolveListForm.applyArctic"
></custom-select-array>
</template>
<!-- 责任工程师-->
<template>
<el-form-item
prop="ZRGCSUser"
label-width="150px"
class="add-form-item"
>
<template slot="label">责任工程师</template>
<el-input v-model="resolveListForm.dutyEngineer" placeholder="请选择责任工程师" clearable
@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>
<!-- <el-input-->
<!-- style="width: 45%"-->
<!-- v-model="resolveListForm.complianceRequire"-->
<!-- clearable-->
<!-- />-->
</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
type="primary"
class="common-button-primary"
size="mini"
:loading="editLoading"
icon="el-icon-check"
@click="saveEditInfo"
>提交</el-button
>
<el-button
size="mini"
icon="el-icon-close"
class="common-button-default"
@click="resetEditResolveListForm"
>取消</el-button
>
</div>
</el-drawer>
<Role-tree
:is-title="drawerTitle"
:is-visible.sync="modalShowRoleFlag"
@checkedRole="checkedRole2"
:nodeList="nodeList2"
></Role-tree>
<Mechanism-tree
is-title="选择部门信息"
:is-visible.sync="modalshowflagZRBM"
:nodeList="nodeListZRBM"
@checkedRole="drawerCheckZRBM"
/>
<!--新增标准条款-->
<el-drawer
:title="itemModalTitle"
:wrapperClosable="false"
:visible.sync="modalItemaddShowflag"
:before-close="resetForm"
size="800px"
destroy-on-close
>
<div class="demo-drawer-content">
<el-form
v-if="modalItemaddShowflag"
ref="sarStandardsItemForm"
:model="standItemEO"
class="label-input-form"
:rules="sarStandardItemRules"
label-width="150px"
>
<el-form-item label="条款号" prop="itemsNum" class="add-form-item">
<el-input v-model="standItemEO.itemsNum" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
</el-form-item>
<el-form-item label="条款名称" prop="itemsName" class="add-form-item">
<el-input v-model="standItemEO.itemsName" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
</el-form-item>
<el-form-item label="内容简介" prop="termsConditions" class="add-form-item">
<el-input v-model="standItemEO.termsConditions" :disabled="itemFormdisableflag" placeholder="请输入内容"/>
</el-form-item>
<el-row>
<custom-org
:config="{
attrName: '责任部门',
attrField: 'responsibleUnit',
selVal: 'ORGLIST',
valueName: standItemEO.orgName,
attrType: 'SEL_OPTION'
}"
:zNodes="zNodesSItem"
v-model="standItemEO.responsibleUnit"
:data-model="standItemEO"
@on-checked="(checkName) => {standItemEO.ZRBM = standItemEO.responsibleUnit;standItemEO.orgName = checkName}"
></custom-org>
</el-row>
<el-row>
<custom-org
:config="{
attrName: 'FO',
attrField: 'FO',
selVal: 'USERLIST',
valueName: standItemEO.foShow,
attrType: 'SEL_OPTION'
}"
:zNodes="zNodesSItem"
v-model="standItemEO.FO"
:data-model="standItemEO"
@on-checked="(checkName) => {standItemEO.fo = standItemEO.FO;standItemEO.foShow = checkName}"
></custom-org>
</el-row>
<el-row>
<custom-org
:config="{
attrName: '责任工程师',
attrField: 'dutyEngineer',
selVal: 'USERLIST',
valueName: standItemEO.dutyEngineerShow,
attrType: 'SEL_OPTION'
}"
:zNodes="zNodesSItem"
:data-model="standItemEO"
v-model="standItemEO.dutyEngineer"
@on-checked="(checkName) => {standItemEO.dutyEngineerShow = checkName}"
></custom-org>
</el-row>
<el-row>
<custom-SVPPS
:config="{
attrName: 'SVPPS',
attrField: 'SVPPS',
valueName: standItemEO.svppsShow,
value: standItemEO.svpps
}"
v-model="standItemEO.svpps"
></custom-SVPPS>
</el-row>
<el-form-item label="适用车辆类型" prop="applyArctic" class="add-form-item">
<el-select v-model="standItemEO.applyArctic" multiple placeholder="请选择" :filterable="true">
<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 label="要求类型" prop="claimType" class="add-form-item">
<el-select v-model="standItemEO.claimType" placeholder="请选择" :filterable="true">
<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 label="企标覆盖关系" prop="busStandCover" class="add-form-item">
<el-select
v-model="standItemEO.busStandCover"
:disabled="itemFormdisableflag"
placeholder="请选择"
>
<el-option
v-for="(item, index) in BZFGGXOUIUJ"
:key="index"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button class="common-button-primary" icon="el-icon-check" type="primary" v-if="!itemFormdisableflag"
@click="saveOrUpdateStandItem" :loading="isSubmit">
保存
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>
</div>
</el-drawer>
<!--导入模态窗-->
<el-dialog width="400px" :visible.sync="importModalshowflag" title="导入文件" :footer-hide="true">
<el-upload
multiple
drag
:show-file-list="showUploadlist"
:on-success="importFileSuccess"
:on-remove="removeOneFile"
:before-upload="beforeUpload"
:action="importExcelUrl"
:file-list="defaultFileList"
accept=".xlsx"
name="file"
ref="importFileAboutStand">
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
</div>
</el-upload>
</el-dialog>
<!--分解单-查看 (标准拆分-属性)-->
<el-drawer
:wrapperClosable="false"
size="800px"
title="查看属性信息"
:visible.sync="showItemInfoModal"
>
<div class="see-drawer-content">
<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.itemsNum">{{ standShowItemEO.itemsNum }}</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.itemsName">{{ standShowItemEO.itemsName }}</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.termsConditions ? standShowItemEO.termsConditions.replace(/<.*?>/ig, ' ') : ''">{{
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 class="see-drawer-val" style="font-size: 12px"
:title="standShowItemEO.readContent ? standShowItemEO.readContent.replace(/<.*?>/ig, ' ') : ''">
{{
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 class="see-drawer-val" style="font-size: 12px"
:title="standShowItemEO.xcxssrq">{{
standShowItemEO.xccssrq
}}</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.zccssrq">{{
standShowItemEO.zccssrq
}}</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.applyArctic">{{ standShowItemEO.applyArctic }}</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.responsibleUnit">{{
standShowItemEO.responsibleUnit
}}</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.dutyEngineer">
{{ standShowItemEO.dutyEngineer }}</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.comparedWithPrevious">
{{ 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 }}</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
title="更多发布稿"
:visible.sync="relateDialog1"
class="relateClass"
width="40%"
:before-close="relateDialogClose1">
<div
v-for="(file, index) in relateNowList1"
:key="index"
v-if="relateNowList1"
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
>
{{ index + 1 }}.
<a style="font-size: 16px;color: #409EFF;cursor: pointer" @click="openFileInPdf(file.id, file.oldFileName)"
target="_blank" :title="file.oldFileName">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : 'a772afab2a6708883335500f3f86e771'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '824f3bf9edef83fc7488917136167232'"
/>
<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
title="更新LOG"
:visible.sync="relateDialog"
class="relateClass"
width="60%"
:before-close="relateDialogClose">
<div
v-for="(item, index) in relateNowList"
:key="index"
v-if="relateNowList"
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
title="知识点分享"
:visible.sync="knowledgeSharingDialog"
width="800px"
class="myDialog">
<div class="action-bar">
<el-button type="primary"
class="common-button-primary add-button"
size="mini"
:v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'PVBSWCJQ9X4RVBM9RK7L' : 'NJ3YL4SVEJADWH7ESHDX'"
@click="addknowledge(1)"><i class="el-icon-plus"></i>新增
</el-button>
<el-button class="common-button-default delete-button"
size="mini"
:v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '4V4592SVLAZY9HMC8WHU' : '485WL3QHGRJ27H2XD34Z'"
@click="deleteknowledge(2)"><i class="iconfont">&#xe61b;</i>批量删除
</el-button>
</div>
<div class="knowContent">
<el-table
:data="knowList"
tooltip-effect="dark"
style="width: 100%"
border
height="100%"
@selection-change="handleSelectionKnow"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="title"
width="150"
label="标题">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="content"
label="内容">
</el-table-column>
<el-table-column
prop="creationTime"
width="150"
align="center"
label="时间">
<template slot-scope="scope">
{{ $moment(scope.row.creationTime).format('YYYY-MM-DD') }}
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<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
:v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'XPMLS6UV5HXG7C9ZR6B8' : '5ZC797XABNFV36KWJCA5'"
:command="[scope.row, '编辑']">
编辑
</el-dropdown-item>
<el-dropdown-item
:v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '4V4592SVLAZY9HMC8WHU' : '485WL3QHGRJ27H2XD34Z'"
:command="[scope.row, '删除']">
删除
</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
:title="KnowTitle"
:visible.sync="AddKnowledgDialog"
:before-close="AddKnowClose"
destroy-on-close
:close-on-click-modal="false"
width="600px">
<el-form ref="addForm" :model="addForm" :rules="addFormRules" class="label-input-form" label-width="130px">
<el-formItem label="标题" prop="title" class="add-form-item">
<el-input v-model="addForm.title" placeholder="请输入标题"></el-input>
</el-formItem>
<el-formItem label="内容" prop="content" class="add-form-item">
<el-input v-model="addForm.content" :autosize="{ minRows: 3, maxRows: 4}" resize="none" type="textarea"
placeholder="请输入内容"></el-input>
</el-formItem>
<el-formItem label="附件" prop="files" class="add-form-item">
<el-upload
style="margin-top: 15px;"
multiple
drag
:show-file-list="showUploadlist2"
:on-success="uploadSuccess1"
:before-upload="beforeUpload1"
:on-remove="removeOneFile1"
:action="importExcelUrl"
name="file"
:file-list="defaultFileList"
ref="importFileAboutStand">
<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 type="primary" size="mini" class="common-button-primary" :loading="AddKnowSubLoading"
icon="el-icon-check" @click="AddKnowSub">
确定
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="AddKnowClose">取消</el-button>
</div>
</el-dialog>
<!-- 查看知识点详情-->
<el-dialog
title="查看"
:visible.sync="AddKnowledgDialogItem"
destroy-on-close
class="myDialog"
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
class="fileCss"
v-for="(item,index) in knowSee.fileList"
@click="downloadFile(item.id)"
:key="index">{{ item.oldFileName }}</span>
</p>
<p><label>发布时间:</label><span>{{
knowSee.creationTime ? $moment(knowSee.creationTime).format('YYYY-MM-DD') : ''
}}</span></p>
</div>
</el-dialog>
<el-dialog
title="比对"
class="myDialog1"
:before-close="comparisonClose"
:visible.sync="comparisonDialog">
<div class="search-area">
<el-form :inline="true" class="label-input-form">
<el-form-item label="关键字" class="search-item">
<el-input v-model="comparisonTitle" placeholder="请输入关键字"></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
icon="el-icon-search"
type="primary"
class="common-button-primary"
size="mini"
@click="getComparison()">
</el-button>
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
size="mini"
@click="clearComparison()"></el-button>
<el-button type="primary" class="common-button-primary" size="mini" @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 type="primary" size="mini" class="common-button-primary" icon="el-icon-check"
@click="comparisonSub">
确定
</el-button>
<el-button class="common-button-default" icon="el-icon-close" @click="comparisonClose">取消</el-button>
</div>
</div>
</el-dialog>
<!-- 新增清单抽屉 -->
<el-drawer
title="比对清单新增"
:visible.sync="AddcomparisonDrawer"
size="800px"
destroy-on-close
>
<div class="demo-drawer-content">
<el-form
ref="listVO"
:model="listVO"
:rules="listVOFormRules"
class="label-input-form"
label-width="150px"
>
<el-form-item label="清单名称" prop="name" class="add-form-item">
<el-input v-model.trim="listVO.name" placeholder="请输入清单名称" clearable/>
</el-form-item>
<el-form-item label="是否公开" prop="public" class="add-form-item">
<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 :visible.sync="importFailed" :close-on-click-modal="false" 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 type="primary" size="mini" class="common-button-default" icon="el-icon-check"
@click="importFailed = false">
确认
</el-button>
</div>
</el-dialog>
<loading :loading="loading">数据获取中</loading>
<!-- 关联条款抽屉-->
<el-drawer
ref="relatedTermsDrawer"
:show-close="true"
:wrapperClosable="false"
size="800px"
title="关联条款"
:visible.sync="relatedTermsDrawerVisible"
destroy-on-close
>
<div class="demo-drawer-content">
<related-terms-select
ref="relatedTermsSelect"
:fileType="fileType"
:stand-id="standId"
@close="closeRelatedTermsDrawer"
></related-terms-select>
</div>
<div class="demo-drawer-footer">
<el-button class="common-button-primary" size="mini" icon="el-icon-check" type="primary" :loading="btnLoading"
@click="handleRelatedTermsDrawerSubmit">
{{ $t('m.submit') }}
</el-button>
<el-button class="common-button-default" size="mini" icon="el-icon-close"
@click="handleRelatedTermsDrawerCancel">
{{ $t('m.cancel') }}
</el-button>
</div>
</el-drawer>
<!--内容简介-->
<el-dialog :visible.sync="itemsTextDialogs" title="内容简介" :close-on-click-modal="false">
<div v-html="itemsText" class="itemsTextBox"></div>
<div slot="footer">
<el-button type="primary" size="large" @click="itemsTextDialogs = false">关闭</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
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 ''
if (value.length > 12) {
return value.slice(0, 12) + '...'
}
return value
}
},
data() {
return {
CycxOptions: [],
activeNames: ['基础信息','过程稿件','实施日期'],
activeState: true,
itemExistList: [],
interpretationContent: '',
relatedTermsDrawerVisible: false,
btnLoading: false,
comparisonTitle: '',
AddKnowSubLoading: false,
listVO: {
name: '',
public: false
},
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: this.$store.getters.userInfo.configContent,
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: '适用车型',
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/upload', // 导入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: {}
}
},
props: {},
watch: {},
methods: {
child1Func(child1) {
console.log('1943',child1)
const list = []
if (child1 && child1.length > 1) {
list.push(child1[0])
return list
}
return child1
},
child3Func(child3) {
console.log('1943',child3)
const list = []
if (child3 && child3.length > 1) {
list.push(child3[0])
return list
}
return child3
},
child4Func(child4) {
console.log('1943',child4)
const list = []
if (child4 && child4.length > 1) {
list.push(child4[0])
return list
}
return child4
},
child5Func(child5) {
console.log('1943',child5)
const list = []
if (child5 && child5.length > 1) {
list.push(child5[0])
return list
}
return child5
},
handleChange(val) {
console.log('1724', 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()
},
knowledgeSharing() {
this.knowledgeSharingDialog = true
this.getKnowList()
},
// 获取知识点列表数据
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) {
console.log('2077',type, title, id)
this.nodeList = []
this.nodeList.push(id)
this.userType = type
this.drawerTitle = title
this.modalShowRoleFlag = true
},
checkedRole2 (data) {
console.log('1712',this.drawerTitle)
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 = []
this.selectedItemList.push(alldata[alldata.length - 1])
console.log('2333',this.selectedItemList)
},
editResolveList(){
console.log('2337',this.selectedItemList)
if (this.selectedItemList.length>0){
this.editResolveListShowflag = true
let editItem = JSON.parse(JSON.stringify(this.selectedItemList[0]))
console.log('2518',editItem)
this.resolveListForm = editItem
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(','):''
}else {
this.$message.warning('请选择一条数据')
}
},
saveEditInfo(){
console.log('2530',typeof this.resolveListForm.xccssrq)
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) => {
console.log(res)
if (res.ok){
this.$message.success('修改成功')
this.resetEditResolveListForm()
this.showItemsModel()
}
}
)
},
resetEditResolveListForm(){
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 = this.sarStandardsInfoEO.attrInfoMap.itemExistList;
console.log(this.itemExistList)
console.log("hllo", this.sarStandardsInfoEO);
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) {
// 判断是否是图片格式,图片格式不预览,直接下载
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
console.log(editFileInfo)
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 => {
console.log("res.data", res.data);
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('没有在线预览文档权限!')
}
}
},
showItemsModel(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.standItemSearch.standId = this.sarStandardsInfoEO.id
this.standItemSearch.fileType = this.fileType
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.ok) {
console.log('3092',res.data.list)
res.data.list.forEach(item => {
let k = (item.applyArctic || "").split(',')
for (let i in this.applyArcticOptions.options) {
for (let m = 0; m < k.length; m++) {
if (this.applyArcticOptions.options[i].value === k[m]) {
k[m] = this.applyArcticOptions.options[i].label
}
item.applyArctic = k.join(',')
}
}
item.applyArctic = item.applyArctic.replaceAll('\"', '').replaceAll('\[', '').replaceAll('\]', '')
})
this.standItemList = res.data.list;
this.total7 = res.data.count // 分页需要
}
}, e => {
})
console.log(this.standItemSearch);
},
downloadFile(attId) {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
},
downloadFileByWater(attId, fileSuffix) {
if (fileSuffix !== 'pdf' && fileSuffix !== 'PDF') {
this.$message.error('水印下载仅支持PDF,pdf格式文件')
} else {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSarWaterMark?fileId=' + attId + '&userId=' + this.$store.getters.userInfo.userId
} else {
this.$message.error('请选择要下载的文件')
}
}
},
/**
* @Description: 跳转流程
*/
processCenterClick(item) {
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
prcNum: item
}
})
window.open(routeUrl.href, '_blank')
},
searchSarStandItems() {
this.standItemSearch.page = 1
this.selectSarStandItems()
},
// 清空搜索框
clearAllSearch() {
// 标准条款搜索
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) {
window.open('/api/lawss/sarStandItems/exportStandardItemExcel?idList=' + this.selectedItemList.join(','))
this.$message.success('导出成功')
} else if (this.standItemList.length > 0) {
window.open('/api/lawss/sarStandItems/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
this.$refs['relatedTermsSelect'].handleSubmit(() => {
this.selectSarStandItems()
this.btnLoading = false
this.$message({
message: '关联成功',
type: 'success'
});
})
},
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() {
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.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) {
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'
}
})
})
console.log(displayLocation)
displayLocation.forEach(location => {
// 动态属性字段-FBGBJBD 单独添加至基础信息
const list = displayLocation.filter(item => item.label === '过程稿件');
console.log('3535',list)
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
}
}
// 动态属性字段-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');
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
})
console.log(displayLocation)
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
})
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';
/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 {
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 {
//position: relative;
display: inline-block;
width: calc(~'100% - 225px');
& > .files-title {
width: calc(~'100% - 120px');
//报批稿撑开
//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: 42px;
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>