未符合项整改

This commit is contained in:
宋伟佳
2021-06-18 18:02:31 +08:00
parent 9f179e86d1
commit 86fdf56060
10 changed files with 2202 additions and 392 deletions
@@ -2,7 +2,7 @@
<template>
<div id="non-cnfomity" >
<div class="non-content">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tabs v-model="activeName" @tab-click="handleClick" style="height: 100%">
<el-tab-pane label="未符合项整改数据库" name="database">
<rectification-database></rectification-database>
</el-tab-pane>
@@ -36,12 +36,27 @@ export default {
mounted () {}
}
</script>
<style lang="less" scope>
<style lang="less" scoped>
#non-cnfomity {
height: 100%;
display: flex;
flex-direction: column;
background-color: #FFFFFF;
.non-content {
height: 100%;
/deep/ .el-tabs {
display: flex;
flex-direction: column;
height: 100%;
.el-tabs__content {
flex: 1;
overflow: hidden;
.el-tab-pane {
height: 100%;
}
}
}
}
.el-tabs__nav {
margin-left:20px;
}
@@ -0,0 +1,744 @@
<!--事业部历史数据-->
<template>
<div class="historical-data v-class">
<div class="laws-details-header">
<div class="back" title="返回" @click="back">
<i class="el-icon-back"></i>
</div>
<div class="title">历史数据</div>
</div>
<div class="search-area">
<div class="left">
<el-form :modal="historySearch" :inline="true" class="label-input-form" >
<el-form-item label="编号/名称" class="search-item">
<el-input v-model="historySearch.standId"
placeholder="请输入"
clearable
@keyup.enter="getTableBtn"
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-input v-model="historySearch.productName"
placeholder="请输入"
clearable
@keyup.enter="getTableBtn"
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="historySearch.responseUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
slot="reference"
v-model="historySearch.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItemSearch"
deptSelect
showRMenu
@treeDblClick="(treeId, treeNode) => treeClickSearch(treeId, treeNode)"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
size="mini"
class="common-button-primary"
@click="getTableBtn">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
size="mini"
class="common-button-default"
@click="clearAllSearch">清空</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="content">
<loading :loading="loading">数据获取中</loading>
<el-table
:data="historyList"
tooltip-effect="dark"
style="width: 100%;"
height="100%"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="handleRowChange"
ref="selection"
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standId"
width="180px"
label="标准编号/政策编号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standId }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
width="180px"
label="标准名称/政策名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="itemsNum"
label="产品类型">
</el-table-column>
<el-table-column
prop="itemsName"
label="实施时间">
</el-table-column>
<el-table-column
prop="productLine"
label="实施要求">
</el-table-column>
<el-table-column
prop="productName"
label="问题类型">
</el-table-column>
<el-table-column
prop="responsibleUnit"
width="110"
label="资源符合情况">
</el-table-column>
<el-table-column
prop="dutyEngineer"
width="150px"
label="开发计划">
</el-table-column>
<el-table-column
prop="actualCloseTime"
width="150px"
sortable
label="要求关闭时间">
<template slot-scope="scope">{{(scope.row.actualCloseTime ? scope.row.actualCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column
prop="authEngineer"
width="150px"
label="计划完成情况">
</el-table-column>
<el-table-column
prop="qaEngineer"
width="320px"
label="SOP时间超过法规时间的空档期的业务应对方案">
</el-table-column>
<el-table-column
prop="responsibleUnit"
label="责任部门">
</el-table-column>
<el-table-column
prop="responsibleUnit"
width="100"
label="责任工程师">
</el-table-column>
<el-table-column
prop="responsibleUnit"
width="120"
label="时间完成情况">
</el-table-column>
<el-table-column
prop="actualCloseTime"
width="150px"
sortable
label="实际完成时间">
<template slot-scope="scope">{{(scope.row.actualCloseTime ? scope.row.actualCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
<pagination :page="pageNo" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<el-drawer
title='查看'
:visible.sync="historySee"
destroy-on-close
:wrapperClosable="false"
class="seeHisToryDraw"
size="1000px"
>
<div class="demo-drawer-content">
<div class="el-drawer-form" style="height: auto">
<el-form
class="label-input-form"
label-width="150px"
ref="nonAddForm"
style="width: 100%;"
:model="historySeeForm"
>
<el-form-item class="add-form-item" label="标准编号:">
<div class="seeItem">{{historySeeForm.standId}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="标准名称:">
<div class="seeItem">{{historySeeForm.standName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款号:">
<div class="seeItem">{{historySeeForm.itemsNum}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款名称:">
<div class="seeItem">{{historySeeForm.itemsName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="产品线:">
<div class="seeItem">{{historySeeForm.productLine}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="项目名称:">
<div class="seeItem">{{historySeeForm.productName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任部门:">
<div class="seeItem">{{historySeeForm.responsibleUnit}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任工程师:">
<div class="seeItem">{{historySeeForm.dutyEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="认证工程师:">
<div class="seeItem">{{historySeeForm.authEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="质量工程师:">
<div class="seeItem">{{historySeeForm.qaEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="要求关闭时间:">
<div class="seeItem">{{historySeeForm.actualCloseTime}}</div>
</el-form-item>
</el-form>
</div>
<div class="typebox" v-if="historySeeForm.inconItemEOList != null && historySeeForm.inconItemEOList.length > 0">
<el-divider content-position="left">不符合项</el-divider>
<div class="typeitem" v-for="(item, index) in historySeeForm.inconItemEOList" :key="index">
<div class="typeitems">
<div class="itemsLeft">条款号:</div>
<div class="itemsRight">{{item.itemNum}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">目前状态:</div>
<!-- <div class="itemsRight" v-if="item.itemState == '2'">符合</div>-->
<div class="itemsRight">不符合</div>
</div>
<div class="typeitems">
<div class="itemsLeft">设计完成时间:</div>
<div class="itemsRight">{{(item.stepFirTime ? item.stepFirTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<!-- <div class="itemsRight">{{item.supportFile}}</div>-->
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.supportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.remark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证完成时间:</div>
<div class="itemsRight">{{(item.stepSecTime ? item.stepSecTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.secSupportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.secRemark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">整改完成时间:</div>
<div class="itemsRight">{{(item.stepThiTime ? item.stepThiTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.thrSupportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.thrRemark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
</div>
</div>
</div>
<div class="typebox" v-if="historySeeForm.besureItemEOList != null && historySeeForm.besureItemEOList.length > 0">
<el-divider content-position="left">待验证项</el-divider>
<div class="typeitem" v-for="(item, index) in historySeeForm.besureItemEOList" :key="index">
<div class="typeitems">
<div class="itemsLeft">条款号:</div>
<div class="itemsRight">{{item.itemNum}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证时间:</div>
<div class="itemsRight">{{(item.validTime ? item.validTime.substring(0, 11): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证结果:</div>
<div class="itemsRight">待验证</div>
</div>
</div>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
export default {
name: 'BusinessDetails',
components: {},
data () {
return {
loading: false,
// 搜索条件字段
historySearch: {
standId: '', // 标准号/名称
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
zNodesSItem: [],
// table列表数据
historyList: [],
// 总数
total: 0,
// 当前页数
pageNo: 1,
// 单页数量
pageSize: this.$store.getters.userInfo.configContent,
// 历史数据查看
historySee: false,
historySeeForm: {},
optionList: [
{
label: '不满足',
value: '1'
},
{
label: '待验证',
value: '2'
}
]
}
},
methods: {
openFileInPdf (attId, oldFileName) {
// 缺少文件
if (this.$hasPermission('ZWBGBNTL11')) {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
} else {
this.$message.error('没有在线预览文档权限!')
}
},
downloadFile (attId) {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
},
downloadFileByWater (attId, fileSuffix) {
if (fileSuffix !== 'pdf' && fileSuffix !== 'PDF') {
this.$message.error('水印下载仅支持PDF,pdf格式文件')
} else {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSarWaterMark?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
}
},
typeColor (row, type) {
this.$confirm('确定修改此标准分级?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
var color = ''
if (type === 1) {
if (row.color === '#f00') {
color = '#ff0'
} else {
color = '#f00'
}
} else {
color = '#f00'
}
this.$http.postData('lawss/sarInconformInfo/updateInconformInfo',
{
id: row.id,
color: color
}, {
_this: this
}, res => {
if (res.ok) {
this.getTableBtn()
} else {
this.$message({
type: 'error',
message: '修改失败!'
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消修改'
})
})
},
detailsStandard (item) {
this.$http.post('lawss/sarTestItem/validateStandNumber', {
standnumber: item.standNum
}, {
_this: this
}, res => {
this.pageType = res.data.standType
let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id: res.data.standid,
pageType: this.pageType
}
})
window.open(routeUrl.href, '_blank')
}, e => {
})
},
getOrgTreeSource () {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
// this.searchInlandNodes = treeNode
}
}, e => {})
},
// 更多
handleCommand (command) {
switch (command[1]) {
case '查看':
this.showUser(command[0])
break
}
},
// 查看方法
showUser (row) {
this.historySeeForm = JSON.parse(JSON.stringify(row))
this.historySee = true
this.$nextTick(() => {
const arr = []
let questionType = []
questionType = this.historySeeForm.quesType.split(',')
questionType.map((item) => {
this.optionList.map((opr) => {
if (item === opr.value) {
item = opr.label
arr.push(item)
}
})
})
this.historySeeForm.quesType = arr.toString()
})
},
// 分页事件
pageChange (page) {
this.pageNo = page
this.getTableBtn()
},
pageSizeChange (pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent
this.getTableBtn()
},
back () {
this.$router.push({
name: 'NonConfomity'
})
},
// 未符合项table selected事件
handleRowChange (selection) {
//
},
// 分页查询未符合项数据
getTableBtn () {
this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
...this.historySearch,
current: this.pageNo,
size: this.pageSize,
},{
_this: this
}, res => {
console.log(res);
this.historyList = res.data.records
this.total = res.data.total
}, e => {
console.log(e);
})
},
// getTableBtn () {
// this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
// ...this.historySearch,
// current: this.pageNo,
// size: this.pageSize,
// }, {
// _this: this,
// loading: 'loading'
// }, res => {
// console.log(res);
// if (res.ok) {
// this.historyList = res.data.records
// this.total = res.data.count
// } else {}
// }, e => {
// })
// },
treeClickSearch (treeId, treeNode) {
this.historySearch.responseUnit = treeNode.id
this.historySearch.responseUnitShow = treeNode.name
},
// 点击清空按钮事件
clearAllSearch () {
this.historySearch = {
standNumOrName: '',
quesType: '',
productName: '',
responseUnit: ''
}
this.getTableBtn()
},
/**
* @Description: 跳转流程
*/
processCenterClick (item) {
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
prcNum: item
}
})
window.open(routeUrl.href, '_blank')
}
},
mounted () {
this.getTableBtn()
this.getOrgTreeSource()
}
}
</script>
<style lang="less" scoped>
.historical-data{
height: 100%;
.laws-details-header {
background: #fff;
// height: 30px;
line-height: 50px;
padding: 0 10px;
//margin-bottom: 5px;
.back {
display: inline-block;
margin-right: 10px;
}
.title {
display: inline-block;
font-weight: bold;
font-size: 18px;
flex: 1;
padding: 0 15px;
text-align: center;
}
}
.content{
height: calc(~'100% - 56px - 107px');
.iconClass{
width: 18px;
height: 18px;
}
}
.typebox {
.typeitem {
border: 1px solid #f4f4f4;
padding: 10px 10px 0;
margin: 10px 0;
display: flex;
flex-wrap: wrap;
.typeitems {
margin-bottom: 10px;
display: flex;
line-height: 30px;
width: 100%;
.itemsLeft {
min-width: 140px;
margin-right: 10px;
text-align: right;
}
.itemsRight {
/*width: 150px;*/
flex-wrap: wrap;
display: flex;
.files-title{
margin-right: 10px;
}
a{
cursor: pointer;
color: #409EFF;
}
a:hover{
text-decoration: underline;
color: #409EFF;
}
i{
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download{
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2{
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
}
}
}
.seeHisToryDraw{
/deep/.el-form-item__content{
line-height: 50px;
}
}
}
.add-form-item{
width: 100%;
}
</style>
@@ -78,104 +78,109 @@
size="mini"
><i class="iconfont">&#xe61b;</i>批量关闭</el-button>
<el-button
class="common-button-primary btnright"
class="common-button-primary"
size="mini"
type="primary"
@click="historyClick"
style="float: right; margin-right: 10px"
>历史数据</el-button>
</div>
<div class="container">
<loading :loading="loading">数据获取中....</loading>
<el-table
:data="causeList"
tooltip-effect="dark"
style="width: 100%;"
height="tableHeight"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
<div class="table-wrap">
<div class="inner-wrap">
<el-table
:data="causeList"
tooltip-effect="dark"
style="width: 100%;"
height="100%"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standNum"
fixed="left"
width="180"
label="标准编号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standNum }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
fixed="left"
width="180"
label="标准名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="productNameShow"
width="180"
label="产品线">
</el-table-column>
<el-table-column
prop="productNameShow"
width="180"
label="项目名称">
</el-table-column>
<el-table-column
prop="productNameShow"
width="180"
label="当前节点">
</el-table-column>
<el-table-column
prop="responseUnitShow"
width="180"
label="责任部门">
</el-table-column>
<el-table-column
prop="responseEnginShow"
width="150"
label="责任工程师">
</el-table-column>
<el-table-column
prop="responseEnginShow"
width="150"
label="认证工程师">
</el-table-column>
<el-table-column
prop="responseEnginShow"
width="150"
label="质量工程师">
</el-table-column>
<el-table-column
prop="planCloseTime"
width="150"
sortable="custom"
label="要求关闭时间">
<template slot-scope="scope">{{(scope.row.planCloseTime ? scope.row.planCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'R4FTCUQSXFUZPUSN3W63'">查看</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'G7GL8ZAZ5EYK6LRXW5MT'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '关闭']" v-btn-permission="'Q8GPXE8L36KN2XVMZ6Y4'">关闭</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standNum"
fixed="left"
width="180"
label="标准编号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standNum }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
fixed="left"
width="180"
label="标准名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="productNameShow"
width="180"
label="产品线">
</el-table-column>
<el-table-column
prop="productNameShow"
width="180"
label="项目名称">
</el-table-column>
<el-table-column
prop="productNameShow"
width="180"
label="当前节点">
</el-table-column>
<el-table-column
prop="responseUnitShow"
width="180"
label="责任部门">
</el-table-column>
<el-table-column
prop="responseEnginShow"
width="150"
label="责任工程师">
</el-table-column>
<el-table-column
prop="responseEnginShow"
width="150"
label="认证工程师">
</el-table-column>
<el-table-column
prop="responseEnginShow"
width="150"
label="质量工程师">
</el-table-column>
<el-table-column
prop="planCloseTime"
width="150"
sortable="custom"
label="要求关闭时间">
<template slot-scope="scope">{{(scope.row.planCloseTime ? scope.row.planCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'R4FTCUQSXFUZPUSN3W63'">查看</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'G7GL8ZAZ5EYK6LRXW5MT'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '关闭']" v-btn-permission="'Q8GPXE8L36KN2XVMZ6Y4'">关闭</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="footer">
<pagination :page="pageNo" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
</div>
@@ -212,7 +217,7 @@ export default {
//点击历史数据按钮事件
historyClick (){
this.$router.push({
name:'HistoricalData'
name:'BusinessDetails'
})
},
// 清空 查询条件
@@ -264,15 +269,38 @@ export default {
<style lang="less" scoped>
#business-division {
height: 100%;
display: flex;
flex-direction: column;
.content-center {
margin-bottom:10px
margin-left: 10px;
margin-bottom: 10px;
}
.btnright {
float: right;
margin-right:10px;
}
.footer {
margin-bottom: 390px;
.container {
flex: 1;
overflow: hidden;
display: flex;
flex-direction: column;
.table-wrap {
flex: 1;
overflow: hidden;
position: relative;
.inner-wrap {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.footer {
/deep/ .pagination {
position: static;
}
}
}
}
</style>
@@ -11,25 +11,18 @@
<div class="left">
<el-form :modal="historySearch" :inline="true" class="label-input-form" >
<el-form-item label="标准号/标准名称" class="search-item">
<el-input v-model="historySearch.standNumOrName"
<el-input v-model="historySearch.standId"
placeholder="请输入"
clearable
@keyup.enter="getTableBtn"
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="问题类型" class="search-item">
<el-select v-model="historySearch.quesType">
<el-option value="1" label="不满足"></el-option>
<el-option value="2" label="待验证"></el-option>
</el-select>
</el-form-item>
<el-form-item label="相关项目" class="search-item">
<el-select v-model="historySearch.productName">
<el-option v-for="item1 in productNameList"
:key="item1.value"
:label="item1.label"
:value="item1.value"></el-option>
</el-select>
<el-form-item label="项目名称" class="search-item">
<el-input v-model="historySearch.productName"
placeholder="请输入"
clearable
@keyup.enter="getTableBtn"
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="historySearch.responseUnit" v-show="false" />
@@ -61,19 +54,18 @@
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
icon="el-icon-search"
type="primary"
size="mini"
class="common-button-primary"
round
@click="getTableBtn">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
size="mini"
class="common-button-default"
icon="el-icon-refresh-left"
round
@click="clearAllSearch"></el-button>
@click="clearAllSearch">清空</el-button>
</el-form-item>
</el-form>
</div>
@@ -98,84 +90,63 @@
align="center">
</el-table-column>
<el-table-column
prop="standNum"
fixed="left"
prop="standId"
width="180px"
label="标准号/政策号">
label="标准号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standNum }}</a>
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standId }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
fixed="left"
width="180px"
label="标准名称/政策名称">
label="标准名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="requestType"-->
<!-- label="要求类型">-->
<!-- </el-table-column>-->
<el-table-column
prop="quesType"
label="问题类型">
<template slot-scope="scope">
<div v-if="scope.row.quesType === '1'">不满足</div>
<div v-if="scope.row.quesType === '2'">待验证</div>
<div v-if="scope.row.quesType === '1,2' || scope.row.quesType === '2,1'">不满足,待验证</div>
</template>
</el-table-column>
<!-- <el-table-column-->
<!-- prop="sarState"-->
<!-- align="center"-->
<!-- label="合规性分级">-->
<!-- <template slot-scope="scope">-->
<!-- <div v-if="!scope.row.quesType">-->
<!-- <img class="iconClass" src="../../../../assets/images/ComplianceClassification/white.png">-->
<!-- </div>-->
<!-- <div v-else-if="scope.row.color === '#f00'">-->
<!-- <img class="iconClass" @click="typeColor(scope.row, 1)" src="../../../../assets/images/ComplianceClassification/red.png" >-->
<!-- </div>-->
<!-- <div v-else-if="scope.row.color === '#ff0'">-->
<!-- <img class="iconClass" @click="typeColor(scope.row, 1)" src="../../../../assets/images/ComplianceClassification/yellow.png" >-->
<!-- </div>-->
<!-- <div v-else>-->
<!-- <img class="iconClass" src="../../../../assets/images/ComplianceClassification/green.png" >-->
<!-- </div>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column
prop="productNameShow"
label="相关项目">
prop="itemsNum"
label="条款号">
</el-table-column>
<el-table-column
prop="responseUnitShow"
prop="itemsName"
label="条款名称">
</el-table-column>
<el-table-column
prop="productLine"
label="产品线">
</el-table-column>
<el-table-column
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
prop="responsibleUnit"
label="责任部门">
</el-table-column>
<el-table-column
prop="responseEnginShow"
prop="dutyEngineer"
width="150px"
label="责任工程师">
</el-table-column>
<el-table-column
prop="realCloseTime"
prop="authEngineer"
width="150px"
label="认证工程师">
</el-table-column>
<el-table-column
prop="qaEngineer"
width="150px"
label="质量工程师">
</el-table-column>
<el-table-column
prop="actualCloseTime"
width="150px"
sortable
label="实际关闭时间">
<template slot-scope="scope">{{(scope.row.realCloseTime ? scope.row.realCloseTime.substring(0, 11): '')}}</template>
<template slot-scope="scope">{{(scope.row.actualCloseTime ? scope.row.actualCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column
prop="closeType"
width="150px"
label="关闭类型">
<template slot-scope="scope">
<div v-if="scope.row.closeType === '1'">强制关闭</div>
<div v-if="scope.row.closeType === '2'">流程关闭</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
@@ -208,42 +179,38 @@
style="width: 100%;"
:model="historySeeForm"
>
<el-form-item class="add-form-item" label="标准号/政策号:">
<div class="seeItem">{{historySeeForm.standNum}}</div>
<el-form-item class="add-form-item" label="标准号:">
<div class="seeItem">{{historySeeForm.standId}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="标准名称/政策名称:">
<el-form-item class="add-form-item" label="标准名称:">
<div class="seeItem">{{historySeeForm.standName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="问题类型:">
<div class="seeItem">{{historySeeForm.quesType}}</div>
<el-form-item class="add-form-item" label="条款号:">
<div class="seeItem">{{historySeeForm.itemsNum}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="相关项目:">
<div class="seeItem">{{historySeeForm.productNameShow}}</div>
<el-form-item class="add-form-item" label="条款名称:">
<div class="seeItem">{{historySeeForm.itemsName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="不符合项数目:">
<div class="seeItem">{{historySeeForm.inconNum}}</div>
<el-form-item class="add-form-item" label="产品线:">
<div class="seeItem">{{historySeeForm.productLine}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="实际关闭时间:">
<div class="seeItem">{{(historySeeForm.realCloseTime ? historySeeForm.realCloseTime.substring(0, 11): '')}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="相关流程:">
<div class="seeItem table-jump" @click="processCenterClick(historySeeForm.relateAct)">{{historySeeForm.relateAct}}</div>
<el-form-item class="add-form-item" label="项目名称:">
<div class="seeItem">{{historySeeForm.productName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任部门:">
<div class="seeItem">{{historySeeForm.responseUnitShow}}</div>
<div class="seeItem">{{historySeeForm.responsibleUnit}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任工程师:">
<div class="seeItem">{{historySeeForm.responseEnginShow}}</div>
<div class="seeItem">{{historySeeForm.dutyEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="关闭理由:">
<div class="seeItem">{{historySeeForm.closeReason}}</div>
<el-form-item class="add-form-item" label="认证工程师:">
<div class="seeItem">{{historySeeForm.authEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="关闭类型:">
<div v-if="historySeeForm.closeType">
<div class="seeItem" v-if="historySeeForm.closeType === '1'">强制关闭</div>
<div class="seeItem" v-if="historySeeForm.closeType === '2'">流程关闭</div>
</div>
<div class="seeItem" v-else>{{historySeeForm.closeType}}</div>
<el-form-item class="add-form-item" label="质量工程师:">
<div class="seeItem">{{historySeeForm.qaEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="要求关闭时间:">
<div class="seeItem">{{historySeeForm.actualCloseTime}}</div>
</el-form-item>
</el-form>
</div>
@@ -380,11 +347,9 @@ export default {
loading: false,
// 搜索条件字段
historySearch: {
standNumOrName: '',
quesType: '',
productName: '',
responseUnitShow: '',
responseUnit: ''
standId: '', // 标准号/名称
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
zNodesSItem: [],
// table列表数据
@@ -398,7 +363,6 @@ export default {
// 历史数据查看
historySee: false,
historySeeForm: {},
productNameList: [],
optionList: [
{
label: '不满足',
@@ -598,40 +562,39 @@ export default {
handleRowChange (selection) {
//
},
// 点击搜索按钮事件
getTableBtn () {
this.$http.get('lawss/sarInconformInfo/getHistoryDatas', {
page: this.pageNo,
pageSize: this.pageSize,
standNumOrName: this.historySearch.standNumOrName,
quesType: this.historySearch.quesType,
productName: this.historySearch.productName,
responseUnit: this.historySearch.responseUnit
}, {
_this: this,
loading: 'loading'
}, res => {
if (res.ok) {
this.historyList = res.data.list
this.total = res.data.count
} else {}
}, e => {
})
},
getSearchInforList () {
this.$http.get('lawss/sarProductInfo/getSelList', {}, {
_this: this, loading: 'loading'
}, res => {
// const arr2 = []
// for (let key in res.data.projectValue) {
// const obj = {}
// obj.label = key
// obj.value = res.data.projectValue[key]
// arr2.push(obj)
// }
this.productNameList = res.data.projectValue
})
},
// 分页查询未符合项数据
getTableBtn () {
this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
...this.historySearch,
current: this.pageNo,
size: this.pageSize,
},{
_this: this
}, res => {
console.log(res);
this.historyList = res.data.records
this.total = res.data.total
}, e => {
console.log(e);
})
},
// getTableBtn () {
// this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
// ...this.historySearch,
// current: this.pageNo,
// size: this.pageSize,
// }, {
// _this: this,
// loading: 'loading'
// }, res => {
// console.log(res);
// if (res.ok) {
// this.historyList = res.data.records
// this.total = res.data.count
// } else {}
// }, e => {
// })
// },
treeClickSearch (treeId, treeNode) {
this.historySearch.responseUnit = treeNode.id
this.historySearch.responseUnitShow = treeNode.name
@@ -662,7 +625,6 @@ export default {
mounted () {
this.getTableBtn()
this.getOrgTreeSource()
this.getSearchInforList()
}
}
</script>
@@ -39,6 +39,26 @@ export default {
<style lang="less" scoped>
#key-issues {
height: 100%;
display: flex;
flex-direction: column;
background-color: #FFFFFF;
.non-content {
height: 100%;
/deep/ .el-tabs {
display: flex;
flex-direction: column;
.el-tabs__content {
flex: 1;
overflow: hidden;
.el-tab-pane {
height: 100%;
}
}
}
}
.el-tabs__nav {
margin-left:20px;
}
}
</style>
@@ -78,7 +78,8 @@
size="mini"
><i class="iconfont">&#xe61b;</i>批量关闭</el-button>
<el-button
class="common-button-primary btnright"
class="common-button-primary"
style="float: right; margin-right: 10px;"
size="mini"
type="primary"
@click="historyClick"
@@ -212,7 +213,7 @@ export default {
//点击历史数据按钮事件
historyClick (){
this.$router.push({
name:'HistoricalData'
name:'ProductDetails'
})
},
// 清空 查询条件
@@ -264,15 +265,38 @@ export default {
<style lang="less" scoped>
#product-department {
height: 100%;
display: flex;
flex-direction: column;
.content-center {
margin-bottom:10px
margin-left: 10px;
margin-bottom: 10px;
}
.btnright {
float: right;
margin-right:10px;
}
.footer {
margin-bottom: 390px;
.container {
flex: 1;
overflow: hidden;
display: flex;
flex-direction: column;
.table-wrap {
flex: 1;
overflow: hidden;
position: relative;
.inner-wrap {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.footer {
/deep/ .pagination {
position: static;
}
}
}
}
</style>
@@ -0,0 +1,724 @@
<!--产品规划部历史数据-->
<!-- 标准法规库 - 未符合项跟踪 - 历史数据-->
<template>
<div class="historical-data v-class">
<div class="laws-details-header">
<div class="back" title="返回" @click="back">
<i class="el-icon-back"></i>
</div>
<div class="title">历史数据</div>
</div>
<div class="search-area">
<div class="left">
<el-form :modal="historySearch" :inline="true" class="label-input-form" >
<el-form-item label="标准号/标准名称" class="search-item">
<el-input v-model="historySearch.standId"
placeholder="请输入"
clearable
@keyup.enter="getTableBtn"
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-input v-model="historySearch.productName"
placeholder="请输入"
clearable
@keyup.enter="getTableBtn"
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="historySearch.responseUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
slot="reference"
v-model="historySearch.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
/>
<div class="api">
<laws-tree
:zNodes="zNodesSItem"
treeDivId="zNodesSItemSearch"
deptSelect
showRMenu
@treeDblClick="(treeId, treeNode) => treeClickSearch(treeId, treeNode)"
class="ztree" style="width: 200px;height: 400px;overflow: auto">
</laws-tree>
</div>
</el-popover>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
type="primary"
size="mini"
class="common-button-primary"
@click="getTableBtn">
查询
</el-button>
</el-form-item>
<el-form-item class="search-item btn-box">
<el-button
size="mini"
class="common-button-default"
@click="clearAllSearch">清空</el-button>
</el-form-item>
</el-form>
</div>
</div>
<div class="content">
<loading :loading="loading">数据获取中</loading>
<el-table
:data="historyList"
tooltip-effect="dark"
style="width: 100%;"
height="100%"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
@selection-change="handleRowChange"
ref="selection"
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standId"
width="180px"
label="标准编号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standId }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
width="180px"
label="标准名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="itemsNum"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
label="条款名称">
</el-table-column>
<el-table-column
prop="productLine"
label="产品线">
</el-table-column>
<el-table-column
prop="productName"
label="项目名称">
</el-table-column>
<el-table-column
prop="responsibleUnit"
label="责任部门">
</el-table-column>
<el-table-column
prop="dutyEngineer"
width="150px"
label="责任工程师">
</el-table-column>
<el-table-column
prop="authEngineer"
width="150px"
label="认证工程师">
</el-table-column>
<el-table-column
prop="qaEngineer"
width="150px"
label="质量工程师">
</el-table-column>
<el-table-column
prop="actualCloseTime"
width="150px"
sortable
label="实际关闭时间">
<template slot-scope="scope">{{(scope.row.actualCloseTime ? scope.row.actualCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']">查看</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
<pagination :page="pageNo" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<el-drawer
title='查看'
:visible.sync="historySee"
destroy-on-close
:wrapperClosable="false"
class="seeHisToryDraw"
size="1000px"
>
<div class="demo-drawer-content">
<div class="el-drawer-form" style="height: auto">
<el-form
class="label-input-form"
label-width="150px"
ref="nonAddForm"
style="width: 100%;"
:model="historySeeForm"
>
<el-form-item class="add-form-item" label="标准编号:">
<div class="seeItem">{{historySeeForm.standId}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="标准名称:">
<div class="seeItem">{{historySeeForm.standName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款号:">
<div class="seeItem">{{historySeeForm.itemsNum}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款名称:">
<div class="seeItem">{{historySeeForm.itemsName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="产品线:">
<div class="seeItem">{{historySeeForm.productLine}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="项目名称:">
<div class="seeItem">{{historySeeForm.productName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任部门:">
<div class="seeItem">{{historySeeForm.responsibleUnit}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任工程师:">
<div class="seeItem">{{historySeeForm.dutyEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="认证工程师:">
<div class="seeItem">{{historySeeForm.authEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="质量工程师:">
<div class="seeItem">{{historySeeForm.qaEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="要求关闭时间:">
<div class="seeItem">{{historySeeForm.actualCloseTime}}</div>
</el-form-item>
</el-form>
</div>
<div class="typebox" v-if="historySeeForm.inconItemEOList != null && historySeeForm.inconItemEOList.length > 0">
<el-divider content-position="left">不符合项</el-divider>
<div class="typeitem" v-for="(item, index) in historySeeForm.inconItemEOList" :key="index">
<div class="typeitems">
<div class="itemsLeft">条款号:</div>
<div class="itemsRight">{{item.itemNum}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">目前状态:</div>
<!-- <div class="itemsRight" v-if="item.itemState == '2'">符合</div>-->
<div class="itemsRight">不符合</div>
</div>
<div class="typeitems">
<div class="itemsLeft">设计完成时间:</div>
<div class="itemsRight">{{(item.stepFirTime ? item.stepFirTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<!-- <div class="itemsRight">{{item.supportFile}}</div>-->
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.supportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.remark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证完成时间:</div>
<div class="itemsRight">{{(item.stepSecTime ? item.stepSecTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.secSupportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.secRemark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">整改完成时间:</div>
<div class="itemsRight">{{(item.stepThiTime ? item.stepThiTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.thrSupportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.thrRemark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
</div>
</div>
</div>
<div class="typebox" v-if="historySeeForm.besureItemEOList != null && historySeeForm.besureItemEOList.length > 0">
<el-divider content-position="left">待验证项</el-divider>
<div class="typeitem" v-for="(item, index) in historySeeForm.besureItemEOList" :key="index">
<div class="typeitems">
<div class="itemsLeft">条款号:</div>
<div class="itemsRight">{{item.itemNum}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证时间:</div>
<div class="itemsRight">{{(item.validTime ? item.validTime.substring(0, 11): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证结果:</div>
<div class="itemsRight">待验证</div>
</div>
</div>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
export default {
name: 'ProductDetails',
components: {},
data () {
return {
loading: false,
// 搜索条件字段
historySearch: {
standId: '', // 标准号/名称
productName: '', // 项目名称
responsibleUnit: '' // 责任部门
},
zNodesSItem: [],
// table列表数据
historyList: [],
// 总数
total: 0,
// 当前页数
pageNo: 1,
// 单页数量
pageSize: this.$store.getters.userInfo.configContent,
// 历史数据查看
historySee: false,
historySeeForm: {},
optionList: [
{
label: '不满足',
value: '1'
},
{
label: '待验证',
value: '2'
}
]
}
},
methods: {
openFileInPdf (attId, oldFileName) {
// 缺少文件
if (this.$hasPermission('ZWBGBNTL11')) {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
attId: attId
}, {
_this: this
}, res => {
if (res.data) {
let fileObj = {}
fileObj.fileId = res.data.attId
fileObj.fileName = oldFileName
let fileList = []
let repeatData = 0
if (sessionStorage.getItem('fileInfo')) {
fileList = JSON.parse(sessionStorage.getItem('fileInfo'))
if (fileList != null && fileList.length > 0) {
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].fileId === res.data.attId) {
repeatData = 1
break
}
}
if (repeatData === 0) {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
}
} else {
fileList.push(fileObj)
fileList = JSON.stringify(fileList)
sessionStorage.setItem('fileInfo', fileList)
}
window.open('/static/pdf/web/viewer.html?file=' + encodeURIComponent('/api/att/attFile/getFileInfo?fileId=' + res.data.attId))
} else {
this.$message.error('文档未转换成功或本地读取不到该文档')
}
}, e => {
this.$message.error('文档未转换成功或本地读取不到该文档')
})
} else {
this.$message.error('没有在线预览文档权限!')
}
},
downloadFile (attId) {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
},
downloadFileByWater (attId, fileSuffix) {
if (fileSuffix !== 'pdf' && fileSuffix !== 'PDF') {
this.$message.error('水印下载仅支持PDF,pdf格式文件')
} else {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSarWaterMark?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
}
},
typeColor (row, type) {
this.$confirm('确定修改此标准分级?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
var color = ''
if (type === 1) {
if (row.color === '#f00') {
color = '#ff0'
} else {
color = '#f00'
}
} else {
color = '#f00'
}
this.$http.postData('lawss/sarInconformInfo/updateInconformInfo',
{
id: row.id,
color: color
}, {
_this: this
}, res => {
if (res.ok) {
this.getTableBtn()
} else {
this.$message({
type: 'error',
message: '修改失败!'
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消修改'
})
})
},
detailsStandard (item) {
this.$http.post('lawss/sarTestItem/validateStandNumber', {
standnumber: item.standNum
}, {
_this: this
}, res => {
this.pageType = res.data.standType
let routeUrl = this.$router.resolve({
name: 'OtherStandardDetails',
params: {
id: res.data.standid,
pageType: this.pageType
}
})
window.open(routeUrl.href, '_blank')
}, e => {
})
},
getOrgTreeSource () {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
// this.searchInlandNodes = treeNode
}
}, e => {})
},
// 更多
handleCommand (command) {
switch (command[1]) {
case '查看':
this.showUser(command[0])
break
}
},
// 查看方法
showUser (row) {
this.historySeeForm = JSON.parse(JSON.stringify(row))
this.historySee = true
this.$nextTick(() => {
const arr = []
let questionType = []
questionType = this.historySeeForm.quesType.split(',')
questionType.map((item) => {
this.optionList.map((opr) => {
if (item === opr.value) {
item = opr.label
arr.push(item)
}
})
})
this.historySeeForm.quesType = arr.toString()
})
},
// 分页事件
pageChange (page) {
this.pageNo = page
this.getTableBtn()
},
pageSizeChange (pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent
this.getTableBtn()
},
back () {
this.$router.push({
name: 'NonConfomity'
})
},
// 未符合项table selected事件
handleRowChange (selection) {
//
},
// 分页查询未符合项数据
getTableBtn () {
this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
...this.historySearch,
current: this.pageNo,
size: this.pageSize,
},{
_this: this
}, res => {
console.log(res);
this.historyList = res.data.records
this.total = res.data.total
}, e => {
console.log(e);
})
},
// getTableBtn () {
// this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
// ...this.historySearch,
// current: this.pageNo,
// size: this.pageSize,
// }, {
// _this: this,
// loading: 'loading'
// }, res => {
// console.log(res);
// if (res.ok) {
// this.historyList = res.data.records
// this.total = res.data.count
// } else {}
// }, e => {
// })
// },
treeClickSearch (treeId, treeNode) {
this.historySearch.responseUnit = treeNode.id
this.historySearch.responseUnitShow = treeNode.name
},
// 点击清空按钮事件
clearAllSearch () {
this.historySearch = {
standNumOrName: '',
quesType: '',
productName: '',
responseUnit: ''
}
this.getTableBtn()
},
/**
* @Description: 跳转流程
*/
processCenterClick (item) {
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
prcNum: item
}
})
window.open(routeUrl.href, '_blank')
}
},
mounted () {
this.getTableBtn()
this.getOrgTreeSource()
}
}
</script>
<style lang="less" scoped>
.historical-data{
height: 100%;
.laws-details-header {
background: #fff;
// height: 30px;
line-height: 50px;
padding: 0 10px;
//margin-bottom: 5px;
.back {
display: inline-block;
margin-right: 10px;
}
.title {
display: inline-block;
font-weight: bold;
font-size: 18px;
flex: 1;
padding: 0 15px;
text-align: center;
}
}
.content{
height: calc(~'100% - 56px - 107px');
.iconClass{
width: 18px;
height: 18px;
}
}
.typebox {
.typeitem {
border: 1px solid #f4f4f4;
padding: 10px 10px 0;
margin: 10px 0;
display: flex;
flex-wrap: wrap;
.typeitems {
margin-bottom: 10px;
display: flex;
line-height: 30px;
width: 100%;
.itemsLeft {
min-width: 140px;
margin-right: 10px;
text-align: right;
}
.itemsRight {
/*width: 150px;*/
flex-wrap: wrap;
display: flex;
.files-title{
margin-right: 10px;
}
a{
cursor: pointer;
color: #409EFF;
}
a:hover{
text-decoration: underline;
color: #409EFF;
}
i{
display: inline-block;
margin-left: 3px;
width: 18px;
height: 16px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center center;
vertical-align: sub;
cursor: pointer;
}
.icon-download{
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2{
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
}
}
}
.seeHisToryDraw{
/deep/.el-form-item__content{
line-height: 50px;
}
}
}
.add-form-item{
width: 100%;
}
</style>
@@ -5,21 +5,19 @@
<div class="content-top">
<el-form :modal="nonConformitySearch" inline class="label-input-form">
<el-form-item label="标准号/标准名称" class="search-item">
<el-input v-model="nonConformitySearch.standNumOrName"
<el-input v-model="nonConformitySearch.standId"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="项目名称" class="search-item">
<el-select filterable clearable v-model="nonConformitySearch.productName">
<el-option v-for="item1 in productNameList"
:key="item1.value"
:label="item1.label"
:value="item1.value"></el-option>
</el-select>
<el-input v-model="nonConformitySearch.productName"
placeholder="请输入"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="nonConformitySearch.responseUnit" v-show="false" />
<el-input v-model="nonConformitySearch.responsibleUnit" v-show="false" />
<el-popover
placement="bottom"
popper-class="user-dept-popper"
@@ -85,112 +83,292 @@
size="mini"
type="primary"
@click="historyClick"
style="float: right; margin-right: 10px;"
>历史数据</el-button>
</div>
<div class="container">
<loading :loading="loading">数据获取中....</loading>
<el-table
:data="nonList"
tooltip-effect="dark"
style="width: 100%;"
height="500px"
border
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
<div class="table-wrap">
<div class="inner-wrap">
<el-table
:data="nonList"
tooltip-effect="dark"
height="100%"
border
class="table"
v-loading="myLoading.loadData"
@selection-change="standSelectChange"
:header-cell-style="{background: '#e8e8e8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}"
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standId"
fixed="left"
width="180"
label="标准编号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standNum }}</a>
</template>
</el-table-column>
<el-table-column
prop="standName"
fixed="left"
width="180"
label="标准名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="itemsNum"
width="180"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="180"
label="条款名称">
</el-table-column>
<el-table-column
prop="productType"
width="180"
label="产品类型">
</el-table-column>
<el-table-column
prop="productLine"
width="180"
label="产品线">
</el-table-column>
<el-table-column
prop="productName"
width="180"
label="项目名称">
</el-table-column>
<el-table-column
prop="responsibleUnit"
width="180"
label="责任部门">
</el-table-column>
<el-table-column
prop="dutyEngineer"
width="150"
label="责任工程师">
</el-table-column>
<el-table-column
prop="authEngineer"
width="150"
label="认证工程师">
</el-table-column>
<el-table-column
prop="qaEngineer"
width="150"
label="质量工程师">
</el-table-column>
<el-table-column
prop="planCloseTime"
width="150"
sortable="custom"
label="计划关闭时间">
<template slot-scope="scope">{{(scope.row.planCloseTime ? scope.row.planCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'R4FTCUQSXFUZPUSN3W63'">查看</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'G7GL8ZAZ5EYK6LRXW5MT'">编辑</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '关闭']" v-btn-permission="'Q8GPXE8L36KN2XVMZ6Y4'">关闭</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standId"
fixed="left"
width="180"
label="标准编号">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standId }}</a>
<!-- {{ scope.row.standId }}-->
</template>
</el-table-column>
<el-table-column
prop="standName"
fixed="left"
width="180"
label="标准名称">
<template slot-scope="scope">
<a @click="detailsStandard(scope.row)" class="table-jump">{{ scope.row.standName }}</a>
</template>
</el-table-column>
<el-table-column
prop="itemsNum"
width="180"
label="条款号">
</el-table-column>
<el-table-column
prop="itemsName"
width="180"
label="条款名称">
</el-table-column>
<el-table-column
prop="productType"
width="180"
label="产品类型">
</el-table-column>
<el-table-column
prop="productLine"
width="180"
label="产品线">
</el-table-column>
<el-table-column
prop="productName"
width="180"
label="项目名称">
</el-table-column>
<el-table-column
prop="responsibleUnit"
width="180"
label="责任部门">
</el-table-column>
<el-table-column
prop="dutyEngineer"
width="150"
label="责任工程师">
</el-table-column>
<el-table-column
prop="authEngineer"
width="150"
label="认证工程师">
</el-table-column>
<el-table-column
prop="qaEngineer"
width="150"
label="质量工程师">
</el-table-column>
<el-table-column
prop="planCloseTime"
width="150"
sortable="custom"
label="计划关闭时间">
<template slot-scope="scope">{{(scope.row.planCloseTime ? scope.row.planCloseTime.substring(0, 11): '')}}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="50" fixed="right">
<template slot-scope="scope">
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, '查看']" v-btn-permission="'R4FTCUQSXFUZPUSN3W63'">查看</el-dropdown-item>
<el-dropdown-item :command="[scope.row, '编辑']" v-btn-permission="'G7GL8ZAZ5EYK6LRXW5MT'">编辑</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="footer">
<pagination :page="pageNo" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<el-drawer
title='查看'
:visible.sync="historySee"
destroy-on-close
:wrapperClosable="false"
class="seeHisToryDraw"
size="1000px"
>
<div class="demo-drawer-content">
<div class="el-drawer-form" style="height: auto">
<el-form
class="label-input-form"
label-width="150px"
ref="nonAddForm"
style="width: 100%;"
:model="historySeeForm"
>
<el-form-item class="add-form-item" label="标准编号:">
<div class="seeItem">{{historySeeForm.standId}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="标准名称:">
<div class="seeItem">{{historySeeForm.standName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款号:">
<div class="seeItem">{{historySeeForm.itemsNum}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款名称:">
<div class="seeItem">{{historySeeForm.itemsName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="产品线:">
<div class="seeItem">{{historySeeForm.productLine}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="项目名称:">
<div class="seeItem">{{historySeeForm.productName}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任部门:">
<div class="seeItem">{{historySeeForm.responsibleUnit}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任工程师:">
<div class="seeItem">{{historySeeForm.dutyEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="认证工程师:">
<div class="seeItem">{{historySeeForm.authEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="质量工程师:">
<div class="seeItem">{{historySeeForm.qaEngineer}}</div>
</el-form-item>
<el-form-item class="add-form-item" label="要求关闭时间:">
<div class="seeItem">{{historySeeForm.actualCloseTime}}</div>
</el-form-item>
</el-form>
</div>
<div class="typebox" v-if="historySeeForm.inconItemEOList != null && historySeeForm.inconItemEOList.length > 0">
<el-divider content-position="left">不符合项</el-divider>
<div class="typeitem" v-for="(item, index) in historySeeForm.inconItemEOList" :key="index">
<div class="typeitems">
<div class="itemsLeft">条款号:</div>
<div class="itemsRight">{{item.itemNum}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">目前状态:</div>
<!-- <div class="itemsRight" v-if="item.itemState == '2'">符合</div>-->
<div class="itemsRight">不符合</div>
</div>
<div class="typeitems">
<div class="itemsLeft">设计完成时间:</div>
<div class="itemsRight">{{(item.stepFirTime ? item.stepFirTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<!-- <div class="itemsRight">{{item.supportFile}}</div>-->
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.supportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.remark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证完成时间:</div>
<div class="itemsRight">{{(item.stepSecTime ? item.stepSecTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.secSupportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.secRemark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">整改完成时间:</div>
<div class="itemsRight">{{(item.stepThiTime ? item.stepThiTime.substring(0, 10): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">佐证材料:</div>
<div class="itemsRight">
<p
class="files-title"
v-for="(file, fileIndex) in item.thrSupportFileList"
:key="fileIndex"
>
<span>{{ file.oldFileName }}</span>
<i title="下载" @click="downloadFile(file.id)" class="icon-download" />
</p>
</div>
</div>
<div class="typeitems">
<div class="itemsLeft">备注信息:</div>
<div class="itemsRight">{{item.thrRemark}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
</div>
</div>
</div>
<div class="typebox" v-if="historySeeForm.besureItemEOList != null && historySeeForm.besureItemEOList.length > 0">
<el-divider content-position="left">待验证项</el-divider>
<div class="typeitem" v-for="(item, index) in historySeeForm.besureItemEOList" :key="index">
<div class="typeitems">
<div class="itemsLeft">条款号:</div>
<div class="itemsRight">{{item.itemNum}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证时间:</div>
<div class="itemsRight">{{(item.validTime ? item.validTime.substring(0, 11): '')}}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证结果:</div>
<div class="itemsRight">待验证</div>
</div>
</div>
</div>
</div>
</el-drawer>
</div>
</div>
<el-dialog :visible.sync="exportModelFlag" title="导出文件" width="300px">
@@ -208,6 +386,8 @@
</template>
<script>
import { interfaceUrl } from "@/sysConfig";
export default {
name: "rectificationDatabase",
data () {
@@ -215,31 +395,45 @@ export default {
loading: false,
nonList:[], //未符合项表格数据
exportModelFlag: false, //导出模态窗
tableHeight: null, //表格高度
exportName: '',
selectedList: [], //标准选中的数据
saveExportType: '',// 导出文件模态框控制,和文件名称
// 总数
total: 0,
// 当前页数
pageNo: 1,
nonConformitySearch: {
standNumOrName: '', // 标准号/名称
standId: '', // 标准号/名称
productName: '', // 项目名称
responseUnit: '' // 责任部门
responsibleUnit: '' // 责任部门
},
// 项目名称下拉列表数据
productNameList: [],
// 责任部门
zNodesSItem: [],
myLoading: {
loadData: false
},
//数据查看
historySee: false,
historySeeForm: {},
}
},
methods: {
// 查询未符合项table列表
getTableByPage () {
this.$http.get('sarStandUnqualified/sar-stand-unqualified', {}, {
this.myLoading.loadData = true
this.$http.get('sarStandUnqualified/sar-stand-unqualified', {
...this.nonConformitySearch,
current: this.pageNo,
size: this.$store.getters.userInfo.configContent
}, {
_this: this
}, res => {
this.nonList = res.data.records
console.log(this.nonList);
this.myLoading.loadData = false
this.nonList = res.data.records
this.total = res.data.total
}, e => {
this.myLoading.loadData = false
})
},
// 点击历史记录按钮事件
@@ -250,7 +444,14 @@ export default {
},
//导出
exportStandard () {
if(this.selectedList.length > 0) {
this.saveExportType = 'apart'
} else {
this.saveExportType = 'all'
}
this.exportName = ''
this.exportModelFlag = true
console.log(this.saveExportType);
},
//取消导出
cancal () {
@@ -258,24 +459,64 @@ export default {
},
//确认导出
exportTestItem () {
if(this.saveExportType === 'apart') {
if (this.selectedList != null && this.selectedList != ''){
const exportURL = interfaceUrl + 'sarStandUnqualified/sar-stand-unqualified/exportStandUnqulifiedExcel?' +
'exportType' + this.saveExportType + '&exportContent=' + this.selectedList.join(',') + '&exportName=' + this.exportName
window.open(exportURL)
this.$message.success('导出信息成功')
}
} else if (this.saveExportType === 'all') {
const exportURL = interfaceUrl + 'sarStandUnqualified/sar-stand-unqualified/exportStandUnqulifiedExcel?' +
'exportType' + this.saveExportType + '&exportContent=' + this.selectedList.join(',') + '&exportName=' + this.exportName + '&standType=' + this.standType
window.open(exportURL)
this.$message.success('导出信息成功')
}
this.exportModelFlag = false
this.selectedList = []
},
//批量关闭
batchClose () {
this.$confirm('确认关闭这些数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonTxe: '取消',
type: 'warning',
roundButton: false,
})
if (this.selectedList.length === 0){
this.$message.warning('请选择一条数据进行关闭')
}else{
this.$confirm('确认关闭这些数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonTxe: '取消',
type: 'warning',
roundButton: false,
}).then(() => {
this.$http.post('sarStandUnqualified/sar-stand-unqualified/close',{
ids: this.selectedList
},{
_this: this
}, res => {
if (res.ok) {
this.getTableByPage()
this.selectedList = []
this.$message.success('关闭成功')
}
})
}).catch(() => {
})
}
},
// 清空 查询条件
clearAllSearch (search = true) {
this.nonConformitySearch = {
standNumOrName: '',
standId: '',
productName: '',
responseUnit: ''
responsibleUnit: ''
}
this.getTableByPage()
},
// 修改成表格样式后,选择项勾选改变
standSelectChange (data) {
this.selectedList = []
for (let i = 0; i < data.length; i++) {
this.selectedList.push(data[i].id)
}
},
// 更多
@@ -287,53 +528,81 @@ export default {
case '编辑':
this.openEditModal(command[0])
break
case '关闭':
this.userClo(command[0])
break
}
},
//点击查看按钮事件
showUser(row) {
console.log(row)
this.historySeeForm = JSON.parse(JSON.stringify(row))
this.historySee = true
this.$nextTick(() => {
const arr = []
let questionType = []
questionType = this.historySeeForm.quesType.split(',')
questionType.map((item) => {
this.optionList.map((opr) => {
if (item === opr.value) {
item = opr.label
arr.push(item)
}
})
})
this.historySeeForm.quesType = arr.toString()
})
},
//点击编辑按钮事件
openEditModal(item) {
console.log(item)
},
//点击关闭按钮事件
userClo(row) {
console.log(row)
},
// 分页事件
pageChange (page) {
this.pageNo = page
this.getTableByPage()
},
pageSizeChange (pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent
pageSizeChange () {
this.getTableByPage()
},
},
mounted () {
this.getTableByPage()
},
}
};
</script>
<style lang="less" scoped>
#rectification-dataBase {
height: 100%;
.content-center{
margin:10px;
display: flex;
justify-content: space-between;
align-items: center;
display: flex;
flex-direction: column;
.content-center {
margin-left: 10px;
margin-bottom: 10px;
}
.container {
height: 100%;
}
.footer {
margin-bottom: 0;
flex: 1;
overflow: hidden;
display: flex;
flex-direction: column;
.table-wrap {
flex: 1;
overflow: hidden;
position: relative;
.inner-wrap {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.footer {
/deep/ .pagination {
position: static;
}
}
}
}
</style>
+24
View File
@@ -726,6 +726,30 @@ const routes = [
title: '未符合项跟踪历史数据'
}
},
// 未符合项跟踪 - 事业部历史数据
{
path: '/businessDetails',
name: 'BusinessDetails',
component: () =>
import('@/pages/regulatoryRepository/nonConfomity/pages/businessDetails'),
meta: {
requireAuth: true,
parentPath: '/businessDetails',
title: '事业部历史数据'
}
},
// 未符合项跟踪 - 产品规划部历史数据
{
path: '/productDetails',
name: 'ProductDetails',
component: () =>
import('@/pages/regulatoryRepository/nonConfomity/pages/productDetails'),
meta: {
requireAuth: true,
parentPath: '/productDetails',
title: '产品规划部历史数据'
}
},
// 企标备案
{
path: '/enterpriseStandardFiling',
+1 -1
View File
@@ -6,7 +6,7 @@
// 服务器地址
// const devIp = '39.98.140.126'
// const devInterfacePORT = '10005'
const devIp = '192.168.10.51'
const devIp = '192.168.10.47'
const devInterfacePORT = '9999'
// 云端端口号
const DEV_CLOUD_RES_INTERFACE_PORT = '7777'