6 changed files with 456 additions and 180 deletions
@ -1,68 +0,0 @@ |
|||
location /systemapi { |
|||
#host修改为真实的域名和端口 |
|||
proxy_set_header Host $http_host; |
|||
#客户真实ip |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
#客户端真实协议 |
|||
proxy_set_header X-Forwarded-Proto $scheme; |
|||
rewrite ^/systemapi/(.*)$ /$1 break; |
|||
proxy_pass http://36.133.126.182:39250; #设置代理服务器的协义和地址 |
|||
#proxy_pass http://120.224.6.6:60001; |
|||
} |
|||
location /kpiapi { |
|||
#host修改为真实的域名和端口 |
|||
proxy_set_header Host $http_host; |
|||
#客户真实ip |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
#客户端真实协议 |
|||
proxy_set_header X-Forwarded-Proto $scheme; |
|||
rewrite ^/kpiapi/(.*)$ /$1 break; |
|||
proxy_pass http://36.133.126.182:6666; #设置代理服务器的协义和地址 |
|||
#proxy_pass http://120.224.6.6:60002; |
|||
} |
|||
location /hrapi { |
|||
#host修改为真实的域名和端口 |
|||
proxy_set_header Host $http_host; |
|||
#客户真实ip |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
#客户端真实协议 |
|||
proxy_set_header X-Forwarded-Proto $scheme; |
|||
rewrite ^/hrapi/(.*)$ /$1 break; |
|||
proxy_pass http://120.224.6.6:39168; #设置代理服务器的协义和地址 |
|||
} |
|||
location /api { |
|||
#host修改为真实的域名和端口 |
|||
proxy_set_header Host $http_host; |
|||
#客户真实ip |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
#客户端真实协议 |
|||
proxy_set_header X-Forwarded-Proto $scheme; |
|||
rewrite ^/api/(.*)$ /$1 break; |
|||
proxy_pass http://36.133.126.182:8888; #设置代理服务器的协义和地址 |
|||
} |
|||
location /javasys { |
|||
#host修改为真实的域名和端口 |
|||
proxy_set_header Host $http_host; |
|||
#客户真实ip |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
#客户端真实协议 |
|||
proxy_set_header X-Forwarded-Proto $scheme; |
|||
rewrite ^/javasys/(.*)$ /$1 break; |
|||
proxy_pass http://36.133.126.182:8111; #设置代理服务器的协义和地址 |
|||
} |
|||
location /javasys/lowCode { |
|||
#host修改为真实的域名和端口 |
|||
proxy_set_header Host $http_host; |
|||
#客户真实ip |
|||
proxy_set_header X-Real-IP $remote_addr; |
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
|||
#客户端真实协议 |
|||
proxy_set_header X-Forwarded-Proto $scheme; |
|||
rewrite ^/javasys/(.*)$ /$1 break; |
|||
proxy_pass http://36.133.126.182:39999; #设置代理服务器的协义和地址 |
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
<script lang="ts" setup> |
|||
|
|||
import { ElDialog } from 'element-plus'; |
|||
|
|||
const props = withDefaults(defineProps<{ |
|||
fields:any[], |
|||
subFields:any[], |
|||
commitFunc:(fields:{field:string,label:string}[],subs:{table:string,field:string,label:string}[])=>void, |
|||
closeFunc:()=>void, //父级只需销毁组件 |
|||
}>(),{}) |
|||
|
|||
//主表字段 |
|||
const checkList=ref<string[]>([]) |
|||
//子表字段 |
|||
const subCheckList=ref<string[]>([]) |
|||
|
|||
onMounted(()=>{ |
|||
props.fields.forEach((val)=>{ |
|||
if (val.attribute===''){ |
|||
checkList.value.push(val.field) |
|||
} |
|||
}) |
|||
//初始化子表的字段 |
|||
props.subFields.forEach((val)=>{ |
|||
subCheckList.value.push(val.field) |
|||
}) |
|||
}) |
|||
|
|||
function handleData(){ |
|||
const arr:{field:string,label:string}[]=[] |
|||
const sub:{table:string,field:string,label:string}[]=[] |
|||
props.fields.forEach((val)=>{ |
|||
if(checkList.value.includes(val.field)){ |
|||
arr.push(val) |
|||
} |
|||
}) |
|||
|
|||
//收集子表需要导出的字段 |
|||
props.subFields.forEach((val)=>{ |
|||
if(subCheckList.value.includes(val.field)){ |
|||
sub.push(val) |
|||
} |
|||
}) |
|||
props.commitFunc(arr,sub) |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<el-dialog :model-value="true" :style="{height: '60%',width:'60%'}" @close="props.closeFunc"> |
|||
<div style="display: flex; flex-direction:column;width: 80%; height: 60%;margin: 20px;"> |
|||
<h3>请选择主表单导出的字段</h3> |
|||
<el-checkbox-group v-model="checkList"> |
|||
<template v-for="item in props.fields"> |
|||
<el-checkbox v-if="item.attribute===''" :key="item.field" :label="item.label" :value="item.field" /> |
|||
</template> |
|||
</el-checkbox-group> |
|||
|
|||
<div v-if="props.subFields.length>0" style="margin-top: 40px;"> |
|||
<h3>请选择子表导出的字段</h3> |
|||
<el-checkbox-group v-model="subCheckList"> |
|||
<el-checkbox v-for="item in props.subFields" :key="item.field" :label="item.label" :value="item.field" /> |
|||
</el-checkbox-group> |
|||
</div> |
|||
|
|||
</div> |
|||
<el-button type="primary" @click="handleData">导出</el-button> |
|||
</el-dialog> |
|||
</template> |
|||
<style> |
|||
/* dialog的body内容样式设置*/ |
|||
.el-dialog__body{ |
|||
height: 96%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
} |
|||
.el-dialog{ |
|||
/* 让整个弹出窗口位置更高一些*/ |
|||
--el-dialog-margin-top:7vh; |
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,97 @@ |
|||
<script lang="ts" setup> |
|||
|
|||
import { ElDialog } from 'element-plus'; |
|||
|
|||
const props = withDefaults(defineProps<{ |
|||
fields:any[], |
|||
formId:string, |
|||
commitFunc:()=>void, |
|||
closeFunc:()=>void, //父级只需销毁组件 |
|||
}>(),{}) |
|||
|
|||
//主表字段 |
|||
const uploadURL=import.meta.env.VITE_APP_BASE_API+"/systemapi/task_management/import_form_list" |
|||
const checkList=ref<string[]>([]) |
|||
const uploadFormData = computed(() => { |
|||
return { |
|||
formId: props.formId, // 用户的uuid |
|||
} |
|||
}); |
|||
|
|||
onMounted(()=>{ |
|||
props.fields.forEach((val)=>{ |
|||
if (val.item && val.name!=="id"){ |
|||
checkList.value.push(val.name) |
|||
} |
|||
}) |
|||
}) |
|||
|
|||
//上传失败 |
|||
function handleSigLoadErr(error: Error, uploadFile: UploadFile, uploadFiles:UploadFiles){ |
|||
ElMessage.error("导入失败") |
|||
} |
|||
|
|||
function onDownloadTemplate(){ |
|||
//标题行 |
|||
const arr:string[]=[] |
|||
props.fields.forEach((val)=>{ |
|||
if(checkList.value.includes(val.name)){ |
|||
arr.push(`"(${val.name})\n${val.item.label}"`) |
|||
} |
|||
}) |
|||
const filename= "导入模板.csv" |
|||
const csvString = arr.join(','); |
|||
const blob = new Blob([csvString], { type: "text/csv;charset=utf-8;" }); |
|||
const link = document.createElement("a"); |
|||
if (link.download !== undefined) { // feature detection |
|||
// Browsers that support HTML5 download attribute |
|||
const url = URL.createObjectURL(blob); |
|||
link.setAttribute("href", url); |
|||
link.setAttribute("download", filename); |
|||
link.style.visibility = "hidden"; |
|||
document.body.appendChild(link); |
|||
link.click(); |
|||
document.body.removeChild(link); |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<template> |
|||
<el-dialog :model-value="true" :style="{height: '60%',width:'60%'}" @close="props.closeFunc"> |
|||
<h3>请选择导入的字段</h3> |
|||
<div style="display: flex; flex-direction:column;width: 80%; height: 50%;margin-top: 20px;"> |
|||
<el-checkbox-group v-model="checkList"> |
|||
<template v-for="vals in props.fields"> |
|||
<el-checkbox v-if="vals.item && vals.name!=='id'" :key="vals.name" :value="vals.name" > |
|||
{{ vals.item.label }} |
|||
</el-checkbox> |
|||
</template> |
|||
</el-checkbox-group> |
|||
</div> |
|||
<div style="width: 80%;margin: 20px;"> |
|||
* 请下载<a @click="onDownloadTemplate"> 导入模板</a>,不要修改模板的首行标题行。 |
|||
</div> |
|||
<el-upload class="el-button el-button--default" |
|||
:data="uploadFormData" |
|||
accept=".csv,.xls,.xlsx,.XLS,.XLSX" |
|||
:on-error="handleSigLoadErr" |
|||
:on-success="commitFunc" |
|||
:action="uploadURL" :limit="1"> |
|||
<span>导入</span> |
|||
</el-upload> |
|||
</el-dialog> |
|||
</template> |
|||
<style> |
|||
/* dialog的body内容样式设置*/ |
|||
.el-dialog__body{ |
|||
height: 96%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
} |
|||
.el-dialog{ |
|||
/* 让整个弹出窗口位置更高一些*/ |
|||
--el-dialog-margin-top:7vh; |
|||
} |
|||
|
|||
</style> |
|||
Loading…
Reference in new issue