| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- import { message } from 'antd'
- import * as service from '../services/index'
- import URLS from '../constants/url'
- export default {
- namespace: 'dataConnect',
- state: {
- list: [],
- newOne: {}
- },
- reducers: {
- testData(state, action) {
- let list = state.list;
- for(let i = 0; i < 4; i++) {
- let newOne = {
- name: 'tttttt'+i,
- type: 'oracle',
- address: '2',
- port: '3',
- userName: '2222',
- password: 'aaaww',
- description: ' dddddddddddddddddddddd'
- };
- newOne.key = new Date().getMilliseconds()+(Math.random()*100).toFixed(0)+i;
- newOne.code = new Date().getMilliseconds()+(Math.random()*100).toFixed(0)+i;
- list.push(newOne);
- }
- return Object.assign({}, state, {list});
- },
- list(state, action) {
- const data = action.data;
- return Object.assign({}, state, {list: data});
- },
- add(state, action) {
- let newOne = Object.assign({}, state.newOne);
- let list = state.list;
- newOne.key = new Date().getMilliseconds()+(Math.random()*100).toFixed(0);
- newOne.code = new Date().getMilliseconds()+(Math.random()*100).toFixed(0);
- list.push(newOne);
- return Object.assign({}, state, {list});
- },
- modify(state, action) {
- const { newOne } = state;
- let list = state.list;
- for(let i = 0; i < list.length; i++) {
- if(list[i].code == newOne.code) {
- list[i] = Object.assign({}, newOne);
- break;
- }
- }
- return Object.assign({}, state, {list});
- },
- delete(state, action) {
- const { model } = action;
- let { list } = state;
- for(let i = 0; i < list.length; i++) {
- if(list[i].code == model.code) {
- list.splice(i, 1);
- }
- }
- return Object.assign({}, state, {list});
- },
- setNewModelField(state, action) {
- const { name, value } = action;
- let newOne = state.newOne;
- newOne[name] = value;
- return Object.assign({}, state, {newOne});
- },
- setNewModel(state, action) {
- const { model } = action;
- let newOne = Object.assign({}, model);
- return Object.assign({}, state, {newOne});
- },
- resetNewModel(state, action) {
- return Object.assign({}, state, {newOne: {}});
- }
- },
- effects: {
- *fetchList(action, { select, call, put, takeEvery, takeLatest }) {
- try {
- const res = yield call(service.fetch, {
- url: URLS.DATACONNECT_LIST,
- body: {}
- });
- let data = res.data.data.map((r, i) => {
- return {
- key: i,
- id: r.id,
- name: r.name,
- dbName: r.dataName,
- dbType: r.databaseType,
- address: r.addrass,
- port: r.port,
- userName: r.userName,
- password: r.passWord,
- description: r.note
- }
- });
- console.log(data);
- yield put({ type: 'list', data });
- }catch(e) {
- message.error(e);
- //yield takeLatest({ type: 'loadList', data: [] });
- }
- },
- *fetchAdd(action, { select, call, put, takeEvery, takeLatest }) {
- const dataConnect = yield select(state => state.present.dataConnect);
- const model = dataConnect.newOne;
- try {
- const res = yield call(service.fetch, {
- url: URLS.DATACONNECT_ADD,
- body: {
- "name": model.name,
- "addrass": model.address,
- "port": model.port,
- "databaseType": model.dbType,
- "dataName": model.dbName,
- "userName": model.userName,
- "passWord": model.password,
- "note": model.description
- }
- });
- yield put({ type: 'add' });
- message.success('新增成功');
- }catch(e) {
- message.error('新增失败');
- //yield takeLatest({ type: 'loadList', data: [] });
- }
- },
- *fetchDelete(action, { select, call, put, takeEvery, takeLatest }) {
- const model = action.model;
- try {
- const res = yield call(service.fetch, {
- url: URLS.DATACONNECT_ADD,
- body: {
- }
- });
- // yield put({ type: 'add' });
- message.success('删除成功');
- }catch(e) {
- message.error('删除失败');
- }
- }
- },
- subscriptions: {
- setup({ dispatch, history }) {
- return history.listen(({ pathname, query }) => {
- if (pathname.startsWith('/datasource')) {
- dispatch({ type: 'fetchList' })
- }
- })
- }
- }
- };
|