Untitled

 avatar
unknown
plain_text
a year ago
5.7 kB
6
Indexable
import T from 'view/js/common';
import { getSvSdhAdmin } from '../fwSinhVienSdh/redux';

const sdhDeTaiAll = 'SdhDeTai:GetAll';
const SdhDeTaiDetail = 'SdhDeTai:Detail';
export default function SdhDeTaiReducer(state = null, data) {
    switch (data.type) {
        case sdhDeTaiAll:
            return Object.assign({}, state, { page: data.payload });
        case SdhDeTaiDetail:
            return Object.assign({}, state, { item: data.payload });
        default:
            return state;
    }
}
export function createSdhDeTai(data, done) {
    const cookie = T.updatePage('SdhDetai', null, null, null, null);
    const { pageNumber, pageSize, pageCondition, filter } = cookie;
    return async dispatch => {
        try {
            const url = '/api/sdh/de-tai';
            let res = await T.async.post(url, { data });
            T.notify('Tạo đề tài thành công!', 'success');
            dispatch(getDeTaiPage(pageNumber, pageSize, pageCondition, filter));
            done && done(res.items);
            return res.items;
        } catch (error) {
            T.notify(`Lỗi tạo mới ${error.message && (':<br>' + error.message)}`, 'danger');
            console.error(error);
        }
    };
}
export function updateSdhDeTai(id, data, done) {
    const cookie = T.updatePage('SdhDetai', null, null, null, null);
    const { pageNumber, pageSize, pageCondition, filter } = cookie;
    return async dispatch => {
        try {
            const url = '/api/sdh/de-tai';
            let res = await T.async.put(url, { id, data });
            T.notify('Cập nhật đề tài thành công!', 'success');
            dispatch(getDeTaiPage(pageNumber, pageSize, pageCondition, filter));
            done && done(res.items);
            return res.items;
        } catch (error) {
            T.notify(`Lỗi tạo mới ${error.message && (':<br>' + error.message)}`, 'danger');
            console.error(error);
        }
    };
}


T.initPage('SdhDetai');
export function getDeTaiPage(pageNumber, pageSize, pageCondition, filter, done) {
    const page = T.updatePage('SdhDetai', pageNumber, pageSize, pageCondition, filter);
    return async dispatch => {
        try {
            const url = `/api/sdh/de-tai/page/${page.pageNumber}/${page.pageSize}`;
            let res = await T.async.get(url, { condition: pageCondition, filter });
            dispatch({ type: sdhDeTaiAll, payload: res.page });
            done && done(res.items);
        }
        catch (error) {
            T.notify(`Lỗi lấy dữ liệu ${error.message && (':<br>' + error.message)}`, 'danger');
            console.error(error);
        }
    };
}

export const SelectAdapter_FwSinhVienSDH = {
    url: '/api/sdh/sinh-vien/page/1/20',
    data: params => ({ condition: params.term }),
    processResults: response => ({
        results: response?.page?.list ? response.page.list.map(item => ({
            id: item.mssv,
            text: `${item.mssv}: ${(item.ho + ' ' + item.ten).normalizedName()}`
        })) : []
    }),
    fetchOne: (mssv, done) => (getSvSdhAdmin(mssv, item => done && done({
        id: item.mssv,
        text: `${item.msvv}: ${(item.ho + ' ' + item.ten).normalizedName()}`
    })))()
};


export const SelectAdapter_FwCbhd = {
    url: '/api/sdh/cbhd/page/1/20',
    data: params => ({ condition: params.term }),
    processResults: response => ({
        results: response?.page?.list ? response.page.list.map(item => ({
            id: `${item.shcc} - ${item.belongTo}`,
            text: `${item.shcc}: ${item.trinhDo ?? ''} ${(item.hoTen).normalizedName()} - (${item.belongTo})`,
            belongTo: `${item.belongTo}`,
            shcc: `${item.shcc}`,
        })) : []
    }),
    fetchOne: (id, done) => (getCbhd(id, item => done && done({
        id: `${item.shcc - item.belongTo}`,
        text: `${item.shcc}: ${(item.ho + ' ' + item.ten).normalizedName()}`,
        belongTo: `${item.belongTo}`,
        shcc: `${item.shcc}`,
    })))()

};
export function getSqdByMssv(mssv) {
    return async dispatch => {
        try {
            const url = `/api/sdh/so-quyet-dinh/${mssv}`;
            let res = await T.async.get(url);
            dispatch({ type: SdhDeTaiDetail, payload: res.items });
        }
        catch (error) {
            T.notify(`Lỗi tạo mới ${error.message && (':<br>' + error.message)}`, 'danger');
            console.error(error);
        }
    };
}

export function getCbhd(shcc, done) {
    const [mscb, belongTo] = shcc.split(' - ');
    console.log(mscb, belongTo);
    return () => {
        const url = `/api/sdh/cbhd/item/${mscb}?belongTo=${belongTo}`;
        T.get(url, data => {
            if (data.error) {
                T.notify('Lấy thông tin cán bộ sau đại học không thành công!', 'danger');
                console.error(`GET: ${url}.`, data.error);
            } else {
                done && done(data.item);
            }
        }, () => T.notify('Lấy cán bộ sau đại học bị lỗi!', 'danger'));
    };
}

// export const SelectAdapter_FwSinhVienSDH = {
//     ajax: true,
//     url: '/api/sdh/sinh-vien/page/1/20',
//     data: params => ({ condition: params.term }),
//     processResults: response => ({
//         results: response?.page?.list ? response.page.list.map(item => ({
//             id: item.mssv,
//             text: `${item.mssv}: ${(item.ho + ' ' + item.ten).normalizedName()}`
//         })) : []
//     }),
//     fetchOne: (mssv, done) => (getSvSdhAdmin(mssv, item => done && done({
//         id: item.mssv,
//         text: `${item.msvv}: ${(item.ho + ' ' + item.ten).normalizedName()}`
//     })))()
// };
Editor is loading...
Leave a Comment