This commit is contained in:
yanyizhou
2021-11-10 16:28:18 +08:00
parent 17a1645235
commit 54e01cdc02
@@ -9,7 +9,7 @@
</div>
<div class="search-area">
<div class="left">
<el-form :modal="historySearch" :inline="true" class="label-input-form" >
<el-form :modal="historySearch" :inline="true" class="label-input-form">
<el-form-item label="编号/名称" class="search-item">
<el-input v-model="historySearch.standId"
placeholder="请输入"
@@ -25,47 +25,48 @@
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="责任部门" class="search-item">
<el-input v-model="historySearch.responseUnit" v-show="false" />
<el-input v-model="historySearch.responseUnit" v-show="false"/>
<el-popover
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
placement="bottom"
popper-class="user-dept-popper"
trigger="click"
:value="false"
>
<el-input
slot="reference"
v-model="historySearch.responseUnitShow"
placeholder="根据责任部门查找"
readonly
clearable
id="searchResp"
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">
: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">
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>
size="mini"
class="common-button-default"
@click="clearAllSearch">清空
</el-button>
</el-form-item>
</el-form>
</div>
@@ -73,166 +74,170 @@
<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',
: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"
@selection-change="handleRowChange"
ref="selection"
>
<el-table-column
type="selection"
width="55"
fixed="left"
align="center">
type="selection"
width="55"
fixed="left"
align="center">
</el-table-column>
<el-table-column
prop="standId"
width="180px"
label="标准编号/政策编号">
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="标准名称/政策名称">
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="产品类型">
prop="itemsNum"
label="产品类型">
</el-table-column>
<el-table-column
prop="itemsName"
label="实施时间">
prop="itemsName"
label="实施时间">
</el-table-column>
<el-table-column
prop="productLine"
label="实施要求">
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="productName"
label="问题类型">
prop="dutyEngineer"
width="150px"
label="开发计划">
</el-table-column>
<el-table-column
prop="responsibleUnit"
width="110"
label="资源符合情况">
prop="responsibleUnit"
label="责任部门">
</el-table-column>
<el-table-column
prop="dutyEngineer"
width="150px"
label="开发计划">
prop="responsePeople"
width="100"
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">
prop="actualCloseTime"
width="150px"
sortable
label="SOP时间">
<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>
{{ (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="responsibleUnit"
width="120"
label="关闭状态">
</el-table-column>
<el-table-column
prop="qaEngineer"
width="320px"
label="SOP时间超过法规时间的空档期的业务应对方案">
</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"
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"
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>
<div class="seeItem">{{ historySeeForm.standId }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="标准名称:">
<div class="seeItem">{{historySeeForm.standName}}</div>
<div class="seeItem">{{ historySeeForm.standName }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款号:">
<div class="seeItem">{{historySeeForm.itemsNum}}</div>
<div class="seeItem">{{ historySeeForm.itemsNum }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="条款名称:">
<div class="seeItem">{{historySeeForm.itemsName}}</div>
<div class="seeItem">{{ historySeeForm.itemsName }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="产品线:">
<div class="seeItem">{{historySeeForm.productLine}}</div>
<div class="seeItem">{{ historySeeForm.productLine }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="项目名称:">
<div class="seeItem">{{historySeeForm.productName}}</div>
<div class="seeItem">{{ historySeeForm.productName }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任部门:">
<div class="seeItem">{{historySeeForm.responsibleUnit}}</div>
<div class="seeItem">{{ historySeeForm.responsibleUnit }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="责任工程师:">
<div class="seeItem">{{historySeeForm.dutyEngineer}}</div>
<div class="seeItem">{{ historySeeForm.dutyEngineer }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="认证工程师:">
<div class="seeItem">{{historySeeForm.authEngineer}}</div>
<div class="seeItem">{{ historySeeForm.authEngineer }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="质量工程师:">
<div class="seeItem">{{historySeeForm.qaEngineer}}</div>
<div class="seeItem">{{ historySeeForm.qaEngineer }}</div>
</el-form-item>
<el-form-item class="add-form-item" label="要求关闭时间:">
<div class="seeItem">{{historySeeForm.actualCloseTime}}</div>
<div class="seeItem">{{ historySeeForm.actualCloseTime }}</div>
</el-form-item>
</el-form>
</div>
@@ -241,11 +246,11 @@
<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 class="itemsRight">{{ item.itemNum }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
<div class="itemsRight">{{ item.productNameShow }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">目前状态:</div>
@@ -254,100 +259,101 @@
</div>
<div class="typeitems">
<div class="itemsLeft">设计完成时间:</div>
<div class="itemsRight">{{(item.stepFirTime ? item.stepFirTime.substring(0, 10): '')}}</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"
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" />
<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 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 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"
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" />
<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 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 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"
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" />
<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 class="itemsRight">{{ item.thrRemark }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
<div class="itemsRight">{{ item.responseUnitShow }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</div>
<div class="itemsRight">{{ item.responseEnginShow }}</div>
</div>
</div>
</div>
<div class="typebox" v-if="historySeeForm.besureItemEOList != null && historySeeForm.besureItemEOList.length > 0">
<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 class="itemsRight">{{ item.itemNum }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">涉及项目:</div>
<div class="itemsRight">{{item.productNameShow}}</div>
<div class="itemsRight">{{ item.productNameShow }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任部门:</div>
<div class="itemsRight">{{item.responseUnitShow}}</div>
<div class="itemsRight">{{ item.responseUnitShow }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">责任工程师:</div>
<div class="itemsRight">{{item.responseEnginShow}}</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 class="itemsRight">{{ (item.validTime ? item.validTime.substring(0, 11) : '') }}</div>
</div>
<div class="typeitems">
<div class="itemsLeft">验证结果:</div>
@@ -363,7 +369,7 @@
export default {
name: 'BusinessDetails',
components: {},
data () {
data() {
return {
loading: false,
// 搜索条件字段
@@ -397,7 +403,7 @@ export default {
}
},
methods: {
openFileInPdf (attId, oldFileName) {
openFileInPdf(attId, oldFileName) {
// 缺少文件
if (this.$hasPermission('ZWBGBNTL11')) {
this.$http.get('lawss/sarStandFile/queryConvertAtt', {
@@ -442,14 +448,14 @@ export default {
this.$message.error('没有在线预览文档权限!')
}
},
downloadFile (attId) {
downloadFile(attId) {
if (attId != null && attId !== '') {
window.location.href = '/api/att/attFile/downloadFileForSar?fileId=' + attId
} else {
this.$message.error('请选择要下载的文件')
}
},
downloadFileByWater (attId, fileSuffix) {
downloadFileByWater(attId, fileSuffix) {
if (fileSuffix !== 'pdf' && fileSuffix !== 'PDF') {
this.$message.error('水印下载仅支持PDF,pdf格式文件')
} else {
@@ -460,7 +466,7 @@ export default {
}
}
},
typeColor (row, type) {
typeColor(row, type) {
this.$confirm('确定修改此标准分级?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -477,21 +483,21 @@ export default {
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: '修改失败!'
})
}
})
{
id: row.id,
color: color
}, {
_this: this
}, res => {
if (res.ok) {
this.getTableBtn()
} else {
this.$message({
type: 'error',
message: '修改失败!'
})
}
})
}).catch(() => {
this.$message({
type: 'info',
@@ -499,7 +505,7 @@ export default {
})
})
},
detailsStandard (item) {
detailsStandard(item) {
this.$http.post('lawss/sarTestItem/validateStandNumber', {
standnumber: item.standNum
}, {
@@ -517,29 +523,30 @@ export default {
}, e => {
})
},
getOrgTreeSource () {
getOrgTreeSource() {
this.$http.get('sys/org/getTree', {}, {_this: this},
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
res => {
if (res.ok) {
let treeNode = []
res.data.map((item, index) => {
let treeItem = {}
for (let key in item) {
if (key === 'orgName') {
treeItem.name = item[key]
} else {
treeItem[key] = item[key]
}
}
}
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
// this.searchInlandNodes = treeNode
}
}, e => {})
treeNode[index] = treeItem
})
this.zNodesSItem = treeNode
// this.searchInlandNodes = treeNode
}
}, e => {
})
},
// 更多
handleCommand (command) {
handleCommand(command) {
switch (command[1]) {
case '查看':
this.showUser(command[0])
@@ -547,7 +554,7 @@ export default {
}
},
// 查看方法
showUser (row) {
showUser(row) {
this.historySeeForm = JSON.parse(JSON.stringify(row))
this.historySee = true
this.$nextTick(() => {
@@ -566,30 +573,30 @@ export default {
})
},
// 分页事件
pageChange (page) {
pageChange(page) {
this.pageNo = page
this.getTableBtn()
},
pageSizeChange (pageSize) {
pageSizeChange(pageSize) {
this.pageSize = this.$store.getters.userInfo.configContent
this.getTableBtn()
},
back () {
back() {
this.$router.push({
name: 'NonConfomity'
})
},
// 未符合项table selected事件
handleRowChange (selection) {
handleRowChange(selection) {
//
},
// 分页查询未符合项数据
getTableBtn () {
getTableBtn() {
this.$http.get('sarStandUnqualified/sar-stand-unqualified/history', {
...this.historySearch,
current: this.pageNo,
size: this.pageSize,
},{
}, {
_this: this
}, res => {
console.log(res);
@@ -616,12 +623,12 @@ export default {
// }, e => {
// })
// },
treeClickSearch (treeId, treeNode) {
treeClickSearch(treeId, treeNode) {
this.historySearch.responseUnit = treeNode.id
this.historySearch.responseUnitShow = treeNode.name
},
// 点击清空按钮事件
clearAllSearch () {
clearAllSearch() {
this.historySearch = {
standNumOrName: '',
quesType: '',
@@ -633,7 +640,7 @@ export default {
/**
* @Description: 跳转流程
*/
processCenterClick (item) {
processCenterClick(item) {
let routeUrl = this.$router.resolve({
name: 'ProcessDetail',
query: {
@@ -643,15 +650,16 @@ export default {
window.open(routeUrl.href, '_blank')
}
},
mounted () {
mounted() {
this.getTableBtn()
this.getOrgTreeSource()
}
}
</script>
<style lang="less" scoped>
.historical-data{
.historical-data {
height: 100%;
.laws-details-header {
background: #fff;
// height: 30px;
@@ -662,6 +670,7 @@ export default {
display: inline-block;
margin-right: 10px;
}
.title {
display: inline-block;
font-weight: bold;
@@ -671,13 +680,16 @@ export default {
text-align: center;
}
}
.content{
.content {
height: calc(~'100% - 56px - 107px');
.iconClass{
.iconClass {
width: 18px;
height: 18px;
}
}
.typebox {
.typeitem {
border: 1px solid #f4f4f4;
@@ -685,32 +697,39 @@ export default {
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{
.files-title {
margin-right: 10px;
}
a{
a {
cursor: pointer;
color: #409EFF;
}
a:hover{
a:hover {
text-decoration: underline;
color: #409EFF;
}
i{
i {
display: inline-block;
margin-left: 3px;
width: 18px;
@@ -721,23 +740,27 @@ export default {
vertical-align: sub;
cursor: pointer;
}
.icon-download{
.icon-download {
background-image: url("~assets/images/shangqi/img/download.png");
}
.icon-download2{
.icon-download2 {
background-image: url("~assets/images/shangqi/img/download2.png");
}
}
}
}
}
.seeHisToryDraw{
/deep/.el-form-item__content{
.seeHisToryDraw {
/deep/ .el-form-item__content {
line-height: 50px;
}
}
}
.add-form-item{
.add-form-item {
width: 100%;
}
</style>