code init

This commit is contained in:
chenxiaoxi
2021-05-25 18:06:45 +08:00
parent 02698d6dab
commit f54a8d4fa1
1367 changed files with 540755 additions and 21713 deletions
@@ -0,0 +1,313 @@
<!--符合性详情-->
<template>
<div id="complianceDetails">
<!--不满足-->
<el-divider content-position="left" v-if="unfit.length">不满足</el-divider>
<el-table
v-if="unfit.length"
ref="selection"
:data="unfit"
tooltip-effect="dark"
border
style="width: 100%; min-height: 300px; margin-bottom: 30px;"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="sarNumber"
label="标准号/条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="nonConfomity"
label="不满足内容"
align="center"
>
</el-table-column>
<el-table-column
prop="current"
label="我司现状"
align="center"
>
</el-table-column>
<el-table-column
prop="changeScheme"
label="更改方案"
align="center"
>
</el-table-column>
<el-table-column
prop="estimatedChangeCycle"
label="预估更改周期"
align="center"
>
</el-table-column>
<el-table-column
prop="estimatedCost"
label="预估成本"
align="center"
>
</el-table-column>
<el-table-column
prop="compPersonName"
label="评估人员"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="compTime"
label="评估时间"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="prcNum"
label="流程"
align="center"
width="170px"
>
<template slot-scope="scope">
<span class="table-jump" @click="processCenterClick(scope.row)">{{ scope.row.prcNum }}</span>
</template>
</el-table-column>
</el-table>
<!--待验证-->
<el-divider content-position="left" v-if="check.length">待验证</el-divider>
<el-table
v-if="check.length"
ref="selection"
:data="check"
tooltip-effect="dark"
border
style="width: 100%; min-height: 300px; margin-bottom: 30px;"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="sarNumber"
label="标准号/条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="riskPoint"
label="风险点"
align="center"
>
</el-table-column>
<el-table-column
prop="verificationScheme"
label="验证方案"
align="center"
>
</el-table-column>
<el-table-column
prop="estimatedChangeCycle"
label="预估更改周期"
align="center"
>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="estimatedCost"-->
<!-- label="预估成本"-->
<!-- align="center"-->
<!-- >-->
<!-- </el-table-column>-->
<el-table-column
prop="compPersonName"
label="评估人员"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="compTime"
label="评估时间"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="prcNum"
label="流程"
align="center"
width="170px"
>
<template slot-scope="scope">
<span class="table-jump" @click="processCenterClick(scope.row)">{{ scope.row.prcNum }}</span>
</template>
</el-table-column>
</el-table>
<!--满足-->
<el-divider content-position="left" v-if="fit.length">满足</el-divider>
<el-table
ref="selection"
v-if="fit.length"
:data="fit"
tooltip-effect="dark"
border
style="width: 100%; min-height: 300px; margin-bottom: 30px;"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="sarNumber"
label="标准号/条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="justified"
label="符合理由"
align="center"
>
</el-table-column>
<el-table-column
prop="compPersonName"
label="评估人员"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="compTime"
label="评估时间"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="prcNum"
label="流程"
align="center"
width="170px"
>
<template slot-scope="scope">
<span class="table-jump" @click="processCenterClick(scope.row)">{{ scope.row.prcNum }}</span>
</template>
</el-table-column>
</el-table>
<!--不涉及-->
<el-divider content-position="left" v-if="notInvolve.length">不涉及</el-divider>
<el-table
ref="selection"
v-if="notInvolve.length"
:data="notInvolve"
tooltip-effect="dark"
border
style="width: 100%; min-height: 300px; margin-bottom: 30px;"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
prop="sarNumber"
label="标准号/条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="compPersonName"
label="评估人员"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="compTime"
label="评估时间"
align="center"
width="100px"
>
</el-table-column>
<el-table-column
prop="prcNum"
label="流程"
align="center"
width="170px"
>
<template slot-scope="scope">
<span class="table-jump" @click="processCenterClick(scope.row)">{{ scope.row.prcNum }}</span>
</template>
</el-table-column>
</el-table>
<loading :loading="loading">加载中...</loading>
</div>
</template>
<script>
export default {
name: 'ComplianceDetails',
data () {
return {
loading: false,
check: [], // 待验证
fit: [], // 满足
notInvolve: [], // 不涉及
unfit: [] // 不满足
}
},
methods: {
// 查询数据
getAllList () {
let fromPage = this.$route.query.fromPage
console.log(fromPage);
if (fromPage === 'product') {
this.$http.get('lawss/sarProductStand/getAllList', {
standId: this.$route.query.sarId,
productId: this.$route.query.productId
}, {
_this: this,
loading: 'loading'
}, res => {
if (res.ok) {
this.check = res.data.check
this.fit = res.data.fit
this.notInvolve = res.data.notInvolve
this.unfit = res.data.unfit
} else {
this.$message.warning(res.message)
}
})
} else {
this.$http.get('lawss/sarCompStatusInfo/getAllList', {
sarId: this.$route.query.sarId,
sarState: this.$route.query.sarState
}, {
_this: this,
loading: 'loading'
}, res => {
if (res.ok) {
this.check = res.data.check
this.fit = res.data.fit
this.notInvolve = res.data.notInvolve
this.unfit = res.data.unfit
} else {
this.$message.warning(res.message)
}
})
}
},
/**
* @Description: 跳转流程
*/
processCenterClick (item) {
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
prcNum: item.prcNum
}
})
window.open(routeUrl.href, '_blank')
}
},
mounted () {
this.getAllList()
}
}
</script>
<style lang="less" scoped>
#complianceDetails{
padding: 15px 30px 0;
//width: 1200px;
//margin: 0 auto;
height: 100%;
}
</style>
@@ -0,0 +1,535 @@
<template>
<div class="enter-b-sys-rev-plan-manalib-detail v-class" :class="{'hidden': !isMoreAwayBtn}">
<div class="details-header">
<span>{{sarStandardsInfoEO.standCode}}-{{sarStandardsInfoEO.standYear}} 《{{sarStandardsInfoEO.cnName}}》 标准详情</span>
</div>
<div class="details-content">
<div class="details-content-modular basic-information">
<div class="modular-header">
<div class="modular-header-title"><i class="icon-modular-title" /><span>企标信息</span>
</div>
<!-- <div class="modular-header-btn">-->
<!-- <el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="icon-collection" :loading="isSubmit"></el-button>-->
<!-- <el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off" :loading="isSubmit"></el-button>-->
<!-- <el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新LOG</el-button>-->
<!-- </div>-->
</div>
<div class="basic-information-content">
<!-- style="color: #C42626;"-->
<p><label>计划类型:</label><span>{{ sarStandardsInfoEO.planType==='1'?'制定':(sarStandardsInfoEO.planType==='2'?'修订':'-') }}</span></p>
<p v-if="sarStandardsInfoEO.planType === '2'"><label>修订企标:</label><span>{{ sarStandardsInfoEO.reviseBussStand || '-' }}</span></p>
<p><label>企标编号:</label><span>{{ sarStandardsInfoEO.standCode || '-' }}</span></p>
<p><label title="计划已确认:制修订计划审批完成,计划入库,为初始状态;制定中:主起草人已提交草稿,审批中。已发布:制修订流程审批完成,企标发布。">计划状态<i class="el-icon-warning-outline"></i>:</label><span style="color: #409EFF;">{{ getPlanStatusName(sarStandardsInfoEO.planStatus) || '-' }}</span></p>
<p><label>企标名称:</label><span>{{ sarStandardsInfoEO.cnName || '-' }}</span></p>
<p><label>英文名称:</label><span>{{ sarStandardsInfoEO.enName || '-' }}</span></p>
<p><label>代替企标编号:</label>
<!-- <span v-if="sarStandardsInfoEO.replaceStandNum != null && sarStandardsInfoEO.replaceStandNum !== '' && sarStandardsInfoEO.replaceStandNum.split(',').length > 0">-->
<!-- <span v-for="(item, index) in sarStandardsInfoEO.replaceStandNum.split(',')" :key="index">-->
<!-- <a @click="showReplaceLawsInfo(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;" class="span-line">{{item}}</a>-->
<!-- </span>-->
<!-- </span>-->
<!-- <span v-else>-->
<!-- {{'-' }}-->
<!-- </span>-->
<span>{{ sarStandardsInfoEO.replacedStandNum || '-' }}</span>
</p>
<p><label>标准密级:</label><span>{{ sarStandardsInfoEO.standLevelShow || '-' }}</span></p>
<p><label>计划开始编写日期:</label><span>{{ sarStandardsInfoEO.planStartTime || '-' }}</span></p>
<p><label>计划发布日期:</label><span>{{ sarStandardsInfoEO.putTime || '-' }}</span></p>
</div>
</div>
</div>
<div class="details-content">
<div class="details-content-modular basic-information">
<div class="modular-header">
<div class="modular-header-title"><i class="icon-modular-title" /><span>关联信息</span>
</div>
</div>
<div class="basic-information-content">
<p><label>相关流程:</label>
<span class="modular-content-p-val" v-if="sarStandardsInfoEO.prcNum">
<span v-for="(item, index) in sarStandardsInfoEO.prcNum.split(',')" :key="index">
<a @click="processCenterClick(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;" class="span-line">{{item }}</a>
</span>
</span>
<span class="modular-content-p-val" v-else>
-
</span>
</p>
<p><label>标准制修订来源*:</label><span>{{ sarStandardsInfoEO.planSourceShow || sarStandardsInfoEO.planSource || '-' }}</span></p>
<p><label>制修订原因:</label><span>{{sarStandardsInfoEO.planReason || '-'}}</span></p>
<div class="file-wrap">
<a
v-for="item in sarStandardsInfoEO.planReasonFileList"
:key="item.id"
@click="downloadFile(item.id)"
>
{{ item.oldFileName }}
</a>
</div>
<p><label>验证工作:</label><span>{{sarStandardsInfoEO.testWork || '-'}}</span></p>
<div class="file-wrap">
<a
v-for="item in sarStandardsInfoEO.testWorkFileList"
:key="item.id"
@click="downloadFile(item.id)"
>
{{ item.oldFileName }}
</a>
</div>
<p><label>项目影响:</label><span>{{sarStandardsInfoEO.planImpact || '-'}}</span></p>
<div class="file-wrap">
<a
v-for="item in sarStandardsInfoEO.planImpactFileLis"
:key="item.id"
@click="downloadFile(item.id)"
>
{{ item.oldFileName }}
</a>
</div>
</div>
</div>
</div>
<div class="details-content">
<div class="details-content-modular basic-information">
<div class="modular-header">
<div class="modular-header-title"><i class="icon-modular-title" /><span>起草信息</span>
</div>
</div>
<div class="basic-information-content">
<p><label>主起草部门:</label> <span>{{ sarStandardsInfoEO.primaryDrafterDeptName || '-' }}</span>
<!-- <span v-if="sarStandardsInfoEO.replacedStandNum != null && sarStandardsInfoEO.replacedStandNum !== '' && sarStandardsInfoEO.replacedStandNum.split(',').length > 0">-->
<!-- <span v-for="(item, index) in sarStandardsInfoEO.replacedStandNum.split(',')" :key="index">-->
<!-- <a @click="showReplaceLawsInfo(item)" style="cursor: pointer;color: #0c91e5;margin-right: 5px;" class="span-line">{{item}}</a>-->
<!-- </span>-->
<!-- </span>-->
<!-- <span v-else>-->
<!-- {{'-' }}-->
<!-- </span>-->
</p>
<p><label>主起草人:</label><span>{{ sarStandardsInfoEO.primaryDrafterName || '-' }}</span></p>
<p><label>起草部门:</label><span>{{ sarStandardsInfoEO.otherDrafterDeptName || '-' }}</span></p>
<p><label>其他起草人:</label><span>{{ sarStandardsInfoEO.compilersUserName || '-' }}</span></p>
<p><label>涉及的会签部门:</label><span>{{ sarStandardsInfoEO.compileUnitName || '-' }}</span></p>
<!-- <p><label>相关部门:</label><span>{{ sarStandardsInfoEO.compileUnitName || '-' }}</span></p>-->
</div>
</div>
</div>
</div>
</template>
<script>
import {dateFormat} from "@/common/date";
export default {
name: "index",
data(){
return{
isMoreAwayBtn:false,
sarStandardsInfoEO:{}
}
},
mounted(){
this.getDetail()
},
methods:{
dateFormat(str) {
return dateFormat(str)
},
/**
* @Description: 查询详情
* @author zmf
* @date 2021/3/4
*/
getDetail(){
this.$http.get('lawss/sarBussStandPlan/getById', {id: this.$route.params.id},{
_this: this
}, res => {
this.sarStandardsInfoEO = res.data
this.sarStandardsInfoEO.planStartTime=this.dateFormat(this.sarStandardsInfoEO.planStartTime, 'yyyy-MM-dd')
this.sarStandardsInfoEO.putTime=this.dateFormat(this.sarStandardsInfoEO.putTime, 'yyyy-MM-dd')
}, e => {
})
},
/**
* @Description:
* @author zmf
* @date 2021/3/4
*/
getPlanStatusName(status) {
switch (status) {
case "1":
return "制定中";
case "2":
return "修订中";
case "3":
return "已发布";
case "4":
return "计划已确认";
}
},
/**
* @Description:
* @author zmf
* @date 2021/3/4
*/
downloadFile(attId) {
if (attId != null && attId !== "") {
window.location.href =
"/api/att/attFile/downloadFileForSar?fileId=" + attId;
} else {
this.$message.error("请选择要下载的文件");
}
},
/**
* @Description: 跳转流程
* @author zmf
* @date 2021/3/4
*/
processCenterClick (item) {
let prc=item.indexOf(' ')
let prcNum = item.substring(0,prc)
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
prcNum: prcNum
}
})
window.open(routeUrl.href, '_blank')
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
@import '~@/assets/styles/style';
.enter-b-sys-rev-plan-manalib-detail{
padding: 15px 30px 0;
width: 1200px;
margin: 0 auto;
height: 100%;
/deep/.el-radio-group {
display: block;
margin-bottom: 10px;
}
.action-bar {
border-top: 0px;
}
.fileCss {
margin-right: 10px;
cursor: pointer;
}
.fileCss:hover {
color: #0c91e5;
}
.myDialog1 {
/deep/.el-dialog__body {
padding: 0px 20px 10px;
}
.myRadio {
min-height: 200px;
max-height: 400px;
overflow: auto;
}
}
.myDialog {
min-width: 700px;
.el-dialog {
min-width: 700px;
width: 70%;
}
/deep/.el-dialog__body {
padding: 0px 20px 56px;
.basic-information-content{
color: #333333;
font-size: 18px;
font-weight: 400;
.standard-text{
height: 50px;
line-height: 50px;
border-bottom: 1px solid #E5E5E5;
}
& > p{
min-height: 55px;
line-height: 55px;
}
}
}
.knowContent {
height: 500px;
}
}
.details-header{
padding: 34px 0;
font-size: 20px;
font-weight: bold;
color: #555555;
text-align: center;
& > span{
width: 100%;
}
}
/deep/.details-content{
/*padding: 0 67px;*/
.details-content-modular{
margin-bottom: 20px;
.modular-header{
display: flex;
align-items: center;
justify-content: space-between;
height: 50px;
border-bottom: 1px solid #E5E5E5;
.modular-header-title{
font-size: 18px;
font-weight: bold;
color: #3B424C;
& > .icon-modular-title{
display: inline-block;
margin-left: -28px;
width: 18px;
height: 18px;
background-size: 100% 100%;
background-position: center center;
background-image: url("~assets/images/shangqi/standardDetails/modular-title.png");
vertical-align: top;
}
& > span{
padding-left: 10px;
}
}
.modular-header-btn{
& > button{
height: 30px;
line-height: 30px;
font-size: 14px;
border-radius: 15px;
padding: 0 10px;
font-family: 'Microsoft Yahei', '\5FAE\8F6F\96C5\9ED1', Arial, sans-serif !important;
& > i{
display: inline-block;
margin-right: 3px;
width: 18px;
height: 18px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: text-bottom;
}
}
.collection-btn{
padding: 0;
border: none;
i {
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
}
/*background: rgba(244, 162, 39, 0.1);*/
.icon-collection{
background-image: url("~assets/images/shangqi/standardDetails/collection.png");
}
&:hover{
background: transparent;
}
}
.relation-btn{
color: #409EFF;
border: 1px solid #409EFF;
background: rgba(64, 158, 255, 0.1);
.icon-relation{
background-image: url("~assets/images/shangqi/standardDetails/relation.png");
}
}
}
}
.basic-information-content{
color: #333333;
font-size: 18px;
font-weight: 400;
.standard-text{
height: 50px;
line-height: 50px;
border-bottom: 1px solid #E5E5E5;
}
.file-wrap {
padding:10px auto 10px 0;
/*border-top: 1px dashed #ddd;*/
a{
min-height: 55px;
line-height: 55px;
cursor: pointer;
color: #0c91e5;
}
}
}
.modular-content{
.modular-item-more {
padding: 5px 0;
width: 100%;
float: left;
text-align: center;
line-height: 30px;
display: flex;
justify-content: center;
align-items: center;
.wrap {
cursor: pointer;
span {
color: #409EFF;
}
img {
height: 10px;
margin-left: 5px;
transition: all .2s linear;
&.is-show-all {
transform: rotate(180deg);
}
}
}
}
& > div:not(.modular-item-more){
border-bottom: 1px solid #E5E5E5;
.modular-content-p-name{
display: inline-block;
width: 220px;
height: 50px;
line-height: 50px;
font-size: 16px;
color: #333333;
vertical-align: top;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.modular-content-p-val{
display: inline-block;
width: calc(~'100% - 225px');
min-height: 50px;
line-height: 50px;
font-size: 16px;
color: #999999;
word-break: break-all;
//overflow: hidden;
//white-space: nowrap;
//text-overflow: ellipsis;
}
.modular-content-p-flies{
position: relative;
display: inline-block;
width: calc(~'100% - 225px');
min-height: 50px;
& > .files-title{
width: calc(~'100% - 120px');
min-height: 50px;
line-height: 50px;
font-size: 16px;
color: #409EFF;
& > a{
cursor: pointer;
}
& > i{
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download{
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2{
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
.decomposition-btn{
position: absolute;
top: 10px;
right: 0;
padding: 0 10px;
height: 30px;
line-height: 30px;
font-size: 14px;
border-radius: 15px;
color: #07C160;
border: 1px solid #07C160;
background: rgba(1, 193, 96, 0.1);
.icon-separate{
display: inline-block;
margin-right: 3px;
width: 16px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
background-image: url("~assets/images/shangqi/standardDetails/separate.png");
}
}
}
}
}
}
.basic-information{
border-top: 2px dashed #D1D1D1;
/*border-bottom: 2px dashed #D1D1D1;*/
.modular-header{
height: 60px;
border-bottom: none;
}
.basic-information-content{
& > p{
min-height: 55px;
line-height: 55px;
}
}
}
}
.more, .put-away{
position: fixed;
bottom: 0;
width: 1200px;
display: flex;
justify-content: center;
align-items: center;
//margin-bottom: 20px;
color: #409EFF;
font-size: 16px;
cursor: pointer;
background-image: linear-gradient(-180deg,rgba(255,255,255,0) 0%,#fff 70%);
padding-bottom: 34px;
padding-top: 34px;
& > img{
margin-left: 5px;
width: 14px;
height: 14px;
}
}
.put-away{
& > img{
transform: rotate(180deg);
}
}
.not-footer-drawer{
.search-area{
margin-bottom: 0;
border-bottom: 5px solid #f6f6f6;
}
.content{
padding: 0 10px;
flex: auto;
//height: calc(~'100% - 105px - 56px');
}
.pagination{
position: static;
}
}
}
</style>
+50
View File
@@ -0,0 +1,50 @@
<template>
<div class="details">
<com-header :isCollapsed="sideClose"></com-header>
<div class="main">
<div class="details-container" :class="{ 'side-close': sideClose }">
<router-view />
</div>
</div>
</div>
</template>
<script>
export default {
name: 'Details',
data () {
return {
sideClose: false // 边栏收展状态
}
}
}
</script>
<style lang="less" scoped>
.details{
height:100%;
.side-close{
&.side-bar{
left: -200px !important;
}
&.sub-container{
width: calc(~'100% - 15px') !important;
}
.side-bar-collapse{
background:#5596CC !important;
color: #FFF;
}
}
.main{
height: calc(~'100% - 50px');
.details-container{
height: 100%;
overflow-x: hidden!important;
overflow-y: auto!important;
background: #ffffff; // 二级页面内容区域背景色
transition: width .1s linear;
}
}
}
</style>
+380
View File
@@ -0,0 +1,380 @@
<template>
<div id="itemsDetails">
<!-- 国内标准-->
<div>
<div class="otherStandardDetails-header">
<div class="standard-details-header-title">
国内标准
</div>
</div>
</div>
<div>
<div class="laws-details-content">
<div class="content-box">
<div class="content-row">
<div class="content-col">
<div class="content-label border-right-hide border-bottom-hide">条款号:</div>
<div class="content-info border-right-hide border-bottom-hide">
123
</div>
</div>
<div class="content-col">
<div class="content-label border-right-hide border-bottom-hide">条款名称:</div>
<div class="content-info border-right-hide border-bottom-hide">
123
</div>
</div>
<div class="content-col">
<div class="content-label border-bottom-hide">在产车实施日期:</div>
<div class="content-info border-bottom-hide">
123
</div>
</div>
</div>
<div class="content-row">
<div class="content-col">
<div class="content-label border-right-hide border-bottom-hide">关联零部件:</div>
<div class="content-info border-right-hide border-bottom-hide">
123
</div>
</div>
<div class="content-col">
<div class="content-label border-right-hide border-bottom-hide">新车型实施日期:</div>
<div class="content-info border-right-hide border-bottom-hide">
123
</div>
</div>
<div class="content-col">
<div class="content-label border-bottom-hide">适用车型:</div>
<div class="content-info border-bottom-hide">
123
</div>
</div>
</div>
<div class="content-row">
<div class="content-col flex-row">
<div class="content-label border-right-hide">备注:</div>
<div class="content-info">123</div>
</div>
</div>
</div>
</div>
</div>
<div>
<el-divider content-position="left">引用标准</el-divider>
<div class="laws-details-content">
<div class="content-box">
<div class="content-row" v-for="(item, index) in standardList" :key="index">
<div class="content-col flex-row">
<div class="content-label border-right-hide" :class="index === standardList.length - 1 ? '' : 'border-bottom-hide'">{{ index + 1 }}</div>
<div class="content-info" :class="index === standardList.length - 1 ? '' : 'border-bottom-hide'">{{ item.title }}</div>
</div>
</div>
</div>
</div>
<el-divider content-position="left">关联文件</el-divider>
<div class="laws-details-content">
<div class="content-box">
<div class="content-row" v-for="(item, index) in standardList" :key="index">
<div class="content-col flex-row">
<div class="content-label border-right-hide" :class="index === standardList.length - 1 ? '' : 'border-bottom-hide'">{{ index + 1 }}</div>
<div class="content-info" :class="index === standardList.length - 1 ? '' : 'border-bottom-hide'">
{{ item.title }}
<el-button type="primary" style="margin-left: 0.2rem" size="small" class="download-btn">下载</el-button>
</div>
</div>
</div>
</div>
</div>
<el-divider content-position="left">特殊参数需求</el-divider>
<div class="laws-details-content">
<div class="content-box">
<div class="content-row" v-for="(item, index) in standardList" :key="index">
<div class="content-col flex-row">
<div class="content-label border-right-hide" :class="index === standardList.length - 1 ? '' : 'border-bottom-hide'">{{ index + 1 }}</div>
<div class="content-info" :class="index === standardList.length - 1 ? '' : 'border-bottom-hide'">{{ item.title }}</div>
</div>
</div>
</div>
</div>
<el-divider content-position="left">条款内容</el-divider>
<div class="clauseText"></div>
</div>
</div>
</template>
<script>
export default {
name: 'itemsDetails',
data () {
return {
standardList: [
{title: '1'},
{title: '2'},
{title: '3'}
]
}
},
methods: {},
components: {},
props: {},
computed: {},
watch: {},
mounted () {
}
}
</script>
<style lang="less">
@import '~@/assets/styles/style';
@import '~@/assets/styles/mixins';
#itemsDetails{
height: 100%;
padding: 15px;
overflow-y: auto;
.clauseText {
min-height: 100px;
background: rgba(255, 255, 255, 0.25);
margin: 10px;
border: 0.5px solid #dedede;
}
.otherStandardDetails-header {
.flex();
align-items: center;
.title {
font-weight: bold;
width: 100%;
font-size: 16px;
flex: 1;
.ellipsis();
padding-right: 15px;
}
.standard-details-header-title{
font-weight: bold;
font-size: 16px;
flex: 1;
padding: 0 20px;
.ellipsis();
}
@media screen and (min-width: 1920px) {
.title{
font-size: 18px;
}
}
.otherStandardDetails-button-group{
flex: 1;
.flex();
justify-content: flex-end;
}
}
.laws-details-content {
margin-top: 15px;
}
.laws-details-content span {
padding: 10px;
display: block;
font-size: 13px;
.download-btn span{
margin: 0;
padding: 0;
align-items: center;
font-size: 6px;
}
}
.fileContent{
margin-bottom: 20px;
font-size: 0.3rem;
}
.fileBlock{
display: inline-block;
padding: 0 20px;
font-size: 16px;
}
.fileBlock .ivu-icon {
margin-left: 10px;
font-size: 25px;
}
.flex-row-2{
flex: 1 !important;
overflow: hidden;
}
.no-margin{
margin: 0 !important;
}
.content-label-2line{
line-height: normal;
}
.border-right-hide{
border-right: 1px solid transparent !important;
}
.border-bottom-hide{
border-bottom: 1px solid transparent !important;
}
.el-divider--horizontal {
display: block;
height: 3px;
width: 100%;
margin: 10px 0;
background-color: #3391CE;
}
.bg(){
background: rgba(255,255,255,.25);
}
.content-box{
.flex();
flex-direction: column;
.bg();
padding: 10px;
.content-box-header{
color: #FFF;
.flex();
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #FFF;
height: 4.94vh;
padding-left: 5px;
.title{
font-size: 16px;
}
.more{
padding: 2px 10px;
transition: border-radius .2s linear;
&:hover{
cursor: pointer;
background: rgba(255,255,255,.25);
border-radius: 2px;
}
}
}
.content-box-detail{
padding: 10px 0 5px 0;
overflow: hidden;
height: calc(~'100% - 4.94vh');
ul{
height: 100%;
overflow-y: auto;
li{
color: #FFF;
line-height: 30px;
padding: 0 5px;
.ellipsis();
font-size: 14px;
&.is-new{
font-style: italic;
color: #FF7B7B;
a{
color: #FF7B7B;
}
i{
transform: rotate(-90deg);
font-size: 12px;
}
}
a{
color: #FFF;
}
}
}
}
}
.content-row{
.flex();
//margin-bottom: 20px;
line-height: 48px;
min-height: 48px;
overflow: hidden;
&:last-child{
margin-bottom: 0;
}
.content-col{
flex: 0 0 33.33333333%;
.flex();
.content-label{
font-weight: 600;
font-size: 12px;
width: 148px;
text-align: center;
background: #F2F5F9;
.flex();
align-items: center;
justify-content: center;
border: 0.5px solid #dedede;
min-height: 48px;
}
@media screen and (min-width: 1920px) {
.content-label{
font-size: 14px;
}
}
.content-info{
line-height: normal;
flex: 1;
padding: 5px 15px;
//line-height: 22px;
font-size: 13px;
//text-align: center;
.flex();
align-items: center;
justify-content: left;
border: 0.5px solid #dedede;
word-break: break-all;
overflow: hidden;
.res-type-content{
ul{
display: inline-flex;
li{
margin-left: 10px;
}
}
}
span{
margin: 0 !important;
padding: 0 !important;
}
}
.ivu-btn{
span{
margin: 0;
padding: 0 !important;
}
}
}
}
.otherStandardDetails-drawer{
.ivu-drawer-body{
height: calc(~'100% - 51px') !important;
}
}
.el-input__inner {
width: 50% !important;
}
.otherStandardDetails-drawer-content{
flex: auto;
overflow: hidden;
position: relative;
height: calc(100% - 11px);
}
.el-input__inner{
height: 32px !important;
}
.el-drawer-form{
padding-left: 20px;
overflow-y: auto;
height: 570px;
}
.el-popover el-popper user-dept-popper{
min-height: 200px;
}
.el-input__inner{
height: 32px;
}
.search-box{
display: flex;
justify-content: space-between;
}
}
.serch-form-item .el-form-item__content .el-input__inner{
border-radius: 4px !important;
}
</style>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,309 @@
<template>
<div class="standard-select-box" style="height: 100%;background-color: #fff;position: relative;">
<!--<div>-->
<!-- <span>-->
<!-- 标准检索-->
<!-- </span>-->
<!--</div>-->
<!--<el-divider class="el-divider-low"></el-divider>-->
<div style="height: 100%;" class="standard-select">
<table-tools-bar style="padding:10px 0 0 10px;">
<!--<div slot="left">-->
<!-- <div class="search-area">-->
<!-- <el-form :model="searchForm" inline class="label-input-form">-->
<!-- <el-form-item :label="$t('m.standardNumAndName')" prop="standardKey" class="search-item">-->
<!-- <el-input-->
<!-- v-model="searchForm.standardKey"-->
<!-- :placeholder="$t('m.standardNumAndNameTips')"-->
<!-- clearable-->
<!-- :maxlength="100"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item class="search-item btn-box">-->
<!-- <el-button-->
<!-- icon="el-icon-search"-->
<!-- type="primary"-->
<!-- class="common-button-primary"-->
<!-- round-->
<!-- @click="searchBtn"-->
<!-- ></el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item class="search-item btn-box">-->
<!-- <el-button-->
<!-- class="common-button-default"-->
<!-- icon="el-icon-refresh-left"-->
<!-- round-->
<!-- @click="resetSearchForm">{{$t('m.clearQuery')}}</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </div>-->
<!--</div>-->
</table-tools-bar>
<div class="content">
<loading :loading="tableDataLoading">{{$t('m.dataProcessing')}}</loading>
<el-table
border
ref="selection"
:data="tableList"
tooltip-effect="dark"
style="width: 100%;"
height="100%"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
row-key="id"
>
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="showNumber"
label="标准号"
align="center">
<template slot-scope="scope">
<div v-if="scope.row.standId == null || scope.row.standId === ''">{{ scope.row.standNumSplit }}</div>
<div v-else>{{ scope.row.showNumber }}</div>
</template>
</el-table-column>
<el-table-column
prop="standName"
label="标准名称"
show-overflow-tooltip
align="center">
<template slot-scope="scope">
<span v-if="scope.row.standId == null || scope.row.standId === ''">{{ scope.row.standNameSplit }}</span>
<span v-else>{{ scope.row.standName }}</span>
</template>
</el-table-column>
<el-table-column
prop="fileTypeShow"
label="文本状态"
align="center">
</el-table-column>
<el-table-column
prop="creationTime"
label="拆分时间"
align="center">
</el-table-column>
</el-table>
</div>
<pagination :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<!--<div class="btn-group">-->
<!-- <el-button-->
<!-- round-->
<!-- class="common-button-primary"-->
<!-- type="primary"-->
<!-- icon="el-icon-check"-->
<!-- @click="handleSubmit"-->
<!-- >确定</el-button>-->
<!-- <el-button-->
<!-- round-->
<!-- class="common-button-default"-->
<!-- icon="el-icon-close"-->
<!-- @click="handleCancel">取消</el-button>-->
<!--</div>-->
</div>
</div>
</template>
<script>
export default {
name: 'RelatedTermsSelect',
props: ['standId', 'fileType'],
data () {
return {
tableDataLoading: false,
total: 0,
selectRoleId: '',
searchForm: {
standardKey: '',
},
pageNo: 1,
pageSize: 10,
tableList: [],
}
},
methods: {
getDicTypeName(opt, type) {
const _type = type ? type.split(',') : []
let typeNames = []
// switch (opt) {
// case 'applyArcticOptions':
// this.applyArcticOptions.map(item => {
// _type.map(typeItem => {
// if (item.value === typeItem) {
// typeNames.push(item.label)
// }
// })
// })
// break
// case 'BZFGGXOUIUJ':
// this.BZFGGXOUIUJ.map(item => {
// _type.map(typeItem => {
// if (item.value === typeItem) {
// typeNames.push(item.label)
// }
// })
// })
// break
// }
return typeNames.join(',')
},
itemsTextDialog (itemsNum, text) {
this.itemsTextDialogs = true
this.itemsText = '<p>' + itemsNum + '</p>' + text.replace(/''/g, '\'')
},
// 根据条件查询信息
searchBtn () {
this.resetPageNo()
this.queryTablePage()
},
/**
* 重置搜索表单并重新加载表格数据
*/
resetSearchForm () {
this.searchForm.standardKey = ''
// this.resetSearchForm()
this.queryTablePage()
},
pageChange (page) {
this.pageNo = page
this.queryTablePage()
},
pageSizeChange () {
this.queryTablePage()
},
resetPageNo() {
this.pageNo = 1
},
// 查询、加载表格
queryTablePage () {
const formData = {
page: this.pageNo,
pageSize: this.$store.getters.userInfo.configContent,
standId: this.standId,
fileType: this.fileType,
splitStatus: '2'
}
this.$http.get('lawss/sarFileSplitInfo/getSarFileSplitInfoEOPage',
formData,
{
_this: this,
loading: 'tableDataLoading'
},
res => {
this.tableList = res.data.list
this.total = res.data.count
this.$nextTick(() => {
this.$refs.selection.doLayout()
})
}, e => {})
},
handleSubmit(callback) {
const selection = this.$refs['selection'].selection
console.log(selection)
return new Promise((resolve, reject) => {
this.postListToServer(selection).then(res => {
// 关闭当前区域
this.handleCancel()
callback && callback()
resolve(res)
}).catch((err) => {
// 关闭当前区域
this.handleCancel()
callback && callback()
reject(err)
})
})
},
handleCancel() {
this.$emit('close')
},
postListToServer(selection) {
// const list = selection.map(item => {
// let standNum = ''
// if (item.standYear) {
// standNum = `${item.standSortShow} ${item.standNumber}-${item.standYear}`
// } else {
// standNum = `${item.standSortShow} ${item.standNumber}`
// }
//
// return {
// country: item.countryShow,
// standNum: standNum,
// standName: item.standName,
// standId: item.id,
// standType: item.standType
// }
// })
const formData = selection
return new Promise((resolve, reject) => {
this.$http.postData('lawss/sarFileSplitInfo/connectToStandItems', formData, {
_this: this
}, res => {
if (res.ok) {
resolve(res)
} else {
reject(res)
}
}, err => {
reject(err)
})
})
}
},
created() {
this.queryTablePage()
}
}
</script>
<style lang="less" scoped>
.standard-select-box{
display: flex;
flex-direction: column;
flex: auto;
.standard-select{
height: 100%;
display: flex;
flex-direction: column;
flex: auto;
.content {
padding: 0 10px;
//height: calc(~'100% - 55px - 50px');
flex: auto;
display: flex;
flex-direction: column;
}
.pagination {
position: static;
}
}
.el-divider-low {
margin: 15px 0;
}
.search-area {
padding: 0;
}
.btn-group {
position: absolute;
bottom: 20px;
right: 20px;
background: #ffffff;
z-index: 999;
}
}
</style>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,985 @@
<template>
<div class="stand-involve-project-detail-two">
<!-- <div class="laws-details-header">-->
<!-- &lt;!&ndash; <div class="back" title="返回" @click="back">&ndash;&gt;-->
<!-- &lt;!&ndash; <i class="el-icon-back"></i>&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- <div class="title">技术涉及项目</div>-->
<!-- </div>-->
<div class="search-area">
<div class="left">
<el-form ref="sarProject" :model="sarProject" inline @keyup.enter.native="searchStandAndLaws">
<!-- <el-form-item label="国家/地区" class="search-item">-->
<!-- <el-input v-model="sarProject.country"-->
<!-- placeholder="根据国家/地区查找"-->
<!-- clearable></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="国家/地区" class="search-item search-item-last">-->
<!-- <el-select-->
<!-- v-model="sarProject.country"-->
<!-- placeholder="请选择"-->
<!-- filterable-->
<!-- clearable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in countryOptions"-->
<!-- :value="item.value"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="标准/政策号" class="search-item">
<el-input v-model="sarProject.standCode"
placeholder="标准/政策号查找"
@keyup.enter="searchStandAndLaws"
clearable></el-input>
</el-form-item>
<el-form-item label="标准/政策名称" class="search-item search-item-last">
<el-input v-model="sarProject.standName"
placeholder="标准/政策名称查找"
@keyup.enter="searchStandAndLaws"
clearable></el-input>
</el-form-item>
<el-form-item label="" class="search-item btn-box">
<el-button class="common-button-primary" type="primary" icon="el-icon-search" round @click="searchStandAndLaws"></el-button>
</el-form-item>
<el-form-item label="" class="search-item btn-box">
<el-button class="common-button-default" icon="el-icon-refresh-left" @click="resetSelect" round></el-button>
</el-form-item>
<!-- <el-form-item label="" class="search-item btn-box">-->
<!-- <el-button round class="common-button-default export-button" icon="export" @click="showExportModal('apart')">导出</el-button>-->
<!-- </el-form-item>-->
<!-- <Button type="primary" @click="showExportModal('apart')">导出</Button>-->
<!-- <Button type="primary" @click="showExportModal('all')">全部导出</Button>-->
</el-form>
</div>
<div class="right">
</div>
</div>
<div class="content">
<el-table
stripe
ref="selections"
tooltip-effect="dark"
border
:height="tableHeight"
:data="sarProjectListDatas"
class="table"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="getSelectedDatas">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="standType"
label="标准/政策类型"
width="120"
>
<template slot-scope="scope">
<div v-if="scope.row.standType === 'INLAND_STAND'">国内标准法规</div>
<div v-if="scope.row.standType === 'FOREIGN_STAND'">海外标准法规</div>
<div v-if="scope.row.standType === 'INLAND_LAWS'">国内政策</div>
<div v-if="scope.row.standType === 'FOREIGN_LAWS'">国内外政策</div>
<div v-if="scope.row.standType === 'BUSINESS_STAND'">企业标准</div>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="country"-->
<!-- label="国家/地区"-->
<!-- >-->
<!-- </el-table-column>-->
<el-table-column
prop="standCode"
label="标准/政策号"
width="180"
>
</el-table-column>
<el-table-column
prop="standName"
label="标准/政策名称"
>
</el-table-column>
<el-table-column
label=""
width="50"
align="center">
<template slot-scope="scope">
<i class="el-icon-view btn-i" v-btn-permission="'WWVT239CTACWUGHMMQVY'" @click="handleProjectCompliance(scope.row)"></i>
<!--<div @click.stop style="display: inline-block">-->
<!-- <el-dropdown trigger="click" @command="handleCommand">-->
<!-- <i class="iconfont">&#xe61e;</i>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="[scope.row, '查看项目符合性']">查看项目符合性</el-dropdown-item>-->
<!-- &lt;!&ndash; <el-dropdown-item :command="[scope.row, '流程']">流程</el-dropdown-item>&ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!--</div>-->
</template>
</el-table-column>
</el-table>
<pagination :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<loading :loading="loading">数据处理中</loading>
</div>
<!-- 查看符合标准性弹窗-->
<el-drawer
title="标准涉及项目符合性"
:visible.sync="showSarProStateModal"
:wrapperClosable="false"
size="800px"
:before-close="clearSearchPro"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="el-drawer-form">
<div class="search-area">
<div class="left">
<el-form :inline="true" :model="sarProStateEO" class="label-input-form">
<el-form-item label="项目名称" class="search-item search-item-last">
<el-input
v-model="sarProStateEO.productName"
placeholder="根据项目名称查找"
:maxlength="100"
clearable></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
icon="el-icon-search"
type="primary"
class="common-button-primary"
round
@click="querySarProStateZero"></el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
round
@click="clearSearchProState"></el-button>
</el-form-item>
</el-form>
</div>
<div class="right">
</div>
</div>
<el-table
v-if="this.isExistItems === 0"
ref="multipleTable"
:data="sarProStateListDatas"
tooltip-effect="dark"
style="width: 100%"
border
:height="sarProStateTableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
@selection-change="sarProductStateSelect">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="accessType"-->
<!-- label="清单类型">-->
<!-- <template slot-scope="scope">-->
<!-- <div v-if="scope.row.accessType === 'first'">研发合规法规清单</div>-->
<!-- <div v-if="scope.row.accessType === 'second'">认证合规法规清单</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
prop="carModel"
label="公告车型号">
</el-table-column>
<!--<el-table-column-->
<!-- prop="itemName"-->
<!-- label="标准名称">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ exportShowName }}</div>-->
<!-- </template>-->
<!--</el-table-column>-->
<el-table-column
prop="sarState"
label="符合性状态">
<template slot-scope="scope">
<!-- <div class="table-jump" @click="handleSarStateClick(scope.row)">-->
<div class="table-jump" @click="changeState(scope.row)">
<div v-if="scope.row.sarState === 1">待验证</div>
<div v-if="scope.row.sarState === 2">符合</div>
<div v-if="scope.row.sarState === 3">不符合</div>
<div v-if="scope.row.sarState === 4">部分符合</div>
<div v-if="scope.row.sarState === 5">不涉及</div>
<div v-if="scope.row.sarState === 6">评估中</div>
<div v-if="scope.row.sarState === 7">整改中</div>
<div v-if="scope.row.sarState === 8"></div>
</div>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" width="50" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <div @click.stop style="display: inline-block">-->
<!-- <el-dropdown trigger="click" @command="handleCommandInside">-->
<!-- <i class="iconfont">&#xe61e;</i>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="[scope.row, '编辑']">编辑</el-dropdown-item>-->
<!--&lt;!&ndash; <el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>&ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
:page="sarProStateTotalPage"
:total="sarProStateTotal"
@pageChange="pageProStateChange"
@pageSizeChange="pageProStateSizeChange"></pagination>
</div>
<!-- <div class="demo-drawer-footer">-->
<!-- <el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="saveCopyInfor" :loading="isSubmit">提交</el-button>-->
<!-- <el-button round class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>-->
<!-- </div>-->
</div>
<!-- 编辑符合性-->
<el-dialog title="编辑符合性" width="400px" :append-to-body="true" :visible.sync="editSarComModal" :before-close="handleClose">
<el-form ref="editSarComEO" :model="editSarComEO" class="label-input-form" style="height: 200px">
<el-input v-model="editSarComEO.id" v-show="false"></el-input>
<el-form-item v-if="this.isExistItems === 0" label="符合性" prop="sarState" class="laws-info-item">
<search-select v-model="editSarComEO.sarState" :options="conformStateOptions1" />
</el-form-item>
<el-form-item v-if="this.isExistItems === 1" label="符合性" prop="sarState" class="laws-info-item">
<search-select v-model="editSarComEO.itemState" :options="conformStateOptions" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="updateSarState">确 定</el-button>
<!-- <el-button round v-if="this.isExistItems === 1" class="common-button-primary" icon="el-icon-check" type="primary" @click="updateSarState">确 定</el-button>-->
<el-button round class="common-button-default" icon="el-icon-close" @click="handleClose">取 消</el-button>
</div>
</el-dialog>
<loading :loading="loading2">数据处理中</loading>
</el-drawer>
<!-- 查看符合标准性弹窗2-->
<el-drawer
title="标准涉及项目符合性"
:visible.sync="showSarProStateModal2"
:wrapperClosable="false"
size="800px"
:before-close="clearSearchPro2"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="el-drawer-form">
<div class="search-area">
<div class="left">
<el-form :inline="true" :model="sarProStateEO2" class="label-input-form">
<el-form-item label="项目名称" class="search-item search-item-last">
<el-input
v-model="sarProStateEO2.productName"
placeholder="根据项目名称查找"
:maxlength="100"
clearable></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
icon="el-icon-search"
type="primary"
class="common-button-primary"
round
@click="queryItemsBySar"></el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
round
@click="clearSearchProState2"></el-button>
</el-form-item>
</el-form>
</div>
<div class="right">
</div>
</div>
<el-table
ref="multipleTable2"
:data="sarProStateListDatas2"
tooltip-effect="dark"
style="width: 100%"
border
:height="sarProStateTableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
@selection-change="sarProductStateSelect2">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="accessType"-->
<!-- label="清单类型">-->
<!-- <template slot-scope="scope">-->
<!-- <div v-if="scope.row.accessType === 'first'">研发合规法规清单</div>-->
<!-- <div v-if="scope.row.accessType === 'second'">认证合规法规清单</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
prop="carModel"
label="公告车型号">
</el-table-column>
<el-table-column
prop="itemName"
label="条目名称">
</el-table-column>
<el-table-column
prop="sarState"
label="符合性状态">
<template slot-scope="scope">
<div class="table-jump" @click="handleItemClick(scope.row)">
<div v-if="scope.row.sarState === 1">待验证</div>
<div v-if="scope.row.sarState === 2">符合</div>
<div v-if="scope.row.sarState === 3">不符合</div>
<div v-if="scope.row.sarState === 4">部分符合</div>
<div v-if="scope.row.sarState === 5">不涉及</div>
<div v-if="scope.row.sarState === 6">评估中</div>
<div v-if="scope.row.sarState === 7">整改中</div>
<div v-if="scope.row.sarState === 8">未评估</div>
</div>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" width="50" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <div @click.stop style="display: inline-block">-->
<!-- <el-dropdown trigger="click" @command="handleCommandInside">-->
<!-- <i class="iconfont">&#xe61e;</i>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="[scope.row, '编辑']">编辑</el-dropdown-item>-->
<!-- &lt;!&ndash; <el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>&ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
:page="sarProStateTotalPage2"
:total="sarProStateTotal2"
@pageChange="pageProStateChange2"
@pageSizeChange="pageProStateSizeChange2"></pagination>
</div>
<!-- <div class="demo-drawer-footer">-->
<!-- <el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="saveCopyInfor" :loading="isSubmit">提交</el-button>-->
<!-- <el-button round class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>-->
<!-- </div>-->
</div>
<loading :loading="loading3">数据处理中</loading>
</el-drawer>
<!-- 查看符合标准性弹窗 流程-->
<el-drawer
title="相关流程"
:visible.sync="processListVisible"
:wrapperClosable="false"
size="800px"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="el-drawer-form">
<el-table
ref="processList"
:data="processList"
tooltip-effect="dark"
style="width: 100%"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
>
<el-table-column
prop="processNumber"
label="流程编号">
<template slot-scope="scope">
<div class="table-jump" @click="handleProcessClick(scope.row)">
{{ scope.row.processNumber }}
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
export default {
name: 'standInvolveProjectDetailTwo',
data () {
return {
// 条件查询
sarProject: {
// 国家地区
country: '',
// 标准/政策号
standCode: '',
// 标准政策名称
standName: '',
standId: ''
},
// table数据
sarProjectListDatas: [],
countryOptions: [], //国家选择下拉框数据
drawerCountryOptions: [], // 准入信息 国家下拉框
// table高度
tableHeight: null,
// 列表页loading
loading: false,
loading2: false,
loading3: false,
// 外层列表页数据条数
total: 0,
page: 1,
resId: this.$route.params.resId,
pageSize: this.$store.getters.userInfo.configContent,
// 导出时候用
SarExportSearchEo: {},
// 项目符合性数据
saveSarId: '',
saveSarType: '',
exportShowName: '',
sarItem: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
sarItem2: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
// 新增、编辑 准入信息字段
sarAccessEO: {
country: '',
},
// 模态框内容
sarItemTotal: 0,
itemsPage: 1,
itemsPageSize: this.$store.getters.userInfo.configContent,
sarItemListDatas: [],
conformStateOptions: [
{label: '待验证', value: 1},
{label: '符合', value: 2},
{label: '不符合', value: 3},
// {label: '部分符合', value: 4},
{label: '不涉及', value: 5}
// {label: '评估中', value: 6},
// {label: '整改中', value: 7},
// {label: '未评估', value: 8}
],
conformStateOptions1: [
{label: '待验证', value: 1},
{label: '符合', value: 2},
{label: '不符合', value: 3},
// {label: '部分符合', value: 4},
{label: '不涉及', value: 5}
// {label: '评估中', value: 6},
// {label: '整改中', value: 7},
// {label: '未评估', value: 8}
],
// 查看标准在项目中符合性数据
showSarProStateModal: false,
showSarProStateModal2: false,
sarProStateEO: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
sarProStateEO2: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
sarProStateTotal: 0,
sarProStateTotalPage: 1,
sarProStatePageSize: this.$store.getters.userInfo.configContent,
sarProStateTotal2: 0,
sarProStateTotalPage2: 1,
sarProStatePageSize2: this.$store.getters.userInfo.configContent,
saveClickProductId: '',
saveSarProductId: '',
// 符合性查看弹窗的打开
showSarItemModal: false,
// 符合性项目列表数据
sarProStateListDatas: [],
// 符合性项目列表数据2
sarProStateListDatas2: [],
// 符合性项目列表高度
sarProStateTableHeight: null,
editSarComEO: {
id: '',
sarState: ''
},
editSarComEODefault: {
id: '',
sarState: ''
},
editSarComEO2: {
id: '',
itemState: ''
},
editSarComEODefault2: {
id: '',
itemState: ''
},
// 编辑弹窗打开
editSarComModal: false,
// 选中一行查看符合性弹窗的标准号,
standNum: '',
// 用于切换分页,0,1
isExistItems: '',
processList: [],
processListVisible: false
}
},
methods: {
changeState (row) {
console.log(row);
let routeUrl = this.$router.resolve({
name: 'ComplianceDetails',
query: {
sarId: this.saveSarId,
productId: row.productId,
sarType: row.standType,
fromPage: 'product'
}
})
window.open(routeUrl.href, '_blank')
},
/**
* 查看项目符合性弹框里面的
* 符合性状态列点击事件
*/
handleSarStateClick(row) {
if (row.sarState === 8) {
return
}
// console.log(row)
this.showSarProStateModal2 = true
this.saveClickProductId = row.productId
this.queryItemsBySar()
},
/**
* 查看项目 条款 弹框里面的
* 符合性状态列点击事件2222
*/
handleItemClick(row) {
const processList = row.process ? row.process.split(',') : []
console.log(processList)
this.processList = processList.map(item => {
return {
processNumber: item
}
})
this.processListVisible = true
},
/**
* 查看项目 条款 流程编号弹框里面的
* 流程编号点击事件
*/
handleProcessClick(row) {
const processNumber = row.processNumber
this.$store.commit('setDetailMap', this.$route.path)
this.$router.push({
name: 'ProcessDetail',
query: {
prcNum: processNumber
}
})
},
// 返回
back () {
this.$router.push(this.$store.state.detailMap)
this.$store.commit('setDetailMap', '')
},
// 列表操作栏 ...
handleCommand (command) {
switch (command[1]) {
case '查看项目符合性':
this.handleProjectCompliance(command[0])
break
}
},
// 符合性项目列表操作
handleCommandInside (command) {
switch (command[1]) {
case '编辑':
this.handleEdit(command[0])
break
// case '查看':
// this.handleProjectCompliance(command[0])
// break
}
},
searchStandAndLaws () {
this.page = 1
this.queryStandAndLaws()
},
// 分页查询
queryStandAndLaws () {
console.log('this.resId222',this.$route.query.resId)
this.sarProject.page = this.page
this.sarProject.pageSize = this.pageSize
this.sarProject.standId = this.$route.query.resId
this.SarExportSearchEo = this.sarProject
// this.$http.get('lawss/sarProductStand/queryStandAndLawsByPage', this.sarProject, {
this.$http.get('lawss/sarProductStand/queryStandAndLawsByPage', this.sarProject, {
_this: this,
loading: 'loading',
}, res => {
console.log(res.data.list)
console.log(res.data.count)
this.sarProjectListDatas = res.data.list
this.total = res.data.count
}, e => {
})
},
// 分页查询条目符合性
queryItemsBySar () {
this.sarItem2.page = this.itemsPage
this.sarItem2.pageSize = this.itemsPageSize
this.sarItem2.standId = this.saveSarId
this.sarItem2.standType = this.saveSarType
this.sarItem2.productId = this.saveClickProductId
this.$http.get('lawss/sarProductSarState/page', this.sarItem2, {
_this: this,
loading: 'loading3'
}, res => {
// this.sarItemListDatas = res.data.list
// this.sarItemTotal = res.data.count
this.sarProStateListDatas2 = res.data.list
this.sarProStateTotal2 = res.data.count
}, e => {
})
},
// 外层清空条件查询
resetSelect () {
this.sarProject.country = ''
this.sarProject.standCode=''
this.sarProject.standName = ''
this.queryStandAndLaws()
},
// 查看项目符合性
handleProjectCompliance (row) {
this.saveSarId = row.standId
this.saveSarType = row.standType
this.exportShowName = row.standName
this.sarItem.productCode = ''
this.sarItem.productName = ''
// this.queryItemsBySar()
this.row = row
// 原方案
// if (this.row.isExistItems === 1) {
// this.isExistItems = 1
// this.standNum = this.row.standCode
// // this.querySarProStateFirst()
// this.saveSarId = this.row.standId
// this.queryItemsBySar()
// this.showSarProStateModal = true
// } else {
// this.isExistItems = 0
// this.querySarProStateZero()
// this.showSarProStateModal = true
// }
this.$http.get('lawss/sarProductStand/isPermission', {standId: this.saveSarId}, {
_this: this,
loading: 'loading3'
}, res => {
if (res.ok){
// 现阶段方案
this.isExistItems = 0
this.showSarProStateModal = true
this.querySarProStateZero()
} else{
this.$message.warning('当前标准已不存在')
}
}, e => {
})
},
handleProjectPreview (row) {
this.saveClickProductId = row.productId
this.saveSarProductId = row.id
this.queryItemsBySar()
this.showSarItemModal = true
},
// 如果isExistItems === 0查看标准在项目中符合性列表
querySarProStateZero () {
// let queryUrl = ''
this.sarProStateEO.page = this.sarProStatePage
this.sarProStateEO.pageSize = this.sarProStatePageSize
this.sarProStateEO.standId = this.saveSarId
this.sarProStateEO.standType = this.saveSarType
this.$http.get('lawss/sarProductStand/queryInvolveProByPage', this.sarProStateEO, {
_this: this,
loading: 'loading2'
}, res => {
this.sarProStateListDatas = res.data.list
this.sarProStateTotal = res.data.count
}, e => {
})
},
// 如果isExistItems === 1 查看标准在项目中符合性列表
querySarProStateFirst () {
// let queryUrl = ''
this.sarProStateEO2.page = this.sarProStatePage2
this.sarProStateEO2.pageSize = this.sarProStatePageSize2
// this.sarProStateEO.standId = this.saveSarId
// this.sarProStateEO.standType = this.saveSarType
this.sarProStateEO2.standNum = this.standNum
this.$http.get('lawss/sarInconformItem/queryInvolveItems', this.sarProStateEO2, {
_this: this,
loading: 'loading'
}, res => {
this.sarProStateListDatas2 = res.data.list
this.sarProStateTotal2 = res.data.count
}, e => {
})
},
// 列表多选
sarProductStateSelect (val) {
console.log(val)
},
// 列表多选
sarProductStateSelect2 (val) {
console.log(val)
},
// 清空条件查询
clearSearchProState () {
this.sarProStateEO.productCode = ''
this.sarProStateEO.productName = ''
if (this.isExistItems === 0) {
this.querySarProStateZero()
} else {
this.querySarProStateFirst()
}
},
// 清空条件查询
clearSearchProState2 () {
this.sarProStateEO2.productCode = ''
this.sarProStateEO2.productName = ''
this.querySarProStateFirst()
},
// 清空查询
clearSearchPro () {
this.sarProStateEO.productCode = ''
this.sarProStateEO.productName = ''
this.showSarProStateModal = false
},
// 清空查询
clearSearchPro2 () {
this.sarProStateEO2.productCode = ''
this.sarProStateEO2.productName = ''
this.showSarProStateModal2 = false
},
// 项目符合性分页
pageProStateChange (page) {
this.sarProStatePage = page
this.querySarProStateZero()
},
pageProStateSizeChange (pageSize) {
this.sarProStatePageSize = pageSize
this.querySarProStateZero()
},
// 项目符合性分页
pageProStateChange2 (page) {
this.sarProStatePage2 = page
this.querySarProStateFirst()
},
pageProStateSizeChange2 (pageSize) {
this.sarProStatePageSize2 = pageSize
this.querySarProStateFirst()
},
// 编辑符合性弹窗打开
handleEdit (row) {
this.saveSarProductId = row.id
this.editSarComEO.sarState = row.sarState
this.editSarComModal = true
},
// 编辑符合性弹窗关闭
handleClose () {
if (this.isExistItems === 0) {
this.editSarComEO = {...this.editSarComEODefault}
} else {
this.editSarComEO2 = {...this.editSarComEODefault2}
}
this.$refs['editSarComEO'].clearValidate()
this.editSarComModal = false
},
// 符合性弹窗修改保存
updateSarState () {
if (this.isExistItems === 0) {
const data = {}
data.sarType = this.saveSarType
data.id = this.saveSarProductId
data.sarItemState = this.editSarComEO.sarState
this.$http.putData('lawss/sarProductSarState/updateSarState', data, {
_this: this
}, res => {
this.editSarComModal = false
this.querySarProStateZero()
}, e => {})
} else {
const data = {}
data.sarType = this.saveSarType
data.id = this.saveSarProductId
data.sarItemState = this.editSarComEO.itemState
this.$http.putData('lawss/sarProductSarState/updateState', data, {
_this: this
}, res => {
this.editSarComModal = false
this.queryItemsBySar()
// const data = {}
// data.sarType = this.saveSarType
// data.itemState = this.editSarComEO.itemState
// data.id = this.saveSarProductId
// this.$http.putData('lawss/sarInconformItem/updateItem', data, {
// _this: this
// }, res => {
// this.editSarComModal = false
// this.querySarProStateFirst()
}, e => {})
}
},
// 导出多选, table列表多选
getSelectedDatas (selection) {
this.saveSelectedDatas = selection
},
// 点击导出按钮
showExportModal (type) {
// 区别是选择导出还是全部导出
this.saveExportType = type
if (type === 'apart') {
if (this.saveSelectedDatas != null && this.saveSelectedDatas.length > 0) {
this.exportName = ''
this.exportModelFlag = true
} else {
this.$message.error('请选择要导出的数据')
}
} else {
this.exportName = ''
this.exportModelFlag = true
}
},
// 确认导出
exportSarProduct () {
if (this.exportName === '' || this.exportName === null || this.exportName === 'null') {
this.exportName = '标准涉及项目'
}
let jsonData = ''
if (this.saveExportType === 'apart') {
jsonData = JSON.stringify(this.saveSelectedDatas)
} else if (this.saveExportType === 'all') {
let exportEOStr = JSON.stringify(this.SarExportSearchEo)
jsonData = exportEOStr.replace(/""/g, null)
}
window.location.href = '/api/lawss/sarProductLaws/exportSarProduct?jsonData=' + jsonData + '&exportType=' + this.saveExportType + '&exportName=' + this.exportName
this.saveSelectedDatas = []
this.exportModelFlag = false
this.queryStandAndLaws()
},
// 外层分页方法
pageChange (page) {
this.page = page
this.queryStandAndLaws()
},
pageSizeChange (pageSize) {
this.pageSize = pageSize
this.queryStandAndLaws()
}
},
mounted () {
// 分页查询方法
this.queryStandAndLaws()
//从数据库中查询下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this:this
},res =>{
this.countryOptions = res.data.COUNTRY //国家
}, e => {
})
this.tableHeight = $('.regulatory-repository').height() - 53 - 50 - 56
window.onresize = () => {
this.tableHeight = $('.regulatory-repository').height() - 53 - 50 - 56
}
}
}
</script>
<style lang="less" scoped>
.stand-involve-project-detail-two{
height: 100%;
.laws-details-header {
background: #fff;
// height: 30px;
line-height: 50px;
padding: 0 10px;
//margin-bottom: 5px;
.back {
display: inline-block;
margin-right: 10px;
}
.title {
display: inline-block;
font-weight: bold;
font-size: 18px;
flex: 1;
padding: 0 15px;
text-align: center;
}
}
.container {
background: #fff;
padding: 5px 10px;
}
.content {
height: calc(~'100% - 52px');
.el-table {
height: calc(~'100% - 56px');
}
/deep/.el-table--scrollable-y .el-table__body-wrapper {
overflow-y: auto;
height: calc(~'100% - 48px') !important;
}
}
}
</style>
<style lang="less">
.stand-involve-project-detail-two{
.search-area .search-item .el-input--suffix .el-input__inner{
padding-right: 15px;
}
}
</style>
@@ -0,0 +1,415 @@
<template>
<div class="wx-custom-tab">
<el-tabs v-model="tabValue" style="height: 100%;">
<el-tab-pane label="项目评估结果" name="standInvolveProjectDetailTwo">
<div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;">
<stand-involve-project-detail-two v-if="tabValue === 'standInvolveProjectDetailTwo'"></stand-involve-project-detail-two>
</div>
</el-tab-pane>
<el-tab-pane label="技术评估结果" name="technologyInvolveProject">
<div style="position: absolute;top: 0;left: 0;right: 0;bottom: 0;">
<technology-involve-project-two v-if="tabValue === 'technologyInvolveProject'"></technology-involve-project-two>
</div>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import standInvolveProjectDetailTwo
from "../pages/standInvolveProjectDetailTwo";
import technologyInvolveProjectTwo
from "../pages/technologyInvolveProjectTwo";
export default {
name: 'standInvolveProjectTwo',
components: {
technologyInvolveProjectTwo,
standInvolveProjectDetailTwo
},
data () {
return {
tabValue: 'standInvolveProjectDetailTwo'
}
},
methods: {
/**
* 查看项目符合性弹框里面的
* 符合性状态列点击事件
*/
handleSarStateClick(row) {
if (row.sarState === 8) {
return
}
// console.log(row)
this.showSarProStateModal2 = true
this.saveClickProductId = row.productId
this.queryItemsBySar()
},
/**
* 查看项目 条款 弹框里面的
* 符合性状态列点击事件
*/
handleItemClick(row) {
const processList = row.process ? row.process.split(',') : []
console.log(processList)
this.processList = processList.map(item => {
return {
processNumber: item
}
})
this.processListVisible = true
},
/**
* 查看项目 条款 流程编号弹框里面的
* 流程编号点击事件
*/
handleProcessClick(row) {
const processNumber = row.processNumber
this.$store.commit('setDetailMap', this.$route.path)
this.$router.push({
name: 'ProcessDetail',
query: {
prcNum: processNumber
}
})
},
// 返回
back () {
this.$router.push(this.$store.state.detailMap)
this.$store.commit('setDetailMap', '')
},
// 列表操作栏 ...
handleCommand (command) {
switch (command[1]) {
case '查看项目符合性':
this.handleProjectCompliance(command[0])
break
}
},
// 符合性项目列表操作
handleCommandInside (command) {
switch (command[1]) {
case '编辑':
this.handleEdit(command[0])
break
// case '查看':
// this.handleProjectCompliance(command[0])
// break
}
},
searchStandAndLaws () {
this.page = 1
this.queryStandAndLaws()
},
// 分页查询
queryStandAndLaws () {
this.sarProject.page = this.page
this.sarProject.pageSize = this.pageSize
this.SarExportSearchEo = this.sarProject
this.$http.get('lawss/sarProductStand/queryStandAndLawsByPage', this.sarProject, {
_this: this,
loading: 'loading',
}, res => {
console.log(res.data.list)
console.log(res.data.count)
this.sarProjectListDatas = res.data.list
this.total = res.data.count
}, e => {
})
},
// 分页查询条目符合性
queryItemsBySar () {
this.sarItem2.page = this.itemsPage
this.sarItem2.pageSize = this.itemsPageSize
this.sarItem2.standId = this.saveSarId
this.sarItem2.standType = this.saveSarType
this.sarItem2.productId = this.saveClickProductId
this.$http.get('lawss/sarProductSarState/page', this.sarItem2, {
_this: this,
loading: 'loading3'
}, res => {
// this.sarItemListDatas = res.data.list
// this.sarItemTotal = res.data.count
this.sarProStateListDatas2 = res.data.list
this.sarProStateTotal2 = res.data.count
}, e => {
})
},
// 外层清空条件查询
resetSelect () {
this.sarProject.country = ''
this.sarProject.standCode=''
this.sarProject.standName = ''
this.queryStandAndLaws()
},
// 查看项目符合性
handleProjectCompliance (row) {
this.saveSarId = row.standId
this.saveSarType = row.standType
this.exportShowName = row.standName
this.sarItem.productCode = ''
this.sarItem.productName = ''
// this.queryItemsBySar()
this.row = row
// 原方案
// if (this.row.isExistItems === 1) {
// this.isExistItems = 1
// this.standNum = this.row.standCode
// // this.querySarProStateFirst()
// this.saveSarId = this.row.standId
// this.queryItemsBySar()
// this.showSarProStateModal = true
// } else {
// this.isExistItems = 0
// this.querySarProStateZero()
// this.showSarProStateModal = true
// }
// 现阶段方案
this.isExistItems = 0
this.querySarProStateZero()
this.showSarProStateModal = true
},
handleProjectPreview (row) {
this.saveClickProductId = row.productId
this.saveSarProductId = row.id
this.queryItemsBySar()
this.showSarItemModal = true
},
// 如果isExistItems === 0查看标准在项目中符合性列表
querySarProStateZero () {
// let queryUrl = ''
this.sarProStateEO.page = this.sarProStatePage
this.sarProStateEO.pageSize = this.sarProStatePageSize
this.sarProStateEO.standId = this.saveSarId
this.sarProStateEO.standType = this.saveSarType
this.$http.get('lawss/sarProductStand/queryInvolveProByPage', this.sarProStateEO, {
_this: this,
loading: 'loading2'
}, res => {
this.sarProStateListDatas = res.data.list
this.sarProStateTotal = res.data.count
}, e => {
})
},
// 如果isExistItems === 1 查看标准在项目中符合性列表
querySarProStateFirst () {
// let queryUrl = ''
this.sarProStateEO2.page = this.sarProStatePage2
this.sarProStateEO2.pageSize = this.sarProStatePageSize2
// this.sarProStateEO.standId = this.saveSarId
// this.sarProStateEO.standType = this.saveSarType
this.sarProStateEO2.standNum = this.standNum
this.$http.get('lawss/sarInconformItem/queryInvolveItems', this.sarProStateEO2, {
_this: this,
loading: 'loading'
}, res => {
this.sarProStateListDatas2 = res.data.list
this.sarProStateTotal2 = res.data.count
}, e => {
})
},
// 列表多选
sarProductStateSelect (val) {
console.log(val)
},
// 列表多选
sarProductStateSelect2 (val) {
console.log(val)
},
// 清空条件查询
clearSearchProState () {
this.sarProStateEO.productCode = ''
this.sarProStateEO.productName = ''
if (this.isExistItems === 0) {
this.querySarProStateZero()
} else {
this.querySarProStateFirst()
}
},
// 清空条件查询
clearSearchProState2 () {
this.sarProStateEO2.productCode = ''
this.sarProStateEO2.productName = ''
this.querySarProStateFirst()
},
// 清空查询
clearSearchPro () {
this.sarProStateEO.productCode = ''
this.sarProStateEO.productName = ''
this.showSarProStateModal = false
},
// 清空查询
clearSearchPro2 () {
this.sarProStateEO2.productCode = ''
this.sarProStateEO2.productName = ''
this.showSarProStateModal2 = false
},
// 项目符合性分页
pageProStateChange (page) {
this.sarProStatePage = page
this.querySarProStateZero()
},
pageProStateSizeChange (pageSize) {
this.sarProStatePageSize = pageSize
this.querySarProStateZero()
},
// 项目符合性分页
pageProStateChange2 (page) {
this.sarProStatePage2 = page
this.querySarProStateFirst()
},
pageProStateSizeChange2 (pageSize) {
this.sarProStatePageSize2 = pageSize
this.querySarProStateFirst()
},
// 编辑符合性弹窗打开
handleEdit (row) {
this.saveSarProductId = row.id
this.editSarComEO.sarState = row.sarState
this.editSarComModal = true
},
// 编辑符合性弹窗关闭
handleClose () {
if (this.isExistItems === 0) {
this.editSarComEO = {...this.editSarComEODefault}
} else {
this.editSarComEO2 = {...this.editSarComEODefault2}
}
this.$refs['editSarComEO'].clearValidate()
this.editSarComModal = false
},
// 符合性弹窗修改保存
updateSarState () {
if (this.isExistItems === 0) {
const data = {}
data.sarType = this.saveSarType
data.id = this.saveSarProductId
data.sarItemState = this.editSarComEO.sarState
this.$http.putData('lawss/sarProductSarState/updateSarState', data, {
_this: this
}, res => {
this.editSarComModal = false
this.querySarProStateZero()
}, e => {})
} else {
const data = {}
data.sarType = this.saveSarType
data.id = this.saveSarProductId
data.sarItemState = this.editSarComEO.itemState
this.$http.putData('lawss/sarProductSarState/updateState', data, {
_this: this
}, res => {
this.editSarComModal = false
this.queryItemsBySar()
// const data = {}
// data.sarType = this.saveSarType
// data.itemState = this.editSarComEO.itemState
// data.id = this.saveSarProductId
// this.$http.putData('lawss/sarInconformItem/updateItem', data, {
// _this: this
// }, res => {
// this.editSarComModal = false
// this.querySarProStateFirst()
}, e => {})
}
},
// 导出多选, table列表多选
getSelectedDatas (selection) {
this.saveSelectedDatas = selection
},
// 点击导出按钮
showExportModal (type) {
// 区别是选择导出还是全部导出
this.saveExportType = type
if (type === 'apart') {
if (this.saveSelectedDatas != null && this.saveSelectedDatas.length > 0) {
this.exportName = ''
this.exportModelFlag = true
} else {
this.$message.error('请选择要导出的数据')
}
} else {
this.exportName = ''
this.exportModelFlag = true
}
},
// 确认导出
exportSarProduct () {
if (this.exportName === '' || this.exportName === null || this.exportName === 'null') {
this.exportName = '标准涉及项目'
}
let jsonData = ''
if (this.saveExportType === 'apart') {
jsonData = JSON.stringify(this.saveSelectedDatas)
} else if (this.saveExportType === 'all') {
let exportEOStr = JSON.stringify(this.SarExportSearchEo)
jsonData = exportEOStr.replace(/""/g, null)
}
window.location.href = '/api/lawss/sarProductLaws/exportSarProduct?jsonData=' + jsonData + '&exportType=' + this.saveExportType + '&exportName=' + this.exportName
this.saveSelectedDatas = []
this.exportModelFlag = false
this.queryStandAndLaws()
},
// 外层分页方法
pageChange (page) {
this.page = page
this.queryStandAndLaws()
},
pageSizeChange (pageSize) {
this.pageSize = pageSize
this.queryStandAndLaws()
}
},
mounted () {
console.log('this.resId11111111',this.$route.query.resId)
// 分页查询方法
this.queryStandAndLaws()
//从数据库中查询下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this:this
},res =>{
this.countryOptions = res.data.COUNTRY //国家
}, e => {
})
this.tableHeight = $('.regulatory-repository').height() - 53 - 50 - 56
window.onresize = () => {
this.tableHeight = $('.regulatory-repository').height() - 53 - 50 - 56
}
}
}
</script>
<style lang="less" scoped>
.wx-custom-tab {
height: 100%;
padding: 0 10px;
background: #fff;
display: flex;
flex-direction: column;
/deep/.el-tabs{
flex: auto;
display: flex;
flex-direction: column;
/deep/ .el-tabs__header{
margin:0 !important;
}
.el-tabs__content {
height: 100% !important;
flex: auto;
position: relative;
display: flex;
flex-direction: column;
.el-tab-pane {
height: 100%;
flex: auto;
display: flex;
flex-direction: column;
}
}
}
}
</style>
@@ -0,0 +1,991 @@
<template>
<div class="technology-involve-project">
<!-- <div class="laws-details-header">-->
<!-- &lt;!&ndash; <div class="back" title="返回" @click="back">&ndash;&gt;-->
<!-- &lt;!&ndash; <i class="el-icon-back"></i>&ndash;&gt;-->
<!-- &lt;!&ndash; </div>&ndash;&gt;-->
<!-- <div class="title">标准涉及项目</div>-->
<!-- </div>-->
<div class="search-area">
<div class="left">
<el-form ref="sarProject" :model="sarProject" inline @keyup.enter.native="searchStandAndLaws">
<!-- <el-form-item label="国家/地区" class="search-item">-->
<!-- <el-input v-model="sarProject.country"-->
<!-- placeholder="根据国家/地区查找"-->
<!-- clearable></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="国家/地区" class="search-item search-item-last">-->
<!-- <el-select-->
<!-- v-model="sarProject.country"-->
<!-- placeholder="请选择"-->
<!-- filterable-->
<!-- clearable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in countryOptions"-->
<!-- :value="item.value"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- >-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="标准/政策号" class="search-item">
<el-input v-model="sarProject.standCode"
placeholder="标准/政策号查找"
@keyup.enter="searchStandAndLaws"
clearable></el-input>
</el-form-item>
<el-form-item label="标准/政策名称" class="search-item search-item-last">
<el-input v-model="sarProject.standName"
placeholder="标准/政策名称查找"
@keyup.enter="searchStandAndLaws"
clearable></el-input>
</el-form-item>
<el-form-item label="" class="search-item btn-box">
<el-button class="common-button-primary" type="primary" icon="el-icon-search" round @click="searchStandAndLaws"></el-button>
</el-form-item>
<el-form-item label="" class="search-item btn-box">
<el-button class="common-button-default" icon="el-icon-refresh-left" @click="resetSelect" round></el-button>
</el-form-item>
<!-- <el-form-item label="" class="search-item btn-box">-->
<!-- <el-button round class="common-button-default export-button" icon="export" @click="showExportModal('apart')">导出</el-button>-->
<!-- </el-form-item>-->
<!-- <Button type="primary" @click="showExportModal('apart')">导出</Button>-->
<!-- <Button type="primary" @click="showExportModal('all')">全部导出</Button>-->
</el-form>
</div>
<div class="right">
</div>
</div>
<div class="content">
<el-table
stripe
ref="selections"
tooltip-effect="dark"
border
:height="tableHeight"
:data="sarProjectListDatas"
class="table"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="getSelectedDatas">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="standType"
label="标准/政策类型"
width="120"
>
<template slot-scope="scope">
<div v-if="scope.row.standType === 'INLAND_STAND'">国内标准法规</div>
<div v-if="scope.row.standType === 'FOREIGN_STAND'">海外标准法规</div>
<div v-if="scope.row.standType === 'INLAND_LAWS'">国内政策</div>
<div v-if="scope.row.standType === 'FOREIGN_LAWS'">国内外政策</div>
<div v-if="scope.row.standType === 'BUSINESS_STAND'">企业标准</div>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="country"-->
<!-- label="国家/地区"-->
<!-- >-->
<!-- </el-table-column>-->
<el-table-column
prop="standCode"
label="标准/政策号"
width="180"
>
</el-table-column>
<el-table-column
prop="standName"
label="标准/政策名称"
>
</el-table-column>
<el-table-column
label=""
width="50"
align="center">
<template slot-scope="scope">
<i class="el-icon-view btn-i" v-btn-permission="'WWVT239CTACWUGHMMQVY'" @click="handleProjectCompliance(scope.row)"></i>
<!--<div @click.stop style="display: inline-block">-->
<!-- <el-dropdown trigger="click" @command="handleCommand">-->
<!-- <i class="iconfont">&#xe61e;</i>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="[scope.row, '查看项目符合性']">查看项目符合性</el-dropdown-item>-->
<!-- &lt;!&ndash; <el-dropdown-item :command="[scope.row, '流程']">流程</el-dropdown-item>&ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!--</div>-->
</template>
</el-table-column>
</el-table>
<pagination :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<loading :loading="loading">数据处理中</loading>
</div>
<!-- 查看符合标准性弹窗-->
<el-drawer
title="标准涉及项目符合性"
:visible.sync="showSarProStateModal"
:wrapperClosable="false"
size="800px"
:before-close="clearSearchPro"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="el-drawer-form">
<div class="search-area">
<div class="left">
<el-form :inline="true" :model="sarProStateEO" class="label-input-form">
<el-form-item label="项目名称" class="search-item search-item-last">
<el-input
v-model="sarProStateEO.productName"
placeholder="根据项目名称查找"
:maxlength="100"
clearable></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
icon="el-icon-search"
type="primary"
class="common-button-primary"
round
@click="querySarProStateZero"></el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
round
@click="clearSearchProState"></el-button>
</el-form-item>
</el-form>
</div>
<div class="right">
</div>
</div>
<el-table
v-if="this.isExistItems === 0"
ref="multipleTable"
:data="sarProStateListDatas"
tooltip-effect="dark"
style="width: 100%"
border
:height="sarProStateTableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
@selection-change="sarProductStateSelect">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="accessType"-->
<!-- label="清单类型">-->
<!-- <template slot-scope="scope">-->
<!-- <div v-if="scope.row.accessType === 'first'">研发合规法规清单</div>-->
<!-- <div v-if="scope.row.accessType === 'second'">认证合规法规清单</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
prop="carModel"
label="公告车型号">
</el-table-column>
<!--<el-table-column-->
<!-- prop="itemName"-->
<!-- label="标准名称">-->
<!-- <template slot-scope="scope">-->
<!-- <div>{{ exportShowName }}</div>-->
<!-- </template>-->
<!--</el-table-column>-->
<el-table-column
prop="sarState"
label="符合性状态">
<template slot-scope="scope">
<div class="table-jump" @click="changeState(scope.row)">
<div v-if="scope.row.sarState === 1">待验证</div>
<div v-if="scope.row.sarState === 2">符合</div>
<div v-if="scope.row.sarState === 3">不符合</div>
<div v-if="scope.row.sarState === 4">部分符合</div>
<div v-if="scope.row.sarState === 5">不涉及</div>
<div v-if="scope.row.sarState === 6">评估中</div>
<div v-if="scope.row.sarState === 7">整改中</div>
<div v-if="scope.row.sarState === 8">未评估</div>
</div>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" width="50" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <div @click.stop style="display: inline-block">-->
<!-- <el-dropdown trigger="click" @command="handleCommandInside">-->
<!-- <i class="iconfont">&#xe61e;</i>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="[scope.row, '编辑']">编辑</el-dropdown-item>-->
<!--&lt;!&ndash; <el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>&ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
:page="sarProStateTotalPage"
:total="sarProStateTotal"
@pageChange="pageProStateChange"
@pageSizeChange="pageProStateSizeChange"></pagination>
</div>
<!-- <div class="demo-drawer-footer">-->
<!-- <el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="saveCopyInfor" :loading="isSubmit">提交</el-button>-->
<!-- <el-button round class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>-->
<!-- </div>-->
</div>
<!-- 编辑符合性-->
<el-dialog title="编辑符合性" width="400px" :append-to-body="true" :visible.sync="editSarComModal" :before-close="handleClose">
<el-form ref="editSarComEO" :model="editSarComEO" class="label-input-form" style="height: 200px">
<el-input v-model="editSarComEO.id" v-show="false"></el-input>
<el-form-item v-if="this.isExistItems === 0" label="符合性" prop="sarState" class="laws-info-item">
<search-select v-model="editSarComEO.sarState" :options="conformStateOptions1" />
</el-form-item>
<el-form-item v-if="this.isExistItems === 1" label="符合性" prop="sarState" class="laws-info-item">
<search-select v-model="editSarComEO.itemState" :options="conformStateOptions" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="updateSarState">确 定</el-button>
<!-- <el-button round v-if="this.isExistItems === 1" class="common-button-primary" icon="el-icon-check" type="primary" @click="updateSarState">确 定</el-button>-->
<el-button round class="common-button-default" icon="el-icon-close" @click="handleClose">取 消</el-button>
</div>
</el-dialog>
<loading :loading="loading2">数据处理中</loading>
</el-drawer>
<!-- 查看符合标准性弹窗2-->
<el-drawer
title="标准涉及项目符合性"
:visible.sync="showSarProStateModal2"
:wrapperClosable="false"
size="800px"
:before-close="clearSearchPro2"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="el-drawer-form">
<div class="search-area">
<div class="left">
<el-form :inline="true" :model="sarProStateEO2" class="label-input-form">
<el-form-item label="项目名称" class="search-item search-item-last">
<el-input
v-model="sarProStateEO2.productName"
placeholder="根据项目名称查找"
:maxlength="100"
clearable></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
icon="el-icon-search"
type="primary"
class="common-button-primary"
round
@click="queryItemsBySar"></el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
round
@click="clearSearchProState2"></el-button>
</el-form-item>
</el-form>
</div>
<div class="right">
</div>
</div>
<el-table
ref="multipleTable2"
:data="sarProStateListDatas2"
tooltip-effect="dark"
style="width: 100%"
border
:height="sarProStateTableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
@selection-change="sarProductStateSelect2">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<!-- <el-table-column-->
<!-- prop="accessType"-->
<!-- label="清单类型">-->
<!-- <template slot-scope="scope">-->
<!-- <div v-if="scope.row.accessType === 'first'">研发合规法规清单</div>-->
<!-- <div v-if="scope.row.accessType === 'second'">认证合规法规清单</div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
prop="carModel"
label="公告车型号">
</el-table-column>
<el-table-column
prop="itemName"
label="条目名称">
</el-table-column>
<el-table-column
prop="sarState"
label="符合性状态">
<template slot-scope="scope">
<div class="table-jump" @click="handleItemClick(scope.row)">
<div v-if="scope.row.sarState === 1">待验证</div>
<div v-if="scope.row.sarState === 2">符合</div>
<div v-if="scope.row.sarState === 3">不符合</div>
<div v-if="scope.row.sarState === 4">部分符合</div>
<div v-if="scope.row.sarState === 5">不涉及</div>
<div v-if="scope.row.sarState === 6">评估中</div>
<div v-if="scope.row.sarState === 7">整改中</div>
<div v-if="scope.row.sarState === 8">未评估</div>
</div>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" width="50" fixed="right">-->
<!-- <template slot-scope="scope">-->
<!-- <div @click.stop style="display: inline-block">-->
<!-- <el-dropdown trigger="click" @command="handleCommandInside">-->
<!-- <i class="iconfont">&#xe61e;</i>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="[scope.row, '编辑']">编辑</el-dropdown-item>-->
<!-- &lt;!&ndash; <el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>&ndash;&gt;-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </div>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
:page="sarProStateTotalPage2"
:total="sarProStateTotal2"
@pageChange="pageProStateChange2"
@pageSizeChange="pageProStateSizeChange2"></pagination>
</div>
<!-- <div class="demo-drawer-footer">-->
<!-- <el-button round class="common-button-primary" icon="el-icon-check" type="primary" @click="saveCopyInfor" :loading="isSubmit">提交</el-button>-->
<!-- <el-button round class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>-->
<!-- </div>-->
</div>
<loading :loading="loading3">数据处理中</loading>
</el-drawer>
<!-- 查看符合标准性弹窗 流程-->
<el-drawer
title="相关流程"
:visible.sync="processListVisible"
:wrapperClosable="false"
size="800px"
class="not-footer-drawer"
>
<div class="demo-drawer-content">
<div class="el-drawer-form">
<el-table
ref="processList"
:data="processList"
tooltip-effect="dark"
style="width: 100%"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', fontFamily: 'MicrosoftYaHei-Bold', height: '48px'}"
>
<el-table-column
prop="processNumber"
label="流程编号">
<template slot-scope="scope">
<div class="table-jump" @click="handleProcessClick(scope.row)">
{{ scope.row.processNumber }}
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
export default {
name: "technologyInvolveProjectTwo",
data () {
return {
// 条件查询
sarProject: {
// 国家地区
country: '',
// 标准/政策号
standCode: '',
// 标准政策名称
standName: '',
resId: '',
},
// table数据
sarProjectListDatas: [],
countryOptions: [], //国家选择下拉框数据
drawerCountryOptions: [], // 准入信息 国家下拉框
// table高度
tableHeight: null,
// 列表页loading
loading: false,
loading2: false,
loading3: false,
// 外层列表页数据条数
total: 0,
page: 1,
resId: this.$route.query.resId,
pageSize: this.$store.getters.userInfo.configContent,
// 导出时候用
SarExportSearchEo: {},
// 项目符合性数据
saveSarId: '',
saveSarType: '',
exportShowName: '',
sarItem: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
sarItem2: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
// 新增、编辑 准入信息字段
sarAccessEO: {
country: '',
},
// 模态框内容
sarItemTotal: 0,
itemsPage: 1,
itemsPageSize: this.$store.getters.userInfo.configContent,
sarItemListDatas: [],
conformStateOptions: [
{label: '待验证', value: 1},
{label: '符合', value: 2},
{label: '不符合', value: 3},
// {label: '部分符合', value: 4},
{label: '不涉及', value: 5}
// {label: '评估中', value: 6},
// {label: '整改中', value: 7},
// {label: '未评估', value: 8}
],
conformStateOptions1: [
{label: '待验证', value: 1},
{label: '符合', value: 2},
{label: '不符合', value: 3},
// {label: '部分符合', value: 4},
{label: '不涉及', value: 5}
// {label: '评估中', value: 6},
// {label: '整改中', value: 7},
// {label: '未评估', value: 8}
],
// 查看标准在项目中符合性数据
showSarProStateModal: false,
showSarProStateModal2: false,
sarProStateEO: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
sarProStateEO2: {
standId: '',
standType: '',
productCode: '',
productName: ''
},
sarProStateTotal: 0,
sarProStateTotalPage: 1,
sarProStatePageSize: this.$store.getters.userInfo.configContent,
sarProStateTotal2: 0,
sarProStateTotalPage2: 1,
sarProStatePageSize2: this.$store.getters.userInfo.configContent,
saveClickProductId: '',
saveSarProductId: '',
// 符合性查看弹窗的打开
showSarItemModal: false,
// 符合性项目列表数据
sarProStateListDatas: [],
// 符合性项目列表数据2
sarProStateListDatas2: [],
// 符合性项目列表高度
sarProStateTableHeight: null,
editSarComEO: {
id: '',
sarState: ''
},
editSarComEODefault: {
id: '',
sarState: ''
},
editSarComEO2: {
id: '',
itemState: ''
},
editSarComEODefault2: {
id: '',
itemState: ''
},
// 编辑弹窗打开
editSarComModal: false,
// 选中一行查看符合性弹窗的标准号,
standNum: '',
// 用于切换分页,0,1
isExistItems: '',
processList: [],
processListVisible: false
}
},
methods: {
changeState (row) {
console.log('0000')
console.log(row.productId)
console.log(row)
console.log(row.sarState)
let routeUrl = this.$router.resolve({
name: 'ComplianceDetails',
query: {
sarId: row.productId,
// sarId: row.id,
sarType: row.sarState
}
})
window.open(routeUrl.href, '_blank')
},
/**
* 查看项目符合性弹框里面的
* 符合性状态列点击事件
*/
handleSarStateClick(row) {
if (row.sarState === 8) {
return
}
// console.log(row)
this.showSarProStateModal2 = true
this.saveClickProductId = row.productId
this.queryItemsBySar()
},
/**
* 查看项目 条款 弹框里面的
* 符合性状态列点击事件
*/
handleItemClick(row) {
const processList = row.process ? row.process.split(',') : []
console.log(processList)
this.processList = processList.map(item => {
return {
processNumber: item
}
})
this.processListVisible = true
},
/**
* 查看项目 条款 流程编号弹框里面的
* 流程编号点击事件
*/
handleProcessClick(row) {
const processNumber = row.processNumber
this.$store.commit('setDetailMap', this.$route.path)
this.$router.push({
name: 'ProcessDetail',
query: {
prcNum: processNumber
}
})
},
// 返回
back () {
this.$router.push(this.$store.state.detailMap)
this.$store.commit('setDetailMap', '')
},
// 列表操作栏 ...
handleCommand (command) {
switch (command[1]) {
case '查看项目符合性':
this.handleProjectCompliance(command[0])
break
}
},
// 符合性项目列表操作
handleCommandInside (command) {
switch (command[1]) {
case '编辑':
this.handleEdit(command[0])
break
// case '查看':
// this.handleProjectCompliance(command[0])
// break
}
},
searchStandAndLaws () {
this.page = 1
this.queryStandAndLaws()
},
// 分页查询
queryStandAndLaws () {
console.log('this.resId',this.resId)
this.sarProject.page = this.page
this.sarProject.pageSize = this.pageSize
this.sarProject.resId = this.resId
this.SarExportSearchEo = this.sarProject
this.$http.get('lawss/sarCompResAssess/page', this.sarProject, {
_this: this,
loading: 'loading',
}, res => {
console.log(res.data.list)
console.log(res.data.count)
this.sarProjectListDatas = res.data.list
this.total = res.data.count
}, e => {
})
},
// 分页查询条目符合性
queryItemsBySar () {
this.sarItem2.page = this.itemsPage
this.sarItem2.pageSize = this.itemsPageSize
this.sarItem2.standId = this.saveSarId
this.sarItem2.standType = this.saveSarType
this.sarItem2.productId = this.saveClickProductId
this.$http.get('lawss/sarProductSarState/page', this.sarItem2, {
_this: this,
loading: 'loading3'
}, res => {
// this.sarItemListDatas = res.data.list
// this.sarItemTotal = res.data.count
this.sarProStateListDatas2 = res.data.list
this.sarProStateTotal2 = res.data.count
}, e => {
})
},
// 外层清空条件查询
resetSelect () {
this.sarProject.country = ''
this.sarProject.standCode=''
this.sarProject.standName = ''
this.queryStandAndLaws()
},
// 查看项目符合性
handleProjectCompliance (row) {
this.saveSarId = row.standId
this.saveSarType = row.standType
this.exportShowName = row.standName
this.sarItem.productCode = ''
this.sarItem.productName = ''
// this.queryItemsBySar()
this.row = row
// 原方案
// if (this.row.isExistItems === 1) {
// this.isExistItems = 1
// this.standNum = this.row.standCode
// // this.querySarProStateFirst()
// this.saveSarId = this.row.standId
// this.queryItemsBySar()
// this.showSarProStateModal = true
// } else {
// this.isExistItems = 0
// this.querySarProStateZero()
// this.showSarProStateModal = true
// }
this.$http.get('lawss/sarProductStand/isPermission', {standId: this.saveSarId}, {
_this: this,
loading: 'loading3'
}, res => {
if (res.ok){
// 现阶段方案
this.isExistItems = 0
this.querySarProStateZero()
// this.showSarProStateModal = true]
let routeUrl = this.$router.resolve({
name: 'ComplianceDetails',
query: {
sarId: row.standId,
sarType: row.standType
}
})
window.open(routeUrl.href, '_blank')
} else{
this.$message.warning('无权访问')
}
}, e => {
})
},
handleProjectPreview (row) {
this.saveClickProductId = row.productId
this.saveSarProductId = row.id
this.queryItemsBySar()
this.showSarItemModal = true
},
// 如果isExistItems === 0查看标准在项目中符合性列表
querySarProStateZero () {
// let queryUrl = ''
this.sarProStateEO.page = this.sarProStatePage
this.sarProStateEO.pageSize = this.sarProStatePageSize
this.sarProStateEO.standId = this.saveSarId
this.sarProStateEO.standType = this.saveSarType
this.$http.get('lawss/sarProductStand/queryInvolveProByPage', this.sarProStateEO, {
_this: this,
loading: 'loading2'
}, res => {
this.sarProStateListDatas = res.data.list
this.sarProStateTotal = res.data.count
}, e => {
})
},
// 如果isExistItems === 1 查看标准在项目中符合性列表
querySarProStateFirst () {
// let queryUrl = ''
this.sarProStateEO2.page = this.sarProStatePage2
this.sarProStateEO2.pageSize = this.sarProStatePageSize2
// this.sarProStateEO.standId = this.saveSarId
// this.sarProStateEO.standType = this.saveSarType
this.sarProStateEO2.standNum = this.standNum
this.$http.get('lawss/sarInconformItem/queryInvolveItems', this.sarProStateEO2, {
_this: this,
loading: 'loading'
}, res => {
this.sarProStateListDatas2 = res.data.list
this.sarProStateTotal2 = res.data.count
}, e => {
})
},
// 列表多选
sarProductStateSelect (val) {
console.log(val)
},
// 列表多选
sarProductStateSelect2 (val) {
console.log(val)
},
// 清空条件查询
clearSearchProState () {
this.sarProStateEO.productCode = ''
this.sarProStateEO.productName = ''
if (this.isExistItems === 0) {
this.querySarProStateZero()
} else {
this.querySarProStateFirst()
}
},
// 清空条件查询
clearSearchProState2 () {
this.sarProStateEO2.productCode = ''
this.sarProStateEO2.productName = ''
this.querySarProStateFirst()
},
// 清空查询
clearSearchPro () {
this.sarProStateEO.productCode = ''
this.sarProStateEO.productName = ''
this.showSarProStateModal = false
},
// 清空查询
clearSearchPro2 () {
this.sarProStateEO2.productCode = ''
this.sarProStateEO2.productName = ''
this.showSarProStateModal2 = false
},
// 项目符合性分页
pageProStateChange (page) {
this.sarProStatePage = page
this.querySarProStateZero()
},
pageProStateSizeChange (pageSize) {
this.sarProStatePageSize = pageSize
this.querySarProStateZero()
},
// 项目符合性分页
pageProStateChange2 (page) {
this.sarProStatePage2 = page
this.querySarProStateFirst()
},
pageProStateSizeChange2 (pageSize) {
this.sarProStatePageSize2 = pageSize
this.querySarProStateFirst()
},
// 编辑符合性弹窗打开
handleEdit (row) {
this.saveSarProductId = row.id
this.editSarComEO.sarState = row.sarState
this.editSarComModal = true
},
// 编辑符合性弹窗关闭
handleClose () {
if (this.isExistItems === 0) {
this.editSarComEO = {...this.editSarComEODefault}
} else {
this.editSarComEO2 = {...this.editSarComEODefault2}
}
this.$refs['editSarComEO'].clearValidate()
this.editSarComModal = false
},
// 符合性弹窗修改保存
updateSarState () {
if (this.isExistItems === 0) {
const data = {}
data.sarType = this.saveSarType
data.id = this.saveSarProductId
data.sarItemState = this.editSarComEO.sarState
this.$http.putData('lawss/sarProductSarState/updateSarState', data, {
_this: this
}, res => {
this.editSarComModal = false
this.querySarProStateZero()
}, e => {})
} else {
const data = {}
data.sarType = this.saveSarType
data.id = this.saveSarProductId
data.sarItemState = this.editSarComEO.itemState
this.$http.putData('lawss/sarProductSarState/updateState', data, {
_this: this
}, res => {
this.editSarComModal = false
this.queryItemsBySar()
// const data = {}
// data.sarType = this.saveSarType
// data.itemState = this.editSarComEO.itemState
// data.id = this.saveSarProductId
// this.$http.putData('lawss/sarInconformItem/updateItem', data, {
// _this: this
// }, res => {
// this.editSarComModal = false
// this.querySarProStateFirst()
}, e => {})
}
},
// 导出多选, table列表多选
getSelectedDatas (selection) {
this.saveSelectedDatas = selection
},
// 点击导出按钮
showExportModal (type) {
// 区别是选择导出还是全部导出
this.saveExportType = type
if (type === 'apart') {
if (this.saveSelectedDatas != null && this.saveSelectedDatas.length > 0) {
this.exportName = ''
this.exportModelFlag = true
} else {
this.$message.error('请选择要导出的数据')
}
} else {
this.exportName = ''
this.exportModelFlag = true
}
},
// 确认导出
exportSarProduct () {
if (this.exportName === '' || this.exportName === null || this.exportName === 'null') {
this.exportName = '标准涉及项目'
}
let jsonData = ''
if (this.saveExportType === 'apart') {
jsonData = JSON.stringify(this.saveSelectedDatas)
} else if (this.saveExportType === 'all') {
let exportEOStr = JSON.stringify(this.SarExportSearchEo)
jsonData = exportEOStr.replace(/""/g, null)
}
window.location.href = '/api/lawss/sarProductLaws/exportSarProduct?jsonData=' + jsonData + '&exportType=' + this.saveExportType + '&exportName=' + this.exportName
this.saveSelectedDatas = []
this.exportModelFlag = false
this.queryStandAndLaws()
},
// 外层分页方法
pageChange (page) {
this.page = page
this.queryStandAndLaws()
},
pageSizeChange (pageSize) {
this.pageSize = pageSize
this.queryStandAndLaws()
}
},
mounted () {
// 分页查询方法
this.queryStandAndLaws()
//从数据库中查询下拉框数据
this.$http.get('sys/dictype/getDicTypeListCode', '',{
_this:this
},res =>{
this.countryOptions = res.data.COUNTRY //国家
}, e => {
})
this.tableHeight = $('.regulatory-repository').height() - 53 - 50 - 56
window.onresize = () => {
this.tableHeight = $('.regulatory-repository').height() - 53 - 50 - 56
}
}
}
</script>
<style lang="less" scoped>
.technology-involve-project{
height: 100%;
.laws-details-header {
background: #fff;
// height: 30px;
line-height: 50px;
padding: 0 10px;
//margin-bottom: 5px;
.back {
display: inline-block;
margin-right: 10px;
}
.title {
display: inline-block;
font-weight: bold;
font-size: 18px;
flex: 1;
padding: 0 15px;
text-align: center;
}
}
.contaiiner {
background: #fff;
padding: 5px 10px;
}
.content {
height: calc(~'100% - 52px');
.el-table {
height: calc(~'100% - 56px');
}
/deep/.el-table--scrollable-y .el-table__body-wrapper {
overflow-y: auto;
height: calc(~'100% - 48px') !important;
}
}
}
</style>
<style lang="less">
.technology-involve-project{
.search-area .search-item .el-input--suffix .el-input__inner{
padding-right: 15px;
}
}
</style>
+43
View File
@@ -0,0 +1,43 @@
<!-- 流程基础信息详情 -->
<template>
<div class="prc-detail">
<components :is="component"></components>
</div>
</template>
<script>
import ruKu from './ruku'
export default {
name: 'prcDetail',
mixins: [],
components: {
ruKu
},
data() {
return {}
},
methods: {},
computed: {
prcType() {
return this.$route.query.prcType
},
component() {
switch (this.prcType) {
case '1':
return 'ruKu'
default:
this.$message.warning('流程参数获取失败,请正确操作')
return '404'
}
}
},
watch: {},
mounted() {
}
}
</script>
<style lang="less" scoped>
.prc-detail {
}
</style>
File diff suppressed because it is too large Load Diff