const ns = nameSpace('WaterMarkList');
export const UPDATE_WATER_MARK = ns('UPDATE_WATER_MARK')

export const clickDelete = (id, rowIndex) => ({type: CLICK_DELETE, id, rowIndex});

export function updateWaterMark(param) {
    return dispatch => {
        api({
            method: '/Watermark/updateWaterMark',
            isloading: true,
            mode: 'json',
            args: {
                ...param
            },
            callback: (json) => {
                MsgToast('success', '水印更新成功!', 2000);
                dispatch({
                    type: UPDATE_WATER_MARK,
                    payload: param
                })
            },
            error: (json) => {
                console.error(`出错信息是${json}`);
            },
        });
    }
}

 /**
     * 删除水印
     * @param url
     */
    deleteWaterMarkById = (id, rowIndex) => {
        const { actions } = this.props;
        actions.clickDelete(id, rowIndex);
        actions.deleteWaterMark(id);
    }
    
    export default connect(
    state => state.waterMarkList,
    dispatch => ({ actions: bindActionCreators(actions, dispatch) }),
)(Dimensions({
    getWidth(element) {
        const Width = window.innerWidth < 1200 ? (1120) : (window.innerWidth - 90);
        return Width;
    },
    getHeight() {
        return window.innerHeight - 320;
    },
})(WaterMarkList));

import { DATA_LIST, WATER_MARK_CATEGORY, CHANGE_CATEGORY, HOT_SET, CHANGE_PAGE, CLICK_DELETE, DELETE_WATER_MARK, CANCEL_DELETE ,CHANGE_PLATFROM, UPDATE_WATER_MARK} from './action';
import {isEmpty} from "utils/index";

const initialState = {
    dataList: [],   // 水印信息
    orderBy: 'all',
    categoryList: [], // 水印分类
    categoryId: 'hot',
    pageNo: 1,  // 当前页数
    count: 0,  // 水印个数
    visible: false,  // 确认删除框的显隐
    deleteId: '',  //将要删除的水印id
    deleteRow: '',
};

const waterMarkList = (state = initialState, action) => {
    switch (action.type) {
    
    case CLICK_DELETE:
        return {
            ...state,
            visible: true,
            deleteId: action.id,
            deleteRow: action.rowIndex
        };
    case DELETE_WATER_MARK:
        // 删除水印 截取从0到需要删除的行,再拼接上行数+1到最末尾
        action.dataList = state.dataList.slice(0,state.deleteRow).concat(state.dataList.slice(state.deleteRow + 1));
        return {
            ...state,
            visible: false,
            dataList: action.dataList,
        };
    default:
        return state;
    }
};

export {
    waterMarkList,
}