| | |
| | | import { useCallback, useMemo } from 'react'; |
| | | import { useDataProvider, useGetIdentity } from 'react-admin'; |
| | | import request from '@/utils/request'; |
| | | |
| | | export function useCodeImport() { |
| | |
| | | label="common.action.import.download" |
| | | color="info" |
| | | to={importTemp} |
| | | download={'crm_contacts_sample.csv'} |
| | | download={'import_template.csv'} |
| | | /> |
| | | } |
| | | > |
| | |
| | | import MyField from "../components/MyField"; |
| | | import { PAGE_DRAWER_WIDTH, OPERATE_MODE } from '@/config/setting'; |
| | | import * as Common from '@/utils/common'; |
| | | import ImportButton from '../components/ImportButton' |
| | | import { useRouteImport } from './useRouteImport'; |
| | | |
| | | import * as importTemp from './importTemp.csv?raw'; |
| | | const IMPORT_TEMP_URL = `data:text/csv;name=crm_contacts_sample.csv;charset=utf-8,${encodeURIComponent(importTemp.default)}`; |
| | | |
| | | const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ |
| | | '& .css-1vooibu-MuiSvgIcon-root': { |
| | |
| | | <FilterButton /> |
| | | <MyCreateButton onClick={() => { setCreateDialog(true) }} /> |
| | | <SelectColumnsButton preferenceKey='route' /> |
| | | <ImportButton importTemp={IMPORT_TEMP_URL} useCodeImport={useRouteImport} onceBatch={10} /> |
| | | <MyExportButton /> |
| | | </TopToolbar> |
| | | )} |
New file |
| | |
| | | start_code,end_code,distance,"direction(0:无序,1:正向,2:反向)" |
New file |
| | |
| | | import { useCallback, useMemo } from 'react'; |
| | | import request from '@/utils/request'; |
| | | |
| | | export function useRouteImport() { |
| | | |
| | | const processBatch = useCallback(async (batch) => { |
| | | const res = await request.post('/route/import', batch); |
| | | const { code, msg, data } = res.data; |
| | | if (code === 200) { |
| | | |
| | | } else { |
| | | console.error(msg); |
| | | throw new Error(`Batch import failed: ${msg}`); |
| | | } |
| | | }, []); |
| | | |
| | | return { |
| | | processBatch, |
| | | }; |
| | | } |
| | |
| | | @PreAuthorize("hasAuthority('manager:code:save')") |
| | | @PostMapping("/code/import") |
| | | public R importBatch(@RequestBody List<Map<String, Object>> list) { |
| | | Date now = new Date(); |
| | | Long userId = getLoginUserId(); |
| | | Date now = new Date(); Long userId = getLoginUserId(); |
| | | for (Map<String, Object> map : list) { |
| | | Code code = Cools.conver(map, Code.class); |
| | | if (null != codeService.selectByData(code.getData())) { |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.acs.framework.common.Cools; |
| | | import com.zy.acs.framework.common.R; |
| | | import com.zy.acs.manager.common.utils.ExcelUtil; |
| | | import com.zy.acs.manager.common.annotation.OperationLog; |
| | | import com.zy.acs.manager.common.domain.BaseParam; |
| | | import com.zy.acs.manager.common.domain.KeyValVo; |
| | | import com.zy.acs.manager.common.domain.PageParam; |
| | | import com.zy.acs.manager.common.utils.ExcelUtil; |
| | | import com.zy.acs.manager.manager.entity.Route; |
| | | import com.zy.acs.manager.manager.service.RouteService; |
| | | import com.zy.acs.manager.system.controller.BaseController; |
| | |
| | | ExcelUtil.build(ExcelUtil.create(routeService.list(), Route.class), response); |
| | | } |
| | | |
| | | @PreAuthorize("hasAuthority('manager:route:save')") |
| | | @PostMapping("/route/import") |
| | | public R importBatch(@RequestBody List<Map<String, Object>> list) { |
| | | Date now = new Date(); Long userId = getLoginUserId(); |
| | | for (Map<String, Object> map : list) { |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | } |