bugfixed admin-meeting-edit-approval

このコミットが含まれているのは:
dragon1211 2021-11-03 17:47:21 +09:00
コミット 5c061e4f66
2個のファイルの変更193行の追加45行の削除

ファイルの表示

@ -37798,6 +37798,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_toastify_dist_ReactToastify_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-toastify/dist/ReactToastify.css */ "./node_modules/react-toastify/dist/ReactToastify.css");
/* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../component/alert */ "./resources/js/component/alert.jsx");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@ -37866,47 +37872,77 @@ var MeetingEdit = function MeetingEdit(props) {
approval_list = _useState12[0],
setApproval = _useState12[1];
var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState14 = _slicedToArray(_useState13, 2),
children_list = _useState14[0],
setChildren = _useState14[1];
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
title: '',
text: '',
memo: '',
pdf: '',
image: ''
}),
_useState14 = _slicedToArray(_useState13, 2),
_422errors = _useState14[0],
set422Errors = _useState14[1];
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState16 = _slicedToArray(_useState15, 2),
_400error = _useState16[0],
set400Error = _useState16[1];
_422errors = _useState16[0],
set422Errors = _useState16[1];
var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState18 = _slicedToArray(_useState17, 2),
_success = _useState18[0],
setSuccess = _useState18[1];
_400error = _useState18[0],
set400Error = _useState18[1];
var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''),
_useState20 = _slicedToArray(_useState19, 2),
loaded = _useState20[0],
setLoaded = _useState20[1];
_success = _useState20[0],
setSuccess = _useState20[1];
var _useState21 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState22 = _slicedToArray(_useState21, 2),
submit = _useState22[0],
setSubmit = _useState22[1];
loaded = _useState22[0],
setLoaded = _useState22[1];
var _useState23 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),
_useState24 = _slicedToArray(_useState23, 2),
check_radio = _useState24[0],
setCheckRadio = _useState24[1];
submit = _useState24[0],
setSubmit = _useState24[1];
var _useState25 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
var _useState25 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null),
_useState26 = _slicedToArray(_useState25, 2),
selectedIndex = _useState26[0],
setSelectedIndex = _useState26[1];
check_radio = _useState26[0],
setCheckRadio = _useState26[1];
var _useState27 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]),
_useState28 = _slicedToArray(_useState27, 2),
children_temp = _useState28[0],
setChildrenTemp = _useState28[1];
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
if (!loaded) return; //if dont load data
var list = [];
if (check_radio == "false") {
//send all children
list = _toConsumableArray(children_temp);
for (var i = 0; i < list.length; i++) {
list[i].checked = true;
}
} else if (check_radio == "true") {
//send pickup
list = _toConsumableArray(children_temp);
for (var i = 0; i < list.length; i++) {
if (approval_list.findIndex(function (ele) {
return ele.child_id == list[i].child_id;
}) >= 0) list[i].checked = true;else list[i].checked = false;
}
}
setChildrenTemp(list);
}, [check_radio]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
var _props$match$params;
@ -37916,7 +37952,7 @@ var MeetingEdit = function MeetingEdit(props) {
console.log(response.data.params);
if (response.data.status_code == 200) {
var _response$data$params, _response$data$params2, _response$data$params3, _response$data$params4, _response$data$params5, _response$data$params6;
var _response$data$params, _response$data$params2, _response$data$params3, _response$data$params4, _response$data$params5, _response$data$params6, _response$data$params7, _response$data$params8;
setTitle((_response$data$params = response.data.params) === null || _response$data$params === void 0 ? void 0 : _response$data$params.title);
setMemo((_response$data$params2 = response.data.params) === null || _response$data$params2 === void 0 ? void 0 : _response$data$params2.memo);
@ -37924,6 +37960,19 @@ var MeetingEdit = function MeetingEdit(props) {
setMeetingImages((_response$data$params4 = response.data.params) === null || _response$data$params4 === void 0 ? void 0 : _response$data$params4.meeting_image);
setApproval((_response$data$params5 = response.data.params) === null || _response$data$params5 === void 0 ? void 0 : _response$data$params5.approval);
setPdf((_response$data$params6 = response.data.params) === null || _response$data$params6 === void 0 ? void 0 : _response$data$params6.pdf);
setChildren((_response$data$params7 = response.data.params) === null || _response$data$params7 === void 0 ? void 0 : _response$data$params7.children);
var list = _toConsumableArray((_response$data$params8 = response.data.params) === null || _response$data$params8 === void 0 ? void 0 : _response$data$params8.children);
var arr = [];
for (var i = 0; i < list.length; i++) {
arr.push(_objectSpread(_objectSpread({}, list[i]), {}, {
checked: false
}));
}
setChildrenTemp(arr);
} else if (response.data.status_code == 400) {//TODO
}
});
@ -37938,6 +37987,45 @@ var MeetingEdit = function MeetingEdit(props) {
pdf: '',
image: ''
});
var approval_registerIndexes = [];
var approval_deleteIndexes = [];
var _loop = function _loop(i) {
if (children_temp[i].checked) {
if (approval_list.findIndex(function (ele) {
return ele.child_id == children_temp[i].child_id;
}) < 0) approval_registerIndexes.push(children_temp[i].child_id);
}
};
for (var i = 0; i < children_temp.length; i++) {
_loop(i);
}
var _loop2 = function _loop2(_i2) {
if (children_temp.findIndex(function (ele) {
return ele.checked && ele.child_id == approval_list[_i2].child_id;
}) < 0) approval_deleteIndexes.push(approval_list[_i2].child_id);
};
for (var _i2 = 0; _i2 < approval_list.length; _i2++) {
_loop2(_i2);
}
console.log(approval_registerIndexes, approval_deleteIndexes);
var formdata = new FormData();
formdata.append('children', JSON.stringify(approval_registerIndexes));
axios__WEBPACK_IMPORTED_MODULE_1___default().post('/api/admin/meeting/approvals/register', formdata, {
params: {
meeting_id: props.match.params.meeting_id
}
});
axios__WEBPACK_IMPORTED_MODULE_1___default().delete('/api/admin/meeting/approvals/delete', {
params: {
children: approval_deleteIndexes,
meeting_id: props.match.params.meeting_id
}
});
try {
var _props$match$params2;
@ -38009,7 +38097,6 @@ var MeetingEdit = function MeetingEdit(props) {
var reader = new FileReader();
var _file = e.target.files[0];
if (!_file) return;
console.log(_file.name);
reader.readAsDataURL(_file);
reader.onloadend = function () {
@ -38037,8 +38124,11 @@ var MeetingEdit = function MeetingEdit(props) {
});
};
var handleApproval = function handleApproval(e) {
console.log(e.target.value);
var handleCheck = function handleCheck(e, index) {
var list = _toConsumableArray(children_temp);
list[index].checked = e.target.checked;
setChildrenTemp(list);
};
var notify_delete = function notify_delete() {
@ -38266,8 +38356,8 @@ var MeetingEdit = function MeetingEdit(props) {
})]
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "checkbox-wrap edit-bg ".concat((approval_list.length == 0 || check_radio != "true") && 'd-none'),
children: approval_list === null || approval_list === void 0 ? void 0 : approval_list.map(function (item, k) {
className: "checkbox-wrap edit-bg ".concat(check_radio != "true" && 'd-none'),
children: children_list.length != 0 ? children_temp === null || children_temp === void 0 ? void 0 : children_temp.map(function (item, k) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
className: "checkbox",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("label", {
@ -38276,10 +38366,16 @@ var MeetingEdit = function MeetingEdit(props) {
className: "boolean optional",
type: "checkbox",
id: "user_name".concat(k),
onChange: handleApproval
}), "".concat(item.child.first_name, " ").concat(item.child.last_name)]
checked: item.checked,
onChange: function onChange(e) {
return handleCheck(e, k);
}
}), "".concat(item.first_name, " ").concat(item.last_name)]
})
}, k);
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", {
className: "text-center",
children: "\u5B50\u306F\u3042\u308A\u307E\u305B\u3093\u3002"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_10__.default, {
type: "submit",

ファイルの表示

@ -21,6 +21,7 @@ const MeetingEdit = (props) => {
const [pdf, setPdf] = useState('');
const [meeting_image, setMeetingImages] = useState([]);
const [approval_list, setApproval] = useState([]);
const [children_list, setChildren] = useState([]);
const [_422errors, set422Errors] = useState({title:'', text:'', memo:'', pdf:'', image:''})
const [_400error, set400Error] = useState('');
@ -29,8 +30,28 @@ const MeetingEdit = (props) => {
const [loaded, setLoaded] = useState(false);
const [submit, setSubmit] = useState(false);
const [check_radio, setCheckRadio] = useState(false);
const [selectedIndex, setSelectedIndex] = useState([]);
const [check_radio, setCheckRadio] = useState(null);
const [children_temp, setChildrenTemp] = useState([]);
useEffect(()=>{
if(!loaded) return; //if dont load data
var list = [];
if(check_radio=="false"){ //send all children
list = [...children_temp];
for(var i=0; i<list.length; i++)
list[i].checked = true;
}
else if(check_radio=="true"){ //send pickup
list = [...children_temp];
for(var i=0; i<list.length; i++){
if(approval_list.findIndex(ele=>ele.child_id == list[i].child_id) >= 0)
list[i].checked = true;
else list[i].checked = false;
}
}
setChildrenTemp(list);
},[check_radio])
useEffect(() => {
@ -46,6 +67,13 @@ const MeetingEdit = (props) => {
setMeetingImages(response.data.params?.meeting_image);
setApproval(response.data.params?.approval);
setPdf(response.data.params?.pdf);
setChildren(response.data.params?.children);
var list = [...response.data.params?.children];
var arr = [];
for(var i=0; i<list.length; i++){
arr.push({...list[i], checked:false});
}
setChildrenTemp(arr);
}
else if(response.data.status_code==400){
//TODO
@ -57,6 +85,26 @@ const MeetingEdit = (props) => {
const handleSubmit = (e) => {
e.preventDefault();
set422Errors({title:'',memo:'',text:'',pdf:'',image:''});
var approval_registerIndexes = [];
var approval_deleteIndexes = [];
for(let i=0; i<children_temp.length; i++){
if(children_temp[i].checked){
if(approval_list.findIndex(ele=>ele.child_id == children_temp[i].child_id) < 0)
approval_registerIndexes.push(children_temp[i].child_id);
}
}
for(let i=0; i<approval_list.length; i++){
if(children_temp.findIndex(ele=> ele.checked && ele.child_id == approval_list[i].child_id) < 0)
approval_deleteIndexes.push(approval_list[i].child_id);
}
console.log(approval_registerIndexes, approval_deleteIndexes);
const formdata = new FormData();
formdata.append('children', JSON.stringify(approval_registerIndexes));
axios.post('/api/admin/meeting/approvals/register',formdata, {params:{meeting_id: props.match.params.meeting_id}})
axios.delete('/api/admin/meeting/approvals/delete',{params:{children: approval_deleteIndexes, meeting_id: props.match.params.meeting_id}})
try {
const request = { title: title, text: text, memo: memo, pdf: pdf };
setSubmit(true);
@ -101,7 +149,6 @@ const MeetingEdit = (props) => {
let reader = new FileReader();
let _file = e.target.files[0];
if(!_file) return;
console.log(_file.name);
reader.readAsDataURL(_file);
reader.onloadend = () => {
setPdf(reader.result);
@ -118,8 +165,10 @@ const MeetingEdit = (props) => {
})
}
const handleApproval = (e) => {
console.log(e.target.value);
const handleCheck = (e, index) => {
var list = [...children_temp];
list[index].checked = e.target.checked;
setChildrenTemp(list);
}
@ -279,19 +328,22 @@ const MeetingEdit = (props) => {
</label>
</div>
<div className={`checkbox-wrap edit-bg ${(approval_list.length == 0 || check_radio!="true") && 'd-none'}`}>
<div className={`checkbox-wrap edit-bg ${check_radio!="true" && 'd-none'}`}>
{
approval_list?.map((item, k)=>
<div className="checkbox" key={k}>
<label htmlFor={`user_name${k}`}>
<input className="boolean optional"
type="checkbox"
id={`user_name${k}`}
onChange={handleApproval}/>
{`${item.child.first_name} ${item.child.last_name}`}
</label>
</div>
)
children_list.length != 0 ?
children_temp?.map((item, k)=>
<div className="checkbox" key={k}>
<label htmlFor={`user_name${k}`}>
<input className="boolean optional"
type="checkbox"
id={`user_name${k}`}
checked = {item.checked}
onChange={e=>handleCheck(e, k)}/>
{`${item.first_name} ${item.last_name}`}
</label>
</div>
)
: <p className="text-center">子はありません</p>
}
</div>