Merge pull request #57 from nakazawakan/frontend

admin/meeting/edit/{meeting_id}を除くAdminのすべてのページのSPAおよびAPI接続の完了。
このコミットが含まれているのは:
chankan77 2021-10-30 16:19:17 +09:00 committed by GitHub
コミット d5866cbfb3
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: 4AEE18F83AFDEB23
12個のファイルの変更175行の追加125行の削除

ファイルの表示

@ -25,7 +25,7 @@ class MeetingFactory extends Factory
'father_id' => 1,
'title' => $this->faker->name,
'text' => $this->faker->realText(49),
'pdf' => $this->faker->url,
'pdf' => "https://crowdworks.jp/attachments/36836755.pdf",
'memo' => $this->faker->realText(49),
'is_favorite' => $this->faker->numberBetween($min=0, $max=1),
'created_at' => $this->faker->dateTime,

ファイルの表示

@ -27971,7 +27971,7 @@ var ChildDetail = function ChildDetail(props) {
var history = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useHistory)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('/assets/img/avatar/avatar-sample03@2x.png'),
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState2 = _slicedToArray(_useState, 2),
image = _useState2[0],
setImage = _useState2[1];
@ -28010,8 +28010,13 @@ var ChildDetail = function ChildDetail(props) {
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState16 = _slicedToArray(_useState15, 2),
_success = _useState16[0],
setSuccess = _useState16[1];
_success_delete = _useState16[0],
setSuccessDelete = _useState16[1];
var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState18 = _slicedToArray(_useState17, 2),
_success_update_image = _useState18[0],
setSuccessUpdateImage = _useState18[1];
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
var _props$match$params;
@ -28021,7 +28026,8 @@ var ChildDetail = function ChildDetail(props) {
setLoaded(true);
if (response.data.status_code == 200) {
setChild(response.data.params[0]);
setChild(response.data.params);
setImage(response.data.params.image);
}
})["catch"](function (err) {
return console.log(err);
@ -28044,7 +28050,7 @@ var ChildDetail = function ChildDetail(props) {
case 200:
{
setImage(reader.result);
setSuccess(response.data.success_messages);
setSuccessUpdateImage(response.data.success_messages);
break;
}
@ -28108,12 +28114,12 @@ var ChildDetail = function ChildDetail(props) {
;
function handleAccept() {
return _handleAccept.apply(this, arguments);
function handleDelete() {
return _handleDelete.apply(this, arguments);
}
function _handleAccept() {
_handleAccept = _asyncToGenerator( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee3() {
function _handleDelete() {
_handleDelete = _asyncToGenerator( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee3() {
var _props$match$params5;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee3$(_context3) {
@ -28127,7 +28133,7 @@ var ChildDetail = function ChildDetail(props) {
setSubmit(false);
if (response.data.status_code == 200) {
setSuccess('削除に成功しました!');
setSuccessDelete('削除に成功しました!');
} else {
set400Error("削除に失敗しました。");
}
@ -28143,7 +28149,7 @@ var ChildDetail = function ChildDetail(props) {
}
}, _callee3);
}));
return _handleAccept.apply(this, arguments);
return _handleDelete.apply(this, arguments);
}
;
@ -28234,7 +28240,7 @@ var ChildDetail = function ChildDetail(props) {
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", {
className: "txt",
children: "(child detail.jsx \u4FEE\u6B63)\u3002"
children: child.identity
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
className: "profile-info__item",
@ -28349,7 +28355,7 @@ var ChildDetail = function ChildDetail(props) {
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_16__.default, {
variant: "text",
onClick: handleAccept,
onClick: handleDelete,
loading: submit,
size: "small",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
@ -28364,7 +28370,7 @@ var ChildDetail = function ChildDetail(props) {
return set400Error('');
},
children: _400error
}), _success && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_3__.default, {
}), _success_delete && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_3__.default, {
type: "success",
hide: function hide() {
return history.push({
@ -28372,7 +28378,13 @@ var ChildDetail = function ChildDetail(props) {
state: {}
});
},
children: _success
children: _success_delete
}), _success_update_image && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_3__.default, {
type: "success",
hide: function hide() {
return setSuccessUpdateImage('');
},
children: _success_update_image
})]
});
};
@ -28434,10 +28446,10 @@ var ChildEdit = function ChildEdit(props) {
last_name = _useState4[0],
setLastName = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(props.match.params.child_id),
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState6 = _slicedToArray(_useState5, 2),
identify = _useState6[0],
setIdentify = _useState6[1];
identity = _useState6[0],
setIdentity = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState8 = _slicedToArray(_useState7, 2),
@ -28457,7 +28469,7 @@ var ChildEdit = function ChildEdit(props) {
var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
first_name: '',
last_name: '',
identify: '',
identity: '',
email: '',
tel: '',
company: ''
@ -28494,15 +28506,15 @@ var ChildEdit = function ChildEdit(props) {
setLoaded(true);
if (response.data.status_code == 200) {
var child = response.data.params[0];
var child = response.data.params;
if (child) {
setFirstName(child === null || child === void 0 ? void 0 : child.first_name);
setLastName(child === null || child === void 0 ? void 0 : child.last_name); // setIdentify(child?.identify);
setEmail(child === null || child === void 0 ? void 0 : child.email);
setTelephone(child === null || child === void 0 ? void 0 : child.tel);
setCompany(child === null || child === void 0 ? void 0 : child.company);
setFirstName(child.first_name);
setLastName(child.last_name);
setIdentity(child.identity);
setEmail(child.email);
setTelephone(child.tel);
setCompany(child.company);
}
}
})["catch"](function (err) {
@ -28517,7 +28529,7 @@ var ChildEdit = function ChildEdit(props) {
set422Errors({
first_name: '',
last_name: '',
identify: '',
identity: '',
email: '',
tel: '',
company: ''
@ -28526,7 +28538,7 @@ var ChildEdit = function ChildEdit(props) {
var request = {
first_name: first_name,
last_name: last_name,
identify: identify,
identity: identity,
email: email,
tel: tel,
company: company
@ -28587,21 +28599,21 @@ var ChildEdit = function ChildEdit(props) {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
className: "edit-set",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", {
htmlFor: "identify",
htmlFor: "identity",
className: "control-label ft-12",
children: " ID "
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", {
type: "text",
name: "identify",
id: "identify",
className: "input-default input-nameSei input-h60 ".concat(_422errors.identify && "is-invalid c-input__target"),
value: identify,
name: "identity",
id: "identity",
className: "input-default input-nameSei input-h60 ".concat(_422errors.identity && "is-invalid c-input__target"),
value: identity,
onChange: function onChange(e) {
return setIdentify(e.target.value);
return setIdentity(e.target.value);
}
}), _422errors.identify && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
}), _422errors.identity && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
className: "l-alert__text--error ft-16 ft-md-14",
children: _422errors.identify
children: _422errors.identity
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
className: "edit-set",
@ -28929,7 +28941,7 @@ var Child = function Child() {
className: "user-avatar",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", {
alt: "name",
className: "avatar-img",
className: "avatar-img rounded-circle",
src: child.image
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
@ -29699,7 +29711,7 @@ var MeetingDetail = function MeetingDetail(props) {
className: "avatar",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("img", {
alt: "name",
className: "avatar-img",
className: "avatar-img rounded-circle",
src: x.child.image
})
})
@ -29903,6 +29915,10 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _mui_icons_material_Remove__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/icons-material/Remove */ "./node_modules/@mui/icons-material/Remove.js");
/* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../component/alert */ "./resources/js/component/alert.jsx");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@ -30057,17 +30073,28 @@ var MeetingEdit = function MeetingEdit(props) {
var reader = new FileReader();
var _file = e.target.files[0];
reader.readAsDataURL(_file);
var formdata = new FormData();
formdata.append('image', reader.result);
reader.onloadend = function () {
var _props$match$params3;
axios__WEBPACK_IMPORTED_MODULE_1___default().put("/api/admin/children/updateImage/".concat((_props$match$params3 = props.match.params) === null || _props$match$params3 === void 0 ? void 0 : _props$match$params3.child_id), {
image: reader.result
axios__WEBPACK_IMPORTED_MODULE_1___default().post("/api/admin/meeting/images/register", {
params: {
meeting_id: props.match.params.meeting_id
}
}).then(function (response) {
switch (response.data.status_code) {
case 200:
{
setImage(reader.result);
setImageUri(reader.result);
var _meeting_image = _toArray(meeting_image),
list = _meeting_image.slice(0);
list.push({
image: reader.result
});
console.log(list);
setMeetingImages(list);
setSuccess(response.data.success_messages);
break;
}
@ -30219,12 +30246,11 @@ var MeetingEdit = function MeetingEdit(props) {
name: "file_image",
accept: ".png, .jpg, .jpeg",
id: "file_image",
value: imageUri,
onChange: handleImageChange
})]
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
className: "p-file-image",
className: "p-file-image justify-content-start",
children: meeting_image === null || meeting_image === void 0 ? void 0 : meeting_image.map(function (x, k) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("figure", {
className: "image-upload",
@ -30644,7 +30670,7 @@ var Meeting = function Meeting() {
className: "avatar",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("img", _defineProperty({
alt: "name",
className: "avatar-img",
className: "avatar-img rounded-circle",
src: x.child.image
}, "alt", x.child.image))
})
@ -30757,7 +30783,7 @@ var ParentDetail = function ParentDetail(props) {
var history = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useHistory)();
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('/assets/img/avatar/avatar-sample03@2x.png'),
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState2 = _slicedToArray(_useState, 2),
image = _useState2[0],
setImage = _useState2[1];
@ -30796,8 +30822,13 @@ var ParentDetail = function ParentDetail(props) {
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState16 = _slicedToArray(_useState15, 2),
_success = _useState16[0],
setSuccess = _useState16[1];
_success_delete = _useState16[0],
setSuccessDelete = _useState16[1];
var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''),
_useState18 = _slicedToArray(_useState17, 2),
_success_update_image = _useState18[0],
setSuccessUpdateImage = _useState18[1];
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
var _props$match$params;
@ -30807,7 +30838,8 @@ var ParentDetail = function ParentDetail(props) {
setLoaded(true);
if (response.data.status_code == 200) {
setParent(response.data.params[0]);
setParent(response.data.params);
setImage(response.data.params.image);
}
})["catch"](function (err) {
return console.log(err);
@ -30830,7 +30862,7 @@ var ParentDetail = function ParentDetail(props) {
case 200:
{
setImage(reader.result);
setSuccess(response.data.success_messages);
setSuccessUpdateImage(response.data.success_messages);
break;
}
@ -30894,12 +30926,12 @@ var ParentDetail = function ParentDetail(props) {
;
function handleAccept() {
return _handleAccept.apply(this, arguments);
function handleDelete() {
return _handleDelete.apply(this, arguments);
}
function _handleAccept() {
_handleAccept = _asyncToGenerator( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee3() {
function _handleDelete() {
_handleDelete = _asyncToGenerator( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().mark(function _callee3() {
var _props$match$params5;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default().wrap(function _callee3$(_context3) {
@ -30913,7 +30945,7 @@ var ParentDetail = function ParentDetail(props) {
setSubmit(false);
if (response.data.status_code == 200) {
setSuccess('削除に成功しました!');
setSuccessDelete('削除に成功しました!');
} else {
set400Error("削除に失敗しました。");
}
@ -30929,7 +30961,7 @@ var ParentDetail = function ParentDetail(props) {
}
}, _callee3);
}));
return _handleAccept.apply(this, arguments);
return _handleDelete.apply(this, arguments);
}
;
@ -31007,7 +31039,7 @@ var ParentDetail = function ParentDetail(props) {
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", {
className: "profile-name ft-xs-14",
children: "".concat(parent.first_name, " ").concat(parent.last_name)
children: parent.company
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
className: "profile-info ft-18 ft-xs-14",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
@ -31117,7 +31149,7 @@ var ParentDetail = function ParentDetail(props) {
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_16__.default, {
variant: "text",
onClick: handleAccept,
onClick: handleDelete,
loading: submit,
size: "small",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
@ -31132,7 +31164,7 @@ var ParentDetail = function ParentDetail(props) {
return set400Error('');
},
children: _400error
}), _success && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_3__.default, {
}), _success_delete && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_3__.default, {
type: "success",
hide: function hide() {
return history.push({
@ -31140,7 +31172,13 @@ var ParentDetail = function ParentDetail(props) {
state: {}
});
},
children: _success
children: _success_delete
}), _success_update_image && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_component_alert__WEBPACK_IMPORTED_MODULE_3__.default, {
type: "success",
hide: function hide() {
return setSuccessUpdateImage('');
},
children: _success_update_image
})]
});
};
@ -31250,8 +31288,7 @@ var ParentEdit = function ParentEdit(props) {
setLoaded(true);
if (response.data.status_code == 200) {
var parent = response.data.params[0];
console.log(parent);
var parent = response.data.params;
if (parent) {
setCompany(parent === null || parent === void 0 ? void 0 : parent.company);
@ -31526,7 +31563,6 @@ var Parent = function Parent() {
setLoaded(false);
axios__WEBPACK_IMPORTED_MODULE_1___default().get('/api/admin/fathers/list').then(function (response) {
if (response.data.status_code == 200) {
console.log(response.data.params);
setFatherList(response.data.params);
}
@ -31642,7 +31678,7 @@ var Parent = function Parent() {
className: "user-avatar",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("img", {
alt: "name",
className: "avatar-img",
className: "avatar-img rounded-circle",
src: father.image
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {

ファイルの表示

@ -28,7 +28,7 @@ const ChildDetail = (props) => {
const history = useHistory();
const [image, setImage] = useState('/assets/img/avatar/avatar-sample03@2x.png');
const [image, setImage] = useState('');
const [open, setOpen] = useState(false);
const [loaded, setLoaded] = useState(false);
const [submit, setSubmit] = useState(false);
@ -36,7 +36,8 @@ const ChildDetail = (props) => {
const [_400error, set400Error] = useState('');
const [_422errors, set422Errors] = useState({ image: '' });
const [_success, setSuccess] = useState('');
const [_success_delete, setSuccessDelete] = useState('');
const [_success_update_image, setSuccessUpdateImage] = useState('');
useEffect(
() => {
@ -46,7 +47,8 @@ const ChildDetail = (props) => {
.then(response => {
setLoaded(true);
if(response.data.status_code==200){
setChild(response.data.params[0]);
setChild(response.data.params);
setImage(response.data.params.image);
}
})
.catch(err=>console.log(err))
@ -69,7 +71,7 @@ const ChildDetail = (props) => {
switch(response.data.status_code){
case 200: {
setImage(reader.result);
setSuccess(response.data.success_messages);
setSuccessUpdateImage(response.data.success_messages);
break;
}
case 400: set400Error(response.data.error_messages); break;
@ -89,7 +91,7 @@ const ChildDetail = (props) => {
setOpen(false);
};
async function handleAccept() {
async function handleDelete() {
try {
setSubmit(true);
axios.delete(`/api/admin/children/delete/${props.match.params?.child_id}`)
@ -97,7 +99,7 @@ const ChildDetail = (props) => {
closeModal();
setSubmit(false);
if(response.data.status_code == 200){
setSuccess('削除に成功しました!');
setSuccessDelete('削除に成功しました!');
} else {
set400Error("削除に失敗しました。");
}
@ -154,10 +156,7 @@ const ChildDetail = (props) => {
<p className="profile-info__icon">
<img src="/assets/img/icon/person-pin.svg" alt="Person"/>
</p>
<p className="txt">
{/* {child.username} */}
(child detail.jsx 修正)
</p>
<p className="txt">{child.identity}</p>
</div>
<div className="profile-info__item">
<a href={`mailto:${child.email}`}>
@ -231,7 +230,7 @@ const ChildDetail = (props) => {
<span className="ft-20 text-black">いいえ</span>
</Button>
<LoadingButton variant="text"
onClick={handleAccept}
onClick={handleDelete}
loading={submit}
size="small">
<span className={`ft-20 ${!submit && 'text-black'}`}>はい</span>
@ -242,13 +241,18 @@ const ChildDetail = (props) => {
_400error && <Alert type="fail" hide={()=>set400Error('')}>{_400error}</Alert>
}
{
_success &&
_success_delete &&
<Alert type="success"
hide={()=>
history.push({
pathname: "/admin/child",
state: {}
})}>{_success}</Alert>
hide={()=>
history.push({
pathname: "/admin/child",
state: {}
})}>{_success_delete}</Alert>
}
{ _success_update_image &&
<Alert type="success" hide={()=>setSuccessUpdateImage('')}>
{_success_update_image}
</Alert>
}
</div>
)

ファイルの表示

@ -13,7 +13,7 @@ const ChildEdit = (props) => {
const [first_name, setFirstName] = useState('');
const [last_name, setLastName] = useState('');
const [identify, setIdentify] = useState(props.match.params.child_id);
const [identity, setIdentity] = useState('');
const [email, setEmail] = useState('');
const [tel, setTelephone] = useState('');
const [company, setCompany] = useState('');
@ -21,7 +21,7 @@ const ChildEdit = (props) => {
const [_422errors, set422Errors] = useState({
first_name:'',
last_name:'',
identify:'',
identity:'',
email:'',
tel:'',
company:''
@ -41,14 +41,14 @@ const ChildEdit = (props) => {
setLoaded(true);
if(response.data.status_code==200)
{
var child = response.data.params[0];
var child = response.data.params;
if(child){
setFirstName(child?.first_name);
setLastName(child?.last_name);
// setIdentify(child?.identify);
setEmail(child?.email);
setTelephone(child?.tel);
setCompany(child?.company);
setFirstName(child.first_name);
setLastName(child.last_name);
setIdentity(child.identity);
setEmail(child.email);
setTelephone(child.tel);
setCompany(child.company);
}
}
})
@ -64,7 +64,7 @@ const ChildEdit = (props) => {
set422Errors({
first_name:'',
last_name:'',
identify:'',
identity:'',
email:'',
tel:'',
company:''
@ -75,7 +75,7 @@ const ChildEdit = (props) => {
var request = {
first_name: first_name,
last_name: last_name,
identify: identify,
identity: identity,
email: email,
tel: tel,
company: company
@ -115,12 +115,12 @@ const ChildEdit = (props) => {
<form onSubmit={handleSubmit} noValidate>
<div className="edit-set">
<label htmlFor="identify" className="control-label ft-12"> ID </label>
<input type="text" name="identify" id="identify" className={`input-default input-nameSei input-h60 ${ _422errors.identify && "is-invalid c-input__target" }`} value={identify} onChange={e=>setIdentify(e.target.value)}/>
<label htmlFor="identity" className="control-label ft-12"> ID </label>
<input type="text" name="identity" id="identity" className={`input-default input-nameSei input-h60 ${ _422errors.identity && "is-invalid c-input__target" }`} value={identity} onChange={e=>setIdentity(e.target.value)}/>
{
_422errors.identify &&
_422errors.identity &&
<span className="l-alert__text--error ft-16 ft-md-14">
{ _422errors.identify }
{ _422errors.identity }
</span>
}
</div>

ファイルの表示

@ -98,7 +98,7 @@ const Child = () => {
<Link to = {`/admin/child/detail/${child.id}`}>
<div className="user-wrap">
<div className="user-avatar">
<img alt="name" className="avatar-img" src={ child.image } />
<img alt="name" className="avatar-img rounded-circle" src={ child.image } />
</div>
<div className="user-info">
<p className="user-name mb-1 font-weight-bold">{ child.last_name } { child.first_name }</p>

ファイルの表示

@ -130,7 +130,7 @@ const MeetingDetail = (props) => {
meeting.approval?.map((x, k)=>
<li className="meeting-member__item" role="listitem" key={k}>
<div className="avatar">
<img alt="name" className="avatar-img" src={x.child.image} />
<img alt="name" className="avatar-img rounded-circle" src={x.child.image} />
</div>
</li>
)

ファイルの表示

@ -77,13 +77,20 @@ const MeetingEdit = (props) => {
reader.readAsDataURL(_file);
const formdata = new FormData();
formdata.append('image', reader.result);
reader.onloadend = () => {
axios.put(`/api/admin/children/updateImage/${props.match.params?.child_id}`, {image: reader.result})
axios.post(`/api/admin/meeting/images/register`, {params:{meeting_id: props.match.params.meeting_id}})
.then(response => {
switch(response.data.status_code){
case 200: {
setImage(reader.result);
setImageUri(reader.result);
var [...list] = meeting_image;
list.push({image: reader.result});
console.log(list);
setMeetingImages(list);
setSuccess(response.data.success_messages);
break;
}
@ -174,11 +181,11 @@ const MeetingEdit = (props) => {
<div className="edit-set edit-set-mt15">
<label className="edit-set-file-label" htmlFor="file_image">
画像アップロード
<input type="file" name="file_image" accept=".png, .jpg, .jpeg" id="file_image" value={imageUri} onChange={handleImageChange}/>
<input type="file" name="file_image" accept=".png, .jpg, .jpeg" id="file_image" onChange={handleImageChange}/>
</label>
</div>
<div className="p-file-image">
<div className="p-file-image justify-content-start">
{
meeting_image?.map((x, k)=>
<figure className="image-upload" key={k}>

ファイルの表示

@ -148,7 +148,7 @@ const Meeting = () => {
item.approval?.map((x, kj)=>
<li className="meeting-member__item" role="listitem" key={kj}>
<div className="avatar">
<img alt="name" className="avatar-img" src={x.child.image} alt={x.child.image} />
<img alt="name" className="avatar-img rounded-circle" src={x.child.image} alt={x.child.image} />
</div>
</li>
)

ファイルの表示

@ -28,7 +28,7 @@ const ParentDetail = (props) => {
const history = useHistory();
const [image, setImage] = useState('/assets/img/avatar/avatar-sample03@2x.png');
const [image, setImage] = useState('');
const [open, setOpen] = useState(false);
const [loaded, setLoaded] = useState(false);
const [submit, setSubmit] = useState(false);
@ -36,7 +36,8 @@ const ParentDetail = (props) => {
const [_400error, set400Error] = useState('');
const [_422errors, set422Errors] = useState({image: ''});
const [_success, setSuccess] = useState('');
const [_success_delete, setSuccessDelete] = useState('');
const [_success_update_image, setSuccessUpdateImage] = useState('');
useEffect(
() => {
@ -46,7 +47,8 @@ const ParentDetail = (props) => {
.then(response => {
setLoaded(true);
if(response.data.status_code==200){
setParent(response.data.params[0]);
setParent(response.data.params);
setImage(response.data.params.image);
}
})
.catch(err=>console.log(err))
@ -69,7 +71,7 @@ const ParentDetail = (props) => {
switch(response.data.status_code){
case 200: {
setImage(reader.result);
setSuccess(response.data.success_messages);
setSuccessUpdateImage(response.data.success_messages);
break;
}
case 400: set400Error(response.data.error_messages); break;
@ -89,7 +91,7 @@ const ParentDetail = (props) => {
setOpen(false);
};
async function handleAccept() {
async function handleDelete() {
try {
setSubmit(true);
axios.delete(`/api/admin/fathers/delete/${props.match.params?.father_id}`)
@ -97,7 +99,7 @@ const ParentDetail = (props) => {
closeModal();
setSubmit(false);
if(response.data.status_code == 200){
setSuccess('削除に成功しました!');
setSuccessDelete('削除に成功しました!');
} else {
set400Error("削除に失敗しました。");
}
@ -148,7 +150,7 @@ const ParentDetail = (props) => {
</span>
}
</div>
<p className="profile-name ft-xs-14">{`${parent.first_name} ${parent.last_name}`}</p>
<p className="profile-name ft-xs-14">{parent.company}</p>
<div className="profile-info ft-18 ft-xs-14">
<div className="profile-info__item">
<a href={`mailto:${parent.email}`}>
@ -219,7 +221,7 @@ const ParentDetail = (props) => {
<span className="ft-20 text-black">いいえ</span>
</Button>
<LoadingButton variant="text"
onClick={handleAccept}
onClick={handleDelete}
loading={submit}
size="small">
<span className={`ft-20 ${!submit && 'text-black'}`}>はい</span>
@ -230,13 +232,18 @@ const ParentDetail = (props) => {
_400error && <Alert type="fail" hide={()=>set400Error('')}>{_400error}</Alert>
}
{
_success &&
_success_delete &&
<Alert type="success"
hide={()=>
history.push({
pathname: "/admin/parent",
state: {}
})}>{_success}</Alert>
hide={()=>
history.push({
pathname: "/admin/parent",
state: {}
})}>{_success_delete}</Alert>
}
{ _success_update_image &&
<Alert type="success" hide={()=>setSuccessUpdateImage('')}>
{_success_update_image}
</Alert>
}
</div>
)

ファイルの表示

@ -39,8 +39,7 @@ const ParentEdit = (props) => {
setLoaded(true);
if(response.data.status_code==200)
{
var parent = response.data.params[0];
console.log(parent)
var parent = response.data.params;
if(parent){
setCompany(parent?.company);
setEmail(parent.email);

ファイルの表示

@ -20,7 +20,6 @@ const Parent = () => {
axios.get('/api/admin/fathers/list')
.then((response) => {
if(response.data.status_code==200){
console.log(response.data.params)
setFatherList(response.data.params);
}
setLoaded(true);
@ -97,7 +96,7 @@ const Parent = () => {
<Link to = {`/admin/parent/detail/${father.id}`}>
<div className="user-wrap">
<div className="user-avatar">
<img alt="name" className="avatar-img" src={ father.image } />
<img alt="name" className="avatar-img rounded-circle" src={ father.image } />
</div>
<div className="user-info">
<p className="user-name mb-1 font-weight-bold">{ father.company }</p>

ファイルの表示

@ -1,2 +0,0 @@
*
!.gitignore