| | |
| | | import { useRouter } from "vue-router"; |
| | | import { get, post, postBlob } from '@/utils/request.js' |
| | | import { message, Modal } from 'ant-design-vue'; |
| | | import { logout } from '@/config.js'; |
| | | import { globalState, logout } from '@/config.js'; |
| | | import EditView from './edit.vue' |
| | | import { formatMessage } from '@/utils/localeUtils.js'; |
| | | import useTableSearch from '@/utils/tableUtils.jsx'; |
| | | import GenerateTaskView from '@/components/task/generateTask/index.vue'; |
| | | import { |
| | | DownOutlined, |
| | | UploadOutlined, |
| | | DownloadOutlined, |
| | | } from "@ant-design/icons-vue"; |
| | | const context = getCurrentInstance()?.appContext.config.globalProperties; |
| | | |
| | | const router = useRouter(); |
| | |
| | | generateTaskChild.value.open = true; |
| | | } |
| | | |
| | | const handleSyncOrderClick = (e) => { |
| | | if (e.key == 'import') { |
| | | importTemplate() |
| | | } else if (e.key == 'export') { |
| | | exportTemplate() |
| | | } |
| | | } |
| | | |
| | | const importTemplate = () => { |
| | | //导入模板 |
| | | } |
| | | |
| | | const exportTemplate = () => { |
| | | //模板导出 |
| | | postBlob('/api/waitPakin/exportTemplate', {}).then(result => { |
| | | const blob = new Blob([result.data], { type: 'application/vnd.ms-excel' }); |
| | | window.location.href = window.URL.createObjectURL(blob); |
| | | return true; |
| | | }) |
| | | } |
| | | |
| | | const fileList = ref([]); |
| | | const handleUploadChange = info => { |
| | | if (info.file.status !== 'uploading') { |
| | | // console.log(info.file, info.fileList); |
| | | } |
| | | if (info.file.status === 'done') { |
| | | let result = info.file.response; |
| | | if(result.code == 200) { |
| | | message.success(`${info.file.name} ${formatMessage('page.upload.success', '上传成功')}`); |
| | | getPage() |
| | | }else { |
| | | message.error(result.msg); |
| | | } |
| | | } else if (info.file.status === 'error') { |
| | | message.error(`${info.file.name} file upload failed.`); |
| | | } |
| | | }; |
| | | |
| | | </script> |
| | | |
| | | <script> |
| | |
| | | <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '请输入')" |
| | | style="width: 200px;" @search="onSearch" /> |
| | | <div class="table-header-right"> |
| | | <a-dropdown> |
| | | <template #overlay> |
| | | <a-menu @click="handleSyncOrderClick"> |
| | | <a-menu-item key="import"> |
| | | <a-upload v-model:file-list="fileList" name="file" action="/api/waitPakin/upload" |
| | | @change="handleUploadChange" :showUploadList="false" :headers="{ |
| | | Authorization: globalState.token |
| | | }"> |
| | | <UploadOutlined /> |
| | | {{ formatMessage('page.waitPakin.import', '组托导入') }} |
| | | </a-upload> |
| | | </a-menu-item> |
| | | |
| | | <a-menu-item key="export"> |
| | | <DownloadOutlined /> |
| | | {{ formatMessage('page.waitPakin.export.template', '导出模板') }} |
| | | </a-menu-item> |
| | | </a-menu> |
| | | </template> |
| | | <a-button> |
| | | {{ formatMessage('page.waitPakin.sync', '组托同步') }} |
| | | <DownOutlined /> |
| | | </a-button> |
| | | </a-dropdown> |
| | | <a-button @click="generateTask()" type="primary">{{ formatMessage('page.generateTask', '生成任务') }}</a-button> |
| | | <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '添加') }}</a-button> |
| | | <a-button @click="handleExport">{{ formatMessage('page.export', '导出') }}</a-button> |