参数项收集清单导入导出修改
This commit is contained in:
@@ -1359,4 +1359,5 @@ module.exports = {
|
||||
Topping:'Topping',
|
||||
cancelTopping:'Cancel Topping',
|
||||
relatedProjectVersion:'Related project version',
|
||||
Importfailure:'Import failure',
|
||||
}
|
||||
@@ -1460,4 +1460,5 @@ module.exports = {
|
||||
Topping:'置顶',
|
||||
cancelTopping:'取消置顶',
|
||||
relatedProjectVersion:'相关项目版本',
|
||||
Importfailure:'导入失败',
|
||||
}
|
||||
@@ -0,0 +1,284 @@
|
||||
<template>
|
||||
<div>
|
||||
<a-upload name="file" :showUploadList="false"
|
||||
class="upload-text"
|
||||
:multiple="false" :headers="tokenHeader"
|
||||
:action="importUrl"
|
||||
@change="handleImport"
|
||||
:accept="accept">
|
||||
<a-icon type="import" :rotate="270"/>
|
||||
{{$t('import')}}
|
||||
</a-upload>
|
||||
<div class="loading-box" v-if="spinning">
|
||||
<div class="loading-content">
|
||||
<a-icon class="loading" type="loading"/>
|
||||
<div class="loading-tips">
|
||||
{{this.$t('Importing')}}...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 错误数据提示-->
|
||||
<a-modal
|
||||
:title="$t('Importfailure')"
|
||||
:width="860"
|
||||
v-model="visibleoperationFailed"
|
||||
:maskClosable="false"
|
||||
:footer="null"
|
||||
>
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div>
|
||||
<span style='font-size: 16px;margin-bottom: 20px;' v-for='(item,key) in operationFailedValue'>
|
||||
<span v-html="item"></span>
|
||||
</span>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<div class="imports-footer">
|
||||
<div class="imports-footer-wrap">
|
||||
<a-button class="imports-btn" type="primary" @click="cancleoperationFailed">{{$t('cancel')}}</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Vue from 'vue'
|
||||
import {ACCESS_TOKEN} from '@/store/mutation-types'
|
||||
import eventBUs from '../../common/event'
|
||||
import {Modal} from 'ant-design-vue'
|
||||
import store from '@/store'
|
||||
export default {
|
||||
name: 'index',
|
||||
props: {
|
||||
url: {
|
||||
type: Object,
|
||||
default: {}
|
||||
},
|
||||
//判断当前文档库还是其余的页面
|
||||
isTrue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
accept: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
projectId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
dummyInventoryBaseId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
paramsTemplateId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
paramsManifestId: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
projectLibraryId: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
tokenHeader: {'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)},
|
||||
spinning: false,
|
||||
operationFailedValue:[],
|
||||
visibleoperationFailed: false, // 数据失败的弹框
|
||||
cut: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
importUrl() {
|
||||
if (this.projectId) {
|
||||
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&projectId=' + this.projectId
|
||||
} else if (this.dummyInventoryBaseId) {
|
||||
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&dummyInventoryBaseId=' + this.dummyInventoryBaseId
|
||||
} else if (this.paramsTemplateId) {
|
||||
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '¶msTemplateId=' + this.paramsTemplateId
|
||||
} else if (this.projectLibraryId) {
|
||||
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '&projectLibraryId=' + this.projectLibraryId
|
||||
} else if (this.paramsManifestId) {
|
||||
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut + '¶msManifestId=' + this.paramsManifestId
|
||||
}
|
||||
return window._CONFIG['domianURL'] + '/' + this.url.importZipUrl + '?cut=' + this.cut
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let long = localStorage.getItem('language')
|
||||
this.cut = ''
|
||||
if (long && long == 'zh-cn') {
|
||||
this.cut = 'cn'
|
||||
} else if (long && long == 'en-us') {
|
||||
this.cut = 'en'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleImport(info) {
|
||||
this.spinning = true
|
||||
if (info.file.status !== 'uploading') {
|
||||
this.$emit('getList')
|
||||
}
|
||||
|
||||
if (info.file.status === 'done') {
|
||||
if (info.file.response.success) {
|
||||
if (info.file.response.code === 201) {
|
||||
let {message} = info.file.response
|
||||
let {name} = info.file
|
||||
let content = []
|
||||
if (message) {
|
||||
message = message.split('</br>')
|
||||
message.forEach(res => {
|
||||
if (res) {
|
||||
content.push( < div > {res} < /div>)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.$warning({
|
||||
title: name,
|
||||
content: (
|
||||
< div >
|
||||
{content}
|
||||
< /div>
|
||||
)
|
||||
})
|
||||
} else {
|
||||
if (this.isTrue) {
|
||||
this.$emit('getList')
|
||||
} else {
|
||||
eventBUs.$emit('searchReset')
|
||||
}
|
||||
console.log(info.file.response.message)
|
||||
if(info.file.response.message == null){
|
||||
console.log(111)
|
||||
this.operationFailedValue = info.file.response.result
|
||||
this.visibleoperationFailed = true
|
||||
}else{
|
||||
this.$message.success(info.file.response.message || `${info.file.name} 文件导入成功`)
|
||||
}
|
||||
}
|
||||
this.spinning = false
|
||||
} else {
|
||||
let data = info.file.response
|
||||
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||
if ((token && data.message.includes('Token失效')) || (token && data.message.includes('token')) || (token && data.message.includes('用户不存在'))) {
|
||||
this.spinning = false
|
||||
Modal.error({
|
||||
title: '登录已过期',
|
||||
content: '很抱歉,登录已过期,请重新登录',
|
||||
okText: '重新登录',
|
||||
mask: false,
|
||||
onOk: () => {
|
||||
store.dispatch('Logout').then(() => {
|
||||
Vue.ls.remove(ACCESS_TOKEN)
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
let {message} = info.file.response
|
||||
let {name} = info.file
|
||||
let content = []
|
||||
if (message) {
|
||||
message = message.split('</br>')
|
||||
message.forEach(res => {
|
||||
if (res) {
|
||||
content.push( < div > {res} < /div>)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.$warning({
|
||||
title: name,
|
||||
content: (
|
||||
< div >
|
||||
{content}
|
||||
< /div>
|
||||
)
|
||||
})
|
||||
this.spinning = false
|
||||
}
|
||||
} else if (info.file.status === 'error') {
|
||||
if (info.file.response.status === 500) {
|
||||
let data = info.file.response
|
||||
const token = Vue.ls.get(ACCESS_TOKEN)
|
||||
if ((token && data.message.includes('Token失效')) || (token && data.message.includes('token')) || (token && data.message.includes('用户不存在'))) {
|
||||
Modal.error({
|
||||
title: '登录已过期',
|
||||
content: '很抱歉,登录已过期,请重新登录',
|
||||
okText: '重新登录',
|
||||
mask: false,
|
||||
onOk: () => {
|
||||
store.dispatch('Logout').then(() => {
|
||||
Vue.ls.remove(ACCESS_TOKEN)
|
||||
window.location.reload()
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
this.spinning = false
|
||||
} else {
|
||||
this.$message.error(`文件导入失败: ${info.file.msg} `)
|
||||
this.spinning = false
|
||||
}
|
||||
}
|
||||
},
|
||||
// 错误数据的弹框
|
||||
cancleoperationFailed() {
|
||||
this.operationFailedValue = []
|
||||
this.visibleoperationFailed = false
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.upload-text .ant-upload {
|
||||
font-size: 14px !important;
|
||||
font-weight: 400 !important;
|
||||
color: #040B29 !important;
|
||||
}
|
||||
</style>
|
||||
<style scoped lang="less">
|
||||
.loading-box {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 9999900;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(255, 255, 255, 0.9);
|
||||
border-radius: 8px;
|
||||
user-select: none;
|
||||
|
||||
.loading-content {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
color: #21c9cc;
|
||||
transform: translate(-50%, -50%);
|
||||
text-align: center;
|
||||
|
||||
.loading {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.spin-loading {
|
||||
animation: rotating 2s linear infinite;
|
||||
}
|
||||
|
||||
.loading-tips {
|
||||
margin-top: 5px;
|
||||
font-size: 16px;
|
||||
color: #21c9cc;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -463,7 +463,7 @@
|
||||
import AdjustareaSofrespon from '@/components/AdjustareaSofrespon/index'
|
||||
import ReferenceParameter from '@/components/ReferenceParameter/index'
|
||||
import AssignedBy from '@/components/AssignedBy/index'
|
||||
import ImportFileOnlyList from '@/components/ImportFileOnlyList/index'
|
||||
import ImportFileOnlyList from '@/components/ImportFileOnlyListtag/index'
|
||||
import axios from 'axios'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import Vue from 'vue'
|
||||
@@ -935,7 +935,7 @@
|
||||
ids: this.selectedRowKeys.join(','),
|
||||
exportName:this.$route.query.projectName + '(' + this.$route.query.title + ')'
|
||||
}
|
||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.xlsx'
|
||||
let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
|
||||
downloadFile('/params/collectManifest/exportDre', name , query , this.selectClear)
|
||||
},
|
||||
getList(){
|
||||
|
||||
Reference in New Issue
Block a user