<template>
|
<BasicModal width="1200px" :height=600 v-bind="$attrs" ok-text="保存" @register="register" :title="t('导入工单料站表')"
|
@ok="handleSubmit">
|
<ImpExcel style="width: 100px;" @success="loadDataSuccess" dateFormat="YYYY-MM-DD">
|
<a-button class="m-3"> 导入Excel </a-button>
|
|
</ImpExcel>
|
<p style="color: red;" v-text="err"></p>
|
<a-card :title="t('列表')" :bordered="false" class="!mt-5">
|
<div>
|
<!-- :columns="dtlColumns"
|
:dataSource="data" -->
|
<PageWrapper dense contentFullHeight contentClass="flex">
|
<BasicTable v-for="(table, index) in tableListRef" :key="index" :title="table.title" :columns="table.columns"
|
:dataSource="table.dataSource" />
|
</PageWrapper>
|
</div>
|
</a-card>
|
</BasicModal>
|
</template>
|
<script lang="ts">
|
import { defineComponent, ref, nextTick, unref } from 'vue';
|
import { BasicModal, useModalInner } from '/@/components/Modal';
|
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
|
import { SaveSmttable, ExportTable,SaveExportTable } from '/@/api/tigerapi/mes/smt/smttable';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useLocale } from '/@/locales/useLocale';
|
import { PageWrapper } from '/@/components/Page';
|
import { ImpExcel, ExcelData } from '/@/components/Excel';
|
import { BasicTable, BasicColumn } from '/@/components/Table';
|
|
const { getLocale } = useLocale();
|
|
const { t } = useI18n('');
|
const { createMessage } = useMessage();
|
export default defineComponent({
|
components: { BasicModal, BasicForm, PageWrapper, ImpExcel,BasicTable },
|
props: {
|
userData: { type: Object },
|
},
|
emit: ['success', 'register'],
|
setup(_, { emit }) {
|
const modelRef = ref({});
|
const tableListRef = ref<
|
{
|
title: string;
|
columns?: any[];
|
dataSource?: any[];
|
}[]
|
>([]);
|
|
const tableListRef2 = ref<
|
{
|
title: string;
|
columns?: any[];
|
dataSource?: any[];
|
}[]
|
>([]);
|
|
const [register, { setModalProps, closeModal }] = useModalInner((data) => {
|
setModalProps({ confirmLoading: false });
|
tableListRef.value = [];
|
});
|
var err=ref('');
|
async function loadDataSuccess(excelDataList: ExcelData[]) {
|
tableListRef.value = [];
|
|
for (const excelData of excelDataList) {
|
const {
|
header,
|
results,
|
meta: { sheetName },
|
} = excelData;
|
const columns: BasicColumn[] = [];
|
columns.push({title:"处理方式",dataIndex:"处理方式"});
|
columns.push({title:'原因',dataIndex:'原因'})
|
for (const title of header) {
|
columns.push({ title, dataIndex: title });
|
}
|
tableListRef.value.push({ title: sheetName, dataSource: results, columns });
|
}
|
console.log('console.log(tableListRef.value);',tableListRef.value);
|
var res=await ExportTable(tableListRef.value)
|
if(res.IsSuccessed){
|
tableListRef.value[0].dataSource=res.Data
|
err.value='';
|
}else{
|
tableListRef.value = [];
|
createMessage.error('导入失败'+res.Message);
|
err.value=res.Message;
|
}
|
|
}
|
|
// function handleVisibleChange(v) {
|
// v && props.userData && nextTick(() => onDataReceive(props.userData));
|
// }
|
|
async function handleSubmit() {
|
try {
|
const values = tableListRef.value;
|
setModalProps({ confirmLoading: true });
|
// TODO custom api
|
//添加锡膏胶水记录
|
const apiAction = SaveExportTable(tableListRef.value);
|
apiAction.then((action) => {
|
if (action) {
|
if (action.IsSuccessed) {
|
closeModal();
|
createMessage.success(t('导入成功'));
|
emit('success', {
|
isUpdate: unref(false),
|
values: { ...values, id: 0 },
|
});
|
}
|
} else {
|
createMessage.error(t('导入失败,代码已使用'));
|
}
|
});
|
} finally {
|
setModalProps({ confirmLoading: false });
|
}
|
}
|
|
return { register, model: modelRef, handleSubmit, loadDataSuccess, tableListRef,err,t };
|
},
|
});
|
</script>
|