人员入场管理页面增加下载文件按钮

This commit is contained in:
BianLzhaoMin 2025-12-19 13:24:34 +08:00
parent 8db21030dd
commit 413be114e5
5 changed files with 90 additions and 7 deletions

View File

@ -17,6 +17,7 @@ export default {
created() { created() {
get() get()
}, },
metaInfo() { metaInfo() {
return { return {
title: title:

View File

@ -123,3 +123,28 @@ export const addShanghaiProEinAPI = (data) => {
data, data,
}) })
} }
// 获取下载任务
export const getDownloadTaskAPI = (data) => {
return request({
url: '/bmw/zipDownload/createZipTask',
method: 'POST',
data,
})
}
// 获取下载链接
export const getDownloadTaskLinkAPI = (id) => {
return request({
url: `/bmw/zipDownload/taskStatus/${id}`,
method: 'GET',
})
}
// 下载数据
export const downloadTaskAPI = (url) => {
return request({
url: `/bmw/zipDownload/downloadFile${url}`,
method: 'GET',
})
}

View File

@ -33,6 +33,7 @@
v-model="queryParams[item.f_model]" v-model="queryParams[item.f_model]"
:placeholder="`请选择${item.f_label}`" :placeholder="`请选择${item.f_label}`"
:style="{ width: item.f_width || '180px' }" :style="{ width: item.f_width || '180px' }"
@change="handleSelChange($event, item.f_model)"
> >
<el-option <el-option
:key="v" :key="v"
@ -575,6 +576,11 @@ export default {
} }
} }
}, },
// change
handleSelChange(e, val) {
this.$emit('sel-change', e, val)
},
}, },
watch: { watch: {

View File

@ -11,6 +11,7 @@
}" }"
:columnsList="columnsList" :columnsList="columnsList"
:request-api="getEntryPersonListAPI" :request-api="getEntryPersonListAPI"
@sel-change="handleSelChange"
> >
<template slot="idNumber" slot-scope="{ data }"> <template slot="idNumber" slot-scope="{ data }">
{{ desensitizeIdNumber(data.idNumber) }} {{ desensitizeIdNumber(data.idNumber) }}
@ -85,6 +86,16 @@
> >
入场多数据模板下载 入场多数据模板下载
</el-button> </el-button>
<el-button
plain
size="mini"
type="primary"
icon="el-icon-download"
@click="onHandleDownloadFile()"
>
文件下载
</el-button>
</template> </template>
<!-- 出入场状态 --> <!-- 出入场状态 -->
@ -216,6 +227,9 @@ import {
deleteEntryPersonAPI, deleteEntryPersonAPI,
importEntryPersonAPI, importEntryPersonAPI,
importEntryPersonImportAPI, importEntryPersonImportAPI,
getDownloadTaskAPI,
getDownloadTaskLinkAPI,
downloadTaskAPI,
} from '@/api/construction-person/entry-and-exit-manage/person-entry' } from '@/api/construction-person/entry-and-exit-manage/person-entry'
import { import {
@ -251,6 +265,11 @@ export default {
idNumber: '', // idNumber: '', //
getEntryPersonListAPI, getEntryPersonListAPI,
loading: false, loading: false,
queryDownloadTask: {
proId: '',
subId: '',
teamId: '',
},
} }
}, },
methods: { methods: {
@ -468,8 +487,40 @@ export default {
this.onHandleShanghaiPersonMultiEngineSetting() this.onHandleShanghaiPersonMultiEngineSetting()
this.idNumber = idNumber this.idNumber = idNumber
}, },
//
async onHandleDownloadFile() {
//
if (
!this.queryDownloadTask.proId &&
!this.queryDownloadTask.subId &&
!this.queryDownloadTask.teamId
) {
this.$modal.msgError('请选择工程或分包或班组')
return
}
try {
const res = await getDownloadTaskAPI(this.queryDownloadTask)
if (res.taskId) {
const result = await getDownloadTaskLinkAPI(res.taskId)
const result1 = await downloadTaskAPI(result.downloadUrl)
console.log('result1', result1)
}
} catch (error) {
console.error('下载文件失败', error)
this.$modal.msgError('下载文件失败')
}
}, },
// change
handleSelChange(e, val) {
console.log(['proId', 'subId', 'teamId'].includes(val), '996')
if (['proId', 'subId', 'teamId'].includes(val)) {
this.queryDownloadTask[val] = e
}
},
},
async created() { async created() {
const lotProjectList = await getLotProjectSelectListCommonFun() const lotProjectList = await getLotProjectSelectListCommonFun()
const subList = await getSubSelectListCommonFun() const subList = await getSubSelectListCommonFun()

View File

@ -58,9 +58,9 @@
/> />
</div> </div>
</el-form-item> </el-form-item>
<el-checkbox v-model="loginForm.rememberMe" class="remember-me" <el-checkbox v-model="loginForm.rememberMe" class="remember-me">
>记住密码</el-checkbox 记住密码
> </el-checkbox>
<el-form-item style="width: 100%"> <el-form-item style="width: 100%">
<el-button <el-button
:loading="loading" :loading="loading"
@ -73,9 +73,9 @@
<span v-else> 中...</span> <span v-else> 中...</span>
</el-button> </el-button>
<div class="register-link" v-if="register"> <div class="register-link" v-if="register">
<router-link class="link-type" :to="'/register'" <router-link class="link-type" :to="'/register'">
>立即注册</router-link 立即注册
> </router-link>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>