3285 lines
127 KiB
Vue
3285 lines
127 KiB
Vue
<!--企标详情页-->
|
||
<template>
|
||
<div class="other-standard-details v-class" :class="{'hidden': !isMoreAwayBtn}">
|
||
<!--title 标题-->
|
||
<div class="details-header">
|
||
<span>{{sarStandardsInfoEO.standCode}} 《{{sarStandardsInfoEO.standName}}》 企标详情</span>
|
||
<!-- 之前的,先注掉-->
|
||
<!-- <span>{{sarStandardsInfoEO.standCode}}-{{sarStandardsInfoEO.standYear}} 《{{sarStandardsInfoEO.standName}}》 企标详情</span>-->
|
||
</div>
|
||
<!--主体内容-->
|
||
<div class="details-content" style="position: relative">
|
||
<div class="details-content-modular basic-information" style="border-top: 2px dashed #D1D1D1;">
|
||
</div>
|
||
<div
|
||
class="details-content-modular clearfix"
|
||
v-for="(item, index) in dynamicFormField"
|
||
:key="index"
|
||
v-if="item.isShowImp === '0'"
|
||
>
|
||
<el-collapse v-model="activeNames" @change="handleChange">
|
||
<div v-if="item.label === '基础信息'" class="details-content-modular basic-information"
|
||
style="border-top:none;position: absolute;right: 36px;">
|
||
<div class="modular-header" style="height: 50px;">
|
||
<div class="modular-header-btn">
|
||
<el-button type="warning" icon="el-icon-edit" @click="businessCommentDialog = true">企标评价</el-button>
|
||
<el-dialog title="企业标准评价" :visible.sync="businessCommentDialog" :width="(commentAverageScoreTag === '1' && commentActiveName !== 'dynamicComment')?'90%':'65%'" :close-on-click-modal="false">
|
||
<el-tabs v-model="commentActiveName" @tab-click="tabsClick">
|
||
<el-tab-pane label="动态评价" name="dynamicComment">
|
||
<el-table ref="businessCommentTable" :data="businessCommentTable.filter((v) => v.code !== '3U9lb')" border style="width: 100%; flex: auto;margin-bottom: 2%"
|
||
class="comment-table"
|
||
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
|
||
fontWeight: 'bold', height: '48px'}">
|
||
<el-table-column
|
||
type="index"
|
||
label="序号"
|
||
width="55"
|
||
align="center"
|
||
/>
|
||
<el-table-column prop="threeIndexTitle" label="评价指标" width="300">
|
||
<!--commentTarget-->
|
||
<template slot-scope="scope">
|
||
<span>{{scope.row.threeIndexTitle}}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="targetScore" label="指标分值" width="165">
|
||
<template slot-scope="scope">
|
||
<el-col :span="20">
|
||
<el-rate
|
||
v-model="scope.row.targetScore"
|
||
@change="targetScoreChange(scope.row)"
|
||
allow-half>
|
||
</el-rate>
|
||
</el-col>
|
||
<b style="margin-left: 5px;font-size: 12px;color: #ff9900">{{ scope.row.targetScore * 2 }}</b>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column property="reason" label="简述理由">
|
||
<template slot-scope="scope">
|
||
<el-input clearable size="mini" placeholder="请简述评分理由" @change="commentReasonChange(scope.row)" v-model="scope.row.commentReason" />
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<el-form :model="businessCommentForm">
|
||
<el-form-item label="动态评价分值">
|
||
<el-col :span="4">
|
||
<el-rate
|
||
v-model="businessCommentForm.averageScore"
|
||
disabled
|
||
style="margin-top: 12px">
|
||
</el-rate>
|
||
</el-col>
|
||
<b style="margin-top: 5px;margin-left: -2%;color: #ff9900">{{ businessCommentForm.averageScore * 2 }}</b>
|
||
</el-form-item>
|
||
<el-form-item label="对标准的意见和建议,是否需要修订">
|
||
<template>
|
||
<el-radio v-model="businessCommentForm.revise" label="1">是</el-radio>
|
||
<el-radio v-model="businessCommentForm.revise" label="0">否</el-radio>
|
||
<el-input v-show="businessCommentForm.revise === '1'"
|
||
v-model="businessCommentForm.reviseReason"
|
||
placeholder="请填写修订理由"
|
||
type="textarea"
|
||
:rows="2"></el-input>
|
||
</template>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div style="padding-left: 80%">
|
||
<el-button
|
||
type="primary"
|
||
class="common-button-primary"
|
||
size="mini"
|
||
:loading="commentSubmitLoading"
|
||
icon="el-icon-check"
|
||
@click="commentSubmit"
|
||
>提交
|
||
</el-button>
|
||
<el-button
|
||
size="mini"
|
||
icon="el-icon-close"
|
||
class="common-button-default"
|
||
@click="businessCommentDialog = false"
|
||
>取消
|
||
</el-button>
|
||
</div>
|
||
</el-tab-pane>
|
||
<el-tab-pane label="历史评价" name="historyComment">
|
||
<el-form>
|
||
<el-row>
|
||
<el-col :span="10" :offset="4">
|
||
<el-form-item>
|
||
<el-radio v-model="commentAverageScoreTag" label="1" border @change="tabsClick">质量评价总平均分</el-radio>
|
||
<b style="margin-top: 30px;margin-left: 5px;font-size: 20px;color: #ff9900">{{
|
||
qualityCommentScore * 2
|
||
}}</b>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="8" :offset="2">
|
||
<el-form-item>
|
||
<el-radio v-model="commentAverageScoreTag" label="2" border @change="tabsClick">动态评价总平均分</el-radio>
|
||
<b style="margin-top: 30px;margin-left: 5px;font-size: 20px;color: #ff9900">{{
|
||
dynamicCommentScore * 2
|
||
}}</b>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row>
|
||
<el-col :span="4">
|
||
<el-table
|
||
v-if="commentAverageScoreTag === '1'"
|
||
:data="qualityHistoryPeopleTable"
|
||
empty-text="无人评价"
|
||
style="width: 100%"
|
||
height="345px"
|
||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
||
fontWeight: 'bold', height: '48px'}">
|
||
<el-table-column
|
||
prop="historyPeopleName"
|
||
align="center"
|
||
label="质量评价人"
|
||
width="130px"
|
||
show-overflow-tooltip>
|
||
<template slot-scope="scope">
|
||
<el-button type="default"
|
||
style="width: 100px;" size="mini" @click="historyPeopleChange(scope.row)">
|
||
{{ scope.row.userName }}
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<el-table
|
||
v-else-if="commentAverageScoreTag === '2'"
|
||
:data="dynamicHistoryPeopleTable"
|
||
empty-text="无人评价"
|
||
style="width: 100%"
|
||
height="345px"
|
||
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
|
||
fontWeight: 'bold', height: '48px'}">
|
||
<el-table-column
|
||
prop="historyPeopleName"
|
||
align="center"
|
||
label="动态评价人"
|
||
width="130px"
|
||
show-overflow-tooltip>
|
||
<template slot-scope="scope">
|
||
<el-button type="default"
|
||
style="width: 100px;" size="mini" @click="historyPeopleChange(scope.row)">
|
||
{{ scope.row.userName }}
|
||
</el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</el-col>
|
||
<el-col :span="20" >
|
||
<div style="width: 100%;padding: 0 1% 2% 0" v-loading="historyInfoLoading" v-show="commentAverageScoreTag === '1'">
|
||
<el-table
|
||
:data="qualityHistoryCommentTable"
|
||
:summary-method="getSummaries"
|
||
show-summary
|
||
:span-method="(({row, column, rowIndex, columnIndex})=>objectSpanMethod({row, column, rowIndex, columnIndex},qualityHistoryCommentTable))"
|
||
style="width: 100%">
|
||
<el-table-column label="企业标准编写质量评价表" align="center" label-class-name="column1">
|
||
<el-table-column
|
||
label="标准代号"
|
||
>
|
||
<el-table-column
|
||
prop="oneIndexTitle"
|
||
align="center"
|
||
label="一级指标"
|
||
width = '120'
|
||
>
|
||
</el-table-column>
|
||
</el-table-column>
|
||
<el-table-column
|
||
:label="sarStandardsInfoEO.standCode"
|
||
>
|
||
<el-table-column
|
||
prop="twoIndexTitle"
|
||
align="center"
|
||
label="二级指标"
|
||
width = '120'
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="threeIndexTitle"
|
||
label="三级指标"
|
||
width="300"
|
||
>
|
||
</el-table-column>
|
||
</el-table-column>
|
||
<el-table-column
|
||
label="标准名称"
|
||
>
|
||
<el-table-column
|
||
prop="weight"
|
||
align="center"
|
||
label="指标权重 %"
|
||
width = '100'
|
||
>
|
||
<template slot-scope="scope">
|
||
{{scope.row.valueType === 'number' ? scope.row.weight * 100 : '加分项('+scope.row.weight+'分)'}}
|
||
</template>
|
||
</el-table-column>
|
||
</el-table-column>
|
||
<el-table-column
|
||
:label="sarStandardsInfoEO.standName"
|
||
>
|
||
<el-table-column
|
||
prop="targetScore"
|
||
align="center"
|
||
label="指标分值(10分制)优≥8分;合格6~8分;不合格<6分"
|
||
width = '200'
|
||
>
|
||
<template slot-scope="scope">
|
||
<el-form-item
|
||
:prop="'qualityHistoryCommentTable.'+scope.$index + '.targetScore'">
|
||
<el-input v-model.number="scope.row.targetScore" placeholder="请填写分值" />
|
||
</el-form-item>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="scoreMin"
|
||
align="center"
|
||
label="分值小计"
|
||
width = '80'
|
||
>
|
||
<template slot-scope="scope">
|
||
{{setScoreMin(scope.row)}}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="commentReason"
|
||
align="center"
|
||
label="简述扣分理由(不合格<6分,必填)"
|
||
>
|
||
<template slot-scope="scope" v-if="scope.row.valueType !== 'add'">
|
||
<el-form-item
|
||
:prop="'qualityHistoryCommentTable.'+scope.$index + '.commentReason'">
|
||
<el-input v-model="scope.row.commentReason" placeholder="请填写扣分理由" />
|
||
</el-form-item>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table-column>
|
||
</el-table-column>
|
||
</el-table>
|
||
</div>
|
||
<div style="width: 100%" v-loading="historyInfoLoading" v-show="commentAverageScoreTag === '2'">
|
||
<el-table ref="businessCommentTable" :data="dynamicHistoryCommentTable.filter((v) => v.code !== '3U9lb')" border style="width: 100%; flex: auto;margin-bottom: 2%"
|
||
class="comment-table"
|
||
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
|
||
fontWeight: 'bold', height: '48px'}">
|
||
<el-table-column
|
||
type="index"
|
||
label="序号"
|
||
width="55"
|
||
align="center"
|
||
/>
|
||
<el-table-column prop="threeIndexTitle" label="评价指标" width="300">
|
||
<!--commentTarget-->
|
||
<template slot-scope="scope">
|
||
<span>{{scope.row.indexTitle}}</span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="targetScore" label="指标分值" width="165">
|
||
<template slot-scope="scope">
|
||
<el-col :span="20">
|
||
<el-rate
|
||
v-model="scope.row.targetScore / 2"
|
||
disabled
|
||
allow-half>
|
||
</el-rate>
|
||
</el-col>
|
||
<b style="margin-left: 5px;font-size: 12px;color: #ff9900">{{ parseInt(scope.row.targetScore) }}</b>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column property="reason" label="简述理由">
|
||
<template slot-scope="scope">
|
||
<el-input clearable size="mini" placeholder="该用户没有填写评分理由" disabled v-model="scope.row.commentReason" />
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<el-form :model="historyCommentForm">
|
||
<el-form-item label="动态评价分值">
|
||
<el-col :span="5">
|
||
<el-rate
|
||
v-model="historyCommentForm.averageScore / 2"
|
||
disabled
|
||
style="margin-top: 12px;">
|
||
</el-rate>
|
||
</el-col>
|
||
<b style="margin-top: 5px;margin-left: -2%;color: #ff9900">{{ historyCommentForm.averageScore }}</b>
|
||
</el-form-item>
|
||
<el-form-item label="对标准的意见和建议,是否需要修订">
|
||
<template>
|
||
<el-radio v-model="historyCommentForm.revise" label="1" disabled>是</el-radio>
|
||
<el-radio v-model="historyCommentForm.revise" label="0" disabled>否</el-radio>
|
||
<el-input v-show="historyCommentForm.revise === '1'"
|
||
v-model="historyCommentForm.reviseReason"
|
||
disabled
|
||
placeholder="请填写修订理由"
|
||
type="textarea"
|
||
:rows="2"></el-input>
|
||
</template>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
</el-form>
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
</el-dialog>
|
||
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="el-icon-star-on" :loading="isSubmit"></el-button>
|
||
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off" :loading="isSubmit"></el-button>
|
||
<el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新记录</el-button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<el-collapse-item :name="item.label" @click.native="handleChange1(item.label)">
|
||
<template slot="title">
|
||
<div class="modular-header" v-if="item.label !== '基础信息'">
|
||
<div class="modular-header-title"><i class="icon-modular-title"/><span>{{ item.label }}</span></div>
|
||
</div>
|
||
<div class="modular-header" v-if="item.label === '基础信息'">
|
||
<div class="modular-header-title"><i class="icon-modular-title"/><span>{{ item.label }}</span></div>
|
||
<!-- <div class="modular-header-title"><i class="icon-modular-title" /><span>企标信息</span>-->
|
||
<!-- </div>-->
|
||
</div>
|
||
</template>
|
||
<div class="modular-content">
|
||
<template v-if = "item.label === '基础信息'">
|
||
<div class="details-content-modular basic-information" style="margin-bottom: 0">
|
||
<div class="basic-information-content">
|
||
<p class="" style="color: #C42626;"><label style=" margin-right: 171px;">企标号</label><span>{{ sarStandardsInfoEO.standCode }}</span></p>
|
||
<template v-for="(child, childIndex) in item.child1">
|
||
<p class="files-title"
|
||
>
|
||
<label style=" margin-right: 172px;">{{ child.attrName }}</label>
|
||
<template v-if="child.value && child.value.length > 0" v-for="(file, fileIndex) in child1Func(child.value)">
|
||
<span>
|
||
<a style="font-size: 16px;color: #409EFF;cursor: pointer" @click="openFileInPdf(file.id, file.oldFileName)" target="_blank" :title="file.oldFileName">{{ file.oldFileName | ellipsis }}</a>
|
||
<i
|
||
title="下载"
|
||
@click="downloadFile(file.id)"
|
||
class="icon-download"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '9882f477aad895ec56a7464f3e9c0b11'"
|
||
/>
|
||
<i
|
||
title="下载带水印"
|
||
v-show="file.fileSuffix === 'pdf' || file.fileSuffix === 'PDF'"
|
||
@click="downloadFileByWater(file.id, file.fileSuffix)"
|
||
class="icon-download2"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '9bab2662fbd9d0507b39be813371a597'"
|
||
/>
|
||
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
|
||
</span>
|
||
<!-- <el-button-->
|
||
<!-- v-if="child.attrField === itemNam "-->
|
||
<!-- v-for="(itemNam,index) in itemExistList"-->
|
||
<!-- :key="index"-->
|
||
<!-- @click="showItemsModel(child.attrField)"-->
|
||
<!-- class="decomposition-btn"-->
|
||
<!-- style="right:62px"-->
|
||
<!-- icon="icon-separate"-->
|
||
<!-- >标准分解单-->
|
||
<!-- </el-button>-->
|
||
<el-button v-if="child.value.length > 1" style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
|
||
class="decomposition-btn" icon="icon-relation" @click="relateEvent1(child.value)">更多</el-button>
|
||
</template>
|
||
<template v-if="child.value === null" >-</template>
|
||
</p>
|
||
</template>
|
||
<p><label style="margin-right: 157px;">中文名称</label><span>{{ sarStandardsInfoEO.standName || '-' }}</span></p>
|
||
<p v-if="activeState"><label style=" margin-right: 157px;">英文名称</label><span>{{ sarStandardsInfoEO.standEnName || '-' }}</span></p>
|
||
<p class="half">
|
||
<label style=" margin-right: 156px;"
|
||
title="“修订中”为现行有效版本;“已修订”标准的有效性需根据实际实施情况判定"
|
||
>文本状态</label><span style="color: #409EFF;">{{ sarStandardsInfoEO.standStatusShow || '-' }}</span>
|
||
</p>
|
||
<p class="half"><label style=" margin-right: 157px;">发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
|
||
<p class="half" style=""><label style=" margin-right: 122px;">标准实施日期</label><span>{{ sarStandardsInfoEO.putTime || '-' }}</span></p>
|
||
<template
|
||
v-for="(child, childIndex) in item.child"
|
||
v-if="child.isShowImp === '0'"
|
||
>
|
||
<p class="half">
|
||
<label style=" margin-right: 157px;" :title="child.attrName">{{child.attrName}}</label>
|
||
<span :title="child.value || '-'">
|
||
<template v-if="child.value">
|
||
{{ child.value }}
|
||
</template>
|
||
<template v-else>
|
||
{{ '-' }}
|
||
</template>
|
||
</span>
|
||
</p>
|
||
</template>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<template
|
||
v-for="(child, childIndex) in item.child"
|
||
v-if="child.isShowImp === '0' && item.label !== '基础信息'"
|
||
>
|
||
<div
|
||
:key="childIndex"
|
||
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
|
||
>
|
||
<label class="modular-content-p-name" :title="child.attrName">{{ child.attrName }}</label>
|
||
<span
|
||
v-if="child.attrField === 'ZYQCR'"
|
||
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>
|
||
<!--规范性引用文件-->
|
||
<template v-else-if="child.attrField === 'GFXYYWJ' && child.value">
|
||
<p class="modular-content-p-val">
|
||
<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>
|
||
</template>
|
||
<!--相关流程-->
|
||
<template v-else-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 === 'XGJH' && child.value">
|
||
<span
|
||
v-if="child.value.length === 0"
|
||
class="modular-content-p-val"
|
||
:title="'-'"
|
||
>
|
||
{{ '-' }}
|
||
</span>
|
||
<p v-else class="modular-content-p-val">
|
||
<span v-for="(item, index) in child.value" :key="index">
|
||
<a @click="showXGJH(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;" class="span-line">查看计划</a>
|
||
</span>
|
||
</p>
|
||
</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"
|
||
>
|
||
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
|
||
<i title="下载" @click="downloadFile(file.id)" class="icon-download" v-btn-permission="'9882f477aad895ec56a7464f3e9c0b11'"/>
|
||
<i title="下载带水印" @click="downloadFileByWater(file.id, file.fileSuffix)" class="icon-download2" v-btn-permission="'9bab2662fbd9d0507b39be813371a597'"/>
|
||
<!-- <span class="time-text">上传时间:{{ dateFormat(file.modifyTime) }}</span>-->
|
||
</p>
|
||
<!-- <el-button-->
|
||
<!-- @click="showItemsModel(child.attrField)"-->
|
||
<!-- class="decomposition-btn"-->
|
||
<!-- icon="icon-separate"-->
|
||
<!-- >标准分解单</el-button>-->
|
||
</div>
|
||
</div>
|
||
|
||
</template>
|
||
</div>
|
||
</el-collapse-item>
|
||
</el-collapse>
|
||
</div>
|
||
</div>
|
||
<!-- <div v-show="!isMoreAwayBtn" class="more" @click="moreClick">更多<img src="@/assets/images/shangqi/img/more.png"></div>-->
|
||
<!-- <div v-show="isMoreAwayBtn" class="put-away" @click="putAwayClick">收起<img src="@/assets/images/shangqi/img/more.png"></div>-->
|
||
<!--查看标准条目列表-->
|
||
<el-drawer
|
||
title="查看分解单"
|
||
:wrapperClosable="false"
|
||
:visible.sync="modalStandItemflag"
|
||
size="80%"
|
||
class="not-footer-drawer"
|
||
>
|
||
<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">导出</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>
|
||
</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
|
||
prop="itemsNum"
|
||
label="条款号"
|
||
width="150"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="itemsName"
|
||
label="条款名称"
|
||
width="150"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="termsConditions"
|
||
label="内容简介"
|
||
width="250"
|
||
>
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="responsibleUnitShow"
|
||
label="责任部门"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="fo"
|
||
label="FO"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="dutyEngineerShow"
|
||
label="责任工程师"
|
||
width="150">
|
||
</el-table-column>
|
||
<el-table-column
|
||
prop="svpps"
|
||
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">
|
||
</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"
|
||
size="800px"
|
||
>
|
||
<div class="demo-drawer-content">
|
||
<el-form
|
||
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-form-item
|
||
label="责任部门"
|
||
prop="responsibleUnit"
|
||
class="add-form-item"
|
||
>
|
||
<el-input v-model="standItemEO.responsibleUnit" v-show="false" />
|
||
<el-popover
|
||
placement="bottom"
|
||
popper-class="user-dept-popper"
|
||
trigger="click"
|
||
:value="false"
|
||
>
|
||
<el-input
|
||
slot="reference"
|
||
v-model="standItemEO.orgName"
|
||
placeholder="根据责任部门查找"
|
||
readonly
|
||
clearable
|
||
id="deptBtnS"
|
||
/>
|
||
<div class="api">
|
||
<laws-tree
|
||
:zNodes="zNodesSItem"
|
||
treeDivId="zNodesSItem"
|
||
deptSelect
|
||
showRMenu
|
||
@treeDblClick="treeDblClickS"
|
||
class="ztree" style="width: 200px;height: 400px;overflow: auto">
|
||
</laws-tree>
|
||
</div>
|
||
</el-popover>
|
||
</el-form-item>
|
||
<el-form-item label="FO" prop="fo" class="add-form-item">
|
||
<el-input v-model="standItemEO.fo" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="责任工程师" prop="dutyEngineer" class="add-form-item">
|
||
<el-input v-model="standItemEO.dutyEngineer" v-show="false"></el-input>
|
||
<el-popover placement="bottom" popper-class="user-dept-popper" trigger="click">
|
||
<el-input
|
||
v-model="standItemEO.dutyEngineerShow"
|
||
placeholder="请选择责任工程师"
|
||
readonly
|
||
id="enginBtnS"
|
||
slot="reference"
|
||
/>
|
||
<div class="api">
|
||
<dept-tree treeDivId="zNodesSItemEngin"
|
||
ref="zNodesSItemEngin"
|
||
allDept
|
||
showUser
|
||
:editable="false"
|
||
@treeDblClick="(treeId, treeNode) => treeDblClickEngin(treeId, treeNode)"
|
||
style="height: 300px;overflow: auto">
|
||
</dept-tree>
|
||
</div>
|
||
</el-popover>
|
||
</el-form-item>
|
||
<el-form-item label="svpps" prop="svpps" class="add-form-item">
|
||
<el-input v-model="standItemEO.svpps" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
|
||
</el-form-item>
|
||
<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-input v-model="standItemEO.busStandCover" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
|
||
</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.fo">{{ standShowItemEO.fo }}</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.svpps">{{ standShowItemEO.svpps }}</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.busStandCover">{{ standShowItemEO.busStandCover }}</span>
|
||
</div>
|
||
</div>
|
||
</el-drawer>
|
||
<!-- 更新LOG -->
|
||
<el-dialog
|
||
title="更新LOG"
|
||
:visible.sync="relateDialog"
|
||
width="60%"
|
||
class="relateClass"
|
||
:before-close="relateDialogClose">
|
||
<div
|
||
v-for="(item, index) in relateNowList"
|
||
:key="index"
|
||
v-if="relateNowList"
|
||
style="margin-bottom: 10px;line-height: 20px"
|
||
>
|
||
{{index+1}}. {{item.creationUserName}} {{item.creationTime}} {{item.content}}
|
||
<div v-if="relateNowList.length >1">
|
||
<el-divider></el-divider>
|
||
</div>
|
||
</div>
|
||
<span slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="relateDialogClose()">关 闭</el-button>
|
||
</span>
|
||
</el-dialog>
|
||
<el-dialog
|
||
title="更多发布稿"
|
||
:visible.sync="relateDialog1"
|
||
class="relateClass"
|
||
width="40%"
|
||
:before-close="relateDialogClose1">
|
||
<div
|
||
v-for="(file, index) in relateNowList1"
|
||
:key="index"
|
||
v-if="relateNowList1"
|
||
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
|
||
>
|
||
{{ index + 1 }}.
|
||
<a style="font-size: 16px;color: #409EFF;cursor: pointer" @click="openFileInPdf(file.id, file.oldFileName)" target="_blank" :title="file.oldFileName">{{ file.oldFileName }}</a>
|
||
<i
|
||
title="下载"
|
||
@click="downloadFile(file.id)"
|
||
class="icon-download"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '9882f477aad895ec56a7464f3e9c0b11'"
|
||
/>
|
||
<i
|
||
title="下载带水印"
|
||
@click="downloadFileByWater(file.id, file.fileSuffix)"
|
||
class="icon-download2"
|
||
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '9bab2662fbd9d0507b39be813371a597'"
|
||
/>
|
||
<div v-if="relateNowList.length >1">
|
||
<el-divider></el-divider>
|
||
</div>
|
||
</div>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button type="primary" @click="relateDialogClose1">关 闭</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 导入失败-->
|
||
<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>
|
||
<!-- 查看企标计划条目 -->
|
||
<el-drawer
|
||
title="查看"
|
||
:visible.sync="visiblePlanCheck"
|
||
:wrapperClosable="false"
|
||
size="800px"
|
||
>
|
||
<div class="demo-drawer-content">
|
||
<div class="el-drawer-form">
|
||
<el-form
|
||
ref="form"
|
||
:model="form"
|
||
class="label-input-form"
|
||
>
|
||
<el-form-item
|
||
label="企标编号"
|
||
prop="standCode"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ form.standCode }}</p>
|
||
</el-form-item>
|
||
<!-- <el-form-item-->
|
||
<!-- label="企标类别"-->
|
||
<!-- prop="standSortShow"-->
|
||
<!-- label-width="150px"-->
|
||
<!-- class="add-form-item"-->
|
||
<!-- >-->
|
||
<!-- <p>{{ form.standSortShow }}</p>-->
|
||
<!-- </el-form-item>-->
|
||
<el-form-item
|
||
label="计划状态"
|
||
prop="planStatus"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ getPlanStatusName(form.planStatus) }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="计划类型"
|
||
prop="planType"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ getPlanTypeName(form.planType) }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="修订企标"
|
||
prop="reviseBussStand"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
v-if="form.planType === '2'">
|
||
<p>{{ form.reviseBussStand }}</p>
|
||
</el-form-item>
|
||
|
||
<el-form-item
|
||
label="企标名称"
|
||
prop="cnName"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ form.cnName }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="英文名称"
|
||
prop="enName"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ form.enName }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="代替企标编号"
|
||
prop="replacedStandNum"
|
||
label-width="150px"
|
||
class="add-form-item select-and-input">
|
||
<p>{{ form.replacedStandNum }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="主起草部门"
|
||
prop="compilersUser"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<div class="tag-group" v-if="form.primaryDrafterDeptName">
|
||
<template
|
||
v-for="(tag, index) in form.primaryDrafterDeptName.split(',')"
|
||
>
|
||
<div class="tag-wrap" :key="index">
|
||
<el-tag size="small">{{
|
||
tag
|
||
}}</el-tag>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="主起草人"
|
||
prop="compilersUser"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<div class="tag-group" v-if="form.primaryDrafterName">
|
||
<template
|
||
v-for="(tag, index) in form.primaryDrafterName.split(',')"
|
||
>
|
||
<div class="tag-wrap" :key="index">
|
||
<el-tag size="small">{{
|
||
tag
|
||
}}</el-tag>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="起草部门"
|
||
prop="otherDrafterDept"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<div class="tag-group" v-if="form.otherDrafterDeptName">
|
||
<template
|
||
v-for="(tag, index) in form.otherDrafterDeptName.split(',')"
|
||
>
|
||
<div class="tag-wrap" :key="index">
|
||
<el-tag size="small">{{
|
||
tag
|
||
}}</el-tag>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="其他起草人"
|
||
prop="compilersUser"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<div class="tag-group" v-if="form.compilersUserName">
|
||
<template
|
||
v-for="(tag, index) in form.compilersUserName.split(',')"
|
||
>
|
||
<div class="tag-wrap" :key="index">
|
||
<el-tag size="small">{{
|
||
tag
|
||
}}</el-tag>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</el-form-item>
|
||
<!-- <el-form-item-->
|
||
<!-- label="起草分标委"-->
|
||
<!-- prop="draftCommittee"-->
|
||
<!-- label-width="150px"-->
|
||
<!-- class="add-form-item"-->
|
||
<!-- >-->
|
||
<!-- <p>{{ getFBWName(form.draftCommittee) }}</p>-->
|
||
<!-- </el-form-item>-->
|
||
<el-form-item
|
||
label="相关部门"
|
||
prop="compileUnitName"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<div class="tag-group" v-if="form.compileUnitName">
|
||
<template
|
||
v-for="(tag, index) in form.compileUnitName.split(',')"
|
||
>
|
||
<div class="tag-wrap" :key="index">
|
||
<el-tag size="small">{{ tag }}</el-tag>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="标准密级"
|
||
prop="standLevel"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ getStandLevelName(form.standLevel) }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="计划开始编写日期"
|
||
prop="planStartTime"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>
|
||
{{
|
||
form.putTime
|
||
? $dateFormat(new Date(form.planStartTime), "yyyy-MM-dd")
|
||
: "-"
|
||
}}
|
||
</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="计划发布日期"
|
||
prop="putTime"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>
|
||
{{
|
||
form.planStartTime
|
||
? $dateFormat(new Date(form.putTime), "yyyy-MM-dd")
|
||
: "-"
|
||
}}
|
||
</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="涉及的会签部门"
|
||
prop="compileUnitName"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<div class="tag-group" v-if="form.compileUnitName">
|
||
<template
|
||
v-for="(tag, index) in form.compileUnitName.split(',')"
|
||
>
|
||
<div class="tag-wrap" :key="index">
|
||
<el-tag size="small">{{ tag }}</el-tag>
|
||
</div>
|
||
</template>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="相关流程"
|
||
prop="putTime"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>
|
||
{{
|
||
form.prcNum
|
||
? form.prcNum
|
||
: "-"
|
||
}}
|
||
</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="标准制修订来源*"
|
||
prop="planSource"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<!-- <el-select v-model="form.planSource"-->
|
||
<!-- placeholder="请选择标准制修订来源"-->
|
||
<!-- clearable>-->
|
||
<!-- <el-option-->
|
||
<!-- v-for="opt in formOption.STANDSOURCEREVISION"-->
|
||
<!-- :key="opt.value"-->
|
||
<!-- :value="opt.value"-->
|
||
<!-- :label="opt.label"></el-option>-->
|
||
<!-- </el-select>-->
|
||
<p>{{ getPlanSourceName(form.planSource) }}</p>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="制修订原因"
|
||
prop="planReason"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<!-- <el-input-->
|
||
<!-- type="textarea"-->
|
||
<!-- v-model="form.planReason"-->
|
||
<!-- placeholder="请填写制修订原因"-->
|
||
<!-- maxlength="100"-->
|
||
<!-- :autosize="{ minRows: 2, maxRows: 4}"-->
|
||
<!-- show-word-limit-->
|
||
<!-- ></el-input>-->
|
||
<p>{{ form.planReason }}</p>
|
||
<!-- 制修订原因附件上传 -->
|
||
<div class="file-wrap">
|
||
<p
|
||
v-for="item in form.planReasonFileList"
|
||
:key="item.id"
|
||
@click="downloadFile(item.id)"
|
||
>
|
||
{{ item.oldFileName }}
|
||
</p>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="验证工作"
|
||
prop="testWork"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<!-- <el-input-->
|
||
<!-- type="textarea"-->
|
||
<!-- v-model="form.testWork"-->
|
||
<!-- placeholder="请输入验证工作"-->
|
||
<!-- maxlength="100"-->
|
||
<!-- :autosize="{ minRows: 2, maxRows: 4}"-->
|
||
<!-- show-word-limit-->
|
||
<!-- ></el-input>-->
|
||
<p>{{ form.testWork || "-" }}</p>
|
||
<!-- 验证工作附件上传 -->
|
||
<div class="file-wrap">
|
||
<p
|
||
v-for="item in form.testWorkFileList"
|
||
:key="item.id"
|
||
@click="downloadFile(item.id)"
|
||
>
|
||
{{ item.oldFileName }}
|
||
</p>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item
|
||
label="项目影响"
|
||
prop="planImpact"
|
||
label-width="150px"
|
||
class="add-form-item"
|
||
>
|
||
<p>{{ form.planImpact || "-" }}</p>
|
||
<!-- 项目影响附件上传 -->
|
||
<div class="file-wrap">
|
||
<p
|
||
v-for="item in form.planImpactFileLis"
|
||
:key="item.id"
|
||
@click="downloadFile(item.id)"
|
||
>
|
||
{{ item.oldFileName }}
|
||
</p>
|
||
</div>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
</el-drawer>
|
||
<loading :loading="loading">数据获取中</loading>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import PutQuestionButton from '@/components/PutQuestionButton'
|
||
import {dateFormat} from '../../../common/date'
|
||
import { getBusStandFileByAttId } from 'api/process'
|
||
|
||
|
||
const sarType = 'BUSS'
|
||
export default {
|
||
name: 'OtherStandardDetails',
|
||
components: {
|
||
PutQuestionButton
|
||
},
|
||
filters: {
|
||
ellipsis (value) {
|
||
if (!value) return ''
|
||
if (value.length > 12) {
|
||
return value.slice(0,12) + '...'
|
||
}
|
||
return value
|
||
}
|
||
},
|
||
data () {
|
||
return {
|
||
commentAverageScoreTag: '1',
|
||
firstHistoryPeopleId: '',//最新评价的人的id
|
||
historyInfoLoading: false,//历史评价信息的loading
|
||
historyCommentForm: {
|
||
averageScore: 0, // 平均分值
|
||
revise: '',
|
||
reviseReason: '', // 修订理由
|
||
}, // 历史评价表单
|
||
dynamicHistoryCommentTable: [], // 动态评价历史评价表格
|
||
qualityHistoryCommentTable: [], // 质量评价历史评价表格
|
||
dynamicHistoryPeopleTable: [], // 动态评价历史评价人表格
|
||
qualityHistoryPeopleTable: [], // 质量评价历史评价人表格
|
||
dynamicCommentScore: 0,// 动态评价总平均分
|
||
qualityCommentScore: 0,// 质量评价总平均分
|
||
commentActiveName: 'dynamicComment',
|
||
indexType: 'dynamic',
|
||
commentReason: '', // 评价理由
|
||
commentReason1: '', // 评价理由
|
||
commentReason2: '', // 评价理由
|
||
commentReason3: '', // 评价理由
|
||
commentReason4: '', // 评价理由
|
||
commentSubmitLoading: false,
|
||
targetScore: '', // 指标分值
|
||
targetScore1: '',
|
||
targetScore2: '',
|
||
targetScore3: '',
|
||
targetScore4: '',
|
||
businessCommentDialog: false,
|
||
businessCommentForm: {
|
||
averageScore: '', // 平均分值
|
||
revise: '',
|
||
reviseReason: '', // 修订理由
|
||
},
|
||
businessCommentTable: [],
|
||
commentTarget: '', // 评价指标
|
||
activeNames: ['基础信息','过程稿件','实施日期'],
|
||
activeState: true,
|
||
visiblePlanCheck: false,
|
||
form: {},
|
||
relateDialog: false,
|
||
relateDialog1: false,
|
||
relateList: [],
|
||
relateNowList: [],
|
||
relateNowList1: [],
|
||
sarType: sarType,
|
||
loading: true,
|
||
showItemInfoModal: false,
|
||
standShowItemEO: {},
|
||
// 提交状态
|
||
isSubmit: false,
|
||
zNodesSItem: [],
|
||
zNodesSItemEngin: [],
|
||
sarStandardsInfoEO: {
|
||
id: '',
|
||
standType: 'INLAND', // 标准分类
|
||
country: 'CN',
|
||
standSort: '',
|
||
applyArctic: '',
|
||
standCode: '',
|
||
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: '',
|
||
dutyEngineer: '',
|
||
dutyEngineerShow: '',
|
||
svpps: '',
|
||
claimType: '',
|
||
busStandCover: '',
|
||
fileType: ''
|
||
}, // 标准条目新增过程中用到对象
|
||
applyArcticOptions: [], // 适用车型下拉框
|
||
emergyKindOptions: [], // 能源种类下拉框
|
||
itemModalTitle: '',
|
||
modalItemaddShowflag: false,
|
||
itemAddOrUPdateFlag: '',
|
||
itemFormdisableflag: false, // 查看标准条目不可编辑
|
||
recommendList: [],
|
||
showModalTitle: '',
|
||
replaceNumList: [],
|
||
replacedNumList: [],
|
||
// 代替,被代替标准号页面跳转
|
||
replaceStandInfoEO: {},
|
||
personCookieEO: {
|
||
cookieType: '',
|
||
resTitle: '',
|
||
resId: ''
|
||
},
|
||
saveStandType: 'BUSINESS',
|
||
opinionsProcessList: [], // 标准征求意见审批流程
|
||
notifiProcessList: [], // 标准法规实施通知及排查流程
|
||
modalStandItemflag: false,
|
||
tableLoading: false,
|
||
standItemSearch: {
|
||
standId: '',
|
||
responsibleUnit: '',
|
||
orgName: '',
|
||
validFlag: '0',
|
||
pageSize: this.$store.getters.userInfo.configContent,
|
||
page: 1,
|
||
nameOrRequest: '',
|
||
parts: ''
|
||
},
|
||
standitemTotal: 0,
|
||
searching: false,
|
||
searchInlandNodes: [], // 条目部门选择树形结构
|
||
standItemList: [],
|
||
tableHeight: null,
|
||
selectedItemList: [],
|
||
requestOptions: [],
|
||
sarStandardItemRules: {
|
||
itemsNum: [
|
||
{required: true, validator: this.verify.validateStandardItem, trigger: 'change'},
|
||
{type: 'string', max: 100, message: '条款号不能超过100个字符', trigger: 'change'}
|
||
],
|
||
itemsName: [
|
||
{required: true, message: '条款名称不能为空', trigger: 'change'},
|
||
{type: 'string', max: 500, message: '条款名称不能超过500个字符', 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: 4000, message: '内容简介不能超过4000个字符', 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'}
|
||
],
|
||
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: '',
|
||
importFailed: false,
|
||
importForm: {
|
||
content: ''
|
||
},
|
||
STANDSOURCEREVISION: []
|
||
}
|
||
},
|
||
props: {
|
||
},
|
||
watch: {
|
||
},
|
||
methods: {
|
||
historyPeopleChange(row){
|
||
this.historyInfoLoading = true
|
||
const allData = {
|
||
lawId: this.$route.params.id,
|
||
userId: row.userId,
|
||
evaluationType: this.indexType
|
||
}
|
||
if (this.indexType === 'quality'){
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
|
||
_this: this
|
||
}, res => {
|
||
this.qualityHistoryCommentTable = res.data
|
||
|
||
this.historyInfoLoading = false
|
||
}, e => {
|
||
this.historyInfoLoading = false
|
||
})
|
||
}else if (this.indexType === 'dynamic'){
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
|
||
_this: this
|
||
}, res => {
|
||
this.dynamicHistoryCommentTable = res.data
|
||
|
||
this.historyCommentForm.revise = res.data[0].targetScore
|
||
this.historyCommentForm.reviseReason = res.data[0].commentReason
|
||
|
||
let averageScore = 0
|
||
res.data.forEach(item => {
|
||
if (item.valueType === 'number'){
|
||
averageScore += parseInt(item.targetScore)
|
||
}
|
||
})
|
||
averageScore = averageScore / 4
|
||
this.historyCommentForm.averageScore = averageScore
|
||
this.historyInfoLoading = false
|
||
}, e => {
|
||
this.historyInfoLoading = false
|
||
})
|
||
}
|
||
|
||
},
|
||
tabsClick(tab, event){
|
||
this.historyInfoLoading = true
|
||
if (this.commentAverageScoreTag === '1'){
|
||
this.indexType = 'quality'
|
||
//查询评分表
|
||
const allData = {
|
||
lawId: this.$route.params.id,
|
||
userId: this.firstHistoryPeopleId,
|
||
evaluationType: this.indexType
|
||
}
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
|
||
_this: this
|
||
}, res => {
|
||
this.qualityHistoryCommentTable = res.data
|
||
this.historyInfoLoading = false
|
||
|
||
}, e => {
|
||
this.historyInfoLoading = false
|
||
})
|
||
}
|
||
else if (this.commentAverageScoreTag === '2'){
|
||
this.indexType = 'dynamic'
|
||
//查询评分表
|
||
const allData = {
|
||
lawId: this.$route.params.id,
|
||
userId: this.firstHistoryPeopleId,
|
||
evaluationType: this.indexType
|
||
}
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getEvaluationForm', allData , {
|
||
_this: this
|
||
}, res => {
|
||
this.dynamicHistoryCommentTable = res.data
|
||
this.historyCommentForm.revise = res.data[0].targetScore
|
||
this.historyCommentForm.reviseReason = res.data[0].commentReason
|
||
|
||
let averageScore = 0
|
||
res.data.forEach(item => {
|
||
if (item.valueType === 'number'){
|
||
averageScore += parseInt(item.targetScore)
|
||
}
|
||
})
|
||
averageScore = averageScore / 4
|
||
this.historyCommentForm.averageScore = averageScore
|
||
this.historyInfoLoading = false
|
||
}, e => {
|
||
this.historyInfoLoading = false
|
||
})
|
||
}
|
||
|
||
//查询动态评价总平均分和质量评价总平均分
|
||
let standId = this.$route.params.id
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getScore', {lawId:standId}, {
|
||
_this: this
|
||
}, res => {
|
||
this.qualityCommentScore = res.data.quality.toFixed(3)/2
|
||
this.dynamicCommentScore = res.data.dynamic.toFixed(3)/2
|
||
|
||
}, e => {
|
||
})
|
||
|
||
},
|
||
targetScoreChange(row){
|
||
if (this.targetScore1 === '') {
|
||
this.targetScore1 = 0
|
||
}
|
||
if (this.targetScore2 === '') {
|
||
this.targetScore2 = 0
|
||
}
|
||
if (this.targetScore3 === '') {
|
||
this.targetScore3 = 0
|
||
}
|
||
if (this.targetScore4 === '') {
|
||
this.targetScore4 = 0
|
||
}
|
||
switch (row.threeIndexTitle){
|
||
case "企业标准内容完整、要求合理(指标、流程等。)":
|
||
this.targetScore1 = 0
|
||
this.targetScore1 = row.targetScore
|
||
break
|
||
case "企业标准便于实施应用":
|
||
this.targetScore2 = 0
|
||
this.targetScore2 = row.targetScore
|
||
break
|
||
case "标准编写规范,内容清晰易理解":
|
||
this.targetScore3 = 0
|
||
this.targetScore3 = row.targetScore
|
||
break
|
||
case "标准对我的实际工作很有帮助":
|
||
this.targetScore4 = 0
|
||
this.targetScore4 = row.targetScore
|
||
break
|
||
}
|
||
this.businessCommentForm.averageScore = (this.targetScore1 + this.targetScore2 + this.targetScore3 +this.targetScore4)/4
|
||
|
||
|
||
},
|
||
commentReasonChange(row){
|
||
if (row.threeIndexTitle === '企业标准内容完整、要求合理(指标、流程等。)'){
|
||
this.commentReason1 = row.commentReason
|
||
}
|
||
if (row.threeIndexTitle === '企业标准便于实施应用'){
|
||
this.commentReason2 = row.commentReason
|
||
}
|
||
if (row.threeIndexTitle === '标准编写规范,内容清晰易理解'){
|
||
this.commentReason3 = row.commentReason
|
||
}
|
||
if (row.threeIndexTitle === '标准对我的实际工作很有帮助'){
|
||
this.commentReason4 = row.commentReason
|
||
}
|
||
|
||
},
|
||
commentSubmit(){
|
||
//验证必填
|
||
let submitFlag = true
|
||
if (this.targetScore1 === '' || this.targetScore1 === 0 ||
|
||
this.targetScore2 === '' || this.targetScore2 === 0 ||
|
||
this.targetScore3 === '' || this.targetScore3 === 0 ||
|
||
this.targetScore4 === '' || this.targetScore4 === 0) {
|
||
submitFlag = false
|
||
this.$message.warning('请评价指标分值')
|
||
}else if (
|
||
(this.commentReason1 === '' && this.targetScore1 < 3) ||
|
||
(this.commentReason2 === '' && this.targetScore2 < 3) ||
|
||
(this.commentReason3 === '' && this.targetScore3 < 3) ||
|
||
(this.commentReason4 === '' && this.targetScore4 < 3)
|
||
) {
|
||
submitFlag = false
|
||
this.$message.warning('请简述低分理由')
|
||
} else if (this.businessCommentForm.revise === ''){
|
||
submitFlag = false
|
||
this.$message.warning('请选择是否需要修订')
|
||
}else if (this.businessCommentForm.revise === '1' && this.businessCommentForm.reviseReason === ''){
|
||
submitFlag = false
|
||
this.$message.warning('请填写修订理由')
|
||
}
|
||
if (submitFlag === true) {
|
||
this.commentSubmitLoading = true
|
||
const allData = {
|
||
tableData: this.businessCommentTable,
|
||
formData: JSON.stringify(this.businessCommentForm),
|
||
standId: this.$route.params.id,
|
||
userId: this.$store.getters.userInfo.userId,
|
||
evaluationType: this.indexType
|
||
}
|
||
|
||
this.$http.postData('sarEnterpriseStandardEvaluation/quality-evaluation/submitEvaluationForm', allData, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.ok){
|
||
this.$message.success('提交成功')
|
||
this.commentSubmitLoading = false
|
||
//重新评分之后刷新历史评分人
|
||
let standId = this.$route.params.id
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getHistory', {lawId:standId}, {
|
||
_this: this
|
||
}, res => {
|
||
this.dynamicHistoryPeopleTable = []
|
||
this.dynamicHistoryPeopleTable = res.data.records
|
||
this.firstHistoryPeopleId = res.data.records[0].userId
|
||
|
||
}, e => {
|
||
})
|
||
}
|
||
}, e => {
|
||
})
|
||
|
||
|
||
}
|
||
},
|
||
getSummaries(param) {
|
||
const { columns, data } = param;
|
||
const sums = [];
|
||
columns.forEach((column, index) => {
|
||
if (index === 3) {
|
||
sums[index] = '合计:';
|
||
return;
|
||
}else if(index === 6){
|
||
sums[index] = '';
|
||
return;
|
||
}
|
||
const values = data.map(item => Number(item[column.property]));
|
||
if (!values.every(value => isNaN(value))) {
|
||
sums[index] = values.reduce((prev, curr) => {
|
||
const value = Number(curr);
|
||
if (!isNaN(value)) {
|
||
return prev + curr;
|
||
} else {
|
||
return prev;
|
||
}
|
||
}, 0);
|
||
sums[index] += ' ';
|
||
} else {
|
||
sums[index] = '';
|
||
}
|
||
if(sums[index] !== '' && sums[index].indexOf(".") !== -1){
|
||
sums[index] = parseFloat(sums[index]).toFixed(1);
|
||
}
|
||
});
|
||
return sums;
|
||
},
|
||
objectSpanMethod({ row, column, rowIndex, columnIndex },value) {
|
||
if (columnIndex === 0) {
|
||
if (rowIndex === 0) {
|
||
return {
|
||
rowspan: value.length,
|
||
colspan: 1
|
||
};
|
||
} else {
|
||
return {
|
||
rowspan: 0,
|
||
colspan: 0
|
||
};
|
||
}
|
||
}else if(columnIndex === 1 ) {
|
||
const _row = (this.filterData2(this.qualityHistoryCommentTable).one)[rowIndex]
|
||
const _col = _row > 0 ? 1 : 0
|
||
return {
|
||
rowspan: _row,
|
||
colspan: _col
|
||
}
|
||
}
|
||
},
|
||
setScoreMin(row){
|
||
return row.scoreMin = ((row.targetScore === undefined || row.targetScore === '') ? '' : row.valueType === 'add' ? row.targetScore : (row.targetScore / 10).toFixed(1))
|
||
|
||
},
|
||
filterData2(){
|
||
let spanOneArr = []
|
||
let concatOne = 0
|
||
this.qualityHistoryCommentTable.forEach((item,index)=>{//循环后端查询出来的数据(orderdata)
|
||
if(index === 0){
|
||
spanOneArr.push(1)
|
||
}else{
|
||
//name 修改
|
||
if(item.twoIndexTitle === this.qualityHistoryCommentTable[index - 1].twoIndexTitle){ //第一列需合并相同内容的字段
|
||
spanOneArr[concatOne] += 1
|
||
spanOneArr.push(0)
|
||
}else{
|
||
spanOneArr.push(1)
|
||
concatOne = index
|
||
}
|
||
}
|
||
})
|
||
return {
|
||
one: spanOneArr,
|
||
}
|
||
},
|
||
child1Func(child1){
|
||
const list = []
|
||
if(child1 && child1.length > 1){
|
||
list.push(child1[0])
|
||
return list
|
||
}
|
||
return child1
|
||
},
|
||
handleChange(val) {
|
||
console.log(val)
|
||
},
|
||
handleChange1(val) {
|
||
if(val && val === '基础信息'){
|
||
this.activeState = true
|
||
}
|
||
},
|
||
getPlanStatusName(status) {
|
||
switch (status) {
|
||
case "1":
|
||
return "制定中";
|
||
case "2":
|
||
return "修订中";
|
||
case "3":
|
||
return "已发布";
|
||
case "4":
|
||
return "计划已确认(初始状态)";
|
||
}
|
||
},
|
||
getPlanTypeName(planType) {
|
||
let planTypeName = "-";
|
||
// 计划类型
|
||
[
|
||
{
|
||
value: "1",
|
||
label: "制定",
|
||
},
|
||
{
|
||
value: "2",
|
||
label: "修订",
|
||
},
|
||
].map((item) => {
|
||
if (item.value === planType) {
|
||
planTypeName = item.label;
|
||
}
|
||
});
|
||
return planTypeName;
|
||
},
|
||
getStandLevelName(standLevel) {
|
||
let levelName = "-";
|
||
if (this.mjOptions) {
|
||
this.mjOptions.map((item) => {
|
||
if (item.value === standLevel) {
|
||
levelName = item.label;
|
||
}
|
||
});
|
||
}
|
||
return levelName;
|
||
},
|
||
getPlanSourceName(sourceType) {
|
||
let sourceName = "-";
|
||
this.STANDSOURCEREVISION.map((item) => {
|
||
if (item.value === sourceType) {
|
||
sourceName = item.label;
|
||
}
|
||
});
|
||
return sourceName;
|
||
},
|
||
showReplaceLawsInfo (item) {
|
||
this.$http.get('lawss/sarBussionessStand/queryReplaceStandInfo', {
|
||
standNum: item
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.data != null) {
|
||
let routeUrl = this.$router.resolve({
|
||
name: 'OtherBussStandardDetails',
|
||
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()
|
||
},
|
||
treeDblClickS (treeId, treeNode) {
|
||
this.standItemEO.responsibleUnit = treeNode.id
|
||
this.standItemEO.orgName = treeNode.name
|
||
$('#deptBtnS').click()
|
||
},
|
||
treeDblClickEngin (treeId, treeNode) {
|
||
this.standItemEO.dutyEngineer = treeNode.id
|
||
this.standItemEO.dutyEngineerShow = treeNode.name
|
||
$('#enginBtnS').click()
|
||
},
|
||
// 标准条目新增
|
||
saveOrUpdateStandItem () {
|
||
this.$refs['sarStandardsItemForm'].validate((valid) => {
|
||
if (valid) {
|
||
let nowstandItem = JSON.parse(JSON.stringify(this.standItemEO))
|
||
if (nowstandItem.applyArctic != null && nowstandItem.applyArctic instanceof Array) {
|
||
nowstandItem.applyArctic = nowstandItem.applyArctic.join(',') // 适用车型
|
||
}
|
||
nowstandItem.standId = this.standItemSearch.standId
|
||
nowstandItem.fileType = this.fileType
|
||
// 新增
|
||
if (this.itemAddOrUPdateFlag === 1) {
|
||
this.$http.postData('lawss/sarBussStandItems/addSarBussStandItemsList', nowstandItem, {
|
||
_this: this,
|
||
loading: 'isSubmit'
|
||
}, res => {
|
||
this.selectSarStandItems(this.standItemSearch.standId)
|
||
this.resetForm()
|
||
}, e => {
|
||
})
|
||
} else {
|
||
// 修改
|
||
this.$http.postData('lawss/sarBussStandItems/updateSarBussStandItems', 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.modalItemaddShowflag = false
|
||
this.standItemEO.orgName = ''
|
||
this.standItemSearch.responsibleUnit = ''
|
||
this.standItemSearch.orgName = ''
|
||
this.$nextTick(() => {
|
||
this.$refs['sarStandardsItemForm'].resetFields()
|
||
})
|
||
},
|
||
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 () {
|
||
let url = this.$route.params.pageType === 'SUB' ? 'lawss/sarSubsionessStand/getStandInfoById' : 'lawss/sarBussionessStand/getStandInfoById'
|
||
|
||
return new Promise((resolve, reject) => {
|
||
this.$http.get(url, {id: this.sarStandardsInfoEO.id}, {
|
||
_this: this
|
||
}, res => {
|
||
this.sarStandardsInfoEO = res.data || {}
|
||
if (this.sarStandardsInfoEO.issueTime) {
|
||
this.sarStandardsInfoEO.issueTime = this.sarStandardsInfoEO.issueTime.split(' ')[0]
|
||
}
|
||
if (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) {
|
||
this.replaceNumList = this.sarStandardsInfoEO.replaceStandNum.split(',')
|
||
}
|
||
Object.keys(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.standCode + '-' + this.sarStandardsInfoEO.standYear + ')'
|
||
} else {
|
||
this.personCookieEO.resTitle = this.sarStandardsInfoEO.standName + '(编号:' + this.sarStandardsInfoEO.standSortShow + ' ' + this.sarStandardsInfoEO.standCode + ')'
|
||
}
|
||
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 => {})
|
||
},
|
||
// 查询相近标准
|
||
selectCloseStand (id) {
|
||
let obj = {}
|
||
obj.id = id
|
||
let url = ''
|
||
url = 'lawss/sarStandardsInfo/selectCloseStand'
|
||
this.$http.get(url, obj, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.ok) {
|
||
this.recommendList = res.data
|
||
}
|
||
}, e => {
|
||
})
|
||
},
|
||
getBusStandFileByAttId(attId) {
|
||
return new Promise((resolve, reject) => {
|
||
getBusStandFileByAttId({
|
||
attId
|
||
}).then(res => {
|
||
if (res.ok) {
|
||
resolve(res.data)
|
||
} else {
|
||
reject()
|
||
}
|
||
}).catch(e => {
|
||
reject(e)
|
||
})
|
||
})
|
||
},
|
||
openFileInPdf (attId, oldFileName) {
|
||
// 判断是否是图片格式,图片格式不预览,直接下载
|
||
let index1 = oldFileName.lastIndexOf('.')
|
||
let index2 = oldFileName.length
|
||
let fileSuffix = oldFileName.substring(index1, index2)
|
||
//把后缀转大写
|
||
if(fileSuffix !== undefined && fileSuffix !== null){
|
||
fileSuffix = fileSuffix.toUpperCase()
|
||
}
|
||
// 判断上传文件格式
|
||
if (fileSuffix === '.PNG'|| fileSuffix === '.JPG'|| fileSuffix === '.JPEG') {
|
||
this.downloadFile(attId)
|
||
return true
|
||
}
|
||
// 缺少文件
|
||
if (this.$hasPermission('43ae63abc1b64e6bd5cf3bb75b423bc2')) {
|
||
|
||
if (fileSuffix === '.PDG' || fileSuffix === '.pdg') {
|
||
this.getBusStandFileByAttId(attId)
|
||
.then(res => {
|
||
if(res){
|
||
const editFileInfo = res
|
||
console.log(editFileInfo)
|
||
if(editFileInfo.fileSuffix === 'pdg' || editFileInfo.fileSuffix === 'PDG'){
|
||
window.open('book://ssreader/e0?url='+editFileInfo.downLoadUrl)
|
||
}else {
|
||
const nowTime = new Date().getTime()
|
||
// window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(editFileInfo.downLoadUrl)));
|
||
// window.open('/static/onlyOffice/onlinePreview.html?oldFileName=' + editFileInfo.oldFileName + '&fileType=' + editFileInfo.fileSuffix + '&attId=' + editFileInfo.id + '&fileUrl=' + editFileInfo.downLoadUrl + '&key=' + editFileInfo.id + nowTime+'&filePath='+editFileInfo.filePath+'&fileName='+editFileInfo.fileName)
|
||
}
|
||
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + editFileInfo.id))
|
||
}
|
||
// switch (res.convertState) {
|
||
// case 'ERROR':
|
||
// this.$message.warning('文档转换失败')
|
||
// break
|
||
// case 'LODING':
|
||
// this.$message.info('文档转换中,请稍后查看')
|
||
// break
|
||
// case 'SUCCESS':
|
||
// const { convertFileInfo } = res
|
||
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + convertFileInfo.id))
|
||
// break
|
||
// }
|
||
}).catch(e => {
|
||
console.log(e)
|
||
this.$message.warning('文件不存在,预览失败')
|
||
})
|
||
}else {
|
||
this.$http.get('lawss/sarBussStandFile/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/sarBussStandItems/getSarBussStandItemsList', this.standItemSearch, {
|
||
_this: this, loading: 'tableLoading'
|
||
}, res => {
|
||
this.selectedItemList = []
|
||
this.standItemList = res.data.list
|
||
this.standitemTotal = res.data.count // 分页需要
|
||
}, e => {
|
||
})
|
||
this.modalStandItemflag = true
|
||
this.$nextTick(() => {
|
||
this.tableHeight = $('.content').height()
|
||
window.onresize = function () {
|
||
this.tableHeight = $('.content').height()
|
||
}.bind(this)
|
||
})
|
||
},
|
||
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('请选择要下载的文件')
|
||
}
|
||
}
|
||
},
|
||
/**
|
||
* @author liruohao
|
||
* @date 2019/4/25
|
||
* @Description: 跳转流程
|
||
*/
|
||
processCenterClick (item) {
|
||
let routeUrl = this.$router.resolve({
|
||
name: 'ProcessDetail',
|
||
query: {
|
||
prcNum: item
|
||
}
|
||
})
|
||
window.open(routeUrl.href, '_blank')
|
||
},
|
||
// 请求标准id和类型
|
||
showReplaceStandInfo (item) {
|
||
// this.replaceStandInfoEO.standType = this.sarStandardsInfoEO.standType
|
||
this.$http.get('sarStandardsInfo/sar-standards-info/queryInfoByStandNum', {
|
||
standNumber: item
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
if (res.ok) {
|
||
let name = ''
|
||
let pageType = ''
|
||
const standType = res.data.standType || 'BUSINESS'
|
||
switch (standType) {
|
||
case 'INLAND':
|
||
name = 'OtherStandardDetails'
|
||
pageType = 'INLAND_STAND'
|
||
break
|
||
case 'FOREIGN':
|
||
name = 'OtherStandardDetails'
|
||
pageType = 'FOREIGN_STAND'
|
||
break
|
||
case 'BUSINESS':
|
||
name = 'OtherBussStandardDetails'
|
||
pageType = 'BUSINESS_STAND'
|
||
break
|
||
}
|
||
let routeUrl = this.$router.resolve({
|
||
name: name,
|
||
params: {
|
||
id: res.data.id,
|
||
pageType: pageType
|
||
}
|
||
})
|
||
window.open(routeUrl.href, '_blank')
|
||
} else {
|
||
this.$message.error(res.message)
|
||
}
|
||
}, e => {
|
||
})
|
||
},
|
||
searchSarStandItems () {
|
||
this.standItemSearch.page = 1
|
||
this.selectSarStandItems()
|
||
},
|
||
// 清空搜索框
|
||
clearAllSearch () {
|
||
// 标准条目搜索
|
||
this.standItemSearch.responsibleUnit = ''
|
||
this.standItemSearch.orgName = ''
|
||
this.standItemSearch.parts = ''
|
||
this.standItemSearch.nameOrRequest = ''
|
||
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.standItemEO = {
|
||
id: '',
|
||
standId: '',
|
||
itemsNum: '',
|
||
itemsName: '',
|
||
parts: '',
|
||
mainPointImplementation: '', // 实施要点
|
||
termsConditions: '', // 条款要求
|
||
tackTime: '',
|
||
applyArctic: '', // 试用车型
|
||
energyKind: '', // 能源种类
|
||
responsibleUnit: '',
|
||
remarks: '',
|
||
orgName: ''
|
||
}
|
||
this.itemModalTitle = '新增标准法规分解单'
|
||
this.modalItemaddShowflag = true
|
||
this.itemAddOrUPdateFlag = 1
|
||
this.getOrgTreeSource()
|
||
this.itemFormdisableflag = false
|
||
},
|
||
// 模板下载
|
||
uploadImportModal (flag) {
|
||
window.open('/api/att/attFile/uploadModalFile?fileName=标准条目导入模板.xlsx')
|
||
},
|
||
// 点击导入标准
|
||
addImportModal (flag) {
|
||
this.importModalshowflag = true
|
||
this.importExcelUrl = '/api/lawss/sarBussStandItems/importSarBussStandItemsList?standId=' + this.standItemSearch.standId
|
||
this.$nextTick(() => {
|
||
this.$refs.importFileAboutStand.clearFiles()
|
||
})
|
||
},
|
||
exportStandardItem () {
|
||
if (this.selectedItemList != null && this.selectedItemList.length > 0) {
|
||
window.open('/api/lawss/sarBussStandItems/exportStandardItemExcel?idList=' + this.selectedItemList.join(','))
|
||
this.$message({
|
||
message: '导出成功',
|
||
type: 'success'
|
||
})
|
||
} else {
|
||
this.$message({
|
||
message: '请先选择要导出的数据',
|
||
type: 'warning'
|
||
})
|
||
}
|
||
},
|
||
// 标准条目删除
|
||
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'
|
||
}).then(() => {
|
||
this.$http.post('lawss/sarStandItems/deleteStandItem', {id: ids}, {
|
||
_this: this
|
||
}, res => {
|
||
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}, {
|
||
_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]
|
||
}
|
||
// let selectNode = this.getTreeNameByid(this.standShowItemEO.responsibleUnit)
|
||
this.standShowItemEO.applyArctic = this.standShowItemEO.applyArcticShow // 将编辑的显示字段赋值
|
||
this.standShowItemEO.energyKind = this.standShowItemEO.emergyKindShow
|
||
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.itemModalTitle = '编辑标准法规分解单'
|
||
this.modalItemaddShowflag = true
|
||
item.orgName = ''
|
||
this.standItemEO = JSON.parse(JSON.stringify(item))
|
||
this.standItemEO.standId = this.standItemSearch.standId
|
||
this.standItemEO.quoteStand = item.quoteStand
|
||
this.itemAddOrUPdateFlag = 2
|
||
this.itemFormdisableflag = false
|
||
let a = []
|
||
if (this.standItemEO.applyArctic != null && !(this.standItemEO.applyArctic instanceof Array)) {
|
||
a = this.standItemEO.applyArctic.split(',')
|
||
this.standItemEO.applyArctic = a // 适用车型
|
||
}
|
||
this.standItemEO.orgName = this.standItemEO.responsibleUnitShow
|
||
this.updateResidToAttid('relevanceFile')
|
||
},
|
||
// 修改过程中,将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: this.sarType
|
||
}, {
|
||
_this: this
|
||
}, res => {
|
||
// this.showRegionOptions = res.data || []
|
||
resolve(res.data || [])
|
||
}, e => {
|
||
reject(e)
|
||
})
|
||
})
|
||
},
|
||
/**
|
||
* 获取相关计划
|
||
*/
|
||
queryRelatedPlans () {
|
||
return new Promise((resolve, reject) => {
|
||
this.$http.get('lawss/sarBussStandPlan/page', {
|
||
standCode: this.sarStandardsInfoEO.standCode
|
||
}, {
|
||
_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.sarType]
|
||
// this.resolveFormFieldList()
|
||
resolve(data[this.sarType])
|
||
} 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.standCode + '-' + this.sarStandardsInfoEO.standYear + ' )'
|
||
} else {
|
||
collectTitle = this.sarStandardsInfoEO.standName + ' ( 编号:' + this.sarStandardsInfoEO.standSort + ' ' + this.sarStandardsInfoEO.standCode + ' )'
|
||
}
|
||
let personCollect = {
|
||
collectResId: this.sarStandardsInfoEO.id,
|
||
collectTitle: collectTitle,
|
||
collectType: 'BUSINESS_STAND' // 国内收藏type
|
||
}
|
||
this.$http.postData('person/personCollect', personCollect, {
|
||
_this: this
|
||
}, res => {
|
||
this.isSubmit = false
|
||
this.sarStandardsInfoEO.collectId = res.data.id
|
||
}, e => {
|
||
this.isSubmit = false
|
||
})
|
||
}
|
||
},
|
||
relateEvent1(list){
|
||
this.relateDialog1 = true
|
||
this.relateNowList1 = list
|
||
},
|
||
// 更新LOG
|
||
relateEvent () {
|
||
this.$http.get('lawss/sarUpdLog/getLogList', {
|
||
sarId: this.$route.params.id,
|
||
sarType: 'BUSINESS'
|
||
}, {
|
||
_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 => {
|
||
|
||
})
|
||
},
|
||
relateDialogClose1() {
|
||
this.relateDialog1 = false
|
||
this.relateNowList = []
|
||
},
|
||
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
|
||
}
|
||
}
|
||
if (data.attrField === 'XGJH' || data.attrField === 'XGLC') {
|
||
flag = false
|
||
}
|
||
return flag ? '' : 'clear'
|
||
},
|
||
dateFormat(str) {
|
||
return dateFormat(str)
|
||
},
|
||
showXGJH(item) {
|
||
let routeUrl = this.$router.resolve({
|
||
name: 'enterBSysRevPlanManaLibDetail',
|
||
params: {
|
||
id: item.id,
|
||
pageType: 'INLAND_STAND'
|
||
}
|
||
})
|
||
window.open(routeUrl.href, '_blank')
|
||
},
|
||
// 对象排序
|
||
compare(property) {
|
||
return function(a, b) {
|
||
let value1 = a[property]
|
||
let value2 = b[property]
|
||
return value1 - value2
|
||
}
|
||
}
|
||
},
|
||
computed: {
|
||
titleShow () {
|
||
return (this.sarStandardsInfoEO.standSortShow || '') + this.sarStandardsInfoEO.standCode + '-' + this.sarStandardsInfoEO.standYear + '《' + this.sarStandardsInfoEO.standName + '》' + '标准详情'
|
||
},
|
||
titleHidden () {
|
||
return (this.sarStandardsInfoEO.standSortShow || '') + this.sarStandardsInfoEO.standCode + '《' + this.sarStandardsInfoEO.standName + '》' + '标准详情'
|
||
},
|
||
visibleBtn () {
|
||
return this.$route.name === 'DomesticStandardDetails'
|
||
}
|
||
// sarType () {
|
||
// return this.$route.params.pageType
|
||
// }
|
||
},
|
||
async mounted () {
|
||
let standId = this.$route.params.id
|
||
const qualityRequest = {
|
||
lawId: standId,
|
||
evaluationType: 'quality'
|
||
}
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getHistory', qualityRequest, {
|
||
_this: this
|
||
}, res => {
|
||
this.qualityHistoryPeopleTable = res.data.records
|
||
this.firstHistoryPeopleId = res.data.records[0].userId
|
||
|
||
}, e => {
|
||
})
|
||
const dynamicRequest = {
|
||
lawId: standId,
|
||
evaluationType: 'dynamic'
|
||
}
|
||
this.$http.get('sarEnterpriseStandardEvaluation/quality-evaluation/getHistory', dynamicRequest, {
|
||
_this: this
|
||
}, res => {
|
||
this.dynamicHistoryPeopleTable = res.data.records
|
||
this.firstHistoryPeopleId = res.data.records[0].userId
|
||
|
||
}, e => {
|
||
})
|
||
this.$http.get('sarEnterpriseStandardEvaluation/evaluation-index/getEvaluationIndex', {indexType:this.indexType}, {
|
||
_this: this
|
||
}, res => {
|
||
this.businessCommentTable = res.data
|
||
}, e => {
|
||
})
|
||
this.sarStandardsInfoEO.id = this.$route.params.id
|
||
this.getOrgTreeSource()
|
||
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.mjOptions = res.data.MJ
|
||
this.STANDSOURCEREVISION = res.data.STANDSOURCEREVISION
|
||
}, e => {
|
||
})
|
||
Promise.all([this.queryDisplayLocation(), this.selectStandMessage(), this.getAddFormFieldList()]).then(async(values) => {
|
||
const [displayLocation, {attrInfoMap: dynamicFormField}, formFieldList] = values
|
||
// const relatedPlansRes = await this.queryRelatedPlans()
|
||
// const relatedPlans = relatedPlansRes.list
|
||
formFieldList.forEach((field) => {
|
||
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.$moment(value).format('YYYY-MM-DD')
|
||
}
|
||
// 时间格式处理
|
||
if (field.attrType === 'DATE_PICKER' && value) {
|
||
value = this.$moment(value).format('YYYY-MM-DD')
|
||
}
|
||
field['value'] = value
|
||
if (field.showRegionId === location.value) {
|
||
if (!location.child) {
|
||
location['child'] = []
|
||
}
|
||
location['child'].push(field)
|
||
// if (field.isShowImp === '0') {
|
||
// location.isShowImp = '0'
|
||
// }
|
||
}
|
||
}
|
||
if (location.label === '过程稿件') {
|
||
location.isShowImp = '0'
|
||
}
|
||
})
|
||
})
|
||
|
||
displayLocation.forEach(location => {
|
||
// 动态属性字段-FBGBJBD 单独添加至基础信息
|
||
const list = displayLocation.filter ( item => item.label === '过程稿件');
|
||
if(location.label === '基础信息' && list && list.length > 0){
|
||
if (!list[0].child) {
|
||
location['child1'] = []
|
||
}else {
|
||
const childList = list[0].child.filter ( item => item.attrField === 'FBGBUSS');
|
||
location['child1'] = childList
|
||
}
|
||
}
|
||
|
||
for (let i = 0; i < displayLocation.length; i++) {
|
||
// sss
|
||
if(displayLocation[i].label !== '基础信息' && displayLocation[i].label !== '过程稿件'){
|
||
const childList = displayLocation[i].child.filter ( item => item.value !== null && item.value !== '');
|
||
if(childList.length === 0){
|
||
displayLocation.splice(i,1)
|
||
}
|
||
}
|
||
}
|
||
|
||
const child = location.child || []
|
||
const halfType = ['INPUT_STR', 'DATE_PICKER', 'SEL_OPTION', 'INPUT_NUM']
|
||
const fieldsIsTextAreaOrFile = child.filter(field => {
|
||
return field.attrField !== 'FBGBUSS' && !halfType.includes(field.attrType)
|
||
})
|
||
const fieldOthers = child.filter(field => {
|
||
return halfType.includes(field.attrType)
|
||
})
|
||
location.child = [...fieldOthers, ...fieldsIsTextAreaOrFile].sort(this.compare('orderNum'))
|
||
})
|
||
|
||
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';
|
||
/deep/ .el-collapse{
|
||
border: none;
|
||
}
|
||
|
||
/deep/ .el-collapse-item__wrap{
|
||
border: none;
|
||
}
|
||
|
||
/deep/ .decomposition-btn {
|
||
position: absolute;
|
||
top: 6px;
|
||
right: 0;
|
||
padding: 0 10px;
|
||
height: 30px;
|
||
line-height: 30px;
|
||
font-size: 14px;
|
||
color: #07C160;
|
||
border: 1px solid #07C160;
|
||
background: rgba(1, 193, 96, 0.1);
|
||
|
||
/deep/ .icon-separate {
|
||
display: inline-block;
|
||
margin-right: 3px;
|
||
width: 16px;
|
||
height: 16px;
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
background-position: center center;
|
||
vertical-align: sub;
|
||
background-image: url("~assets/images/shangqi/standardDetails/separate.png");
|
||
}
|
||
}
|
||
/deep/ .icon-download {
|
||
display: inline-block;
|
||
margin-left: 3px;
|
||
width: 18px;
|
||
height: 16px;
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
background-position: center center;
|
||
vertical-align: sub;
|
||
cursor: pointer;
|
||
background-image: url("~assets/images/shangqi/img/download.png");
|
||
}
|
||
|
||
/deep/ .icon-download2 {
|
||
display: inline-block;
|
||
margin-left: 3px;
|
||
width: 18px;
|
||
height: 16px;
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
background-position: center center;
|
||
vertical-align: sub;
|
||
cursor: pointer;
|
||
background-image: url("~assets/images/shangqi/img/download2.png");
|
||
}
|
||
.other-standard-details{
|
||
padding: 15px 30px 0;
|
||
width: 1200px;
|
||
margin: 0 auto;
|
||
height: 100%;
|
||
.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;
|
||
width: 100%;
|
||
height: 50px;
|
||
border-bottom: 1px solid #E5E5E5;
|
||
.modular-header-title{
|
||
font-size: 18px;
|
||
font-weight: bold;
|
||
color: #3B424C;
|
||
& > .icon-modular-title{
|
||
display: inline-block;
|
||
margin-left: -28px;
|
||
width: 18px;
|
||
height: 18px;
|
||
background-size: 100% 100%;
|
||
background-position: center center;
|
||
background-image: url("~assets/images/shangqi/standardDetails/modular-title.png");
|
||
position: relative;
|
||
top: 2px;
|
||
}
|
||
& > span{
|
||
padding-left: 10px;
|
||
}
|
||
}
|
||
.modular-header-btn{
|
||
& > button{
|
||
height: 30px;
|
||
line-height: 30px;
|
||
font-size: 14px;
|
||
padding: 0 10px;
|
||
font-family: 'Microsoft Yahei', '\5FAE\8F6F\96C5\9ED1', Arial, sans-serif !important;
|
||
& > i{
|
||
display: inline-block;
|
||
margin-right: 3px;
|
||
width: 18px;
|
||
height: 18px;
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
background-position: center center;
|
||
vertical-align: text-bottom;
|
||
}
|
||
}
|
||
.collection-btn{
|
||
padding: 0;
|
||
border: none;
|
||
i {
|
||
color: #F2CB51;
|
||
font-size: 18px;
|
||
width: 18px;
|
||
height: 18px;
|
||
}
|
||
/*background: rgba(244, 162, 39, 0.1);*/
|
||
.icon-collection{
|
||
background-image: url("~assets/images/shangqi/standardDetails/collection.png");
|
||
}
|
||
&:hover{
|
||
background: transparent;
|
||
}
|
||
}
|
||
.relation-btn{
|
||
color: #409EFF;
|
||
border: 1px solid #409EFF;
|
||
background: rgba(64, 158, 255, 0.1);
|
||
.icon-relation{
|
||
background-image: url("~assets/images/shangqi/standardDetails/relation.png");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.basic-information-content{
|
||
color: #333333;
|
||
font-size: 16px;
|
||
/*font-weight: 400;*/
|
||
.standard-text{
|
||
height: 50px;
|
||
line-height: 50px;
|
||
border-bottom: 1px solid #E5E5E5;
|
||
}
|
||
}
|
||
.modular-content{
|
||
& > div{
|
||
border-bottom: 1px solid #E5E5E5;
|
||
.modular-content-p-name{
|
||
display: inline-block;
|
||
width: 220px;
|
||
height: 43px;
|
||
line-height: 43px;
|
||
font-size: 16px;
|
||
color: #333333;
|
||
vertical-align: top;
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
}
|
||
.modular-content-p-val{
|
||
display: inline-block;
|
||
width: calc(~'100% - 225px');
|
||
min-height: 50px;
|
||
line-height: 50px;
|
||
font-size: 16px;
|
||
color: #999999;
|
||
word-break: break-all;
|
||
//overflow: hidden;
|
||
//white-space: nowrap;
|
||
//text-overflow: ellipsis;
|
||
}
|
||
.modular-content-p-flies{
|
||
position: relative;
|
||
display: inline-block;
|
||
width: calc(~'100% - 225px');
|
||
& > .files-title{
|
||
width: calc(~'100% - 120px');
|
||
min-height: 50px;
|
||
line-height: 50px;
|
||
font-size: 16px;
|
||
color: #409EFF;
|
||
& > a{
|
||
cursor: pointer;
|
||
}
|
||
& > i{
|
||
display: inline-block;
|
||
margin-left: 3px;
|
||
width: 18px;
|
||
height: 16px;
|
||
background-repeat: no-repeat;
|
||
background-size: 100% 100%;
|
||
background-position: center center;
|
||
vertical-align: sub;
|
||
cursor: pointer;
|
||
}
|
||
.icon-download{
|
||
background-image: url("~assets/images/shangqi/img/download.png");
|
||
}
|
||
.icon-download2{
|
||
background-image: url("~assets/images/shangqi/img/download2.png");
|
||
}
|
||
}
|
||
.decomposition-btn{
|
||
position: absolute;
|
||
top: 10px;
|
||
right: 0;
|
||
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{
|
||
.modular-header{
|
||
height: 60px;
|
||
border-bottom: none;
|
||
}
|
||
.basic-information-content{
|
||
& > p{
|
||
min-height: 42px;
|
||
line-height: 43px;
|
||
border-bottom: 1px solid #E5E5E5;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.more, .put-away{
|
||
position: fixed;
|
||
bottom: 0;
|
||
width: 1200px;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
//margin-bottom: 20px;
|
||
color: #409EFF;
|
||
font-size: 16px;
|
||
cursor: pointer;
|
||
background-image: linear-gradient(-180deg,rgba(255,255,255,0) 0%,#fff 70%);
|
||
padding-bottom: 34px;
|
||
& > 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;
|
||
flex: auto;
|
||
//height: calc(~'100% - 105px - 56px');
|
||
}
|
||
.pagination{
|
||
position: static;
|
||
}
|
||
}
|
||
}
|
||
.half {
|
||
width: 50%;
|
||
float: left;
|
||
}
|
||
.clear{
|
||
clear: both;
|
||
}
|
||
|
||
.hidden {
|
||
overflow: hidden;
|
||
}
|
||
.clearfix{
|
||
&:after {
|
||
clear: both;
|
||
}
|
||
&:after, &:before {
|
||
display: table;
|
||
content: "";
|
||
}
|
||
}
|
||
.details-container .el-divider {
|
||
height: 1px;
|
||
background-color: #d5d8da;
|
||
}
|
||
.relateClass{
|
||
.el-dialog__body {
|
||
max-height: 460px;
|
||
overflow-y: auto;
|
||
}
|
||
}
|
||
</style>
|