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