From 8e058ad522772460a6964a4ba49002363e1e4d1a Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 08 十一月 2024 13:23:23 +0800 Subject: [PATCH] # --- zy-acs-flow/src/i18n/core/chineseMessages.js | 2 zy-acs-flow/src/page/loc/LocList.jsx | 3 - zy-acs-flow/src/config/MyDataProvider.js | 13 +++ zy-acs-flow/src/page/loc/BulkUpdateButton.jsx | 129 ++++++++++++++++++++++++++++-------------- zy-acs-flow/src/map/player.js | 8 +- 5 files changed, 102 insertions(+), 53 deletions(-) diff --git a/zy-acs-flow/src/config/MyDataProvider.js b/zy-acs-flow/src/config/MyDataProvider.js index 0e453d6..0b515d2 100644 --- a/zy-acs-flow/src/config/MyDataProvider.js +++ b/zy-acs-flow/src/config/MyDataProvider.js @@ -89,8 +89,17 @@ // update a list of records based on an array of ids and a common patch updateMany: async (resource, params) => { console.log("updateMany", resource, params); - - return Promise.resolve(); + const res = await request.post( + resource + '/update/many' + , params.ids.map(id => ({ id, ...params.data })) + ); + const { code, msg, data } = res.data; + if (code === 200) { + return Promise.resolve({ + data: data, + }); + } + return Promise.reject(new Error(msg)); }, // delete a record by id diff --git a/zy-acs-flow/src/i18n/core/chineseMessages.js b/zy-acs-flow/src/i18n/core/chineseMessages.js index 81ed6f7..f6eafa3 100644 --- a/zy-acs-flow/src/i18n/core/chineseMessages.js +++ b/zy-acs-flow/src/i18n/core/chineseMessages.js @@ -32,7 +32,7 @@ close: '鍏抽棴', open_menu: 'Open menu', close_menu: 'Close menu', - update: 'Update', + update: '淇敼', move_up: 'Move up', move_down: 'Move down', open: 'Open', diff --git a/zy-acs-flow/src/map/player.js b/zy-acs-flow/src/map/player.js index 2f8b87d..8aff09e 100644 --- a/zy-acs-flow/src/map/player.js +++ b/zy-acs-flow/src/map/player.js @@ -238,7 +238,7 @@ const newRotation = this.mapContainer.rotation + value; const rotationDegrees = (newRotation * 180 / Math.PI) % 360; - this.rotationText.text = `{ rotation: ${rotationDegrees.toFixed(1)}掳 }`; + this.rotationText.text = `{ ROTATION: ${rotationDegrees.toFixed(1)}掳 }`; new TWEEDLE.Tween(this.mapContainer) .to({ rotation: newRotation }, 200) @@ -250,7 +250,7 @@ } showCoordinates = () => { - this.coordinatesText = new PIXI.Text('{ x: 0, y: 0 }', { + this.coordinatesText = new PIXI.Text('{ X: 0, Y: 0 }', { fill: this.themeMode === 'dark' ? 0xdddddd : 0x333333, fontSize: 13, fontFamily: 'Microsoft YaHei', @@ -260,7 +260,7 @@ this.coordinatesText.position.set(10, 10); this.app.stage.addChild(this.coordinatesText); - this.rotationText = new PIXI.Text('Rotation: 0掳', { + this.rotationText = new PIXI.Text('ROTATION: 0掳', { fill: this.themeMode === 'dark' ? 0xdddddd : 0x333333, fontSize: 13, fontFamily: 'Microsoft YaHei', @@ -272,7 +272,7 @@ this.app.stage.on('pointermove', (event) => { const worldPos = event.data.getLocalPosition(this.mapContainer); - this.coordinatesText.text = `{ x: ${worldPos.x.toFixed(2)}, y: ${worldPos.y.toFixed(2)} }`; + this.coordinatesText.text = `{ X: ${worldPos.x.toFixed(2)}, Y: ${worldPos.y.toFixed(2)} }`; }); } diff --git a/zy-acs-flow/src/page/loc/BulkUpdateButton.jsx b/zy-acs-flow/src/page/loc/BulkUpdateButton.jsx index 15cf7f9..bfe5f0e 100644 --- a/zy-acs-flow/src/page/loc/BulkUpdateButton.jsx +++ b/zy-acs-flow/src/page/loc/BulkUpdateButton.jsx @@ -1,19 +1,33 @@ -// src/components/BulkUpdateButton.js import React, { useState } from 'react'; -import { useUpdateMany, useRefresh, useNotify, useUnselectAll, Button as RaButton } from 'react-admin'; -import { Dialog, DialogActions, DialogContent, DialogTitle, TextField, Select, MenuItem } from '@mui/material'; +import { + useUpdateMany, + useRefresh, + useNotify, + useListContext, + useUnselectAll, + Button as RaButton, + Form, + ReferenceInput, + AutocompleteInput, + NumberInput, + TextInput, + useTranslate, +} from 'react-admin'; +import { Dialog, DialogActions, DialogContent, DialogTitle, Grid, Stack, Divider } from '@mui/material'; import UpdateIcon from '@mui/icons-material/Update'; +import MemoInput from "../components/MemoInput"; +import ContentSave from '@mui/icons-material/Save'; +import CloseIcon from '@mui/icons-material/Close'; -const BulkUpdateButton = ({ selectedIds, resource, label }) => { - console.log('BulkUpdateButton rendered with selectedIds:', selectedIds); - +const BulkUpdateButton = ({ resource, label = 'ra.action.update', ...rest }) => { const [open, setOpen] = useState(false); const [formData, setFormData] = useState({}); - // Hooks 璋冪敤椤哄簭璋冩暣 const refresh = useRefresh(); const notify = useNotify(); + const translate = useTranslate(); const unselectAll = useUnselectAll(resource); + const { selectedIds, onUnselectItems } = useListContext(); const [updateMany, { loading }] = useUpdateMany( resource, @@ -22,11 +36,11 @@ onSuccess: () => { setOpen(false); refresh(); - notify('鎵归噺鏇存柊鎴愬姛', { type: 'success' }); + notify('common.response.success', { type: 'info' }); unselectAll(); }, onError: (error) => { - notify(`鎵归噺鏇存柊澶辫触: ${error.message}`, { type: 'warning' }); + notify(error.msg || 'common.response.fail', { type: 'error' }); } } ); @@ -43,49 +57,78 @@ }; const handleSubmit = () => { + console.log(formData); updateMany(); }; return ( <> - <RaButton onClick={handleOpen} startIcon={<UpdateIcon />} label={label || '鎵归噺淇敼'}> - {/* 濡傛灉浣跨敤 React-Admin 鐨� Button锛屽彲浠ョ渷鐣ュ瓙鑺傜偣 */} - </RaButton> + <RaButton onClick={handleOpen} startIcon={<UpdateIcon />} label={label} /> <Dialog open={open} onClose={handleClose}> - <DialogTitle>鎵归噺淇敼</DialogTitle> + <DialogTitle>{translate('ra.action.update')}</DialogTitle> <DialogContent> - {/* 浣跨敤 Select 缁勪欢闄愬埗鐘舵�佸�� */} - <Select - margin="dense" - name="status" - label="鐘舵��" - fullWidth - variant="standard" - onChange={handleChange} - defaultValue="" - > - <MenuItem value=""> - <em>鏃�</em> - </MenuItem> - <MenuItem value="1">鍚敤</MenuItem> - <MenuItem value="0">绂佺敤</MenuItem> - </Select> - <TextField - margin="dense" - name="memo" - label="澶囨敞" - type="text" - fullWidth - variant="standard" - onChange={handleChange} - /> + <Form> + <Grid container rowSpacing={2} columnSpacing={2}> + <Grid item xs={6} display="flex" gap={1}> + <ReferenceInput + source="code" + reference="code" + > + <AutocompleteInput + label="table.field.loc.code" + optionText="data" + filterToQuery={(val) => ({ data: val })} + /> + </ReferenceInput> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <ReferenceInput + source="locSts" + reference="locSts" + > + <AutocompleteInput + label="table.field.loc.locSts" + optionText="name" + filterToQuery={(val) => ({ name: val })} + /> + </ReferenceInput> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <NumberInput + label="table.field.loc.offset" + source="offset" + /> + </Grid> + <Grid item xs={12} display="flex" gap={1}> + <Stack direction="column" spacing={1} width={'100%'}> + <MemoInput /> + </Stack> + </Grid> + </Grid> + </Form> </DialogContent> - <DialogActions> - <RaButton onClick={handleClose} color="primary"> - 鍙栨秷 + <Divider sx={{ mb: 1 }} /> + <DialogActions sx={{ mb: 1 }}> + <RaButton + onClick={handleClose} + variant="contained" + color="inherit" + size='large' + label='ra.action.cancel' + sx={{ mr: 1 }} + > + <CloseIcon /> </RaButton> - <RaButton onClick={handleSubmit} color="primary" disabled={loading}> - 纭 + <RaButton + onClick={handleSubmit} + variant="contained" + color="primary" + size='large' + label='ra.action.save' + disabled={loading} + sx={{ mr: 1 }} + > + <ContentSave /> </RaButton> </DialogActions> </Dialog> diff --git a/zy-acs-flow/src/page/loc/LocList.jsx b/zy-acs-flow/src/page/loc/LocList.jsx index 980a84d..d06d296 100644 --- a/zy-acs-flow/src/page/loc/LocList.jsx +++ b/zy-acs-flow/src/page/loc/LocList.jsx @@ -101,14 +101,11 @@ ] const LocBulkActionButtons = (props) => { - const translate = useTranslate(); - return ( <> <BulkUpdateButton {...props} resource="loc" - label={translate('ra.action.update')} /> <BulkDeleteButton mutationMode={OPERATE_MODE} /> </> -- Gitblit v1.9.1