Merge branch 'master' into dev_2nd_LCYH

# Conflicts:
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java
#	jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java
#	jero-web/src/common/lang/en-us.js
#	jero-web/src/common/lang/zh-cn.js
#	jero-web/src/views/documentTools/virtualList/components/virtualListDetails.vue
#	jero-web/src/views/projectManagement/components/ParameterItemCollectionList.vue
#	jero-web/src/views/toDoCenter/projectRegulationTasks/components/SentList.vue
#	jero-web/src/views/toDoCenter/projectRegulationTasks/components/dealtWith.vue
#	jero-web/src/views/toDoCenter/projectRegulationTasks/components/doneList.vue
This commit is contained in:
高嵩
2023-03-24 16:56:38 +08:00
30 changed files with 2081 additions and 1600 deletions
+4 -2
View File
@@ -1250,9 +1250,9 @@ module.exports = {
dre: 'Dre',
applicableInstructionsMarketList: 'Applicable instructions of market list',
pleaseSelectTheDataCompared: 'Please select the data to be compared',
problemLabel: 'Topic Tag',
problemLabel: 'classification',
personCharge: 'Person in charge',
addLabel: 'Add Tag',
addLabel: 'New Classification',
editLabel: 'Edit Label',
applicableMarket: 'Applicable Market',
templateMaintenance: 'Template Maintenance',
@@ -1393,6 +1393,8 @@ module.exports = {
beforedate:'In... Before date',
beforedatein:'In... Before date (inclusive)',
inRecentMonthsin6:'Within 6 months (implemented)',
batchUpdateDeadline:'Batch update deadline',
timeInterval:'Time Interval',
certificationList:'Certification List',
inspectionItems:'Inspection Items',
processReset:'Process Reset',
+4 -2
View File
@@ -1352,9 +1352,9 @@ module.exports = {
dre: '填写人',
applicableInstructionsMarketList: '市场清单适用说明',
pleaseSelectTheDataCompared: '请选择需要对比的数据',
problemLabel: '问题标签',
problemLabel: '分类',
personCharge: '负责人',
addLabel: '新增标签',
addLabel: '新增分类',
editLabel: '编辑标签',
applicableMarket: '适用市场',
templateMaintenance: '模板维护',
@@ -1494,6 +1494,8 @@ module.exports = {
beforedate:'...日期之前',
beforedatein:'...日期之前包含',
inRecentMonthsin6:'近6个月内已实施',
batchUpdateDeadline:'批量更新截止时间',
timeInterval:'时间区间',
certificationList:'认证清单',
inspectionItems:'检验项目',
processReset:'流程重置',
@@ -83,6 +83,7 @@
visible: false,
confirmLoading: false,
selectedRowKeys: [],
selectedRowList: [],
content: [],
loading: false,
queryParam: {},
@@ -149,16 +150,17 @@
this.visible = false
},
handleSubmit() {
let content = []
// let replace_standard_id = []
let serial_number = []
let replace_standard_id = []
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let content = JSON.parse(JSON.stringify(this.selectedRowKeys))
// this.content.forEach(res => {
// content.push(res.serial_number)
// replace_standard_id.push(res.id)
// })
this.$emit('input', content.join(','))
// this.$emit('change', this.query.db_field_name, replace_standard_id.join(','))
// let content = JSON.parse(JSON.stringify(this.selectedRowList))
this.selectedRowList.forEach(res => {
serial_number.push(res.serial_number)
replace_standard_id.push(res.id)
})
this.$emit('input', serial_number.join(','))
console.log(replace_standard_id)
this.$emit('change', this.query.db_field_name, replace_standard_id.join(','))
// this.$emit('changecontent', this.content)
this.visible = false
} else {
@@ -168,9 +170,11 @@
indexclick(event) {
this.$emit('input', event.target.value)
},
onSelectChange(value) {
onSelectChange(value,row) {
console.log(value)
console.log(row)
this.selectedRowKeys = value
this.selectedRowList = row
// this.content = []
// value.forEach(val => {
// this.dataList.forEach((res) => {
@@ -169,6 +169,7 @@
<Standardselection :query="item"
:disabled="disabled"
:standard="formInline"
@change="StandardselectionChange"
v-model="formInline[item.db_field_name]"/>
</a-form-model-item>
</div>
@@ -832,10 +833,11 @@
this.type = 'add'
this.getForm()
},
// StandardselectionChange(value, id) {
// this.formInline[value + '_id'] = id
// this.formInline = { ...this.formInline }
// },
StandardselectionChange(value, id) {
console.log(id)
this.formInline[value + '_id'] = id
this.formInline = { ...this.formInline }
},
PersonnelSelectionChange(value, id) {
this.formInline[value + '_id'] = id
this.formInline = { ...this.formInline }
@@ -31,17 +31,17 @@
v-model="queryParam.title"></a-input>
</div>
</a-col>
<a-col :md="12" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('status')">
<span>{{$t('status')}}</span>
</div>
<j-dict-select-tag class="box-input" v-model="queryParam.state"
:placeholder="$t('PleaseSelect')+$t('status')"
:type="'select'"
:triggerChange="false" :dictCode="'state'"/>
</div>
</a-col>
<!-- <a-col :md="12" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('status')">-->
<!-- <span>{{$t('status')}}</span>-->
<!-- </div>-->
<!-- <j-dict-select-tag class="box-input" v-model="queryParam.state"-->
<!-- :placeholder="$t('PleaseSelect')+$t('status')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'state'"/>-->
<!-- </div>-->
<!-- </a-col>-->
</template>
<span style="float: right;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="12" :sm="24">
@@ -1,7 +1,7 @@
<template>
<div class="box">
<div class="search-text-title">
<span>{{$t('searchScope')}}</span>
<span>{{ $t('searchScope') }}</span>
<span>{{ queryParam.selectValue }}</span>
</div>
<a-checkbox-group v-model="checkboxText" v-if="conList.length > 0">
@@ -18,7 +18,7 @@
<span class="text-header-text" style="cursor: pointer" v-html="item.module_type"></span>
</a-tooltip>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<template slot="title">
<span v-html="item.serial_number"></span>
</template>
<span style="cursor: pointer"
@@ -27,16 +27,17 @@
v-html="item.serial_number"></span>
</a-tooltip>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<template slot="title">
<span v-html="item.title"></span>
</template>
<span class="text-header-text" v-if="item.title" style="cursor: pointer" v-html="item.title"></span>
</a-tooltip>
<a-tooltip placement="topLeft" overlayClassName="tooltip-index" :mouseEnterDelay="0.5">
<template slot="title">
<template slot="title">
<span v-html="item.file_name"></span>
</template>
<span class="text-header-text" v-if="item.file_name && item.module_type_flag == 'WDK'" style="cursor: pointer"
<span class="text-header-text" v-if="item.file_name && item.module_type_flag == 'WDK'"
style="cursor: pointer"
v-html="item.file_name"></span>
</a-tooltip>
<!-- <a-tooltip placement="topLeft" :mouseEnterDelay="0.5">-->
@@ -106,286 +107,288 @@
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
import { getAction, postAction, downloadFile } from '@/api/manage'
import { Base64 } from 'js-base64'
import { mapGetters } from 'vuex'
export default {
name: 'whole',
data() {
return {
checkboxText: [],
url: {
getInfoList: 'search/document/getFullTextInfoList'
},
conList: [],
total: 0,
pageSize: 10,
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
pageNo: 1,
queryParam: {}
}
},
watch: {
checkboxText: function(value) {
export default {
name: 'whole',
data() {
return {
checkboxText: [],
url: {
getInfoList: 'search/document/getFullTextInfoList'
},
conList: [],
total: 0,
pageSize: 10,
downLoadFileUrl: window._CONFIG['domianPreviewURL'] + '/sys/common/download',
downLoadImgUrl: window._CONFIG['domianWebImgURL'] + '/sys/common/download',
pageNo: 1,
queryParam: {}
}
},
watch: {
checkboxText: function(value) {
this.conList.forEach(val => {
val.checked = false
})
if (value.length > 0) {
this.conList.forEach(val => {
val.checked = false
})
if (value.length > 0) {
this.conList.forEach(val => {
value.forEach(res => {
if (res === val.id) {
val.checked = true
}
})
value.forEach(res => {
if (res === val.id) {
val.checked = true
}
})
}
this.conList = [...this.conList]
})
}
this.conList = [...this.conList]
}
},
mounted() {
this.conList = []
// if (!this.queryParam.selectValue) {
// this.getList()
// }
},
methods: {
...mapGetters(['userInfo']),
checkedClick(item) {
if (item.checked) {
this.checkboxText = this.checkboxText.filter(res => {
return res !== item.id
})
} else {
this.checkboxText.push(item.id)
}
},
mounted() {
this.conList = []
// if (!this.queryParam.selectValue) {
// this.getList()
// }
ResetSearch() {
this.pageNo = 1
this.checkboxText = []
this.queryParam = {}
this.getList()
},
methods: {
...mapGetters(['userInfo']),
checkedClick(item) {
if (item.checked) {
this.checkboxText = this.checkboxText.filter(res => {
return res !== item.id
})
} else {
this.checkboxText.push(item.id)
fileClick(fileQuery) {
let fileName = fileQuery.file_name
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32) + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
} else {
downloadFile('/sys/common/downLoadFile', fileQuery.file_name, { id: fileQuery.id.slice(0, 32) })
}
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
searchData(value) {
this.queryParam.selectValue = value || undefined
this.queryParam.selectValueTwo = undefined
this.getList()
},
searchDataTwo(value) {
this.queryParam.selectValueTwo = value
this.getList()
},
getText(str) {
let words = str.replace(/<[^<>]+>/g, '').replace(/&nbsp;/gi, '') //这里是去除标签
//.replace(/\s/g, '') //这里是去除空格
return words
},
getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
},
ResetSearch() {
this.pageNo = 1
this.checkboxText = []
this.queryParam = {}
this.getList()
},
fileClick(fileQuery) {
let fileName = fileQuery.file_name
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32) + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
}else if(fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg'){
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
window.open(url, '_blank')
})
let checkboxText = JSON.parse(JSON.stringify(this.checkboxText))
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
ids: checkboxText.join(','),
...queryParam
}
postAction(this.url.getInfoList, query).then((res) => {
if (res.success) {
this.conList = res.result.records
if (this.conList && this.conList.length > 0) {
this.conList.forEach(val => {
val.content = val.content.replace(/<img .*?>/g, '')
val.content = val.content.replace(/<\/?p[^>]*>/gi, '')
})
}
this.total = res.result.total
} else {
downloadFile('/sys/common/downLoadFile', fileQuery.file_name, { id: fileQuery.id.slice(0, 32) })
this.conList = []
}
},
pageOnChange(page, pageSize) {
this.pageNo = page
this.getList()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
},
searchData(value) {
this.queryParam.selectValue = value || undefined
this.queryParam.selectValueTwo = undefined
this.getList()
},
searchDataTwo(value) {
this.queryParam.selectValueTwo = value
this.getList()
},
getText(str) {
let words = str.replace(/<[^<>]+>/g, '').replace(/&nbsp;/gi, '') //这里是去除标签
//.replace(/\s/g, '') //这里是去除空格
return words
},
getList() {
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
})
},
monthlyReportClick(item) {
let fileName = item.file_name
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + item.file_id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank')
}
},
titleClick(item) {
if (item.module_type_flag == 'FGYB') {
this.monthlyReportClick(item)
} else if (item.module_type_flag == 'WTZSK') {
let id = item.id.replace('base','')
this.$router.push({
path: '/problemknowledgeBase',
query: {
id: id
}
})
let checkboxText = JSON.parse(JSON.stringify(this.checkboxText))
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
ids: checkboxText.join(','),
...queryParam
}
postAction(this.url.getInfoList, query).then((res) => {
if (res.success) {
this.conList = res.result.records
if (this.conList && this.conList.length > 0) {
this.conList.forEach(val => {
val.content = val.content.replace(/<img .*?>/g, '')
val.content = val.content.replace(/<\/?p[^>]*>/gi,'')
})
}
this.total = res.result.total
} else {
this.conList = []
} else {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: item.id.slice(0, 32),
title: item.title,
serial_number: item.serial_number
}
})
},
monthlyReportClick(item) {
let fileName = item.file_name
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + item.file_id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank')
} else if (fileSuffix == '.xlsx' || fileSuffix == '.xls') {
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank')
}else if(fileSuffix == '.png' || fileSuffix == '.jpeg' || fileSuffix == '.gif' || fileSuffix == '.jpg'){
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadImgUrl + '/' + item.file_id + fileSuffix)
window.open(url, '_blank')
}
},
titleClick(item) {
if (item.module_type_flag == 'FGYB') {
this.monthlyReportClick(item)
} else if (item.module_type_flag == 'WTZSK') {
let newUrl = this.$router.resolve({
path: '/problemKnowledgeBaseView',
query: {
id: item.id
}
})
window.open(newUrl.href, '_blank')
} else {
let newUrl = this.$router.resolve({
path: '/docManage/library/detail',
query: {
id: item.id.slice(0, 32),
title: item.title,
serial_number: item.serial_number
}
})
window.open(newUrl.href, '_blank')
}
window.open(newUrl.href, '_blank')
}
}
}
}
</script>
<style lang="less">
.highlight-class {
color: #21c9cc;
}
.highlight-class {
color: #21c9cc;
}
.tooltip-index {
max-width: calc(100% - 300px) !important;
.ant-tooltip-inner {
.tooltip-index {
max-width: calc(100% - 300px) !important;
.ant-tooltip-inner {
color: #333;
background-color: #fff !important;
}
.ant-tooltip-arrow::before {
background-color: #fff;
}
}
.ant-tooltip-arrow::before {
background-color: #fff;
}
}
</style>
<style scoped lang="less">
.box {
padding: 0 0 0 18px;
box-sizing: border-box;
}
.box {
padding: 0 0 0 18px;
box-sizing: border-box;
}
.checkbox-left {
float: left;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.checkbox-left {
float: left;
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
}
.text-text-right {
padding: 19px 28px;
box-sizing: border-box;
margin-left: 38px;
cursor: pointer;
}
.text-text-right {
padding: 19px 28px;
box-sizing: border-box;
margin-left: 38px;
cursor: pointer;
}
.null-input {
background-color: #F2F4F8;
}
.null-input {
background-color: #F2F4F8;
}
.search-text-title {
margin-bottom: 22px;
}
.search-text-title {
margin-bottom: 22px;
}
.text-header {
margin-bottom: 11px;
.text-header {
margin-bottom: 11px;
.text-header-text {
margin-right: 52px;
font-size: 16px;
font-weight: bold;
color: #040B29;
display: inline-block;
max-width: 220px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
/*span {*/
/* margin-right: 52px;*/
/* font-size: 16px;*/
/* font-weight: bold;*/
/* color: #040B29;*/
/* display: inline-block;*/
/* max-width: 500px;*/
/* text-overflow: ellipsis;*/
/* white-space: nowrap;*/
/* overflow: hidden;*/
/*}*/
}
.text-content {
font-size: 14px;
font-weight: 400;
.text-header-text {
margin-right: 52px;
font-size: 16px;
font-weight: bold;
color: #040B29;
opacity: 0.7;
overflow: hidden;
display: -webkit-box;
display: inline-block;
max-width: 220px;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
white-space: nowrap;
overflow: hidden;
}
.page {
text-align: right;
margin-top: 20px;
}
/*span {*/
/* margin-right: 52px;*/
/* font-size: 16px;*/
/* font-weight: bold;*/
/* color: #040B29;*/
/* display: inline-block;*/
/* max-width: 500px;*/
/* text-overflow: ellipsis;*/
/* white-space: nowrap;*/
/* overflow: hidden;*/
/*}*/
}
.noData {
width: 100%;
text-align: center;
line-height: 10;
}
.text-content {
font-size: 14px;
font-weight: 400;
color: #040B29;
opacity: 0.7;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all
}
::v-deep p {
margin: 0;
padding: 0;
}
.page {
text-align: right;
margin-top: 20px;
}
.noData {
width: 100%;
text-align: center;
line-height: 10;
}
::v-deep p {
margin: 0;
padding: 0;
}
</style>
+8 -3
View File
@@ -143,10 +143,10 @@
:columns="columns"
>
<span slot="projectName" slot-scope="text,record" :title="text">
{{ text && text.length > 20 ? text.slice(0, 18) + '...' : text }}
{{ text }}
</span>
<span slot="fileName" slot-scope="text,record" :title="text">
{{ text && text.length > 15 ? text.slice(0, 14) + '...' : text }}
{{ text }}
</span>
<span slot="operation" slot-scope="text,record">
@@ -382,6 +382,7 @@
{
title: this.$t('fileName'),
align: 'left',
ellipsis: true,
dataIndex: 'fileName',
scopedSlots: { customRender: 'fileName' },
width: 200
@@ -389,6 +390,7 @@
{
title: this.$t('fileDeclaration'),
align: 'left',
ellipsis: true,
dataIndex: 'fileDescription',
scopedSlots: { customRender: 'projectName' },
width: 300
@@ -396,6 +398,7 @@
{
title: this.$t('uploadedBy'),
align: 'left',
ellipsis: true,
dataIndex: 'createBy',
width: 150
},
@@ -407,6 +410,7 @@
{
title: this.$t('uploadTime'),
align: 'left',
ellipsis: true,
dataIndex: 'createTime',
width: 250
},
@@ -414,6 +418,7 @@
title: this.$t('operation'),
align: 'left',
fixed: 'right',
ellipsis: true,
width: 250,
scopedSlots: { customRender: 'operation' }
}
@@ -1123,7 +1128,7 @@
</script>
<style lang="less" scoped>
@import '~@assets/less/common.less';
@import'~@assets/less/common.less';
::v-deep .ant-table-row:first-child {
background: #fff !important;
@@ -44,17 +44,17 @@
:triggerChange="false" :dictCode="'duty_territory'"/>
</div>
</a-col>
<!-- <a-col :md="6" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('certificationCategory')">-->
<!-- <span>{{$t('certificationCategory')}}</span>-->
<!-- </div>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.certCategory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationCategory')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'cert_category'"/>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :md="6" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('certificationCategory')">-->
<!-- <span>{{$t('certificationCategory')}}</span>-->
<!-- </div>-->
<!-- <j-dict-select-tag class="box-input" v-model="formInline.certCategory"-->
<!-- :placeholder="$t('PleaseSelect')+$t('certificationCategory')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'cert_category'"/>-->
<!-- </div>-->
<!-- </a-col>-->
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
@@ -202,6 +202,11 @@
<a-icon type="copy"/>
{{$t('Assignedby')}}
</div>
<!-- 批量更新截止时间-->
<div @click="batchUpdateDeadlineClick" class="operator-text-title" v-if='currentPersonRole == "homo" '>
<a-icon type="profile"/>
{{$t('batchUpdateDeadline')}}
</div>
</template>
<!-- @click='morepop'-->
<div class="operator-text" style="position: relative "
@@ -525,6 +530,8 @@
</div>
</a-modal>
<JLoading :loading="textLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
<batchUpdateDeadline ref="batchUpdateDeadlineRef" @batchUpdateDeadlineForm="batchUpdateDeadlineForm"/>
</div>
</template>
@@ -543,6 +550,7 @@
import AssignedBy from '@/components/AssignedBy/index'
import AssignedByHomo from '@/components/AssignedByHomo/index'
import ImportFileOnlyList from '@/components/ImportFileOnlyListtag/index'
import batchUpdateDeadline from './batchUpdateDeadline'
import axios from 'axios'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
@@ -562,7 +570,8 @@
ReferenceParameter,
SynchronousSubmissionLibrary,
TaskTime,
globalAdvancedQuery
globalAdvancedQuery,
batchUpdateDeadline
},
data() {
this.statusList = [
@@ -775,8 +784,8 @@
NoEngineer: 1, // 下发收集的权限,0为没有接口人 1为由接口人 默认有
NotSelectedNoEngineerValue: [],
paramsManifest: {},
timeBatch:'',
timer:'',
timeBatch: '',
timer: ''
}
},
props: {
@@ -788,8 +797,8 @@
},
mounted() {
this.handleClick()
window.addEventListener('keyup',this.handleKeyup)
window.addEventListener('click',this.handleClick)
window.addEventListener('keyup', this.handleKeyup)
window.addEventListener('click', this.handleClick)
this.GetgetLoginUserType()
console.log(this.currentPersonRole)
if (this.$route.query.type == '1') {
@@ -805,26 +814,26 @@
// this.timeBatch = setInterval(() => {
// this.handlePreservation();
// }, 10000);
// this.$nextTick(() => {
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// })
// this.$nextTick(() => {
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// })
// }
// this.paramsManifest = JSON.parse(localStorage.getItem('paramsManifest'))
this.paramsManifest = this.$route.query
@@ -833,35 +842,35 @@
},
methods: {
...mapGetters(['userInfo']),
handleKeyup(){
handleKeyup() {
clearTimeout(this.timer)
clearTimeout(this.timeBatch)
clearTimeout(this.timerOne)
this.timer = setTimeout(()=>{
this.timer = setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
},10000)
this.timerOne = setTimeout(()=>{
}, 10000)
this.timerOne = setTimeout(() => {
clearTimeout(this.timer)
clearTimeout(this.timeBatch)
clearTimeout(this.timerOne)
},300000)
}, 300000)
},
handleClick(){
handleClick() {
clearTimeout(this.timer)
clearTimeout(this.timeBatch)
clearTimeout(this.timerOne)
this.timer = setTimeout(()=>{
this.timer = setTimeout(() => {
if (this.currentPersonRole == 'dre') {
this.handlePreservation()
}
},10000)
this.timerOne = setTimeout(()=>{
}, 10000)
this.timerOne = setTimeout(() => {
clearTimeout(this.timer)
clearTimeout(this.timeBatch)
clearTimeout(this.timerOne)
},300000)
}, 300000)
},
handleToggleSearch() {
@@ -959,24 +968,24 @@
// this.timeBatch = setInterval(() => {
// this.handlePreservation();
// }, 10000);
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// }
})
},
@@ -1754,24 +1763,24 @@
// this.timeBatch = setTimeout(() => {
// this.handlePreservation();
// }, 10000);
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// var interval = setInterval(this.handlePreservation(),10000);
// /* if 5 minutes no operation then logout */
// var maxTime = 120; // seconds
// var time = maxTime;
// $('body').on('keydown mousemove mousedown', function(e) {
// time = maxTime; // reset
// });
// var intervalId = setInterval(function() {
// time--;
// if (time <= 0) {
// ShowInvalidLoginMessage();
// clearInterval(intervalId);
// }
// }, 10000)
// function ShowInvalidLoginMessage() {
// // 停止定时器
// clearInterval(interval);
// }
// }
} else {
if (num && num == 1) {
@@ -1918,7 +1927,7 @@
this.selectedRowKeysValue.forEach((item, index) => {
_array.push(item.id)
})
if(_array.length == 0){
if (_array.length == 0) {
return
}
let _this = this
@@ -2047,7 +2056,16 @@
this.jurisdiction = 'SDTFPTXRHOMO'
}
},
batchUpdateDeadlineClick() {
if (this.selectedRowKeysValue && this.selectedRowKeysValue.length > 0) {
this.$refs.batchUpdateDeadlineRef.getData(JSON.parse(JSON.stringify(this.selectedRowKeysValue)))
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
batchUpdateDeadlineForm() {
this.GetgetTableList()
},
// 分配填写人确定后弹框关闭
areaVisibleAssignedbyflag(val) {
this.areaVisibleAssignedby = val
@@ -76,8 +76,8 @@
<span class="title-text-text" :title="$t('projectVersion')">{{$t('projectVersion')}}</span>
</div>
<a-form-model-item class="itemModel" prop="projectVersion">
<a-input class="box-input"
:disabled="true"
<a-input class="box-input" oninput="javascript:this.value=this.value.replace(/[^\d]$/g,'')"
:maxLength="2"
v-model="formInline.projectVersion"
:placeholder="$t('PleaseEnter')+$t('projectVersion')"/>
</a-form-model-item>
@@ -0,0 +1,196 @@
<template>
<a-modal
:title="$t('batchUpdateDeadline')"
:width="500"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="visible = false"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('Deadline')">{{$t('Deadline')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'deadline'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('Deadline')"
:getCalendarContainer="(trigger) => trigger.parentNode"
format="YYYY-MM-DD"
v-model="formInline.deadline"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import moment from 'moment'
import { postAction, putAction, getAction } from '@/api/manage'
export default {
name: 'batchUpdateDeadline',
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
rules: {
deadline: [
{
required: true,
message: this.$t('Deadline') + this.$t('cannotEmpty'),
trigger: 'change'
}
]
},
idList: []
}
},
mounted() {
},
methods: {
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let query = {
ids: this.idList.join(','),
deadline: moment(this.formInline.deadline).format('YYYY-MM-DD HH:mm:ss')
}
this.confirmLoading = true
postAction('/params/collectManifest/batchEditDeadline', query).then((res) => {
if (res.success) {
this.visible = false
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.$emit('batchUpdateDeadlineForm')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
}
})
},
getData(data) {
this.idList = []
if (data && data.length > 0) {
data.forEach(res => {
this.idList.push(res.id)
})
this.visible = true
this.formInline = {}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
}
}
}
</script>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: 100%;
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
padding: 4px 30px 4px 11px;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 104px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.Required{
color: red;
}
</style>
@@ -19,7 +19,8 @@
</div>
<a-form-model-item class="itemModel" prop="projectVersion">
<a-input class="box-input"
:disabled="true"
oninput="javascript:this.value=this.value.replace(/[^\d]$/g,'')"
:maxLength="2"
v-model="formInline.projectVersion"
:placeholder="$t('PleaseEnter')+$t('projectVersion')"/>
</a-form-model-item>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -65,7 +65,7 @@
dataIndex: 'projectName',
scopedSlots: { customRender: 'RelatedItems' },
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('standardInformation'),
@@ -73,7 +73,7 @@
dataIndex: 'standardInfo',
scopedSlots: { customRender: 'standardInformation' },
ellipsis: true,
width: 170
width: 330
},
{
title: this.$t('taskType'),
@@ -87,14 +87,14 @@
align: 'left',
dataIndex: 'taskDefinitionKeyName',
ellipsis: true,
width: 170
width: 150
},
{
title: this.$t('Sponsor'),
align: 'left',
dataIndex: 'createBy',
ellipsis: true,
width: 170
width: 130
},
// {
// title: this.$t('LastProcessor'),
@@ -115,7 +115,7 @@
align: 'left',
dataIndex: 'endTime',
ellipsis: true,
width: 170
width: 150
},
// {
// title: this.$t('taskStatus'),
@@ -78,7 +78,7 @@
dataIndex: 'projectName',
ellipsis: true,
scopedSlots: { customRender: 'RelatedItems' },
width: 170
width: 110
},
{
title: this.$t('standardInformation'),
@@ -86,7 +86,7 @@
dataIndex: 'standardInfo',
ellipsis: true,
scopedSlots: { customRender: 'standardInformation' },
width: 170
width: 260
},
{
title: this.$t('taskType'),
@@ -114,14 +114,14 @@
align: 'left',
dataIndex: 'createBy',
ellipsis: true,
width: 170
width: 100
},
{
title: this.$t('TaskCutOffTime'),
align: 'left',
dataIndex: 'endTime',
ellipsis: true,
width: 170,
width: 110,
scopedSlots: { customRender: 'endTime' }
},
// {
@@ -136,7 +136,7 @@
title: this.$t('operation'),
align: 'left',
fixed: 'right',
width: 120,
width: 80,
scopedSlots: { customRender: 'operation' }
}
],
@@ -71,7 +71,7 @@
dataIndex: 'projectName',
ellipsis: true,
scopedSlots: { customRender: 'RelatedItems' },
width: 170
width: 130
},
{
title: this.$t('standardInformation'),
@@ -79,7 +79,7 @@
dataIndex: 'standardInfo',
ellipsis: true,
scopedSlots: { customRender: 'standardInformation' },
width: 170
width: 330
},
{
title: this.$t('taskType'),
@@ -93,14 +93,14 @@
align: 'left',
dataIndex: 'taskDefinitionKeyName',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('Sponsor'),
align: 'left',
dataIndex: 'createBy',
ellipsis: true,
width: 170
width: 130
},
// {
// title: this.$t('CurrentProcessor'),
@@ -114,7 +114,7 @@
align: 'left',
dataIndex: 'endTime',
ellipsis: true,
width: 170
width: 150
},
// {
// title: this.$t('taskStatus'),
@@ -60,42 +60,42 @@
dataIndex: 'standardInfo',
scopedSlots: { customRender: 'standardInformation' },
ellipsis: true,
width: 170
width: 330
},
{
title: this.$t('taskType'),
align: 'left',
dataIndex: 'flowTypeShow',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('LastProcessor'),
align: 'left',
dataIndex: 'lastAssigneeName',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('CurrentProcessor'),
align: 'left',
dataIndex: 'assigneeName',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('TaskCutOffTime'),
align: 'left',
dataIndex: 'endTime',
ellipsis: true,
width: 170
width: 150
},
{
title: this.$t('taskStatus'),
align: 'left',
dataIndex: 'statusShow',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('operation'),
@@ -58,28 +58,28 @@
dataIndex: 'standardInfo',
scopedSlots: { customRender: 'standardInformation' },
ellipsis: true,
width: 170
width: 330
},
{
title: this.$t('taskType'),
align: 'left',
dataIndex: 'flowTypeShow',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('Sponsor'),
align: 'left',
dataIndex: 'createBy',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('TaskCutOffTime'),
align: 'left',
dataIndex: 'endTime',
ellipsis: true,
width: 170,
width: 150,
scopedSlots: { customRender: 'endTime' }
},
{
@@ -87,7 +87,7 @@
align: 'left',
dataIndex: 'statusShow',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('operation'),
@@ -57,42 +57,42 @@
dataIndex: 'standardInfo',
ellipsis: true,
scopedSlots: { customRender: 'standardInformation' },
width: 170
width: 330
},
{
title: this.$t('taskType'),
align: 'left',
dataIndex: 'flowTypeShow',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('Sponsor'),
align: 'left',
dataIndex: 'createBy',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('CurrentProcessor'),
align: 'left',
dataIndex: 'assigneeName',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('TaskCutOffTime'),
align: 'left',
dataIndex: 'endTime',
ellipsis: true,
width: 170
width: 150
},
{
title: this.$t('taskStatus'),
align: 'left',
dataIndex: 'statusShow',
ellipsis: true,
width: 170
width: 130
},
{
title: this.$t('operation'),