From 2191824072549f0da35d73686a075e59b0196321 Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期三, 25 九月 2024 15:02:25 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wms-dev' into wms-dev --- zy-asrs-admin/src/views/base/mat/index.vue | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 90 insertions(+), 3 deletions(-) diff --git a/zy-asrs-admin/src/views/base/mat/index.vue b/zy-asrs-admin/src/views/base/mat/index.vue index cb4596f..58d1198 100644 --- a/zy-asrs-admin/src/views/base/mat/index.vue +++ b/zy-asrs-admin/src/views/base/mat/index.vue @@ -3,10 +3,15 @@ import { useRouter } from "vue-router"; import { get, post, postBlob, postForm } 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 { + DownOutlined, + UploadOutlined, + DownloadOutlined, +} from "@ant-design/icons-vue"; const context = getCurrentInstance()?.appContext.config.globalProperties; const router = useRouter(); @@ -15,6 +20,12 @@ let currentPage = 1; let pageSize = 10; const searchInput = ref("") +const searchParam = ref({ + matnr: null, + maktx: null, + specs: null, + model: null, +}) const editChild = ref(null) const state = reactive({ @@ -333,6 +344,7 @@ dataIndex: 'oper', key: 'oper', width: 140, + fixed: 'right', }) state.columns = tmp; @@ -349,7 +361,8 @@ post('/api/mat/page', { current: currentPage, pageSize: pageSize, - condition: searchInput.value + condition: searchInput.value, + _param: searchParam.value, }).then((resp) => { let result = resp.data; if (result.code == 200) { @@ -429,6 +442,45 @@ }) } +const handleSyncMatClick = (e) => { + if (e.key == 'import') { + importTemplate() + } else if (e.key == 'export') { + exportTemplate() + } +} + +const importTemplate = () => { + //瀵煎叆妯℃澘 +} + +const exportTemplate = () => { + //妯℃澘瀵煎嚭 + postBlob('/api/mat/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> @@ -441,9 +493,44 @@ <div> <EditView ref="editChild" @tableReload="handleTableReload" /> <div class="table-header"> - <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')" + <div> + <a-input v-model:value="searchParam.matnr" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ュ晢鍝佺紪鍙�')" + style="width: 140px;margin-right: 10px;" /> + <a-input v-model:value="searchParam.maktx" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ュ晢鍝佸悕绉�')" + style="width: 140px;margin-right: 10px;" /> + <a-input v-model:value="searchParam.specs" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ヨ鏍�')" + style="width: 140px;margin-right: 10px;" /> + <a-input v-model:value="searchParam.model" :placeholder="formatMessage('page.mat.matnr.input', '璇疯緭鍏ュ瀷鍙�')" + style="width: 140px;margin-right: 10px;" /> + + <a-input-search v-model:value="searchInput" :placeholder="formatMessage('page.input', '璇疯緭鍏�')" style="width: 200px;" @search="onSearch" /> + </div> <div class="table-header-right"> + <a-dropdown> + <template #overlay> + <a-menu @click="handleSyncMatClick"> + <a-menu-item key="import"> + <a-upload v-model:file-list="fileList" name="file" action="/api/mat/upload" + @change="handleUploadChange" :showUploadList="false" :headers="{ + Authorization: globalState.token + }"> + <UploadOutlined /> + {{ formatMessage('page.mat.import', '鍟嗗搧瀵煎叆') }} + </a-upload> + </a-menu-item> + + <a-menu-item key="export"> + <DownloadOutlined /> + {{ formatMessage('page.mat.export.template', '瀵煎嚭妯℃澘') }} + </a-menu-item> + </a-menu> + </template> + <a-button> + {{ formatMessage('page.mat.sync', '鏁版嵁鍚屾') }} + <DownOutlined /> + </a-button> + </a-dropdown> <a-button @click="handleEdit(null)" type="primary">{{ formatMessage('page.add', '娣诲姞') }}</a-button> <a-button @click="handleExport">{{ formatMessage('page.export', '瀵煎嚭') }}</a-button> </div> -- Gitblit v1.9.1