Merge branch 'develop' into FOTON

This commit is contained in:
Superman_Main
2021-11-29 22:24:41 +08:00
23 changed files with 4179 additions and 4201 deletions
@@ -145,9 +145,8 @@ export default {
watch: {
value (val) {
this.tagList = val !== '' && val !== null ? val.split(',') : []
// 把日期的时分秒去掉
this.tagList=this.tagList.map((item)=>item.substring(0,10))
console.log("this.tagList",this.tagList);
},
tagList: {
handler (val) {
+7
View File
@@ -23,6 +23,7 @@
class="filter-tree tree-line"
:data="treeData"
:props="defaultProps"
icon-class="icon-tree"
:check-strictly="true"
:current-node-key="nodeKeyId"
node-key="id"
@@ -169,6 +170,12 @@ export default {
</script>
<style lang="less" scoped>
/deep/ .icon-tree {
margin: 0 5px 0 10px;
position: relative;
background: url('~@/assets/images/shangqi/img/tree-add.png');
background-size: 100% 100%;
}
/deep/ .el-tree-node__content {
padding-left: 0px !important;
}
+8 -1
View File
@@ -1,7 +1,6 @@
<template>
<div class="roleTree">
<el-drawer
@keyup.enter.native="saveUserInfo"
:title="isTitle"
:visible.sync="isVisible2"
:wrapperClosable="false"
@@ -26,6 +25,7 @@
node-key="id"
style="height: 100%; overflow: auto;"
class="filter-tree tree-line"
icon-class="icon-tree"
@check-change="checkChange"
:data="treeData"
:props="defaultProps"
@@ -48,6 +48,7 @@
node-key="id"
style="height: 100%; overflow: auto;"
class="filter-tree tree-line"
icon-class="icon-tree"
:data="treeData1"
:props="defaultProps"
@check-change="checkChange2"
@@ -250,6 +251,12 @@
</script>
<style lang="less" scoped>
/deep/ .icon-tree {
margin: 0 5px 0 10px;
position: relative;
background: url('~@/assets/images/shangqi/img/tree-add.png');
background-size: 100% 100%;
}
/deep/.el-tree-node__content {
padding-left: 0px !important;
}
+102 -233
View File
@@ -1,229 +1,107 @@
<!--符合性详情-->
<template>
<div id="complianceDetails">
<!-- v-if="unfit.length"不满足-->
<el-divider content-position="left" >不满足</el-divider>
<el-table
<!-- 不满足-->
<el-divider content-position="left" v-if="unfit.length" >不满足</el-divider>
<div class="content">
<el-table
height="100%"
ref="selection"
v-if="unfit.length"
: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
<el-table-column
prop="standNumber"
label="标准号"
label="标准号/条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="itemsNumber"
label="条款号"
align="center"
>
</el-table-column>
<el-table-column
prop=""
label="评估人"
align="center"
>
</el-table-column>
<el-table-column
prop=""
label="评估时间"
align="center"
>
</el-table-column>
<el-table-column
prop=""
>
</el-table-column>
<el-table-column
prop="noCompliance"
label="不合规项目"
align="center"
>
</el-table-column>
<el-table-column
prop=""
>
</el-table-column>
<el-table-column
prop="countermeasures "
label="应对措施"
align="center"
>
</el-table-column>
<el-table-column
prop=""
>
</el-table-column>
<el-table-column
prop="completionTime "
label="完成时间"
align="center"
>
</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="标准号/条款号"
>
</el-table-column>
<el-table-column
prop="assessor"
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"
>
</el-table-column>
<el-table-column
prop="evaluationTime"
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>
>
<template slot-scope="scope">
<span>{{ scope.row.evaluationTime ? $moment(scope.row.evaluationTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
</el-table>
<pagination :page="page" :total="total" @pageChange="pageChange"
@pageSizeChange="pageSizeChange"></pagination>
</div>
<!--满足-->
<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',
<div class="content">
<el-table
height="100%"
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="standNumber"
label="标准号"
align="center"
>
</el-table-column>
<el-table-column
prop="itemsNumber"
label="条款号"
align="center"
>
</el-table-column>
<el-table-column
prop=""
label="评估人"
align="center"
>
</el-table-column>
<el-table-column
prop=""
label="评估时间"
align="center"
>
</el-table-column>
<el-table-column
prop=""
label="合规"
align="center"
>
</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>
<el-table-column
prop="standNumber"
label="标准号/条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="complianceReasons"
label="合规"
align="center"
>
</el-table-column>
<el-table-column
prop="assessor"
label="评估人"
align="center"
>
</el-table-column>
<el-table-column
prop="evaluationTime"
label="评估时间"
align="center"
>
<template slot-scope="scope">
<span>{{ scope.row.evaluationTime ? $moment(scope.row.evaluationTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
</el-table>
</div>
<!-- <pagination :page="page" :total="total" @pageChange="pageChange"-->
<!-- @pageSizeChange="pageSizeChange"></pagination>-->
<loading :loading="loading">加载中...</loading>
</div>
</template>
@@ -233,52 +111,36 @@ export default {
data () {
return {
loading: false,
check: [], // 待验证
fit: [], // 满足
notInvolve: [], // 不涉及
unfit: [] // 不满足
unfit: [], // 不满足
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
total: 0,
}
},
methods: {
pageSizeChange(pageSize){
this.pageSize = pageSize
},
pageChange(page){
this.page = page
},
// 查询数据
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.$http.get('sarStandardComplianceAssessResult/productNewDetail', {
productId: this.$route.query.productId,
standId: this.$route.query.standId,
}, {
_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
this.fit = res.data.fit.records
this.unfit = res.data.unfit.records
} 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: 跳转流程
@@ -304,5 +166,12 @@ export default {
//width: 1200px;
//margin: 0 auto;
height: 100%;
.content{
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'50% - 30px');
overflow: auto;
}
}
</style>
@@ -4,29 +4,29 @@
<!--title 标题-->
<div class="details-header">
<span>{{sarStandardsInfoEO.standCode}} {{sarStandardsInfoEO.standName}} 企标详情</span>
<!-- 之前的先注掉-->
<!-- <span>{{sarStandardsInfoEO.standCode}}-{{sarStandardsInfoEO.standYear}} {{sarStandardsInfoEO.standName}} 企标详情</span>-->
<!-- 之前的先注掉-->
<!-- <span>{{sarStandardsInfoEO.standCode}}-{{sarStandardsInfoEO.standYear}} {{sarStandardsInfoEO.standName}} 企标详情</span>-->
</div>
<!--主体内容-->
<div class="details-content" style="position: relative">
<div class="details-content-modular basic-information" style="border-top: 2px dashed #D1D1D1;">
</div>
<div
class="details-content-modular clearfix"
v-for="(item, index) in dynamicFormField"
:key="index"
v-if="item.isShowImp === '0'"
class="details-content-modular clearfix"
v-for="(item, index) in dynamicFormField"
:key="index"
v-if="item.isShowImp === '0'"
>
<el-collapse v-model="activeNames" @change="handleChange">
<div v-if="item.label === '基础信息'" class="details-content-modular basic-information"
style="border-top:none;position: absolute;right: 36px;">
<div class="modular-header" style="height: 50px;">
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" style="color: #f56c6c;" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" style="color: #4788c0;" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新记录</el-button>
</div>
<div class="modular-header" style="height: 50px;">
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="el-icon-star-on" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新记录</el-button>
</div>
</div>
</div>
<el-collapse-item :name="item.label" @click.native="handleChange1(item.label)">
<template slot="title">
@@ -43,41 +43,41 @@
<template v-if = "item.label === '基础信息'">
<div class="details-content-modular basic-information" style="margin-bottom: 0">
<div class="basic-information-content">
<p class="half" style="color: #C42626;"><label style=" margin-right: 171px;">企标号</label><span>{{ sarStandardsInfoEO.standCode }}</span></p>
<p class="" style="color: #C42626;"><label style=" margin-right: 171px;">企标号</label><span>{{ sarStandardsInfoEO.standCode }}</span></p>
<template v-for="(child, childIndex) in item.child1">
<p class="half files-title"
<p class="files-title"
>
<label style=" margin-right: 102px;">{{ child.attrName }}</label>
<label style=" margin-right: 172px;">{{ child.attrName }}</label>
<template v-if="child.value && child.value.length > 0" v-for="(file, fileIndex) in child1Func(child.value)">
<span>
<a style="font-size: 16px;color: #409EFF;cursor: pointer" @click="openFileInPdf(file.id, file.oldFileName)" target="_blank" :title="file.oldFileName">{{ file.oldFileName | ellipsis }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '9882f477aad895ec56a7464f3e9c0b11'"
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '9882f477aad895ec56a7464f3e9c0b11'"
/>
<i
title="下载带水印"
v-show="file.fileSuffix === 'pdf' || file.fileSuffix === 'PDF'"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '9bab2662fbd9d0507b39be813371a597'"
title="下载带水印"
v-show="file.fileSuffix === 'pdf' || file.fileSuffix === 'PDF'"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '9bab2662fbd9d0507b39be813371a597'"
/>
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
<!-- <span class="time-text">上传时间{{ dateFormat(file.modifyTime) }}</span>-->
</span>
<!-- <el-button-->
<!-- v-if="child.attrField === itemNam "-->
<!-- v-for="(itemNam,index) in itemExistList"-->
<!-- :key="index"-->
<!-- @click="showItemsModel(child.attrField)"-->
<!-- class="decomposition-btn"-->
<!-- style="right:62px"-->
<!-- icon="icon-separate"-->
<!-- >标准分解单-->
<!-- </el-button>-->
<el-button v-if="child.value.length > 1" style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
class="decomposition-btn" icon="icon-relation" @click="relateEvent1(child.value)">更多</el-button>
<!-- <el-button-->
<!-- v-if="child.attrField === itemNam "-->
<!-- v-for="(itemNam,index) in itemExistList"-->
<!-- :key="index"-->
<!-- @click="showItemsModel(child.attrField)"-->
<!-- class="decomposition-btn"-->
<!-- style="right:62px"-->
<!-- icon="icon-separate"-->
<!-- >标准分解单-->
<!-- </el-button>-->
<el-button v-if="child.value.length > 1" style="color:#409EFF;border: 1px solid #409EFF;background: rgba(64, 158, 255, 0.1);"
class="decomposition-btn" icon="icon-relation" @click="relateEvent1(child.value)">更多</el-button>
</template>
<template v-if="child.value === null" >-</template>
</p>
@@ -92,8 +92,8 @@
<p class="half"><label style=" margin-right: 157px;">发布日期</label><span>{{ sarStandardsInfoEO.issueTime || '-' }}</span></p>
<p class="half" style=""><label style=" margin-right: 122px;">标准实施日期</label><span>{{ sarStandardsInfoEO.putTime || '-' }}</span></p>
<template
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0'"
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0'"
>
<p class="half">
<label style=" margin-right: 157px;" :title="child.attrName">{{child.attrName}}</label>
@@ -111,25 +111,25 @@
</div>
</template>
<template
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0' && item.label !== '基础信息'"
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0' && item.label !== '基础信息'"
>
<div
:key="childIndex"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
:key="childIndex"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
>
<label class="modular-content-p-name" :title="child.attrName">{{ child.attrName }}</label>
<span
v-if="child.attrField === 'ZYQCR'"
class="modular-content-p-val clearfix"
:title="child.value || '-'"
v-if="child.attrField === 'ZYQCR'"
class="modular-content-p-val clearfix"
:title="child.value || '-'"
>
<template v-if="child.value">
{{ child.value }}
<put-question-button
style="float: right;"
:resId="sarStandardsInfoEO.id"
:resType="saveStandType"
style="float: right;"
:resId="sarStandardsInfoEO.id"
:resType="saveStandType"
></put-question-button>
</template>
<template v-else>
@@ -155,9 +155,9 @@
<!--相关计划-->
<template v-else-if="child.attrField === 'XGJH' && child.value">
<span
v-if="child.value.length === 0"
class="modular-content-p-val"
:title="'-'"
v-if="child.value.length === 0"
class="modular-content-p-val"
:title="'-'"
>
{{ '-' }}
</span>
@@ -168,24 +168,24 @@
</p>
</template>
<span
v-else-if="child.attrField === 'SVPPS'"
class="modular-content-p-val"
:title="child.tips || '-'"
v-else-if="child.attrField === 'SVPPS'"
class="modular-content-p-val"
:title="child.tips || '-'"
>
{{ !child.value || child.value === 'null' ? '-' : child.value }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" v-btn-permission="'9882f477aad895ec56a7464f3e9c0b11'"/>
@@ -206,15 +206,15 @@
</el-collapse>
</div>
</div>
<!-- <div v-show="!isMoreAwayBtn" class="more" @click="moreClick">更多<img src="@/assets/images/shangqi/img/more.png"></div>-->
<!-- <div v-show="!isMoreAwayBtn" class="more" @click="moreClick">更多<img src="@/assets/images/shangqi/img/more.png"></div>-->
<!-- <div v-show="isMoreAwayBtn" class="put-away" @click="putAwayClick">收起<img src="@/assets/images/shangqi/img/more.png"></div>-->
<!--查看标准条目列表-->
<el-drawer
title="查看分解单"
:wrapperClosable="false"
:visible.sync="modalStandItemflag"
size="80%"
class="not-footer-drawer"
title="查看分解单"
:wrapperClosable="false"
:visible.sync="modalStandItemflag"
size="80%"
class="not-footer-drawer"
>
<div class="search-area">
<div class="left">
@@ -223,19 +223,19 @@
<el-input size="small" v-model="standItemSearch.orgName" v-show="false" style="height: 32px"/>
<el-input size="small" v-model="standItemSearch.responsibleUnit" v-show="false" style="height: 32px"/>
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
v-model="standItemSearch.orgName"
slot="reference"
placeholder="请选择部门"
readonly
id="searchInlandDeptBtn"
@on-change="inputChange"
style="margin-right: 0;"/>
v-model="standItemSearch.orgName"
slot="reference"
placeholder="请选择部门"
readonly
id="searchInlandDeptBtn"
@on-change="inputChange"
style="margin-right: 0;"/>
<div class="api">
<laws-tree :zNodes="searchInlandNodes"
treeDivId="domesticTree1"
@@ -251,25 +251,25 @@
<el-form-item class="search-item">
<el-input v-model="standItemSearch.nameOrRequest" size="small" placeholder="根据条款名称/内容查找" clearable maxlength="100"></el-input>
</el-form-item>
<!-- <el-form-item class="search-item">-->
<!-- <el-input v-model="standItemSearch.parts" size="small" placeholder="根据涉及零部件查找" clearable maxlength="100"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item class="search-item">-->
<!-- <el-input v-model="standItemSearch.parts" size="small" placeholder="根据涉及零部件查找" clearable maxlength="100"></el-input>-->
<!-- </el-form-item>-->
<el-form-item class="search-item btn-box">
<el-button
:loading="searching"
icon="el-icon-search"
type="primary"
round
class="common-button-primary"
@click="searchSarStandItems">
:loading="searching"
icon="el-icon-search"
type="primary"
round
class="common-button-primary"
@click="searchSarStandItems">
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
@click="clearAllSearch"
round>
class="common-button-default"
icon="el-icon-refresh-left"
@click="clearAllSearch"
round>
</el-button>
</el-form-item>
</el-form>
@@ -277,13 +277,13 @@
</div>
<div class="action-bar">
<el-button
round
type="primary"
class="common-button-primary add-button"
:loading="searching"
icon="add"
@click="addItemModal"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '84a37ea1e1' : '3D87NJR8N3'">新增</el-button>
round
type="primary"
class="common-button-primary add-button"
:loading="searching"
icon="add"
@click="addItemModal"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '84a37ea1e1' : '3D87NJR8N3'">新增</el-button>
<el-button class="common-button-default" :loading="searching" @click="uploadImportModal">模板下载</el-button>
<el-button class="common-button-default in-button" :loading="searching" icon="in" @click="addImportModal(2)" v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '9ca97b05b2' : '6JM97X9W9C'">导入</el-button>
<el-button class="common-button-default export-button" icon="export" @click="exportStandardItem">导出</el-button>
@@ -291,73 +291,73 @@
</div>
<div class="content">
<el-table
ref="multipleTable"
:data="standItemList"
tooltip-effect="dark"
border
style="width: 100%"
:height="tableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
ref="multipleTable"
:data="standItemList"
tooltip-effect="dark"
border
style="width: 100%"
:height="tableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="selectAllStand">
@selection-change="selectAllStand">
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="itemsNum"
label="条款号"
width="150"
prop="itemsNum"
label="条款号"
width="150"
>
</el-table-column>
<el-table-column
prop="itemsName"
label="条款名称"
width="150"
prop="itemsName"
label="条款名称"
width="150"
>
</el-table-column>
<el-table-column
prop="termsConditions"
label="内容简介"
width="250"
prop="termsConditions"
label="内容简介"
width="250"
>
</el-table-column>
<el-table-column
prop="responsibleUnitShow"
label="责任部门"
width="150">
prop="responsibleUnitShow"
label="责任部门"
width="150">
</el-table-column>
<el-table-column
prop="fo"
label="FO"
width="150">
prop="fo"
label="FO"
width="150">
</el-table-column>
<el-table-column
prop="dutyEngineerShow"
label="责任工程师"
width="150">
prop="dutyEngineerShow"
label="责任工程师"
width="150">
</el-table-column>
<el-table-column
prop="svpps"
label="SVPPS"
width="150">
prop="svpps"
label="SVPPS"
width="150">
</el-table-column>
<el-table-column
prop="applyArcticShow"
label="适用车辆类型"
width="150">
prop="applyArcticShow"
label="适用车辆类型"
width="150">
</el-table-column>
<el-table-column
prop="claimTypeShow"
label="要求类型"
width="150">
prop="claimTypeShow"
label="要求类型"
width="150">
</el-table-column>
<el-table-column
prop="busStandCover"
label="覆盖关系"
width="150">
prop="busStandCover"
label="覆盖关系"
width="150">
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
@@ -380,18 +380,18 @@
</el-drawer>
<!--新增标准条目-->
<el-drawer
:title="itemModalTitle"
:wrapperClosable="false"
:visible.sync="modalItemaddShowflag"
size="800px"
:title="itemModalTitle"
:wrapperClosable="false"
:visible.sync="modalItemaddShowflag"
size="800px"
>
<div class="demo-drawer-content">
<el-form
ref="sarStandardsItemForm"
:model="standItemEO"
class="label-input-form"
:rules="sarStandardItemRules"
label-width="150px"
ref="sarStandardsItemForm"
:model="standItemEO"
class="label-input-form"
:rules="sarStandardItemRules"
label-width="150px"
>
<el-form-item label="条款号" prop="itemsNum" class="add-form-item">
<el-input v-model="standItemEO.itemsNum" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
@@ -403,33 +403,33 @@
<el-input v-model="standItemEO.termsConditions" :disabled="itemFormdisableflag" placeholder="请输入内容"/>
</el-form-item>
<el-form-item
label="责任部门"
prop="responsibleUnit"
class="add-form-item"
label="责任部门"
prop="responsibleUnit"
class="add-form-item"
>
<el-input v-model="standItemEO.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
slot="reference"
v-model="standItemEO.orgName"
placeholder="根据责任部门查找"
readonly
clearable
id="deptBtnS"
slot="reference"
v-model="standItemEO.orgName"
placeholder="根据责任部门查找"
readonly
clearable
id="deptBtnS"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItem"
deptSelect
showRMenu
@treeDblClick="treeDblClickS"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
:zNodes="zNodesSItem"
treeDivId="zNodesSItem"
deptSelect
showRMenu
@treeDblClick="treeDblClickS"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
@@ -441,11 +441,11 @@
<el-input v-model="standItemEO.dutyEngineer" v-show="false"></el-input>
<el-popover placement="bottom" popper-class="user-dept-popper" trigger="click">
<el-input
v-model="standItemEO.dutyEngineerShow"
placeholder="请选择责任工程师"
readonly
id="enginBtnS"
slot="reference"
v-model="standItemEO.dutyEngineerShow"
placeholder="请选择责任工程师"
readonly
id="enginBtnS"
slot="reference"
/>
<div class="api">
<dept-tree treeDivId="zNodesSItemEngin"
@@ -465,20 +465,20 @@
<el-form-item label="适用车辆类型" prop="applyArctic" class="add-form-item">
<el-select v-model="standItemEO.applyArctic" multiple placeholder="请选择" :filterable="true">
<el-option
v-for="opt in applyArcticOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
v-for="opt in applyArcticOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="要求类型" prop="claimType" class="add-form-item">
<el-select v-model="standItemEO.claimType" placeholder="请选择" :filterable="true">
<el-option
v-for="opt in requestOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
v-for="opt in requestOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
</el-option>
</el-select>
</el-form-item>
@@ -495,17 +495,17 @@
<!--导入模态窗-->
<el-dialog width="400px" :visible.sync="importModalshowflag" title="导入文件" :footer-hide="true">
<el-upload
multiple
drag
:show-file-list="showUploadlist"
:on-success="importFileSuccess"
:on-remove="removeOneFile"
:before-upload="beforeUpload"
:action="importExcelUrl"
:file-list="defaultFileList"
accept=".xlsx"
name="file"
ref="importFileAboutStand">
multiple
drag
:show-file-list="showUploadlist"
:on-success="importFileSuccess"
:on-remove="removeOneFile"
:before-upload="beforeUpload"
:action="importExcelUrl"
:file-list="defaultFileList"
accept=".xlsx"
name="file"
ref="importFileAboutStand">
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
@@ -514,10 +514,10 @@
</el-dialog>
<!--分解单-查看 标准拆分-属性-->
<el-drawer
:wrapperClosable="false"
size="800px"
title="查看属性信息"
:visible.sync="showItemInfoModal"
:wrapperClosable="false"
size="800px"
title="查看属性信息"
:visible.sync="showItemInfoModal"
>
<div class="see-drawer-content">
<div class="see-drawer-div">
@@ -564,20 +564,20 @@
</el-drawer>
<!-- 更新LOG -->
<el-dialog
title="更新LOG"
:visible.sync="relateDialog"
width="60%"
class="relateClass"
:before-close="relateDialogClose">
title="更新LOG"
:visible.sync="relateDialog"
width="60%"
class="relateClass"
:before-close="relateDialogClose">
<div
v-for="(item, index) in relateNowList"
:key="index"
v-if="relateNowList"
style="margin-bottom: 10px;line-height: 20px"
v-for="(item, index) in relateNowList"
:key="index"
v-if="relateNowList"
style="margin-bottom: 10px;line-height: 20px"
>
{{index+1}}. {{item.creationUserName}} {{item.creationTime}} {{item.content}}
<div v-if="relateNowList.length >1">
<el-divider></el-divider>
<el-divider></el-divider>
</div>
</div>
<span slot="footer" class="dialog-footer">
@@ -585,30 +585,30 @@
</span>
</el-dialog>
<el-dialog
title="更多发布稿"
:visible.sync="relateDialog1"
class="relateClass"
width="40%"
:before-close="relateDialogClose1">
title="更多发布稿"
:visible.sync="relateDialog1"
class="relateClass"
width="40%"
:before-close="relateDialogClose1">
<div
v-for="(file, index) in relateNowList1"
:key="index"
v-if="relateNowList1"
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
v-for="(file, index) in relateNowList1"
:key="index"
v-if="relateNowList1"
style="margin-bottom: 10px;line-height: 20px;max-height: 300px"
>
{{ index + 1 }}.
<a style="font-size: 16px;color: #409EFF;cursor: pointer" @click="openFileInPdf(file.id, file.oldFileName)" target="_blank" :title="file.oldFileName">{{ file.oldFileName }}</a>
<i
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '9882f477aad895ec56a7464f3e9c0b11'"
title="下载"
@click="downloadFile(file.id)"
class="icon-download"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? 'd5b28957b5105c805e90a16fd5056a45' : '9882f477aad895ec56a7464f3e9c0b11'"
/>
<i
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '9bab2662fbd9d0507b39be813371a597'"
title="下载带水印"
@click="downloadFileByWater(file.id, file.fileSuffix)"
class="icon-download2"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '02fd6eff0537c283dd071683de10689f' : '9bab2662fbd9d0507b39be813371a597'"
/>
<div v-if="relateNowList.length >1">
<el-divider></el-divider>
@@ -967,6 +967,8 @@
<script>
import PutQuestionButton from '@/components/PutQuestionButton'
import {dateFormat} from '../../../common/date'
import { getBusStandFileByAttId } from 'api/process'
const sarType = 'BUSS'
export default {
@@ -985,8 +987,8 @@ export default {
},
data () {
return {
activeNames: ['基础信息'],
activeState: false,
activeNames: ['基础信息','过程稿件','实施日期'],
activeState: true,
visiblePlanCheck: false,
form: {},
relateDialog: false,
@@ -1205,8 +1207,8 @@ export default {
},
handleChange1(val) {
if(val && val === '基础信息'){
this.activeState = true
}
this.activeState = true
}
},
getPlanStatusName(status) {
switch (status) {
@@ -1243,10 +1245,10 @@ export default {
let levelName = "-";
if (this.mjOptions) {
this.mjOptions.map((item) => {
if (item.value === standLevel) {
levelName = item.label;
}
});
if (item.value === standLevel) {
levelName = item.label;
}
});
}
return levelName;
},
@@ -1518,24 +1520,24 @@ export default {
// 获取组织机构数据
getOrgTreeSource () {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
}
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
this.searchInlandNodes = treeNode
}
}, e => {})
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
this.searchInlandNodes = treeNode
}
}, e => {})
},
// 查询相近标准
selectCloseStand (id) {
@@ -1552,6 +1554,21 @@ export default {
}, e => {
})
},
getBusStandFileByAttId(attId) {
return new Promise((resolve, reject) => {
getBusStandFileByAttId({
attId
}).then(res => {
if (res.ok) {
resolve(res.data)
} else {
reject()
}
}).catch(e => {
reject(e)
})
})
},
openFileInPdf (attId, oldFileName) {
// 判断是否是图片格式,图片格式不预览,直接下载
let index1 = oldFileName.lastIndexOf('.')
@@ -1568,44 +1585,78 @@ export default {
}
// 缺少文件
if (this.$hasPermission('43ae63abc1b64e6bd5cf3bb75b423bc2')) {
this.$http.get('lawss/sarBussStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
if (fileSuffix === '.PDG' || fileSuffix === '.pdg') {
this.getBusStandFileByAttId(attId)
.then(res => {
if(res){
const editFileInfo = res
console.log(editFileInfo)
if(editFileInfo.fileSuffix === 'pdg' || editFileInfo.fileSuffix === 'PDG'){
window.open('book://ssreader/e0?url='+editFileInfo.downLoadUrl)
}else {
const nowTime = new Date().getTime()
// window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(editFileInfo.downLoadUrl)));
// window.open('/static/onlyOffice/onlinePreview.html?oldFileName=' + editFileInfo.oldFileName + '&fileType=' + editFileInfo.fileSuffix + '&attId=' + editFileInfo.id + '&fileUrl=' + editFileInfo.downLoadUrl + '&key=' + editFileInfo.id + nowTime+'&filePath='+editFileInfo.filePath+'&fileName='+editFileInfo.fileName)
}
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + editFileInfo.id))
}
// switch (res.convertState) {
// case 'ERROR':
// this.$message.warning('文档转换失败')
// break
// case 'LODING':
// this.$message.info('文档转换中,请稍后查看')
// break
// case 'SUCCESS':
// const { convertFileInfo } = res
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + convertFileInfo.id))
// break
// }
}).catch(e => {
console.log(e)
this.$message.warning('文件不存在,预览失败')
})
}else {
this.$http.get('lawss/sarBussStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
this.$message.error('文档未转换成功或本地读取不到该文档')
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
})
}
} else {
this.$message.error('没有在线预览文档权限!')
}
@@ -1948,19 +1999,19 @@ export default {
getAddFormFieldList (isEdit) {
return new Promise((resolve, reject) => {
this.$http.get('lawss/sarStandAttrDetails/list', {}, {_this: this},
res => {
if (res.ok) {
// const { data: { STAND: data } } = res
const { data = {} } = res
this.formFieldListData = data[this.sarType]
// this.resolveFormFieldList()
resolve(data[this.sarType])
} else {
reject(res)
}
}, e => {
reject(e)
})
res => {
if (res.ok) {
// const { data: { STAND: data } } = res
const { data = {} } = res
this.formFieldListData = data[this.sarType]
// this.resolveFormFieldList()
resolve(data[this.sarType])
} else {
reject(res)
}
}, e => {
reject(e)
})
})
},
// 点击更多按钮事件
@@ -2204,10 +2255,10 @@ export default {
for (let i = 0; i < displayLocation.length; i++) {
// sss
if(displayLocation[i].label !== '基础信息' && displayLocation[i].label !== '过程稿件'){
const childList = displayLocation[i].child.filter ( item => item.value !== null && item.value !== '');
if(childList.length === 0){
displayLocation.splice(i,1)
}
const childList = displayLocation[i].child.filter ( item => item.value !== null && item.value !== '');
if(childList.length === 0){
displayLocation.splice(i,1)
}
}
}
@@ -2369,6 +2420,7 @@ export default {
padding: 0;
border: none;
i {
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
+291 -239
View File
@@ -10,18 +10,18 @@
<div class="details-content-modular basic-information" style="border-top: 2px dashed #D1D1D1;">
</div>
<div
class="details-content-modular clearfix"
v-for="(item, index) in dynamicFormField"
:key="index"
v-if="item.isShowImp === '0'"
class="details-content-modular clearfix"
v-for="(item, index) in dynamicFormField"
:key="index"
v-if="item.isShowImp === '0'"
>
<el-collapse v-model="activeNames" @change="handleChange">
<div v-if="item.label === '基础信息'" class="details-content-modular basic-information"
style="border-top:none;position: absolute;right: 36px;border: none">
<div class="modular-header" style="height: 50px;">
<div class="modular-header-btn">
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" style="color: #f56c6c;" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" style="color: #4788c0;" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button v-if="sarStandardsInfoEO.collectId" @click="collectClick(sarStandardsInfoEO.collectId)" title="取消收藏" class="collection-btn" icon="el-icon-star-on" :loading="isSubmit"></el-button>
<el-button v-else @click="collectClick()" title="收藏" class="collection-btn" icon="el-icon-star-off" :loading="isSubmit"></el-button>
<el-button class="relation-btn" icon="icon-relation" @click="relateEvent()">更新LOG</el-button>
</div>
</div>
@@ -72,25 +72,25 @@
</div>
</template>
<template
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0'"
v-for="(child, childIndex) in item.child"
v-if="child.isShowImp === '0'"
>
<div
:key="childIndex"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
:key="childIndex"
:class="item.label !== '过程稿件' ? 'modular-item half' : 'modular-item'"
>
<label class="modular-content-p-name" :title="child.attrName">{{ child.attrName }}</label>
<span
v-if="child.attrField === 'ZYQCR'"
class="modular-content-p-val clearfix"
:title="child.value || '-'"
v-if="child.attrField === 'ZYQCR'"
class="modular-content-p-val clearfix"
:title="child.value || '-'"
>
<template v-if="child.value">
{{ child.value }}
<put-question-button
style="float: right;"
:resId="sarStandardsInfoEO.id"
:resType="saveStandType"
style="float: right;"
:resId="sarStandardsInfoEO.id"
:resType="saveStandType"
></put-question-button>
</template>
<template v-else>
@@ -116,9 +116,9 @@
<!--相关计划-->
<template v-else-if="child.attrField === 'XGJH' && child.value">
<span
v-if="child.value.length === 0"
class="modular-content-p-val"
:title="'-'"
v-if="child.value.length === 0"
class="modular-content-p-val"
:title="'-'"
>
{{ '-' }}
</span>
@@ -129,24 +129,24 @@
</p>
</template>
<span
v-else-if="child.attrField === 'SVPPS'"
class="modular-content-p-val"
:title="child.tips || '-'"
v-else-if="child.attrField === 'SVPPS'"
class="modular-content-p-val"
:title="child.tips || '-'"
>
{{ !child.value || child.value === 'null' ? '-' : child.value }}
</span>
<span
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
v-else-if="child.attrType !== 'FILE'"
class="modular-content-p-val"
:title="child.value || '-'"
>
{{ child.value || '-' }}
</span>
<div v-else class="modular-content-p-flies">
<p
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
class="files-title"
v-for="(file, fileIndex) in child.value"
:key="fileIndex"
>
<a @click="openFileInPdf(file.id, file.oldFileName)" target="_blank">{{ file.oldFileName }}</a>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" v-btn-permission="''"/>
@@ -171,11 +171,11 @@
<!-- <div v-show="isMoreAwayBtn" class="put-away" @click="putAwayClick">收起<img src="@/assets/images/shangqi/img/more.png"></div>-->
<!--查看标准条目列表-->
<el-drawer
title="查看分解单"
:wrapperClosable="false"
:visible.sync="modalStandItemflag"
size="80%"
class="not-footer-drawer"
title="查看分解单"
:wrapperClosable="false"
:visible.sync="modalStandItemflag"
size="80%"
class="not-footer-drawer"
>
<div class="search-area">
<div class="left">
@@ -184,19 +184,19 @@
<el-input size="small" v-model="standItemSearch.orgName" v-show="false" style="height: 32px"/>
<el-input size="small" v-model="standItemSearch.responsibleUnit" v-show="false" style="height: 32px"/>
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
v-model="standItemSearch.orgName"
slot="reference"
placeholder="请选择部门"
readonly
id="searchInlandDeptBtn"
@on-change="inputChange"
style="margin-right: 0;"/>
v-model="standItemSearch.orgName"
slot="reference"
placeholder="请选择部门"
readonly
id="searchInlandDeptBtn"
@on-change="inputChange"
style="margin-right: 0;"/>
<div class="api">
<laws-tree :zNodes="searchInlandNodes"
treeDivId="domesticTree1"
@@ -212,25 +212,25 @@
<el-form-item class="search-item">
<el-input v-model="standItemSearch.nameOrRequest" size="small" placeholder="根据条款名称/内容查找" clearable maxlength="100"></el-input>
</el-form-item>
<!-- <el-form-item class="search-item">-->
<!-- <el-input v-model="standItemSearch.parts" size="small" placeholder="根据涉及零部件查找" clearable maxlength="100"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item class="search-item">-->
<!-- <el-input v-model="standItemSearch.parts" size="small" placeholder="根据涉及零部件查找" clearable maxlength="100"></el-input>-->
<!-- </el-form-item>-->
<el-form-item class="search-item btn-box">
<el-button
:loading="searching"
icon="el-icon-search"
type="primary"
round
class="common-button-primary"
@click="searchSarStandItems">
:loading="searching"
icon="el-icon-search"
type="primary"
round
class="common-button-primary"
@click="searchSarStandItems">
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
icon="el-icon-refresh-left"
@click="clearAllSearch"
round>
class="common-button-default"
icon="el-icon-refresh-left"
@click="clearAllSearch"
round>
</el-button>
</el-form-item>
</el-form>
@@ -238,13 +238,13 @@
</div>
<div class="action-bar">
<el-button
round
type="primary"
class="common-button-primary add-button"
:loading="searching"
icon="add"
@click="addItemModal"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '84a37ea1e1' : '3D87NJR8N3'">新增</el-button>
round
type="primary"
class="common-button-primary add-button"
:loading="searching"
icon="add"
@click="addItemModal"
v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '84a37ea1e1' : '3D87NJR8N3'">新增</el-button>
<el-button class="common-button-default" :loading="searching" @click="uploadImportModal">模板下载</el-button>
<el-button class="common-button-default in-button" :loading="searching" icon="in" @click="addImportModal(2)" v-btn-permission="$route.params.pageType === 'INLAND_STAND' ? '9ca97b05b2' : '6JM97X9W9C'">导入</el-button>
<el-button class="common-button-default export-button" icon="export" @click="exportStandardItem">导出</el-button>
@@ -252,73 +252,73 @@
</div>
<div class="content">
<el-table
ref="multipleTable"
:data="standItemList"
tooltip-effect="dark"
border
style="width: 100%"
:height="tableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
ref="multipleTable"
:data="standItemList"
tooltip-effect="dark"
border
style="width: 100%"
:height="tableHeight"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="selectAllStand">
@selection-change="selectAllStand">
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="itemsNum"
label="条款号"
width="150"
prop="itemsNum"
label="条款号"
width="150"
>
</el-table-column>
<el-table-column
prop="itemsName"
label="条款名称"
width="150"
prop="itemsName"
label="条款名称"
width="150"
>
</el-table-column>
<el-table-column
prop="termsConditions"
label="内容简介"
width="250"
prop="termsConditions"
label="内容简介"
width="250"
>
</el-table-column>
<el-table-column
prop="responsibleUnitShow"
label="责任部门"
width="150">
prop="responsibleUnitShow"
label="责任部门"
width="150">
</el-table-column>
<el-table-column
prop="fo"
label="FO"
width="150">
prop="fo"
label="FO"
width="150">
</el-table-column>
<el-table-column
prop="dutyEngineerShow"
label="责任工程师"
width="150">
prop="dutyEngineerShow"
label="责任工程师"
width="150">
</el-table-column>
<el-table-column
prop="svpps"
label="SVPPS"
width="150">
prop="svpps"
label="SVPPS"
width="150">
</el-table-column>
<el-table-column
prop="applyArcticShow"
label="适用车辆类型"
width="150">
prop="applyArcticShow"
label="适用车辆类型"
width="150">
</el-table-column>
<el-table-column
prop="claimTypeShow"
label="要求类型"
width="150">
prop="claimTypeShow"
label="要求类型"
width="150">
</el-table-column>
<el-table-column
prop="busStandCover"
label="覆盖关系"
width="150">
prop="busStandCover"
label="覆盖关系"
width="150">
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
@@ -341,18 +341,18 @@
</el-drawer>
<!--新增标准条目-->
<el-drawer
:title="itemModalTitle"
:wrapperClosable="false"
:visible.sync="modalItemaddShowflag"
size="800px"
:title="itemModalTitle"
:wrapperClosable="false"
:visible.sync="modalItemaddShowflag"
size="800px"
>
<div class="demo-drawer-content">
<el-form
ref="sarStandardsItemForm"
:model="standItemEO"
class="label-input-form"
:rules="sarStandardItemRules"
label-width="150px"
ref="sarStandardsItemForm"
:model="standItemEO"
class="label-input-form"
:rules="sarStandardItemRules"
label-width="150px"
>
<el-form-item label="条款号" prop="itemsNum" class="add-form-item">
<el-input v-model="standItemEO.itemsNum" :disabled="itemFormdisableflag" placeholder="请输入内容"></el-input>
@@ -364,33 +364,33 @@
<el-input v-model="standItemEO.termsConditions" :disabled="itemFormdisableflag" placeholder="请输入内容"/>
</el-form-item>
<el-form-item
label="责任部门"
prop="responsibleUnit"
class="add-form-item"
label="责任部门"
prop="responsibleUnit"
class="add-form-item"
>
<el-input v-model="standItemEO.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
slot="reference"
v-model="standItemEO.orgName"
placeholder="根据责任部门查找"
readonly
clearable
id="deptBtnS"
slot="reference"
v-model="standItemEO.orgName"
placeholder="根据责任部门查找"
readonly
clearable
id="deptBtnS"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItem"
deptSelect
showRMenu
@treeDblClick="treeDblClickS"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
:zNodes="zNodesSItem"
treeDivId="zNodesSItem"
deptSelect
showRMenu
@treeDblClick="treeDblClickS"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
@@ -402,11 +402,11 @@
<el-input v-model="standItemEO.dutyEngineer" v-show="false"></el-input>
<el-popover placement="bottom" popper-class="user-dept-popper" trigger="click">
<el-input
v-model="standItemEO.dutyEngineerShow"
placeholder="请选择责任工程师"
readonly
id="enginBtnS"
slot="reference"
v-model="standItemEO.dutyEngineerShow"
placeholder="请选择责任工程师"
readonly
id="enginBtnS"
slot="reference"
/>
<div class="api">
<dept-tree treeDivId="zNodesSItemEngin"
@@ -426,20 +426,20 @@
<el-form-item label="适用车辆类型" prop="applyArctic" class="add-form-item">
<el-select v-model="standItemEO.applyArctic" multiple placeholder="请选择" :filterable="true">
<el-option
v-for="opt in applyArcticOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
v-for="opt in applyArcticOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="要求类型" prop="claimType" class="add-form-item">
<el-select v-model="standItemEO.claimType" placeholder="请选择" :filterable="true">
<el-option
v-for="opt in requestOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
v-for="opt in requestOptions"
:key="opt.value"
:label="opt.label"
:value="opt.value">
</el-option>
</el-select>
</el-form-item>
@@ -456,17 +456,17 @@
<!--导入模态窗-->
<el-dialog width="400px" :visible.sync="importModalshowflag" title="导入文件" :footer-hide="true">
<el-upload
multiple
drag
:show-file-list="showUploadlist"
:on-success="importFileSuccess"
:on-remove="removeOneFile"
:before-upload="beforeUpload"
:action="importExcelUrl"
:file-list="defaultFileList"
accept=".xlsx"
name="file"
ref="importFileAboutStand">
multiple
drag
:show-file-list="showUploadlist"
:on-success="importFileSuccess"
:on-remove="removeOneFile"
:before-upload="beforeUpload"
:action="importExcelUrl"
:file-list="defaultFileList"
accept=".xlsx"
name="file"
ref="importFileAboutStand">
<div style="padding: 20px 0">
<i class="el-icon-upload" style="color: #3399ff"></i>
<p>点击或拖拽上传文件</p>
@@ -475,10 +475,10 @@
</el-dialog>
<!--分解单-查看 标准拆分-属性-->
<el-drawer
:wrapperClosable="false"
size="800px"
title="查看属性信息"
:visible.sync="showItemInfoModal"
:wrapperClosable="false"
size="800px"
title="查看属性信息"
:visible.sync="showItemInfoModal"
>
<div class="see-drawer-content">
<div class="see-drawer-div">
@@ -525,20 +525,20 @@
</el-drawer>
<!-- 更新LOG -->
<el-dialog
title="更新LOG"
:visible.sync="relateDialog"
width="60%"
class="relateClass"
:before-close="relateDialogClose">
title="更新LOG"
:visible.sync="relateDialog"
width="60%"
class="relateClass"
:before-close="relateDialogClose">
<div
v-for="(item, index) in relateNowList"
:key="index"
v-if="relateNowList"
style="margin-bottom: 10px;line-height: 20px"
v-for="(item, index) in relateNowList"
:key="index"
v-if="relateNowList"
style="margin-bottom: 10px;line-height: 20px"
>
{{index+1}}. {{item.creationUserName}} {{item.creationTime}} {{item.content}}
<div v-if="relateNowList.length >1">
<el-divider></el-divider>
<el-divider></el-divider>
</div>
</div>
<span slot="footer" class="dialog-footer">
@@ -894,6 +894,8 @@
<script>
import PutQuestionButton from '@/components/PutQuestionButton'
import {dateFormat} from '../../../common/date'
import { getBusStandFileByAttId } from 'api/process'
const sarType = 'LAWS_STAND'
export default {
@@ -913,7 +915,7 @@ export default {
data () {
return {
activeNames: ['基础信息'],
activeState: false,
activeState: true,
visiblePlanCheck: false,
form: {},
relateDialog: false,
@@ -1162,10 +1164,10 @@ export default {
let levelName = "-";
if (this.mjOptions) {
this.mjOptions.map((item) => {
if (item.value === standLevel) {
levelName = item.label;
}
});
if (item.value === standLevel) {
levelName = item.label;
}
});
}
return levelName;
},
@@ -1437,24 +1439,24 @@ export default {
// 获取组织机构数据
getOrgTreeSource () {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
}
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
this.searchInlandNodes = treeNode
}
}, e => {})
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
this.searchInlandNodes = treeNode
}
}, e => {})
},
// 查询相近标准
selectCloseStand (id) {
@@ -1471,6 +1473,21 @@ export default {
}, e => {
})
},
getBusStandFileByAttId(attId) {
return new Promise((resolve, reject) => {
getBusStandFileByAttId({
attId
}).then(res => {
if (res.ok) {
resolve(res.data)
} else {
reject()
}
}).catch(e => {
reject(e)
})
})
},
openFileInPdf (attId, oldFileName) {
// 判断是否是图片格式,图片格式不预览,直接下载
let index1 = oldFileName.lastIndexOf('.')
@@ -1487,44 +1504,78 @@ export default {
}
// 缺少文件
if (this.$hasPermission('fd83032ae5f41a0021b00e93c88edbbg')) {
this.$http.get('lawss/sarLawsFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
if (fileSuffix === '.PDG' || fileSuffix === '.pdg') {
this.getBusStandFileByAttId(attId)
.then(res => {
if(res){
const editFileInfo = res
console.log(editFileInfo)
if(editFileInfo.fileSuffix === 'pdg' || editFileInfo.fileSuffix === 'PDG'){
window.open('book://ssreader/e0?url='+editFileInfo.downLoadUrl)
}else {
const nowTime = new Date().getTime()
// window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(editFileInfo.downLoadUrl)));
// window.open('/static/onlyOffice/onlinePreview.html?oldFileName=' + editFileInfo.oldFileName + '&fileType=' + editFileInfo.fileSuffix + '&attId=' + editFileInfo.id + '&fileUrl=' + editFileInfo.downLoadUrl + '&key=' + editFileInfo.id + nowTime+'&filePath='+editFileInfo.filePath+'&fileName='+editFileInfo.fileName)
}
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + editFileInfo.id))
}
// switch (res.convertState) {
// case 'ERROR':
// this.$message.warning('文档转换失败')
// break
// case 'LODING':
// this.$message.info('文档转换中,请稍后查看')
// break
// case 'SUCCESS':
// const { convertFileInfo } = res
// window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + convertFileInfo.id))
// break
// }
}).catch(e => {
console.log(e)
this.$message.warning('文件不存在,预览失败')
})
}else {
this.$http.get('lawss/sarLawsFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
this.$message.error('文档未转换成功或本地读取不到该文档')
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
})
}
} else {
this.$message.error('没有在线预览文档权限!')
}
@@ -1867,19 +1918,19 @@ export default {
getAddFormFieldList (isEdit) {
return new Promise((resolve, reject) => {
this.$http.get('lawss/sarStandAttrDetails/list', {}, {_this: this},
res => {
if (res.ok) {
// const { data: { STAND: data } } = res
const { data = {} } = res
this.formFieldListData = data[this.sarType]
// this.resolveFormFieldList()
resolve(data[this.sarType])
} else {
reject(res)
}
}, e => {
reject(e)
})
res => {
if (res.ok) {
// const { data: { STAND: data } } = res
const { data = {} } = res
this.formFieldListData = data[this.sarType]
// this.resolveFormFieldList()
resolve(data[this.sarType])
} else {
reject(res)
}
}, e => {
reject(e)
})
})
},
// 点击更多按钮事件
@@ -2279,6 +2330,7 @@ export default {
padding: 0;
border: none;
i {
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
File diff suppressed because it is too large Load Diff
@@ -14,6 +14,7 @@
:data="standardReleaseList"
tooltip-effect="dark"
border
style="cursor:pointer;"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
style="width: 100%">
<el-table-column
@@ -14,6 +14,7 @@
:data="domesticDynamics"
tooltip-effect="dark"
border
style="cursor:pointer;"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
style="width: 100%">
<el-table-column
@@ -130,6 +130,8 @@ export default {
rowDataRight: JSON.parse(this.$route.query.rowDataRight),
resRightMapList: [],
saveItemId: '',
saveLeftId: '',
saveRightId: '',
saveItemIdRight: '',
leftString: '',
rightString: '',
@@ -175,6 +177,14 @@ export default {
} else if (parseFloat(res.data.similarityDegree) < parseFloat('75%')) {
this.textcontent = '不相似'
}
const treeNodeLeft = {}
treeNodeLeft.id = this.saveLeftId
const treeNodeRight = {}
treeNodeRight.id = this.saveRightId
console.log(treeNodeLeft)
console.log(treeNodeRight)
this.handleLeftTreeClick("domesticTree1",treeNodeLeft)
this.handleRightTreeClick("domesticTree2",treeNodeRight)
// this.resultModal = true
this.spinShow = false
}, e => {
@@ -232,6 +242,7 @@ export default {
$(this.oldRightId).find('#itemsRightText_' + this.saveItemIdRight).html(this.oldRightContent)
}
this.saveItemId = item.itemsId
this.saveLeftId = item.id
this.itemLeftIndex = index
@@ -250,25 +261,26 @@ export default {
this.leftName = item.itemsNum + ' ' + item.itemsName
this.saveItemIdRight = this.resRightMapList[item.targetStand].itemsId
this.saveRightId = this.resRightMapList[item.targetStand].id
let scrollToContainer = mainContainer.find(`.children:eq(${item.targetStand})`)
this.rightName = scrollToContainer.children(':first').html()
scrollToContainer.css('border', '2px solid red')
// 非动画效果
// mainContainer.scrollTop(
// scrollToContainer.offset().top - mainContainer.offset().top + mainContainer.scrollTop()
// );
mainContainer.scrollTop(
scrollToContainer.offset().top - mainContainer.offset().top + mainContainer.scrollTop()
);
// 动画效果
mainContainer.animate({
scrollTop: scrollToContainer.offset().top - mainContainer.offset().top + mainContainer.scrollTop()
})// 2秒滑动到指定位置
// mainContainer.animate({
// scrollTop: scrollToContainer.offset().top - mainContainer.offset().top + mainContainer.scrollTop()
// })// 2秒滑动到指定位置
} else {
if (this.oldLeftId !== '') {
$(this.oldLeftId).find('#itemsLeftText_' + this.saveItemId).html(this.oldLeftContent)
$(this.oldRightId).find('#itemsRightText_' + this.saveItemIdRight).html(this.oldRightContent)
}
this.saveItemIdRight = item.itemsId
this.saveRightId = item.id
this.itemRightIndex = index
@@ -287,6 +299,7 @@ export default {
this.rightName = item.itemsNum + ' ' + item.itemsName
this.saveItemId = this.resLeftMapList[item.targetStand].itemsId
this.saveLeftId = this.resLeftMapList[item.targetStand].id
let scrollToContainer = mainContainer.find(`.children:eq(${item.targetStand})`)// 滚动到<div id="thisMainPanel">中类名为son-panel的第六个处
this.leftName = scrollToContainer.children('div:nth-child(2)').html()
@@ -507,6 +520,7 @@ export default {
},
handleLeftTreeClick(treeId, treeNode) {
console.log(treeNode.id)
const domId = `left_${treeNode.id}`
function getElementTop(element) {
var el = (typeof element == "string") ? document.getElementById(element) : element;
@@ -520,7 +534,8 @@ export default {
},
handleRightTreeClick(treeId, treeNode) {
const domId = `right_${treeNode.id}`
console.log(treeNode.id)
const domId = `right_${treeNode.id}`
function getElementTop(element) {
var el = (typeof element == "string") ? document.getElementById(element) : element;
if (el.parentNode === null || el.style.display == 'none') {
@@ -63,7 +63,6 @@
</el-table-column>
<el-table-column
align="center"
width="200px"
label="标准号"
>
<template slot-scope="scope">
@@ -77,7 +76,6 @@
prop="standName"
align="center"
label="中文名称"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -87,12 +85,33 @@
prop="standEnName"
label="英文名称"
align="center"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
</template>
</el-table-column>
<el-table-column
prop="standEnName"
label="分解单来源"
align="center"
>
<template slot-scope="scope">
<el-select
@change="fileTypeChange"
v-model="scope.row.fileType"
placeholder="请选择"
filterable
>
<el-option
v-for="item in decomposeOptions"
:value="item.attrField"
:key="item.id"
:label="item.attrName"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="ssrq"
width="190px"
@@ -129,32 +148,6 @@
width="180px"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppsbm"
width="180px"
align="center"
label="卡车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppscn"
width="180px"
align="center"
label="卡车vpps中文名称">
</el-table-column>
<el-table-column
prop="cycvppsbm"
width="180px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
prop="cycvppscn"
width="180px"
align="center"
label="乘用车vpps中文名称">
</el-table-column>
</el-table>
</div>
<div>
@@ -369,6 +362,8 @@ export default {
isSubmit: false,
saveLoading: false,
commentText: "",
fileType: '',
decomposeOptions: [], //分解单数据
//表单的数据
listForm: {
projectNumber: "", //项目编号
@@ -432,6 +427,22 @@ export default {
};
},
methods: {
fileTypeChange(type){
this.fileType = type
let ids = [];
let fileTypes = []
this.dataList.forEach(item => {
ids.push(item.standId);
fileTypes.push(item.fileType)
});
this.standId = ids.join(",");
this.fileType = fileTypes.join(",")
if(fileTypes.includes('')){
return
}else{
this.getClauseData()
}
},
// 表格勾选
handleSelectionChange(selection, val) {
if (selection.length > 1) {
@@ -527,14 +538,13 @@ export default {
ids.push(item.standId);
});
this.standId = ids.join(",");
this.getClauseData();
});
},
//查询标准下的条款
getClauseData() {
this.$http.get("SarStandItems/sar-stand-items/findAllItems", {
this.$http.get("SarStandItems/sar-stand-items/workflowFindItems", {
ids: this.standId,
type: "FBGBJBD"
type: this.fileType
},
{
_this: this
@@ -591,6 +601,15 @@ export default {
},
//流程提交事件
handleSubmit() {
let fileFlag
this.dataList.forEach(item => {
if(!item.fileType){
fileFlag = false
}
})
if(!fileFlag){
this.$message.warning('请选择分解单来源')
}
if (this.listForm.dataList.length < 1) {
this.$message.warning("请选择带标准的项目");
} else {
@@ -654,6 +673,22 @@ export default {
}
},
mounted() {
//查找分解单来源数据
this.$http.get('lawss/sarStandAttrDetails/getListData',{},{
_this: this
}, res => {
this.decomposeOptions.push(
{
attrField: 'BDR',
attrName: '不带入'
}
)
res.data.forEach(item => {
if(item.sarType === 'STAND' || item.sarType === 'INLAND_STAND' || item.sarType === 'FOREIGN_STAND'){
this.decomposeOptions.push(item)
}
})
})
this.getData();
this.getProjectData();
}
@@ -57,7 +57,6 @@
</el-table-column>
<el-table-column
align="center"
width="200px"
label="标准号"
>
<template slot-scope="scope">
@@ -69,7 +68,6 @@
prop="standName"
align="center"
label="中文名称"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -79,7 +77,6 @@
prop="standEnName"
label="英文名称"
align="center"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
@@ -121,32 +118,6 @@
width="180px"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppsbm"
width="180px"
align="center"
label="卡车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppscn"
width="180px"
align="center"
label="卡车vpps中文名称">
</el-table-column>
<el-table-column
prop="cycvppsbm"
width="180px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
prop="cycvppscn"
width="180px"
align="center"
label="乘用车vpps中文名称">
</el-table-column>
</el-table>
</div>
<div>
@@ -73,7 +73,6 @@
</el-table-column>
<el-table-column
align="center"
width="200px"
label="标准号"
>
<template slot-scope="scope">
@@ -87,7 +86,6 @@
prop="standName"
align="center"
label="中文名称"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -97,12 +95,33 @@
prop="standEnName"
label="英文名称"
align="center"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
</template>
</el-table-column>
<el-table-column
prop="standEnName"
label="分解单来源"
align="center"
>
<template slot-scope="scope">
<el-select
@change="fileTypeChange"
v-model="scope.row.fileType"
placeholder="请选择"
filterable
>
<el-option
v-for="item in decomposeOptions"
:value="item.attrField"
:key="item.id"
:label="item.attrName"
>
</el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
prop="ssrq"
width="190px"
@@ -139,32 +158,6 @@
width="180px"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppsbm"
width="180px"
align="center"
label="卡车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppscn"
width="180px"
align="center"
label="卡车vpps中文名称">
</el-table-column>
<el-table-column
prop="cycvppsbm"
width="180px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
prop="cycvppscn"
width="180px"
align="center"
label="乘用车vpps中文名称">
</el-table-column>
</el-table>
</div>
<div>
@@ -365,6 +358,7 @@ import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { saveTaskFirst } from "api/process";
import file from "@/pages/knowledgeGraph/components/file";
export default {
name: "xmpg2Step1",
@@ -378,6 +372,8 @@ export default {
active: "1", //当前选中的type
isSubmit: false,
saveLoading: false,
fileType: '',
decomposeOptions: [], //分解单来源数据
//表单的数据
listForm: {
projectNumber: "", //项目编号
@@ -447,6 +443,22 @@ export default {
};
},
methods: {
fileTypeChange(type){
this.fileType = type
let ids = [];
let fileTypes = []
this.dataList.forEach(item => {
ids.push(item.standId);
fileTypes.push(item.fileType)
});
this.standId = ids.join(",");
this.fileType = fileTypes.join(",")
if(fileTypes.includes('')){
return
}else{
this.getClauseData()
}
},
// 表格勾选
handleSelectionChange(selection, val) {
if (selection.length > 1) {
@@ -532,6 +544,9 @@ export default {
})
this.listForm.dataList = res.data.records;
this.dataList = res.data.records;
this.dataList.forEach(item => {
this.$set(item,'fileType', '')
})
this.listForm.dataList.forEach(item => {
// 责任部门转换
if (item.zrbm !== null || item.zrbm !== "") {
@@ -551,14 +566,13 @@ export default {
ids.push(item.standId);
});
this.standId = ids.join(",");
this.getClauseData();
});
},
//查询标准下的条款
getClauseData() {
this.$http.get("SarStandItems/sar-stand-items/findAllItems", {
this.$http.get("SarStandItems/sar-stand-items/workflowFindItems", {
ids: this.standId,
type: "FBGBJBD"
types: this.fileType
},
{
_this: this
@@ -604,6 +618,15 @@ export default {
},
//流程提交事件
handleSubmit() {
let fileFlag
this.dataList.forEach(item => {
if(!item.fileType){
fileFlag = false
}
})
if(!fileFlag){
this.$message.warning('请选择分解单来源')
}
if (this.listForm.dataList.length < 1) {
this.$message.warning("请选择带标准的项目");
} else {
@@ -687,6 +710,22 @@ export default {
this.zrbmOptions = res.data.ZRBMCLASS; // 责任部门
}, e => {
});
//查找分解单来源数据
this.$http.get('lawss/sarStandAttrDetails/getListData',{},{
_this: this
}, res => {
this.decomposeOptions.push(
{
attrField: 'BDR',
attrName: '不带入'
}
)
res.data.forEach(item => {
if(item.sarType === 'STAND' || item.sarType === 'INLAND_STAND' || item.sarType === 'FOREIGN_STAND'){
this.decomposeOptions.push(item)
}
})
})
}
};
</script>
@@ -57,7 +57,6 @@
</el-table-column>
<el-table-column
align="center"
width="200px"
label="标准号"
>
<template slot-scope="scope">
@@ -69,7 +68,6 @@
prop="standName"
align="center"
label="中文名称"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
@@ -79,7 +77,6 @@
prop="standEnName"
label="英文名称"
align="center"
width="180px"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standEnName }}</a>
@@ -121,32 +118,6 @@
width="180px"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppsbm"
width="180px"
align="center"
label="卡车VPPS编码">
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="kccvppscn"
width="180px"
align="center"
label="卡车vpps中文名称">
</el-table-column>
<el-table-column
prop="cycvppsbm"
width="180px"
align="center"
label="乘用车VPPS编码">
</el-table-column>
<el-table-column
prop="cycvppscn"
width="180px"
align="center"
label="乘用车vpps中文名称">
</el-table-column>
</el-table>
</div>
<div>
@@ -5,36 +5,22 @@
<template slot="proNode">选择分发责任人</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '3' ? 'active' : ''" @click="handleTabs('3')">审批历史</div>
<div :class="active === '1' ? 'active' : ''" class="headerTabsItem" @click="handleTabs('1')">基础信息</div>
<div :class="active === '3' ? 'active' : ''" class="headerTabsItem" @click="handleTabs('3')">审批历史</div>
</div>
<div class="content" v-show="active === '1'">
<div v-show="active === '1'" class="content">
<div style="flex: auto; overflow: auto">
<process-title>
<template slot="title">基础信息</template>
</process-title>
<el-form
:model="listForm"
class="label-input-form prc-content-border"
label-width="150px"
>
<el-form :model="listForm" class="label-input-form prc-content-border" label-width="150px">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="项目编号" prop="projectNumber" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.projectNumber"
placeholder="请输入项目编号"
disabled
clearable
></el-input>
<el-form-item class="add-form-item form-item-disabled" label="项目编号" prop="projectNumber">
<el-input v-model="listForm.projectNumber" clearable disabled placeholder="请输入项目编号"></el-input>
</el-form-item>
<el-form-item label="项目名称" prop="projectName" class="add-form-item form-item-disabled">
<el-input
v-model="listForm.projectName"
placeholder="请输入项目名称"
disabled
clearable
></el-input>
<el-form-item class="add-form-item form-item-disabled" label="项目名称" prop="projectName">
<el-input v-model="listForm.projectName" clearable disabled placeholder="请输入项目名称"></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -42,75 +28,53 @@
<process-title>
<template slot="title">填写信息</template>
</process-title>
<!-- <div class="tableTitle">-->
<!-- <div class="tableButton">-->
<!-- <el-button plain class="common-button-primary" size="mini" @click="choiceZRRS('', 2, '')">批量分发责任人-->
<!-- </el-button>-->
<!-- </div>-->
<!-- </div>-->
<el-table
:data="dataList"
style="width: 100%"
row-key="standId"
v-if="refreshTable"
height="70%"
border
ref="myTable"
@selection-change="selectStandChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
>
<el-table-column
type="selection"
width="55"
align="center">
<div class="tableTitle">
<div class="tableButton">
<el-button class="common-button-primary" plain size="mini" @click="choiceZRRS('', 2, '')">批量分发责任人
</el-button>
</div>
</div>
<el-table v-if="refreshTable" ref="myTable" :data="dataList" :header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}" border height="70%"
row-key="standId" style="width: 100%" @select="select" @select-all="selectAll"
@selection-change="selectStandChange">
<el-table-column align="center" type="selection" width="55">
</el-table-column>
<el-table-column
prop="standNumber"
label="标准号"
>
<el-table-column label="标准号" prop="standNumber">
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump"
@click="handlePreview(scope.row)">{{ scope.row.standSort }} {{ scope.row.standNumber
}}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSort }}
<a v-else class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSort }}
{{ scope.row.standNumber }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
label="标准名称"
>
<el-table-column label="标准名称" prop="standName">
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
<a class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="itemsNum"
label="条款号"
>
<el-table-column label="条款号" prop="itemsNum">
</el-table-column>
<el-table-column
prop="itemsName"
label="条款名称"
>
<el-table-column label="条款名称" prop="itemsName">
</el-table-column>
<el-table-column label="责任人" prop="workPeople" align="center">
<template slot-scope="scope" >
<el-table-column align="center" label="责任人" prop="workPeople">
<template slot-scope="scope">
<div v-if="selectList.length<=1">
<el-input v-if="scope.row.workPeople" v-model="scope.row.workPeopleId" style="display: none;" readonly/>
<el-input v-if="scope.row.workPeople" v-model="scope.row.workPeopleId" readonly
style="display: none;" />
<el-input v-if="scope.row.workPeople" v-model="scope.row.workPeople" placeholder="请选择分发责任人"
@click.native="choiceZRRS(scope.row, 1, scope.$index)" readonly/>
readonly @click.native="choiceZRRS(scope.row, 1, scope.$index)" />
</div>
<div v-else>
<el-input v-if="scope.row.workPeople" v-model="scope.row.workPeopleId" style="display: none;" readonly/>
<el-input v-if="scope.row.workPeople" v-model="scope.row.workPeopleId" readonly
style="display: none;" />
<el-input v-if="scope.row.workPeople" v-model="scope.row.workPeople" placeholder="请选择分发责任人"
@click.native="choiceZRRS('', 2, '')" readonly/>
readonly @click.native="choiceZRRS('', 2, '')" />
</div>
<el-button style="width: 98%" :loading="buttonLoading" v-if="!scope.row.workPeople" size="small" type="primary" @click="choiceZRRS(scope.row, 3, '')">{{ "批量分发该标准下的责任人" }}</el-button>
<!-- <el-button style="width: 98%" :loading="buttonLoading" v-if="!scope.row.workPeople" size="small" type="primary" @click="choiceZRRS(scope.row, 3, '')">{{ "批量分发该标准下的责任人" }}</el-button>-->
</template>
<!-- <template slot-scope="scope">-->
<!-- <div :class="{'fileClass': !scope.row.workPeople}">-->
@@ -124,77 +88,41 @@
<el-collapse accordion>
<el-collapse-item title="回执说明">
<div style="margin: 10px 0;">
<el-input
type="textarea"
:rows="3"
resize="none"
placeholder="请输入意见"
v-model="commentText">
<el-input v-model="commentText" :rows="3" placeholder="请输入意见" resize="none" type="textarea">
</el-input>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<div class="content" v-show="active === '3'">
<div v-show="active === '3'" class="content">
<div class="flow-list" style="height: 100%">
<el-table
height="100%"
ref="selection"
:data="detailData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
:no-data-text="listNoDataText"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
>
<el-table-column
type="selection"
width="55"
align="center">
<el-table ref="selection" :data="detailData" :header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
:no-data-text="listNoDataText" border height="100%"
row-key="id" style="width: 100%"
tooltip-effect="dark">
<el-table-column align="center" type="selection" width="55">
</el-table-column>
<el-table-column
prop="name"
label="任务步骤"
align="center"
>
<el-table-column align="center" label="任务步骤" prop="name">
</el-table-column>
<el-table-column
prop="assignee"
label="任务受理人"
align="center"
>
<el-table-column align="center" label="任务受理人" prop="assignee">
</el-table-column>
<el-table-column
prop="createTime"
label="创建时间"
sortable="custom"
align="center">
<el-table-column align="center" label="创建时间" prop="createTime" sortable="custom">
<template slot-scope="scope">
<span>{{ scope.row.createTime ? $moment(scope.row.createTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="endTime"
label="完成时间"
align="center">
<el-table-column align="center" label="完成时间" prop="endTime">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? $moment(scope.row.endTime).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="comment"
label="流程信息"
align="center">
<el-table-column align="center" label="流程信息" prop="comment">
<template slot-scope="scope">
<span>{{ scope.row.commentText }}</span>
</template>
</el-table-column>
<el-table-column
prop="completeFlag"
label="状态"
align="center">
<el-table-column align="center" label="状态" prop="completeFlag">
<template slot-scope="scope">
<span>{{ scope.row.endTime ? "已完成" : "未完成" }}</span>
</template>
@@ -203,34 +131,16 @@
<loading :loading="loading">流程列表加载中</loading>
</div>
</div>
<ProcessFooter
show-save
show-submit
show-transfer
:submitLoading="isSubmit"
:transfer-loading="isTransfer"
:saveLoading="saveLoading"
@save="handleSave"
@transfer="handleTransfer"
@submit="handleSubmit"
>
<ProcessFooter :saveLoading="saveLoading" :submitLoading="isSubmit" :transfer-loading="isTransfer" show-save
show-submit
show-transfer @save="handleSave" @submit="handleSubmit" @transfer="handleTransfer">
</ProcessFooter>
<!-- 福田全公司选人解决方案 -->
<Role-tree
check-box
:is-title="drawerTitle"
:is-visible.sync="drawerModal"
@checkedRole="checkedTransferRole"
:nodeList="nodeList"
></Role-tree>
<Role-tree :is-title="drawerTitle" :is-visible.sync="drawerModal" :nodeList="nodeList" check-box
@checkedRole="checkedTransferRole"></Role-tree>
<!-- 选择责任人-->
<Role-tree
check-box
is-title="选择责任人"
:is-visible.sync="modalshowflag"
@checkedRole="checkedRole"
:nodeList="nodeList"
></Role-tree>
<Role-tree :is-visible.sync="modalshowflag" :nodeList="nodeList" is-title="选择责任人"
@checkedRole="checkedRole"></Role-tree>
</div>
</template>
@@ -238,7 +148,7 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessFooter from "../../components/ProcessFooter";
import ProcessTitle from "../../components/ProcessTitle";
import { inboundLiaisonDetail, saveTaskForPub ,changeAssigneeNew } from "api/process";
import { changeAssigneeNew, inboundLiaisonDetail, saveTaskForPub } from "api/process";
export default {
name: "xmpg2Step5",
@@ -252,7 +162,7 @@ export default {
isTransfer: false,
// 调整处理人抽屉状态
drawerModal: false,
workPeopleList:[],
workPeopleList: [],
//防止按钮点击过快的按钮loading
buttonLoading: false,
//刷新表格
@@ -282,8 +192,8 @@ export default {
},
//表单的数据
listForm: {
projectNumber: "", //项目编号
projectName: "", //项目名称
projectNumber: "", //项目编号
projectName: "", //项目名称
dataList: [], //项目下的标准数据
children: [] //标准下的分解单数据
},
@@ -298,45 +208,45 @@ export default {
},
methods: {
//确认转办
checkedTransferRole (data) {
this.assigneeNewLoading = true
checkedTransferRole(data) {
this.assigneeNewLoading = true;
changeAssigneeNew({
taskId: this.$route.query.taskIds, // 任务id
assignee: data[0].id, // 被委托人
userId: this.$store.getters.userInfo.userId, // 委托人
pId: this.$route.query.prcId // 流程实例
}).then(res => {
this.isTransfer = false
this.isTransfer = false;
if (res.success) {
this.drawerModal = false
this.$message.success('调整成功')
this.drawerModal = false;
this.$message.success("调整成功");
this.$router.push("/processCenter");
this.processNum()
this.processNum();
} else {
this.$message.warning(res.message)
this.$message.warning(res.message);
}
})
});
},
// 请求转换流程图
processNum (row) {
processNum(row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',
method: 'get',
url: "/api/lawss/activiti/getImg?_t=" + new Date().getTime(),
responseType: "blob",
method: "get",
params: {
prcNum: this.$route.query.prcNum
}
}).then(res => {
// let blob = new Blob([res.data], {type: 'image/jpg'})
// let url = window.URL.createObjectURL(res.data)
this.processStep = window.URL.createObjectURL(res.data)
})
this.processStep = window.URL.createObjectURL(res.data);
});
},
//转办事件
handleTransfer(){
this.drawerModal = true
this.drawerTitle = '转办处理人'
this.selectPeople = row
handleTransfer() {
this.drawerModal = true;
this.drawerTitle = "转办处理人";
this.selectPeople = row;
},
// 点击查看
handlePreview(item) {
@@ -407,6 +317,7 @@ export default {
},
//动态表单读取
getFormFieldList(item) {
console.log(item);
this.$nextTick(() => {
this.listForm = JSON.parse(JSON.stringify(item));
if (item.form === undefined) {
@@ -444,9 +355,18 @@ export default {
}
});
this.listForm.children = children;
this.dataList.forEach(item => {
this.$set(item, "workPeople", "请选择责任人");
});
console.log(this.dataList);
} else {
this.listForm = item.form;
this.dataList = item.form.dataList;
this.dataList.forEach(item => {
this.$set(item, "workPeople", "请选择责任人");
this.$set(item, "workPeopleId", "");
});
console.log(this.dataList);
}
});
},
@@ -471,19 +391,21 @@ export default {
},
//提交事件
handleSubmit() {
let dataChildren = []
let dataListChildren = []
let dataChildren = [];
let dataListChildren = [];
this.dataList.forEach(item => {
dataChildren.push(item.children)
})
dataChildren.forEach((item,index) => {
dataListChildren = dataListChildren.concat(item)
})
dataChildren.push(item.children);
});
dataChildren.forEach((item, index) => {
dataListChildren = dataListChildren.concat(item);
});
this.isSubmit = true;
this.listForm.commentText = this.commentText;
this.listForm.children = dataListChildren
this.listForm.dataList = this.dataList
this.listForm.children = dataListChildren;
this.listForm.dataList = this.dataList;
const json = JSON.stringify(this.listForm);
console.log(json);
return;
this.$http.post("lawss/activiti/completeTask", {
taskIds: this.taskIds,
userId: this.userId,
@@ -501,7 +423,8 @@ export default {
},
//批量分发按钮
choiceZRRS(row, type, index) {
this.selectedId = row.id;
console.log(row);
this.selectedId = row.id || row.standId;
this.type = type;
if (type === 1) {
this.drawerTitle = "选择责任人";
@@ -522,24 +445,86 @@ export default {
}
}
//批量分发某标准下的责任人
else if (type === 3){
else if (type === 3) {
//弹出选人框
// if (this.tableExpand === false){
this.modalshowflag = true;
this.drawerTitle = "批量选择责任人";
this.modalshowflag = true;
this.drawerTitle = "批量选择责任人";
// }
//展开表格
this.workPeopleList = row
this.workPeopleList = row;
// console.log('279',row.children)
this.refreshTable = false
this.refreshTable = false;
// this.tableExpand = !this.tableExpand
this.$nextTick(() => {
this.refreshTable = true
this.refreshTable = true;
});
}
},
setChildren(children, type) {
// 编辑多个子层级
children.map(j => {
this.toggleSelection(j, type);
if (j.children) {
this.setChildren(j.children, type);
}
});
},
// 选中父节点时,子节点一起选中取消
select(selection, row) {
const hasSelect = selection.some(el => {
return row.id === el.id;
});
if (hasSelect) {
if (row.children) {
// 解决子组件没有被勾选到
this.setChildren(row.children, true);
}
} else {
if (row.children) {
this.setChildren(row.children, false);
}
}
},
toggleSelection(row, select) {
if (row) {
this.$nextTick(() => {
this.$refs.myTable &&
this.$refs.myTable.toggleRowSelection(row, select);
});
}
},
// 选择全部
selectAll(selection) {
// dataList第一层只要有在selection里面就是全选
const isSelect = selection.some(el => {
const dataListIds = this.dataList.map(j => j.id);
return dataListIds.includes(el.id);
});
// dataList第一层只要有不在selection里面就是全不选
const isCancel = !this.dataList.every(el => {
const selectIds = selection.map(j => j.id);
return selectIds.includes(el.id);
});
if (isSelect) {
selection.map(el => {
if (el.children) {
// 解决子组件没有被勾选到
this.setChildren(el.children, true);
}
});
}
if (isCancel) {
this.dataList.map(el => {
if (el.children) {
// 解决子组件没有被勾选到
this.setChildren(el.children, false);
}
});
}
},
//标准表格选择框改变
selectStandChange(data) {
this.selectList = data;
@@ -559,14 +544,28 @@ export default {
}
},
checkedRole(data) {
var idList = "";
var nameList = "";
data.forEach(item => {
if (nameList.length > 0) {
nameList += ",";
idList += ",";
}
idList += item.id;
nameList += item.name;
});
//单选操作
if (this.type === 1) {
this.dataList.forEach(item => {
if(item.standId === this.selectedId){
item.workPeople = nameList;
item.workPeopleId = idList;
}
if (item.children) {
item.children.forEach(items => {
if (items.id === this.selectedId) {
items.workPeople = data[0].name;
items.workPeopleId = data[0].id;
items.workPeople = nameList;
items.workPeopleId = idList;
// this.$set(items,'workPeople',data[0].name)
//this.$set(items,'workPeopleId',data[0].id)
}
@@ -577,37 +576,37 @@ export default {
} else if (this.type === 2) {
this.selectList.forEach(item => {
this.dataList.map(items => {
if (item.id === items.id) {
items.workPeople = "";
items.workPeopleId = "";
this.$message.warning('您只能针对条款进行分发')
if (item.standId === items.standId) {
items.workPeople = nameList;
items.workPeopleId = idList;
// this.$message.warning('您只能针对条款进行分发')
}
if (items.children.length) {
if (items.children) {
items.children.map(childrenItem => {
if (childrenItem.id === item.id) {
childrenItem.workPeople = data[0].name;
childrenItem.workPeopleId = data[0].id;
childrenItem.workPeople = nameList;
childrenItem.workPeopleId = idList;
}
});
}
});
});
this.dataList = JSON.parse(JSON.stringify(this.dataList));
}else if (this.type === 3){
} else if (this.type === 3) {
// console.log("529",this.workPeopleList)
for (let i=0;i<this.workPeopleList.children.length;i++){
for (let i = 0; i < this.workPeopleList.children.length; i++) {
this.workPeopleList.children[i].workPeople = data[0].name
this.workPeopleList.children[i].workPeopleId = data[0].id
this.workPeopleList.children[i].workPeople = data[0].name;
this.workPeopleList.children[i].workPeopleId = data[0].id;
// console.log(row.children[i].id)
// console.log(row.children[i].workPeople)
}
// items.children.map(childrenItem => {
//
// childrenItem.workPeople = data[0].name;
// childrenItem.workPeopleId = data[0].id;
// })
// items.children.map(childrenItem => {
//
// childrenItem.workPeople = data[0].name;
// childrenItem.workPeopleId = data[0].id;
// })
}
this.modalshowflag = false;
@@ -704,4 +703,3 @@ export default {
}
}
</style>
@@ -188,7 +188,7 @@
width="180px"
label="标准号">
<template slot-scope="scope">
<span @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standNumber }}</span>
<span @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standNumber || scope.row.lawsNumber || scope.row.standCode }}</span>
</template>
</el-table-column>
<el-table-column
@@ -197,7 +197,7 @@
label="标准名称"
>
<template slot-scope="scope">
<span @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</span>
<span @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName || scope.row.lawsName}}</span>
</template>
</el-table-column>
<el-table-column
@@ -215,7 +215,8 @@
align="center"
label="新车型实施日期">
<template slot-scope="scope">
<span>{{ scope.row.xcxssrqgj ? $moment(scope.row.xcxssrqgj).format('YYYY-MM-DD') : '' }}</span>
<span v-if="scope.row.xcxssrqgj">{{ scope.row.xcxssrqgj ? $moment(scope.row.xcxssrqgj).format('YYYY-MM-DD') : '' }}</span>
<span v-else-if="scope.row.putTime">{{ scope.row.putTime ? $moment(scope.row.putTime).format('YYYY-MM-DD') : '' }}</span>
</template>
</el-table-column>
<el-table-column
@@ -235,7 +236,7 @@
align="center"
label="文本状态">
<template slot-scope="scope">
<span>{{ textStatusMap[scope.row.textStatus] }}</span>
<span>{{ textStatusMap[scope.row.textStatus] || scope.row.standStatusShow}}</span>
</template>
</el-table-column>
</el-table>
@@ -684,8 +685,8 @@ export default {
dataSourceOptions: [
{value: 'INLAND_STAND', label: '国内标准法规'},
{value: 'FOREIGN_STAND', label: '海外标准法规'},
//{value: 'FOREIGN_LAWS', label: '国内外政策'},
// {value: 'BUSINESS', label: '企业标准 '},
{value: 'FOREIGN_LAWS', label: '国内外政策'},
{value: 'BUSINESS', label: '企业标准 '},
// {value: 'TEMP', label: '标准法规清单 '}
],
// 新增、编辑 数据搜索字段
@@ -1163,6 +1164,66 @@ export default {
}
]
// 国内外政策可查字段
}else if (val === 'FOREIGN_LAWS'){
this.twoOptions=[
{
label: '适用车辆类型',
value: 'SYCLLX',
type: 'SEL_OPTION',
disabled: false
}, {
label: '政策编号',
value: 'LAWS_NUMBER',
type: 'INPUT',
disabled: false
}, {
label: '中文名称',
value: 'LAWS_NAME',
type: 'INPUT',
disabled: false
}, {
label: '英文名称',
value: 'LAWS_EN_NAME',
type: 'INPUT',
disabled: false
}, {
label: '个性化标签',
value: 'GXHBQXX',
type: 'SEL_OPTION',
disabled: false
}, {
label: '新车型实施日期(文本)',
value: 'XCXSSRQ',
type: 'DATE_PIC_OPTS',
disabled: false
}, {
label: '在产车实施日期(文本)',
value: 'ZCCSSRQ',
type: 'DATE_PIC_OPTS',
disabled: false
}, {
label: '维护工程师',
value: 'ZCGCS',
type: 'SEL_OPTION',
selVal: "USERLIST",
disabled: false
}
]
// 标准法规清单可查字段
}else {
this.twoOptions=[
{
label: '清单名称',
value: 'ACCESS_CONTENT',
type: 'INPUT',
disabled: false
}, {
label: '国家地区',
value: 'COUNTRY',
type: 'SEL_OPTION',
disabled: false
}
]
}
},
/**
@@ -1534,52 +1595,77 @@ export default {
// })
// },
pageInfo() {
StandardsInfoPage(this.sarAccessInfoSearch).then(res => {
this.sarAccessInfoSearchList = res.data.list
this.sarAccessInfoSearchList.forEach(item => {
if (item.standYear === null) {
item.standNumber = item.standSortShow + ' ' + item.standNumber
} else {
item.standNumber = item.standSortShow + ' ' + item.standNumber + '-' + item.standYear
}
if (item.attrInfoMap === null) {
this.$set(item, 'zccssrqgj', '')
this.$set(item, 'xcxssrqgj', '')
this.$set(item, 'sycpx', '')
this.$set(item, 'ssrq', '')
this.$set(item, 'typeApplicable', '')
this.$set(item, 'nylx', '')
this.$set(item, 'zrbm', '')
this.$set(item, 'cycvppsbm', '')
this.$set(item, 'cycvppscn', '')
this.$set(item, 'kccvppsbm', '')
this.$set(item, 'kccvppscn', '')
} else {
this.$set(item, 'zccssrqgj', item.attrInfoMap.ZCCSSRQ)
this.$set(item, 'xcxssrqgj', item.attrInfoMap.XCXSSRQ)
this.$set(item, 'sycpx', item.attrInfoMap.SYCPX)
this.$set(item, 'ssrq', item.attrInfoMap.SSRQ)
this.$set(item, 'typeApplicable', item.attrInfoMap.CLLX)
this.$set(item, 'nylx', item.attrInfoMap.NYLX)
this.$set(item, 'zrbm', item.attrInfoMap.ZRBM)
this.$set(item, 'cycvppsbm', item.attrInfoMap.CYCVPPSBM)
this.$set(item, 'cycvppscn', item.attrInfoMap.CYCVPPSCN)
this.$set(item, 'kccvppsbm', item.attrInfoMap.KCCVPPSBM)
this.$set(item, 'kccvppscn', item.attrInfoMap.KCCVPPSCN)
}
console.log('1598',this.sarAccessInfoSearch)
if (this.sarAccessInfoSearch.dataSource === 'INLAND_STAND' || this.sarAccessInfoSearch.dataSource === 'FOREIGN_STAND'){
StandardsInfoPage(this.sarAccessInfoSearch).then(res => {
this.sarAccessInfoSearchList = res.data.list
this.sarAccessInfoSearchList.forEach(item => {
if (item.standYear === null) {
item.standNumber = item.standSortShow + ' ' + item.standNumber
} else {
item.standNumber = item.standSortShow + ' ' + item.standNumber + '-' + item.standYear
}
if (item.attrInfoMap === null) {
this.$set(item, 'zccssrqgj', '')
this.$set(item, 'xcxssrqgj', '')
this.$set(item, 'sycpx', '')
this.$set(item, 'ssrq', '')
this.$set(item, 'typeApplicable', '')
this.$set(item, 'nylx', '')
this.$set(item, 'zrbm', '')
this.$set(item, 'cycvppsbm', '')
this.$set(item, 'cycvppscn', '')
this.$set(item, 'kccvppsbm', '')
this.$set(item, 'kccvppscn', '')
} else {
this.$set(item, 'zccssrqgj', item.attrInfoMap.ZCCSSRQ)
this.$set(item, 'xcxssrqgj', item.attrInfoMap.XCXSSRQ)
this.$set(item, 'sycpx', item.attrInfoMap.SYCPX)
this.$set(item, 'ssrq', item.attrInfoMap.SSRQ)
this.$set(item, 'typeApplicable', item.attrInfoMap.CLLX)
this.$set(item, 'nylx', item.attrInfoMap.NYLX)
this.$set(item, 'zrbm', item.attrInfoMap.ZRBM)
this.$set(item, 'cycvppsbm', item.attrInfoMap.CYCVPPSBM)
this.$set(item, 'cycvppscn', item.attrInfoMap.CYCVPPSCN)
this.$set(item, 'kccvppsbm', item.attrInfoMap.KCCVPPSBM)
this.$set(item, 'kccvppscn', item.attrInfoMap.KCCVPPSCN)
}
})
this.drawerTotal = res.data.count
}, e => {
})
this.drawerTotal = res.data.count
}, e => {
})
}else if (this.sarAccessInfoSearch.dataSource === 'FOREIGN_LAWS'){
this.$http.get('lawss/sarLawsInfo/page', this.sarAccessInfoSearch, {
_this: this,
}, res => {
console.log('1640',res)
this.sarAccessInfoSearchList = res.data.list
}, e => {
})
}else if (this.sarAccessInfoSearch.dataSource === 'BUSINESS'){
this.$http.get('lawss/sarBussionessStand/getSarBussionStandPage', this.sarAccessInfoSearch, {
_this: this,
}, res => {
console.log('1648',res)
this.sarAccessInfoSearchList = res.data.list
}, e => {
})
}
},
// 查询数据搜索 table 数据
selectLawsStands() {
if (this.sarAccessInfoSearch.dataSource === 'INLAND_STAND') {
this.sarAccessInfoSearch.standType = 'INLAND'
this.pageInfo()
} else {
} else if (this.sarAccessInfoSearch.dataSource === 'FOREIGN_STAND') {
this.sarAccessInfoSearch.standType = 'FOREIGN'
this.pageInfo()
}else if (this.sarAccessInfoSearch.dataSource === 'FOREIGN_LAWS') {
this.sarAccessInfoSearch.standType = 'LAWS'
this.pageInfo()
}else if (this.sarAccessInfoSearch.dataSource === 'BUSINESS') {
this.sarAccessInfoSearch.standType = 'BUSINESS'
this.pageInfo()
}
},
@@ -308,7 +308,7 @@
</el-table-column>
<el-table-column fixed="right"
v-if="isPermission('cac1eb379eb8e3b987cbb2e4599adb50,247cebaefa7cf1683092af160af11502,dbaf9df2990a595c8abea28e68b1a681')>0"
label="操作" align="center" width="50"
label="收藏" align="center" width="200"
>
<template slot-scope="scope">
<div
@@ -343,7 +343,7 @@
@click="handleCommand([scope.row, '收藏'])"
>
</el-button>
<el-button title="取消收藏" class="collection-btn" icon="el-icon-star-off" style="color: #f56c6c;"
<el-button title="取消收藏" class="collection-btn" icon="el-icon-star-on"
v-btn-permission="'cac1eb379eb8e3b987cbb2e4599adb50'"
v-else
@click="handleCommand([scope.row, '取消收藏'])"
@@ -2719,7 +2719,7 @@ export default {
this.OCRType = type
if (type === '0') {
text = 'OCR识别'
this.OCRTitle = '选择OCR别文件'
this.OCRTitle = '选择OCR别文件'
} else if (type === '1') {
text = '拆分'
this.OCRTitle = '选择拆分文件'
@@ -5690,7 +5690,7 @@ export default {
.tree-content {
background: #fff;
width: 20%;
width: 16%;
position: relative;
.tree {
@@ -5741,7 +5741,7 @@ export default {
.collection-btn {
padding: 0;
border: none;
color: #4788c0;
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
@@ -385,7 +385,7 @@
</el-table-column>
<el-table-column fixed="right"
v-if="isPermission('d9730d984627af948053df56a2db7997,dd4ea796dab7a01b105ba657b1968a84,a7a38a95ea374695fc3128037f6feccf')>0" label="操作" align="center" width="50">
v-if="isPermission('d9730d984627af948053df56a2db7997,dd4ea796dab7a01b105ba657b1968a84,a7a38a95ea374695fc3128037f6feccf')>0" label="收藏" align="center" width="50">
<template slot-scope="scope">
<div v-if="isPermission('d9730d984627af948053df56a2db7997,dd4ea796dab7a01b105ba657b1968a84,a7a38a95ea374695fc3128037f6feccf') == 1"
@command="handleCommand"
@@ -417,7 +417,7 @@
@click="handleCommand([scope.row, '收藏'])"
>
</el-button>
<el-button title="取消收藏" class="collection-btn" icon="el-icon-star-off" style="color: #f56c6c;" v-btn-permission="'d9730d984627af948053df56a2db7997'"
<el-button title="取消收藏" class="collection-btn" icon="el-icon-star-on" v-btn-permission="'d9730d984627af948053df56a2db7997'"
v-else
@click="handleCommand([scope.row, '取消收藏'])"
>
@@ -4460,7 +4460,7 @@ export default {
.collection-btn {
padding: 0;
border: none;
color: #4788c0;
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
@@ -317,7 +317,7 @@
<span v-else style="color: #333333">{{ textStatusMap[scope.row.textStatus] }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" v-if="isPermission('f9745194958bc9ed3ee5127459795dbc,e8d690904ee1895dd0d17d9c794fbcd7,b299fa5edb3f3f35badb2adb6bda9f2e')>0" label="操作" align="center" width="50">
<el-table-column fixed="right" v-if="isPermission('f9745194958bc9ed3ee5127459795dbc,e8d690904ee1895dd0d17d9c794fbcd7,b299fa5edb3f3f35badb2adb6bda9f2e')>0" label="收藏" align="center" width="50">
<template slot-scope="scope">
<div v-if="isPermission('f9745194958bc9ed3ee5127459795dbc,e8d690904ee1895dd0d17d9c794fbcd7,b299fa5edb3f3f35badb2adb6bda9f2e') == 1"
@@ -350,7 +350,7 @@
@click="handleCommand([scope.row, '收藏'])"
>
</el-button>
<el-button title="取消收藏" class="collection-btn" icon="el-icon-star-off" style="color: #f56c6c;" v-btn-permission="'f9745194958bc9ed3ee5127459795dbc'"
<el-button title="取消收藏" class="collection-btn" icon="el-icon-star-on" v-btn-permission="'f9745194958bc9ed3ee5127459795dbc'"
v-else
@click="handleCommand([scope.row, '取消收藏'])"
>
@@ -5191,7 +5191,7 @@ export default {
.collection-btn {
padding: 0;
border: none;
color: #4788c0;
color: #F2CB51;
font-size: 18px;
width: 18px;
height: 18px;
@@ -157,7 +157,14 @@
show-overflow-tooltip
prop=""
width="180px"
label="合规评估结果">
label="合规性情况">
<template slot-scope="scope">
<!-- <el-button @click="changeState(scope.row)">符合性状态</el-button>-->
<div class="table-jump" @click="changeState(scope.row)">
<div v-if="scope.row.sarState === 0">符合</div>
<div v-else >不符合</div>
</div>
</template>
</el-table-column>
</el-table>
<pagination
@@ -510,6 +517,16 @@ export default {
}
},
methods: {
changeState (row) {
let routeUrl = this.$router.resolve({
name: 'ComplianceDetails',
query: {
productId: this.localProEO.projectNumber,
standId: row.standId,
}
})
window.open(routeUrl.href, '_blank')
},
//搜索清单
searchSarAccess() {
this.pageDo = 1
@@ -837,7 +854,7 @@ export default {
this.localProEO = JSON.parse(JSON.stringify(item))
this.proId = this.localProEO.id
// 查询详情表格数据
this.$http.get('sarStandProjectLibrary/queryStandInfo', {
this.$http.get('sarStandProjectLibrary/queryStandInfoNew', {
id: this.localProEO.id,
cars: "1"
}, {
@@ -155,71 +155,44 @@
align="center">
</el-table-column>
<el-table-column
width="150px"
width="180px"
align="center"
prop="projectNumber"
prop="productId"
label="项目编号">
</el-table-column>
<el-table-column
width="150px"
width="180px"
align="center"
prop="projectName"
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
width="110px"
align="center"
prop="projectGroup"
label="项目群">
</el-table-column>
<el-table-column
width="110px"
align="center"
prop="productLine"
label="产品线">
</el-table-column>
<el-table-column
width="110px"
align="center"
width="110"
prop="uname"
label="产品线责任人">
</el-table-column>
<el-table-column
width="150px"
align="center"
prop="standNumber"
label="标准编号">
</el-table-column>
<el-table-column
width="150px"
align="center"
prop="standName"
label="标准名称">
</el-table-column>
<el-table-column
width="150px"
align="center"
prop="standardItem"
label="条款号">
</el-table-column>
<el-table-column
width="150px"
align="center"
prop="clauseName"
label="条款名称">
</el-table-column>
<el-table-column
width="150px"
align="center"
prop=""
label="合规评估结果">
<template slot-scope="scope">
<el-button @click="changeState(scope.row)">符合性状态</el-button>
<!-- <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>-->
<!-- <el-button @click="changeState(scope.row)">符合性状态</el-button>-->
<div class="table-jump" @click="changeState(scope.row)">
<div v-if="scope.row.sarState === 0">符合</div>
<div v-else >不符合</div>
</div>
</template>
</el-table-column>
</el-table>
@@ -269,14 +242,11 @@ export default {
},
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'
standId: row.standId,
}
})
window.open(routeUrl.href, '_blank')
@@ -325,23 +295,20 @@ export default {
this.queryStandAndLaws();
}, // 外层清空条件查询
handleProjectCompliance(row) {
this.sarProStateEO.type = row.type
this.sarProStateEO.standId = row.standId
this.productId = row.productId;
this.querySarProStateZero();
}, // 查看项目符合性
querySarProStateZero(page) {
console.log(page)
if (page) {
this.sarProStateTotalPage = page
} else {
this.sarProStateTotalPage = 1;
}
var form = this.sarProStateEO;
console.log('395',form)
// form.standId = this.standId
form.current = this.sarProStateTotalPage;
form.size = this.sarProStatePageSize;
this.$http.get("sarStandardComplianceAssessResult/product", form, {
this.$http.get("sarStandardComplianceAssessResult/productNew", form, {
_this: this
}, res => {
if (res.ok) {
@@ -108,10 +108,6 @@
fixed="left"
width="180"
label="标准号">
<!-- <template slot-scope="scope">-->
<!-- <a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standId }}</a>-->
<!--&lt;!&ndash; {{ scope.row.standId }}&ndash;&gt;-->
<!-- </template>-->
<template slot-scope="scope">
<a class="table-jump" @click="handlePreview(scope.row)">{{ scope.row.standSerialNumber }}</a>
</template>
@@ -403,178 +399,6 @@
@click="exportTestItem">提交</el-button>
</span>
</el-dialog>
<!-- 选择项目抽屉-->
<el-drawer
title="选择项目"
:visible.sync="projectModel"
size="900px"
custom-class="demo-drawer"
>
<div class="demo-drawer-content">
<div style="position: absolute;bottom: 48px;top:60px;left: 0;right: 0">
<div style="position: absolute;bottom: 55px;top: 0;right: 0;left: 0">
<div class="left">
<el-form :modal="projectSearch" :inline="true" class="label-input-form" style="margin-left:10px">
<el-form-item label="项目编号" class="search-item search-item-last">
<el-input
v-model="projectSearch.projectNumber"
placeholder="请输入项目编号"
></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item search-item-last">
<el-input
v-model="projectSearch.projectName"
placeholder="请输入项目名称"
></el-input>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
class="common-button-primary"
size="small"
v-btn-permission="''"
@click="getProjectDataBtn">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
class="common-button-default"
size="small"
v-btn-permission="''"
@click="clearSearch">清空
</el-button>
</el-form-item>
</el-form>
</div>
<el-table
:data="ProjectDatas"
tooltip-effect="dark"
style="width: 100%;"
border
height="100%"
:header-cell-style="{background: '#f5f1f1', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="selectListChange"
@select="handleSelectionChanges"
ref="listSelection"
>
<el-table-column
type="selection"
width="55"
align="center" />
<el-table-column
prop="projectNumber"
align="center"
label="项目编号"
/>
<el-table-column
prop="projectName"
align="center"
label="项目名称"
/>
<el-table-column
prop="projectClassification"
align="center"
label="项目分类"
/>
<el-table-column
prop="uname"
align="center"
label="项目经理"
/>
</el-table>
</div>
<pagination
:page="page"
:pageSize="pageSize"
:total="total"
@pageChange="pageChange"
@pageSizeChange="pageSizeChange"
/>
</div>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" @click="closeDrawer">取消</el-button>
<el-button type="primary" size="mini" @click="OkDrawer">带入</el-button>
</div>
</el-drawer>
<!-- 选择项目下标准抽屉-->
<el-drawer
title="选择标准"
:visible.sync="listModel"
size="900px"
custom-class="demo-drawer"
>
<div class="demo-drawer-content">
<div style="position: absolute;bottom: 48px;top:60px;left: 0;right: 0">
<div style="position: absolute;bottom: 55px;top: 0;right: 0;left: 0">
<el-table
:data="dataList"
border
ref="selection"
height="100%"
style="width: 100%; border:1px solid #ccc"
@selection-change="selectStandChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
align="center"
label="标准号"
>
<template slot-scope="scope">
<a v-if="scope.row.standYear" class="table-jump"
@click="handlePreview(scope.row)">{{ scope.row.standSort
}} {{ scope.row.standNumber }}-{{ scope.row.standYear }}</a>
<a v-else @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standSort }}
{{ scope.row.standNumber }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
align="center"
label="中文名称"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="ssrq"
align="center"
sortable
label="标准实施日期">
<template slot-scope="scope">
<span>{{ scope.row.ssrq ? $moment(scope.row.ssrq).format("YYYY-MM-DD") : "" }}</span>
</template>
</el-table-column>
<el-table-column
prop="zrbm"
label="责任部门"
align="center"
>
</el-table-column>
</el-table>
</div>
<pagination
:page="standPage"
:pageSize="standPageSize"
:total="standTotal"
@pageChange="standPageChange"
@pageSizeChange="standPageSizeChange"
/>
</div>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" @click="closeStand">取消</el-button>
<el-button type="primary" size="mini" @click="OkStand">带入</el-button>
</div>
</el-drawer>
<!-- 填写未符合项信息表单-->
<el-drawer
size="700px"
@@ -588,16 +412,52 @@
<el-col :span="24">
<el-form :model="addForm" inline class="label-input-form" :rules="formRules" label-width="180px"
ref="addForm">
<el-form-item prop="standSerialNumber" label="标准号" style="width: 100%; margin-right:10px"
<el-form-item prop="productName" label="项目名称" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-select v-model="addForm.productName"@change="handleChange" placeholder="请选择项目名称">
<el-option
v-for="item in ProjectDatas"
:key="item.id"
:label="item.projectName"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="productType" label="产品类型" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
v-model="addForm.standSerialNumber"
placeholder="请输入标准号"
:disabled="true"
v-model="addForm.productType"
placeholder="请输入产品类型"
:maxlength="500" />
</el-form-item>
<el-form-item prop="productLine" label="产品线" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
:disabled="true"
v-model="addForm.productLine"
placeholder="请输入产品线"
:maxlength="500" />
</el-form-item>
<el-form-item prop="standSerialNumber" label="标准号" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-select
v-model="addForm.standSerialNumber"
:disabled="serialNumber"
@change="standChange"
placeholder="请选择标准号">
<el-option
v-for="item in dataList"
:key="item.standId"
:label="item.standSort + '-' + item.standNumber + '-' + item.standYear"
:value="item"
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="standName" label="标准名称" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
:disabled="true"
v-model="addForm.standName"
placeholder="请输入标准名称"
:maxlength="500" />
@@ -610,13 +470,6 @@
:maxlength="500">
</el-input>
</el-form-item>
<!-- <el-button-->
<!-- type="primary"-->
<!-- class="common-button-primary"-->
<!-- size="mini"-->
<!-- @click="handSeek"-->
<!-- style="position:absolute;top: 10px; float: right;"-->
<!-- >手动查找</el-button>-->
<el-form-item prop="itemsName" label="条款名称" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
@@ -624,25 +477,12 @@
placeholder="请输入条款名称"
:maxlength="500" />
</el-form-item>
<el-form-item prop="productType" label="产品类型" style="width: 100%; margin-right:10px"
<el-form-item prop="responsibleUnit" label="责任部门" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
v-model="addForm.productType"
placeholder="请输入产品类型"
:maxlength="500" />
</el-form-item>
<el-form-item prop="productLine" label="产品线" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
v-model="addForm.productLine"
placeholder="请输入产品线"
:maxlength="500" />
</el-form-item>
<el-form-item prop="productName" label="项目名称" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
v-model="addForm.productName"
placeholder="请输入项目名称"
:disabled="true"
v-model="addForm.responsibleUnit"
placeholder="请输入责任部门"
:maxlength="500" />
</el-form-item>
<el-form-item prop="reason" label="不合规项目" style="width: 100%; margin-right:10px"
@@ -652,13 +492,6 @@
placeholder="请输入不合规项目"
:maxlength="500" />
</el-form-item>
<el-form-item prop="responsibleUnit" label="责任部门" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
v-model="addForm.responsibleUnit"
placeholder="请输入责任部门"
:maxlength="500" />
</el-form-item>
<el-form-item prop="dutyEngineer" label="责任工程师" style="width: 100%; margin-right:10px"
class="add-form-item">
<el-input
@@ -711,50 +544,6 @@
</el-button>
</div>
</el-drawer>
<!-- 条款弹窗-->
<el-dialog title="条款信息" :append-to-body="true" width="875px" :visible.sync="itemModel">
<el-table
ref="selections"
:data="itemsData"
tooltip-effect="dark"
style="width: 100%;overflow-y: auto;overflow-x: hidden;"
border
:height="300"
@selection-change="selectReplaceStandNumRowChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="itemsNum"
label="条款号"
align="center"
>
</el-table-column>
<el-table-column
prop="itemsName"
label="条款名称"
align="center"
>
</el-table-column>
</el-table>
<loading :loading="replaceLoading">数据获取中</loading>
<!--分页-->
<pagination
style="position: relative;"
:page="replacePage"
:page-size="replacePageSize"
:total="replaceTotal"
@pageChange="pageChangeReplace"
@pageSizeChange="pageSizeChangeReplace"></pagination>
<div slot="footer" class="demo-drawer-footer">
<el-button class="common-button-default" @click="itemModel = false">取消</el-button>
<el-button type="primary" class="common-button-primary" @click="replaceLawsNumModelBt">带入</el-button>
</div>
</el-dialog>
</div>
</template>
@@ -872,7 +661,10 @@ export default {
},
//数据查看
historySee: false,
historySeeForm: {}
historySeeForm: {},
// 新增编辑框的disabled
serialNumber: true,
addFormEdit: {}
};
},
methods: {
@@ -1032,11 +824,6 @@ export default {
}
},
//项目查询按钮
getProjectDataBtn() {
this.page = 1;
this.getProjectData();
},
//获取项目数据
getProjectData() {
this.$http.get("sarStandProjectLibrary/queryProjectWorkFlow", {
@@ -1116,7 +903,7 @@ export default {
editUn(closeState, standSerialNumber, standName, itemsNum, itemsName, productType,
productLine, productName, reason, responsibleUnit, dutyEngineer, authEngineer, qaEngineer, planCloseTime, id).then(res => {
if (res.ok) {
this.$message.success("新增成功");
this.$message.success("编辑成功");
this.drawerTable = false;
this.getTableByPage();
}
@@ -1204,8 +991,8 @@ export default {
}
},
//查询项目下的标准
getStandData() {
this.$http.get("sarStandProjectLibrary/queryStandInfo", { id: this.projectId }, {
getStandData(val) {
this.$http.get("sarStandProjectLibrary/queryStandInfo", { id: val.id }, {
_this: this
}, res => {
res.data.records.forEach(item => {
@@ -1230,61 +1017,21 @@ export default {
});
});
},
//条款的多选框改变
selectReplaceStandNumRowChange(data) {
this.selectItems = data;
},
//标准的多选框改变
selectStandChange(data) {
this.standList = data;
},
//项目的多选框改变
selectListChange(data) {
this.selectList = data;
},
//单选逻辑
handleSelectionChanges(selection, val) {
if (selection.length > 1) {
let del_row = selection.shift();
this.$refs.listSelection.toggleRowSelection(del_row, false);
}
},
standPageChange(page) {
this.standPage = page;
this.getStandData();
},
standPageSizeChange(pageSize) {
this.standPageSize = pageSize;
this.getStandData();
},
//条款分页
pageChangeReplace(page) {
this.replacePage = page;
this.getItem();
},
pageSizeChangeReplace(pageSize) {
this.replacePageSize = pageSize;
this.getItem();
},
pageChange(page) {
this.page = page;
this.getProjectData();
},
pageSizeChange(pageSize) {
this.pageSize = pageSize;
this.getProjectData();
},
//新增事件
addModel() {
this.addForm = {};
this.projectModel = true;
this.dataList = []
this.serialNumber = true
this.drawerTitle = "新增";
this.getProjectData()
this.drawerTable = true
},
//编辑事件
projectEdit(row) {
this.drawerTitle = "编辑";
this.addForm = row;
this.addFormEdit = row
this.getProjectData()
this.drawerTable = true;
console.log(row);
},
//点击查看按钮事件
showUser(row) {
@@ -1307,10 +1054,6 @@ export default {
}
});
},
//点击编辑按钮事件
openEditModal(item) {
console.log(item);
},
// 点击查看
handlePreview(item) {
let routeUrl = this.$router.resolve({
@@ -1361,7 +1104,29 @@ export default {
pageSizeChangeNo(pageSize) {
this.pageSizeNo = pageSize;
this.getTableByPage();
},
/** 项目名称change事件 */
handleChange(val) {
if (this.drawerTitle === '编辑') {
this.addForm.standName = ''
this.addForm.standSerialNumber = ''
this.addForm.responsibleUnit = ''
}
this.addForm.productLine = val.productLine
this.addForm.productName = val.projectName
this.addForm.productType = val.projectPlatfor
this.serialNumber = false
this.getStandData(val)
},
/** 标准号change事件 */
standChange(item) {
this.addForm.standName = item.standName
this.addForm.standSerialNumber = item.standSort + '-' + item.standNumber + '-' + item.standYear
this.addForm.responsibleUnit = item.zrbm || "--";
}
},
mounted() {
//查询已维护的项目
@@ -1382,13 +1147,6 @@ export default {
<style lang="less" scoped>
//.el-table {
// .el-table__fixed {
// height:auto !important; // 此处的important表示优先于element.style
// bottom:17px; // 改为自动高度后,设置与父容器的底部距离,则高度会动态改变
// }
//}
#rectification-dataBase {
/deep/ .table-wrap {
.el-table__fixed {
@@ -1448,5 +1206,22 @@ export default {
height: 49px;
float: right;
}
.demo-drawer-content {
.content {
.standard-table-search {
/deep/.el-input.is-disabled .el-input__inner {
background-color: #fff;
color: #7e8083;
}
/deep/.el-select-dropdown__item.selected {
color: #8d8e91;
}
}
}
}
/deep/.el-select-dropdown__item.selected {
color: #8d8e91 !important;
}
}
</style>