Browse Source

抽离数据库连接配置校验的action

zhuth 7 years ago
parent
commit
38080c070b
1 changed files with 52 additions and 71 deletions
  1. 52 71
      src/models/dataConnect.js

+ 52 - 71
src/models/dataConnect.js

@@ -124,7 +124,7 @@ export default {
                 console.log(e);
             }
         },
-        *remoteAdd(action, { select, call, put, takeEvery, takeLatest }) {
+        *remoteValidate(action, { select, call, put, takeEvery, takeLatest }) {
             const dataConnect = yield select(state => state.present.dataConnect);
             const model = dataConnect.newOne;
             try {
@@ -152,94 +152,75 @@ export default {
                     // 如果合法
                     // 设置valid为true
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: false });
-                    // 继续执行保存
-                    let 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
-                    }
-                    const res = yield call(service.fetch, {
-                        url: URLS.DATACONNECT_ADD,
-                        body: body
-                    });
-                    if(!res.err && res.data.code > 0) {
-                        yield put({ type: 'add' });
-                        yield put({ type: 'setNewModelField', name: 'visibleBox', value: false });
-                        message.success('新增成功');
-                    }else {
-                        message.error('新增失败');
-                    }
                 }else {
                     yield put({ type: 'setNewModelInvalid', name: 'invalid', value: true });
                 }
-                
+            }catch(e) {
+                console.log(e);
+            }
+        },
+        *remoteAdd(action, { select, call, put, takeEvery, takeLatest }) {
+            const dataConnect = yield select(state => state.present.dataConnect);
+            const model = dataConnect.newOne;
+            try {
+                let 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
+                }
+                const res = yield call(service.fetch, {
+                    url: URLS.DATACONNECT_ADD,
+                    body: body
+                });
+                if(!res.err && res.data.code > 0) {
+                    yield put({ type: 'add' });
+                    yield put({ type: 'setNewModelField', name: 'visibleBox', value: false });
+                    message.success('新增成功');
+                }else {
+                    message.error('新增失败');
+                }
             }catch(e) {
                 console.log(e);
             }
         },
         *remoteModify(action, { select, call, put }) {
+            const dataConnect = yield select(state => state.present.dataConnect);
+            let model = dataConnect.newOne;
+            const code = action.code;
+            let list = dataConnect.list;
             try{
-                const dataConnect = yield select(state => state.present.dataConnect);
-                let model = dataConnect.newOne;
-                const code = action.code;
-                let list = dataConnect.list;
-    
-                // 设置validating为true
-                yield put({ type: 'setNewModelField', name: 'validating', value: true });
-                // 调用检测接口检测连接配置是否合法
-                let validBody = {
+                let data = {
+                    id: code,
                     name: model.name,
                     addrass: model.address,
                     port: model.port,
                     databaseType: model.dbType,
                     dataName: model.dbName,
                     userName: model.userName,
-                    passWord: model.password
-                }
-                const validRes = yield call(service.fetch, {
-                    url: URLS.DATACONNECT_VALIDATE,
-                    body: validBody
+                    passWord: model.password,
+                    note: model.description
+                };
+                const res = yield call(service.fetch, {
+                    url: URLS.DATACONNECT_UPDATE,
+                    body: data
                 });
-
-                // 设置validating为false
-                yield put({ type: 'setNewModelField', name: 'validating', value: false });
-
-                if(!validRes.err && validRes.data.code > 0) {
-                    let data = {
-                        id: code,
-                        name: model.name,
-                        addrass: model.address,
-                        port: model.port,
-                        databaseType: model.dbType,
-                        dataName: model.dbName,
-                        userName: model.userName,
-                        passWord: model.password,
-                        note: model.description
-                    };
-                    const res = yield call(service.fetch, {
-                        url: URLS.DATACONNECT_UPDATE,
-                        body: data
+                if(!res.err && res.data.code > 0) {
+                    list = list.map(l => {
+                        if((l.code+'') === (action.code+'')) {
+                            l = model;
+                        }
+                        return l;
                     });
-                    if(!res.err && res.data.code > 0) {
-                        list = list.map(l => {
-                            if((l.code+'') === (action.code+'')) {
-                                l = model;
-                            }
-                            return l;
-                        });
-                        yield put({ type: 'list', data: list });
-                        message.success('修改成功');
-                        yield put({ type: 'setNewModelField', name: 'visibleBox', value: false });
-                    }else {
-                        message.error('修改失败');
-                    }
+                    yield put({ type: 'list', data: list });
+                    message.success('修改成功');
+                    yield put({ type: 'setNewModelField', name: 'visibleBox', value: false });
                 }else {
-                    yield put({ type: 'setNewModelInvalid', name: 'invalid', value: true });
+                    message.error('修改失败');
                 }
             }catch(e) {
                 message.error('修改失败');