3024 lines
110 KiB
Vue
3024 lines
110 KiB
Vue
<!-- 流程基础信息详情 -->
|
||
<template>
|
||
<div class="ruku-detail v-class" :class="{'hidden': !isMoreAwayBtn}">
|
||
<div class="details-header">
|
||
<span>{{ title }}</span>
|
||
</div>
|
||
<div class="details-content">
|
||
<div class="details-content-modular basic-information">
|
||
<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()">更新LOG</el-button>
|
||
<el-button class="relation-btn" @click="knowledgeSharing">知识点分享</el-button>
|
||
<el-button class="relation-btn" @click="comparisonDialogOpen">比对</el-button>
|
||
</div>
|
||
</div>
|
||
<div class="basic-information-content">
|
||
<p><label>标准来源:</label><span>{{ prcInfo.standType }}</span></p>
|
||
<p><label>标准类别:</label><span>{{ prcInfo.standSort }}</span></p>
|
||
<p><label>标准编号:</label><span style="color: #409EFF;">{{ sarStandardsInfoEO.standStateShow || '-' }}</span></p>
|
||
<p><label>中文名称:</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</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>
|
||
<p><label>标准年份/系列:</label><span>{{ sarStandardsInfoEO.accessCountry || '-' }}</span></p>
|
||
<p><label>标准状态:</label><span>{{ sarStandardsInfoEO.accessCountry || '-' }}</span></p>
|
||
</div>
|
||
</div>
|
||
<div
|
||
class="details-content-modular clearfix"
|
||
v-for="(item, index) in dynamicFormField"
|
||
:key="index"
|
||
v-if="item.isShowImp === '0'"
|
||
>
|
||
<div class="modular-header">
|
||
<div class="modular-header-title"><i class="icon-modular-title" /><span>{{ item.label }}</span></div>
|
||
</div>
|
||
<div class="modular-content">
|
||
<template
|
||
v-for="(child, childIndex) in item.half"
|
||
v-if="child.isShowImp === '0'"
|
||
>
|
||
<!-- 代替标准编号-->
|
||
<div
|
||
:key="child.id"
|
||
class="modular-item"
|
||
:class="!(childIndex === item.half.length - 1) || childIndex % 2 === 1 ? 'half' : ''"
|
||
v-if="child.attrField === 'DTBJH' || child.attrField === 'YYBJ' || child.attrField === 'BYYBJ' || child.attrField === 'CBBH' || child.attrField === 'DXBZ' || child.attrField === 'XGLC'"
|
||
>
|
||
<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="modular-item"
|
||
:class="!(childIndex === item.half.length - 1) || childIndex % 2 === 1 ? 'half' : ''"
|
||
>
|
||
<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 !== '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' ? 'WGJP2VRZSJ77EGH2447M' : '44KKMQHU3CNRRPNNF8VN'"
|
||
/>
|
||
<i
|
||
title="下载带水印"
|
||
@click="downloadFileByWater(file.id, file.fileSuffix)"
|
||
class="icon-download2"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'EZVNMCLGSB5LWG6XRRL3' : 'VSUKQX3NZW4N8CT5VQE3'"
|
||
/>
|
||
<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' ? 'JHQALHMF6F' : 'dakDL3sNLq'"
|
||
/>
|
||
<i
|
||
title="下载带水印"
|
||
@click="downloadFileByWater(file.id, file.fileSuffix)"
|
||
class="icon-download2"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'KDLDNFJHENFMF' : 'LKJSNLKFHOFN'"
|
||
/>
|
||
<span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>
|
||
</template>
|
||
</p>
|
||
<el-button
|
||
@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 !== '实施日期' || (childIndex < 6 || item.showAll))"
|
||
>
|
||
<div
|
||
:key="child.id"
|
||
class="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 === 'YYBJ' || child.attrField === 'BYYBJ' || child.attrField === 'CBBH' || child.attrField === 'DXBZ'"
|
||
>
|
||
<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"
|
||
>
|
||
<!--发布稿、增补件单独设置下载权限-->
|
||
<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' ? 'WGJP2VRZSJ77EGH2447M' : '44KKMQHU3CNRRPNNF8VN'"
|
||
/>
|
||
<i
|
||
title="下载带水印"
|
||
@click="downloadFileByWater(file.id, file.fileSuffix)"
|
||
class="icon-download2"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'EZVNMCLGSB5LWG6XRRL3' : 'VSUKQX3NZW4N8CT5VQE3'"
|
||
/>
|
||
<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' ? 'JHQALHMF6F' : 'dakDL3sNLq'"
|
||
/>
|
||
<i
|
||
title="下载带水印"
|
||
@click="downloadFileByWater(file.id, file.fileSuffix)"
|
||
class="icon-download2"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'KDLDNFJHENFMF' : 'LKJSNLKFHOFN'"
|
||
/>
|
||
<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>
|
||
<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-input
|
||
v-model="standItemSearch.orgName"
|
||
slot="reference"
|
||
placeholder="请选择部门"
|
||
readonly
|
||
id="searchInlandDeptBtn"
|
||
@on-change="inputChange"
|
||
style="margin-right: 0;"/>
|
||
<div class="api">
|
||
<laws-tree :zNodes="searchInlandNodes"
|
||
treeDivId="domesticTree1"
|
||
ref="reloadTree2"
|
||
deptSelect
|
||
showRMenu
|
||
@treeDblClick="searchInlandNodesClick"
|
||
class="ztree" style="width: 200px;height: 400px;overflow: auto">
|
||
</laws-tree>
|
||
</div>
|
||
</el-popover>
|
||
</el-form-item>
|
||
<el-form-item class="search-item">
|
||
<el-input v-model="standItemSearch.nameOrRequest" size="small" placeholder="根据条款名称/内容查找" clearable maxlength="100"></el-input>
|
||
</el-form-item>
|
||
<!-- <el-form-item class="search-item">-->
|
||
<!-- <el-input v-model="standItemSearch.parts" size="small" placeholder="根据涉及零部件查找" clearable maxlength="100"></el-input>-->
|
||
<!-- </el-form-item>-->
|
||
<el-form-item class="search-item btn-box">
|
||
<el-button
|
||
:loading="searching"
|
||
icon="el-icon-search"
|
||
type="primary"
|
||
round
|
||
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"
|
||
round>
|
||
</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
<div class="action-bar">
|
||
<!--<el-button-->
|
||
<!-- round-->
|
||
<!-- type="primary"-->
|
||
<!-- class="common-button-primary add-button"-->
|
||
<!-- :loading="searching"-->
|
||
<!-- icon="add"-->
|
||
<!-- @click="addItemModal"-->
|
||
<!-- v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '84a37ea1e1' : '3D87NJR8N3'">新增</el-button>-->
|
||
<!--<el-button class="common-button-default" :loading="searching" @click="uploadImportModal">模板下载</el-button>-->
|
||
<!--<el-button class="common-button-default in-button" :loading="searching" icon="in" @click="addImportModal(2)" v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '9ca97b05b2' : '6JM97X9W9C'">导入</el-button>-->
|
||
<el-button class="common-button-default export-button" icon="export"
|
||
@click="exportStandardItem" v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '52HT9PLW49G6ZWS9RZSC' : '9CLEQQBS75SYV8JQQYFB'">导出</el-button>
|
||
<!--<el-button class="common-button-default delete-button" icon="delete" @click="deleteStandItem(2)" v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '8ac1820c42' : 'LRQHPT8E2Y'">删除</el-button>-->
|
||
<el-button
|
||
round
|
||
type="primary"
|
||
class="common-button-primary"
|
||
@click="openRelatedTermsDrawer"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '28CUM4KPUXDMCCMTFUQA' : 'R62HAB3QEMD27BZ7XHCM'"
|
||
>关联条款</el-button>
|
||
</div>
|
||
<div class="content">
|
||
<el-table
|
||
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"
|
||
width="55"
|
||
fixed="left"
|
||
align="center">
|
||
</el-table-column>
|
||
<el-table-column
|
||
show-overflow-tooltip
|
||
prop="itemsNum"
|
||
label="条款号"
|
||
width="150"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
show-overflow-tooltip
|
||
prop="itemsName"
|
||
label="条款名称"
|
||
width="150"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
show-overflow-tooltip
|
||
prop="termsConditions"
|
||
label="内容简介"
|
||
width="250"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="responsibleUnitShow"
|
||
label="责任部门"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="foShow"
|
||
label="FO"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="dutyEngineerShow"
|
||
label="项目评估角色"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
show-overflow-tooltip
|
||
prop="svppsShow"
|
||
label="SVPPS"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="applyArcticShow"
|
||
label="适用车辆类型"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="claimTypeShow"
|
||
label="要求类型"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="busStandCover"
|
||
label="覆盖关系"
|
||
width="150">
|
||
<template slot-scope="scope">
|
||
<span>{{ busStandCoverName(scope.row.busStandCover) }}</span>
|
||
</template>
|
||
</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"></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="standItemSearch.page" :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 }}</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="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.applyArctic">{{ standShowItemEO.applyArctic }}</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"
|
||
round
|
||
@click="addknowledge(1)"><i class="iconfont"></i>新增</el-button>
|
||
<el-button class="common-button-default delete-button"
|
||
round
|
||
@click="deleteknowledge(2)"><i class="iconfont"></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"></i>
|
||
<el-dropdown-menu slot="dropdown">
|
||
<el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>
|
||
<el-dropdown-item :command="[scope.row, '编辑']">编辑</el-dropdown-item>
|
||
<el-dropdown-item :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" round 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"
|
||
round
|
||
@click="getComparison()">
|
||
</el-button>
|
||
<el-button
|
||
class="common-button-default"
|
||
icon="el-icon-refresh-left"
|
||
round
|
||
@click="clearComparison()"></el-button>
|
||
<el-button type="primary" class="common-button-primary" round @click="addComparison"><i class="iconfont"></i>新增</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
<div class="action-bar">
|
||
<!-- <el-button type="primary"-->
|
||
<!-- class="common-button-primary add-button"-->
|
||
<!-- round-->
|
||
<!-- @click="addComparison"><i class="iconfont"></i>新增</el-button>-->
|
||
<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" round 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" round 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" icon="el-icon-check" type="primary" :loading="btnLoading" @click="handleRelatedTermsDrawerSubmit">{{$t('m.submit')}}</el-button>
|
||
<el-button class="common-button-default" icon="el-icon-close" @click="handleRelatedTermsDrawerCancel">{{$t('m.cancel')}}</el-button>
|
||
</div>
|
||
</el-drawer>
|
||
</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 '../../otherStandardDetails/components/RelatedTermsSelect'
|
||
import { mapGetters } from 'vuex'
|
||
|
||
export default {
|
||
name: 'OtherStandardDetails',
|
||
components: {
|
||
PutQuestionButton,
|
||
CustomSVPPS,
|
||
CustomOrg,
|
||
RelatedTermsSelect
|
||
},
|
||
data () {
|
||
return {
|
||
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: '',
|
||
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: {
|
||
standId: '',
|
||
fileType: '',
|
||
responsibleUnit: '',
|
||
orgName: '',
|
||
validFlag: '0',
|
||
pageSize: this.$store.getters.userInfo.configContent,
|
||
page: 1,
|
||
nameOrRequest: '',
|
||
parts: ''
|
||
},
|
||
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: ''
|
||
}
|
||
}
|
||
},
|
||
props: {
|
||
},
|
||
watch: {},
|
||
methods: {
|
||
closeDrawer () {
|
||
this.modalStandItemflag = false
|
||
// svpps变化
|
||
// Promise.all([this.queryDisplayLocation(), this.selectStandMessage(), this.getAddFormFieldList()]).then((values) => {
|
||
// const [displayLocation, standEO, formFieldList] = values
|
||
// const dynamicFormField = standEO ? standEO.attrInfoMap : {}
|
||
// formFieldList.forEach((field) => {
|
||
// displayLocation.forEach((location) => {
|
||
// location.isShowImp = '1'
|
||
// 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'
|
||
// }
|
||
// }
|
||
// }
|
||
// })
|
||
// })
|
||
// 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('lawss/sarSarAccessInfo/selectProTimeInfoByStandId', {
|
||
// standId: 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
|
||
// })
|
||
},
|
||
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'
|
||
}, {
|
||
_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
|
||
},
|
||
// 知识点分页
|
||
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.selectSarStandItems()
|
||
// 此处需要调用接口,修改个人配置
|
||
},
|
||
selectStandMessage () {
|
||
return new Promise((resolve, reject) => {
|
||
this.$http.get('lawss/sarStandardsInfo/getStandInfoById', {id: this.sarStandardsInfoEO.id}, {
|
||
_this: this
|
||
}, res => {
|
||
this.sarStandardsInfoEO = res.data || {}
|
||
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) {
|
||
// 缺少文件
|
||
if (this.$route.params.pageType === 'INLAND_STAND') {
|
||
if (this.$hasPermission('ZWBGBNTL11')) {
|
||
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
|
||
attId: attId
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.data) {
|
||
let fileObj = {}
|
||
fileObj.fileId = res.data.attId
|
||
fileObj.fileName = oldFileName
|
||
let fileList = []
|
||
let repeatData = 0
|
||
if (sessionStorage.getItem('fileInfo')) {
|
||
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
|
||
if (fileList != null && fileList.length > 0) {
|
||
for (let i = 0; i < fileList.length; i++) {
|
||
if (fileList[i].fileId === res.data.attId) {
|
||
repeatData = 1
|
||
break
|
||
}
|
||
}
|
||
if (repeatData === 0) {
|
||
fileList.push(fileObj)
|
||
fileList = JSON.stringify(fileList)
|
||
sessionStorage.setItem('fileInfo', fileList)
|
||
}
|
||
}
|
||
} else {
|
||
fileList.push(fileObj)
|
||
fileList = JSON.stringify(fileList)
|
||
sessionStorage.setItem('fileInfo', fileList)
|
||
}
|
||
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
|
||
} else {
|
||
this.$message.error('文档未转换成功或本地读取不到该文档')
|
||
}
|
||
}, e => {
|
||
this.$message.error('文档未转换成功或本地读取不到该文档')
|
||
})
|
||
} else {
|
||
this.$message.error('没有在线预览文档权限!')
|
||
}
|
||
} else {
|
||
// 国外在线预览权限
|
||
if (this.$hasPermission('YfS94QodMK')) {
|
||
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)
|
||
})
|
||
},
|
||
// 分解单----查看标准条款相关
|
||
selectSarStandItems (id, flag) {
|
||
this.standItemSearch.standId = this.sarStandardsInfoEO.id
|
||
this.standItemSearch.fileType = this.fileType
|
||
this.$http.get('lawss/sarStandItems/getSarStandItemsList', this.standItemSearch, {
|
||
_this: this, loading: 'tableLoading'
|
||
}, res => {
|
||
this.selectedItemList = []
|
||
this.standItemList = res.data.list
|
||
if (this.standItemList != null && this.standItemList.length > 0) {
|
||
for (let ind = 0; ind < this.standItemList.length; ind++) {
|
||
// 去掉html标签
|
||
let itemContent = this.standItemList[ind].termsConditions
|
||
itemContent = itemContent ? itemContent.replace(/<.*?>/ig, ' ') : ''
|
||
this.standItemList[ind].termsConditions = itemContent
|
||
}
|
||
}
|
||
this.standitemTotal = res.data.count // 分页需要
|
||
}, e => {
|
||
})
|
||
},
|
||
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
|
||
} 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.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: true,
|
||
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: true
|
||
}).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.showItemInfoModal = true
|
||
let fileList = []
|
||
item.defaultFileList = []
|
||
this.standShowItemEO = JSON.parse(JSON.stringify(item))
|
||
if (this.standShowItemEO.tackTime != null && this.standShowItemEO.tackTime !== '') {
|
||
this.standShowItemEO.tackTime = this.standShowItemEO.tackTime.split(' ')[0]
|
||
}
|
||
this.standShowItemEO.applyArctic = this.standShowItemEO.applyArcticShow // 将编辑的显示字段赋值
|
||
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
|
||
}
|
||
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 ? 'half' : ''
|
||
},
|
||
|
||
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()
|
||
}
|
||
},
|
||
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
|
||
},
|
||
title() {
|
||
return `${this.rukuBaseInfo.standSortShow} ${this.rukuBaseInfo.standName} (${this.rukuBaseInfo.textStatus})`
|
||
},
|
||
prcInfo() {
|
||
return this.rukuBaseInfo
|
||
},
|
||
...mapGetters(['rukuBaseInfo'])
|
||
},
|
||
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 // 企标覆盖关系
|
||
// }, 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('lawss/sarSarAccessInfo/selectProTimeInfoByStandId', {
|
||
// standId: 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')
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
@import '~@/assets/styles/mixins';
|
||
@import '~@/assets/styles/style';
|
||
.ruku-detail{
|
||
padding: 15px 30px 0;
|
||
width: 1200px;
|
||
margin: 0 auto;
|
||
height: 100%;
|
||
/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: 18px;
|
||
font-weight: 400;
|
||
.standard-text{
|
||
height: 50px;
|
||
line-height: 50px;
|
||
border-bottom: 1px solid #E5E5E5;
|
||
}
|
||
& > p{
|
||
min-height: 55px;
|
||
line-height: 55px;
|
||
}
|
||
}
|
||
}
|
||
.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{
|
||
margin-bottom: 20px;
|
||
.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: 18px;
|
||
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;
|
||
border-bottom: 2px dashed #D1D1D1;
|
||
.modular-header{
|
||
height: 60px;
|
||
border-bottom: none;
|
||
}
|
||
.basic-information-content{
|
||
& > p{
|
||
min-height: 55px;
|
||
line-height: 55px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.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;
|
||
}
|
||
}
|
||
::v-deep .el-drawer__header{
|
||
&>span:first-child{
|
||
outline: none!important;
|
||
}
|
||
}
|
||
::v-deep .el-drawer{
|
||
outline: none!important;
|
||
}
|
||
</style>
|