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

3444 lines
131 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>{{ sarStandardsInfoEO.standSortShow || '' }} {{
sarStandardsInfoEO.standNumber
}}-{{ sarStandardsInfoEO.standYear }} {{ sarStandardsInfoEO.standName }} 标准详情</span>
</div>
<!--主体内容-->
<div class="details-content">
<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'"
>
<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 class="details-content-modular basic-information" style="border-top:none">
<div class="modular-header">
<!-- <div class="modular-header-title"><i class="icon-modular-title" /><span>基础信息</span>-->
<!-- </div>-->
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)"
title="取消收藏" class="collection-btn" icon="icon-collection" :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>
</div>
<div class="modular-content">
<template v-if="item.label === '基础信息'">
<div class="details-content-modular basic-information" style="border-top:none">
<div class="basic-information-content">
<!-- <p><label style=" margin-right: 150px;">标准类别</label><span>{{ sarStandardsInfoEO.standSort || '-' }}</span></p>-->
<p style="color: #C42626;" class="half">
<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 class="half"><label style=" margin-right: 150px;">标准性质</label><span>{{
standMap[sarStandardsInfoEO.standNature] || '-'
}}</span></p>
<p><label style=" margin-right: 150px;">中文名称</label><span>{{
sarStandardsInfoEO.standName || '-'
}}</span></p>
<p style="border: none;"><label style=" margin-right: 150px;">英文名称</label><span>{{
sarStandardsInfoEO.standEnName || '-'
}}</span></p>
<p class="half">
<label style=" margin-right: 150px;"
title="“计划修订”、“修订中”均为现行有效版本;“已修订”标准的有效性根据实际实施情况判定。"
>文本状态</label>
<span style="color: #409EFF;">{{ 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: 84px;">是否纳入认证清单</label><span>{{
sarStandardsInfoEO.isRelateAccess ? (sarStandardsInfoEO.isRelateAccess === '1' ? '是' : '否') : '-'
}}</span>
</p>
<p class="half" v-if="saveStandType === 'INLAND_STAND'"><label style=" margin-right: 150px;">标准体系</label><span>{{
sarStandardsInfoEO.standSystem || '-'
}}</span></p>
<!-- <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' ? '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>
<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 !== '关联信息' && (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 === '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'"
/>
<!-- 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>
</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"
icon="el-icon-search"
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"
icon="el-icon-refresh-left"
@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>
</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'}"
@selection-change="selectAllStand">
<el-table-column
type="selection"
fixed="left"
align="center"
width="60"
>
</el-table-column>
<el-table-column
sortable="custom"
show-overflow-tooltip
prop="itemsNum"
width="90"
label="条款号"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="itemsName"
label="条款名称"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="termsConditions"
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="160"
label="核心技术要求/变化点"
show-overflow-tooltip
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
align="center"
prop="comparedWithPrevious"
label="基于上一版本差异"
width="150">
</el-table-column>
<el-table-column
prop="xccssrq"
label="新车型实施日期(文本)"
width="180">
<template slot-scope="scope">
<span>{{ scope.row.xccssrq ? $moment(scope.row.xccssrq).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
prop="zccssrq"
label="在产车实施日期(文本)"
width="170">
<template slot-scope="scope">
<span>{{ scope.row.zccssrq ? $moment(scope.row.zccssrq).format('YYYY-MM-DD') : '' }}</span>
</template>
</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="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
key="responsibleUnit"
: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
key="FO"
: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
key="dutyEngineer"
: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
key="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 in applyArcticOptions"
:key="opt.value"
: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 in requestOptions"
:key="opt.value"
: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 in BZFGGXOUIUJ"
:key="item.value"
: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" title="条款号">条款号</label>
<span class="see-drawer-val" :title="standShowItemEO.itemsNum">{{ standShowItemEO.itemsNum }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="条款名称">条款名称</label>
<span class="see-drawer-val" :title="standShowItemEO.itemsName">{{ standShowItemEO.itemsName }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="内容简介">条款内容</label>
<span class="see-drawer-val"
: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" title="解读内容">解读内容</label>
<span class="see-drawer-val"
: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" title="新车型实施日期">新车型实施日期</label>
<span class="see-drawer-val"
:title="standShowItemEO.xcxssrq">{{
standShowItemEO.xccssrq ? $moment(standShowItemEO.xccssrq).format('YYYY-MM-DD') : ''
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="在产车实施日期">在产车实施日期</label>
<span class="see-drawer-val"
:title="standShowItemEO.zccssrq">{{
standShowItemEO.zccssrq ? $moment(standShowItemEO.zccssrq).format('YYYY-MM-DD') : ''
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="适用车型">适用车型</label>
<span class="see-drawer-val" :title="standShowItemEO.applyArctic">{{ standShowItemEO.applyArctic }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="责任部门">责任部门</label>
<span class="see-drawer-val" :title="standShowItemEO.responsibleUnit">{{
standShowItemEO.responsibleUnit
}}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="责任工程师">责任工程师</label>
<span class="see-drawer-val" :title="standShowItemEO.dutyEngineer">
{{ standShowItemEO.dutyEngineer }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="基于上一版本差异">基于上一版本差异</label>
<span class="see-drawer-val" :title="standShowItemEO.comparedWithPrevious">
{{ standShowItemEO.comparedWithPrevious }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="符合性状态">符合性状态</label>
<span class="see-drawer-val" :title="standShowItemEO.complianceRequire">
{{ standShowItemEO.complianceRequire }}</span>
</div>
<div class="see-drawer-div">
<label class="see-drawer-name" title="合规性分析">合规性分析</label>
<span class="see-drawer-val" :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>
<!-- 更新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="iconfont">&#xe84e;</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="iconfont">&#xe84e;</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 CustomOrg from '@/components/CustomFormComponents/OrgTree'
import {dateFormat} from '@/common/date'
import RelatedTermsSelect from './components/RelatedTermsSelect'
export default {
name: 'OtherStandardDetails',
components: {
PutQuestionButton,
CustomSVPPS,
CustomOrg,
RelatedTermsSelect
},
data() {
return {
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,
relateList: [],
relateNowList: [],
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: [], // 适用车辆类型下拉框
emergyKindOptions: [], // 能源种类下拉框
requestOptions: [],
BZFGGXOUIUJ: [], // 企标覆盖关系
itemModalTitle: '',
modalItemaddShowflag: 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: {
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
},
selectAllStand(alldata) {
this.selectedItemList = []
for (let i = 0; i < alldata.length; i++) {
this.selectedItemList.push(alldata[i].id)
}
},
// 分页点击后方法
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("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 => {
})
},
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')) {
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 ')) {
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) {
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
})
}
},
// 更新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 = []
},
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
})
},
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
}
},
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 = 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'
}
})
})
displayLocation.forEach(location => {
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 {
one.push(field)
}
})
const fieldsIsTextAreaOrFile = child.filter(field => {
return field.attrType === 'TEXTAREA' || field.attrType === 'FILE'
})
const fieldOthers = child.filter(field => {
return field.attrType !== 'TEXTAREA' && field.attrType !== 'FILE'
})
location.child = [...fieldOthers, ...fieldsIsTextAreaOrFile]
location.one = one
location.half = half
location.showAll = false
})
this.$http.get('sarLawsAttrDetailedList/sar-laws-attr-detailed-list', {
id: this.$route.params.id
}, {
_this: this
}, res => {
displayLocation.map(item => {
if (item.value === '2URVBGR2Y4UG77KZ5YPL') {
for (let key in res.data) {
item.one.push({
attrName: key,
value: res.data[key].join(','),
isShowImp: '0',
id: key
})
}
}
})
this.dynamicFormField = displayLocation
})
console.log(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/ .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;
}
.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;
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");
vertical-align: top;
}
& > 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) {
border-bottom: 1px solid #E5E5E5;
.modular-content-p-name {
display: inline-block;
width: 220px;
height: 50px;
line-height: 50px;
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');
min-height: 50px;
& > .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;
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: 55px;
line-height: 55px;
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>