Commit 3ddcff4b030d1ce890f1a30bdc9041621331de8a
Merge branch 'main' of http://git.xlyprint.cn/zhangz/xlyUmi into main
Showing
1 changed file
with
297 additions
and
0 deletions
src/models/content.js
0 → 100644
| 1 | +/** | |
| 2 | + * Created by mar105 on 2017-11-14. | |
| 3 | + */ | |
| 4 | +import { history } from 'umi'; | |
| 5 | +import { message } from 'antd'; | |
| 6 | +import * as services from '../services/services'; | |
| 7 | +import * as commonUtils from '../utils/utils'; | |
| 8 | + | |
| 9 | +export default { | |
| 10 | + namespace: 'content', | |
| 11 | + state: { | |
| 12 | + dataList: { sDataListTabId: '' }, /* 配置 */ | |
| 13 | + }, | |
| 14 | + reducers: { | |
| 15 | + setDataList(state, { payload: { dataList } }) { | |
| 16 | + return { ...state, dataList }; | |
| 17 | + }, | |
| 18 | + }, | |
| 19 | + effects: { | |
| 20 | + /** 路由跳转 */ | |
| 21 | + *onRouter({ payload }, { put, call, select }) { | |
| 22 | + /* 待用数据赋值 */ | |
| 23 | + const { | |
| 24 | + refresh, /* 刷新方法 */ | |
| 25 | + url, /* 接口地址 */ | |
| 26 | + copyTo, /* 复制到数据 */ | |
| 27 | + checkedId, /* 单据主表编号 */ | |
| 28 | + sParentId, /* 父页面编号 */ | |
| 29 | + sFilterOrderBy, /* 列表页排序规则(用于上一条下一条查询) */ | |
| 30 | + pages, /* 列表页分页信息(用于上一条下一条查询) */ | |
| 31 | + bFilter, /* 列表页查询条件(用于上一条下一条查询) */ | |
| 32 | + currentIndex, /* 列表页游标(用于上一条下一条查询) */ | |
| 33 | + sListFormmasterId, | |
| 34 | + classifyOption, | |
| 35 | + newRecordFlag, | |
| 36 | + newRecordRelation, /* 关联字段 */ | |
| 37 | + newRecordMethod, | |
| 38 | + filterCondition, | |
| 39 | + otherCondition, | |
| 40 | + conditonValues, | |
| 41 | + currentData: currentRecord, /* 列表双击的选中行 */ | |
| 42 | + sName, /* 当前列的sName */ | |
| 43 | + sSqlConditionValues, | |
| 44 | + sSrcModelsId, | |
| 45 | + } = payload; /* 参数接收 */ | |
| 46 | + const token = yield select(state => state.app.token); /* 用户令牌 */ | |
| 47 | + /* 从接口获取数据 */ | |
| 48 | + const { data } = yield call(services.getService, token, url); | |
| 49 | + /* 判断获取数据成功还是失败 */ | |
| 50 | + if (data.code === 1) { /* 成功 */ | |
| 51 | + /* 待用数据赋值 */ | |
| 52 | + const { rows } = data.dataset; /* 数据集 */ | |
| 53 | + const currentData = commonUtils.isEmptyArr(rows) ? {} : rows[0]; /* 窗体数据 */ | |
| 54 | + const paneKey = commonUtils.createNewTabId(); /* 页签标识 */ | |
| 55 | + /* 添加页签 */ | |
| 56 | + yield put({ | |
| 57 | + type: 'app/addNewPane', | |
| 58 | + payload: { | |
| 59 | + pane: { | |
| 60 | + refresh, /* 刷新方法 */ | |
| 61 | + copyTo, /* 复制到数据 */ | |
| 62 | + title: currentData.sMenuName, /* 菜单名称 */ | |
| 63 | + route: currentData.sName, /* 路由名称 */ | |
| 64 | + formId: currentData.sId, /* 窗体编号 */ | |
| 65 | + sModelsType: currentData.sModelType, /* 窗体类型 */ | |
| 66 | + sProcName: currentData.sProcName, | |
| 67 | + bFastOrderView: currentData.bFastOrderView, | |
| 68 | + key: paneKey, /* 页签标识 */ | |
| 69 | + sParentId, /* 父页面编号 */ | |
| 70 | + checkedId, /* 单据主表编号 */ | |
| 71 | + sFilterOrderBy, /* 列表页排序规则(用于上一条下一条查询) */ | |
| 72 | + pages, /* 列表页分页信息(用于上一条下一条查询) */ | |
| 73 | + bFilter, /* 列表页查询条件(用于上一条下一条查询) */ | |
| 74 | + currentIndex, /* 列表页游标(用于上一条下一条查询) */ | |
| 75 | + sListFormmasterId, | |
| 76 | + classifyOption, | |
| 77 | + newRecordFlag, | |
| 78 | + newRecordRelation, /* 关联字段 */ | |
| 79 | + newRecordMethod, /* NewRecord回调 */ | |
| 80 | + filterCondition, | |
| 81 | + otherCondition, | |
| 82 | + conditonValues, | |
| 83 | + currentRecord, | |
| 84 | + sName, | |
| 85 | + sSqlConditionValues, | |
| 86 | + sSrcModelsId, | |
| 87 | + }, | |
| 88 | + }, | |
| 89 | + }); | |
| 90 | + } else { /* 失败 */ | |
| 91 | + yield put({ type: 'app/throwError', payload: data }); | |
| 92 | + } | |
| 93 | + }, | |
| 94 | + | |
| 95 | + *onRouterMobile({ payload }, { put, call, select }) { | |
| 96 | + const { urlKey } = payload; /* 参数接收 */ | |
| 97 | + if (urlKey !== undefined) { | |
| 98 | + const token = yield select(state => state.app.token); /* 用户令牌 */ | |
| 99 | + const { data } = yield call(services.getService, token, urlKey); | |
| 100 | + if (data.code === 1) { /* 成功 */ | |
| 101 | + const { rows } = data.dataset; /* 数据集 */ | |
| 102 | + const currentData = commonUtils.isEmptyArr(rows) ? {} : rows[0]; /* 窗体数据 */ | |
| 103 | + /* 添加页签 */ | |
| 104 | + const param = { | |
| 105 | + sModelsId: currentData.sId, | |
| 106 | + title: currentData.sMenuName, /* 菜单名称 */ | |
| 107 | + sModelsType: currentData.sModelType, /* 窗体类型 */ | |
| 108 | + sProcName: currentData.sProcName, | |
| 109 | + formRoute: currentData.sName, | |
| 110 | + ...payload, | |
| 111 | + }; | |
| 112 | + if (commonUtils.isNotEmptyObject(param) && commonUtils.isNotEmptyObject(param.url) && param.url.includes('indexCssMobile')) { | |
| 113 | + param.formRoute = param.formRoute.replace('indexMobile', 'indexCssMobile'); | |
| 114 | + currentData.sName = param.formRoute.replace('indexMobile', 'indexCssMobile'); | |
| 115 | + } else if (commonUtils.isNotEmptyObject(param) && commonUtils.isNotEmptyObject(param.url) && param.url.includes('indexSrmMobile')) { | |
| 116 | + param.formRoute = param.formRoute.replace('indexMobile', 'indexSrmMobile'); | |
| 117 | + currentData.sName = param.formRoute.replace('indexMobile', 'indexSrmMobile'); | |
| 118 | + } | |
| 119 | + // yield put(routerRedux.push({ | |
| 120 | + // pathname: currentData.sName, | |
| 121 | + // state: { sParam: commonUtils.convertObjToStr(param) }, | |
| 122 | + // })); | |
| 123 | + history.push(currentData.sName, commonUtils.convertObjToStr(param)); | |
| 124 | + } else { /* 失败 */ | |
| 125 | + yield put({ type: 'app/throwErrorMobile', payload: data }); | |
| 126 | + } | |
| 127 | + } else { | |
| 128 | + const param = { | |
| 129 | + sModelsId: payload.sModelsId, | |
| 130 | + sId: payload.sId, | |
| 131 | + personPic: payload.personPic, | |
| 132 | + slaveData: payload.slaveData, | |
| 133 | + }; | |
| 134 | + history.push(payload.url, commonUtils.convertObjToStr(param)); | |
| 135 | + // yield put(routerRedux.push({ | |
| 136 | + // pathname: payload.url, | |
| 137 | + // state: { sParam: commonUtils.convertObjToStr(param) }, | |
| 138 | + // })); | |
| 139 | + } | |
| 140 | + }, | |
| 141 | + *getUrlData({ payload }, { put, call, select }) { | |
| 142 | + const { | |
| 143 | + currentIndex, refresh, url, sTabId, sParentId, formRoute, componentName, urlDataType, returnType, checkedId, disabled, copyToData, sFilterOrderBy, bFilter, pageSize, pages, sListFormmasterId, currentData, newKey, | |
| 144 | + } = payload; | |
| 145 | + const token = yield select(state => state.app.token); | |
| 146 | + let dataList = { | |
| 147 | + sDataListTabId: sTabId, formRoute, componentName, loading: true, | |
| 148 | + }; | |
| 149 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 150 | + const { data } = yield call(services.getService, token, url); | |
| 151 | + let paneType = ''; | |
| 152 | + if (data.code === 1) { | |
| 153 | + let rows; | |
| 154 | + if (urlDataType === 'First') { | |
| 155 | + rows = data.dataset.rows.length > 0 ? data.dataset.rows[0] : {}; | |
| 156 | + } else if (urlDataType === 'newPane') { | |
| 157 | + rows = data.dataset.rows.length > 0 ? data.dataset.rows[0] : {}; | |
| 158 | + paneType = 'new'; | |
| 159 | + } else { | |
| 160 | + const rowsCopy = data.dataset.rows; | |
| 161 | + rows = rowsCopy; | |
| 162 | + } | |
| 163 | + dataList = { | |
| 164 | + sDataListTabId: sTabId, | |
| 165 | + sParentId, /* 父页面ID用于标识新页签是从哪个页面上来的,防止双击出现多个页签 */ | |
| 166 | + formRoute, | |
| 167 | + componentName, | |
| 168 | + urlData: rows, | |
| 169 | + loading: false, | |
| 170 | + disabled, | |
| 171 | + paneType, | |
| 172 | + checkedId, /* 双击选中的Table中的数据ID */ | |
| 173 | + returnType, | |
| 174 | + copyToData, /* 复制到数据 */ | |
| 175 | + sFilterOrderBy, | |
| 176 | + bFilter, | |
| 177 | + pageSize, | |
| 178 | + pages, | |
| 179 | + sListFormmasterId, | |
| 180 | + currentData, | |
| 181 | + newKey, | |
| 182 | + refresh, /* commonList页面刷新方法 */ | |
| 183 | + currentIndex, | |
| 184 | + }; | |
| 185 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 186 | + dataList = {}; | |
| 187 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 188 | + } else { | |
| 189 | + yield put({ type: 'app/throwError', payload: data }); | |
| 190 | + } | |
| 191 | + }, | |
| 192 | + *getUrlPostData({ payload }, { put, call, select }) { | |
| 193 | + /* 获取表数据 */ | |
| 194 | + const { | |
| 195 | + formRoute, componentName, sTabId, url, value, urlDataType, returnType, sId, | |
| 196 | + } = payload; | |
| 197 | + let dataList = { | |
| 198 | + sDataListTabId: sTabId, formRoute, componentName, loading: true, | |
| 199 | + }; | |
| 200 | + if (returnType !== 'CUD') { | |
| 201 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 202 | + } | |
| 203 | + const token = yield select(state => state.app.token); | |
| 204 | + const { data } = yield call(services.postValueService, token, value, url); | |
| 205 | + if (data.code === 1) { | |
| 206 | + if (returnType !== undefined && returnType === 'CUD') { | |
| 207 | + message.success(data.msg); | |
| 208 | + dataList = { | |
| 209 | + sDataListTabId: sTabId, formRoute, componentName, returnType, disabled: true, sId, | |
| 210 | + }; | |
| 211 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 212 | + } else { | |
| 213 | + const { dataset } = data; | |
| 214 | + let dataTotal = {}; | |
| 215 | + if (data.dataset.rows.length > 0 && data.dataset.rows[0].sumSet !== undefined) { | |
| 216 | + dataTotal = data.dataset.rows[0].sumSet; | |
| 217 | + } | |
| 218 | + let rows; | |
| 219 | + if (urlDataType === 'First') { | |
| 220 | + rows = data.dataset.rows.length > 0 && data.dataset.rows[0].dataSet.length > 0 ? data.dataset.rows[0].dataSet[0] : {}; | |
| 221 | + } else { | |
| 222 | + rows = data.dataset.rows.length > 0 ? data.dataset.rows[0].dataSet : []; | |
| 223 | + } | |
| 224 | + // const { rows } = dataset; /* 整合前列表数据 */ | |
| 225 | + const pages = { | |
| 226 | + pageNum: dataset.currentPageNo, /* 当前页 */ | |
| 227 | + totalCount: dataset.totalCount, /* 总数 */ | |
| 228 | + }; /* 分页 */ | |
| 229 | + dataList = { | |
| 230 | + sDataListTabId: sTabId, formRoute, componentName, urlData: rows, pages, returnType, loading: false, dataTotal, | |
| 231 | + }; | |
| 232 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 233 | + /* 用以清空数据集屏蔽类似保存后闪显老数据等问题 */ | |
| 234 | + dataList = {}; | |
| 235 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 236 | + } | |
| 237 | + } else { | |
| 238 | + yield put({ type: 'app/throwError', payload: data }); | |
| 239 | + dataList = { | |
| 240 | + sDataListTabId: sTabId, formRoute, componentName, urlData: [], returnType, loading: false, pages: { pageNum: 0, totalCount: 0 }, dataTotal: [{}], | |
| 241 | + }; | |
| 242 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 243 | + } | |
| 244 | + }, | |
| 245 | + *getUrlPostDataSys({ payload }, { put, call, select }) { | |
| 246 | + /* 系统参数保存 */ | |
| 247 | + const { | |
| 248 | + formRoute, componentName, sTabId, url, value, returnType, sId, | |
| 249 | + } = payload; | |
| 250 | + const token = yield select(state => state.app.token); | |
| 251 | + const { data } = yield call(services.postValueService, token, value, url); | |
| 252 | + if (data.code === 1) { | |
| 253 | + message.success(data.msg); | |
| 254 | + const dataList = { | |
| 255 | + sDataListTabId: sTabId, formRoute, componentName, returnType, disabled: true, sId, | |
| 256 | + }; | |
| 257 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 258 | + const sysData = value.data; | |
| 259 | + const systemData = sysData.filter(item => item.sTable === 'syssystemsettings')[0].column; | |
| 260 | + const dNetPrice = systemData.filter(item => (item.sName === 'NetPrice'))[0]; | |
| 261 | + const dNetMoney = systemData.filter(item => (item.sName === 'NetMoney'))[0]; | |
| 262 | + const decimals = { | |
| 263 | + dNetPrice: dNetPrice.sValue !== undefined ? (dNetPrice.sValue) * 1 : 6, | |
| 264 | + dNetMoney: dNetMoney.sValue !== undefined ? (dNetMoney.sValue) * 1 : 6, | |
| 265 | + }; | |
| 266 | + yield put({ type: 'app/saveDecimals', payload: decimals }); | |
| 267 | + yield put({ type: 'app/saveSystemData', payload: systemData }); | |
| 268 | + } else { | |
| 269 | + yield put({ type: 'app/throwError', payload: data }); | |
| 270 | + } | |
| 271 | + }, | |
| 272 | + *getCopyDataId({ payload }, { put, call, select }) { | |
| 273 | + const { | |
| 274 | + sTabId, formRoute, componentName, url, | |
| 275 | + } = payload; | |
| 276 | + const token = yield select(state => state.app.token); | |
| 277 | + const { data } = yield call(services.getService, token, url); | |
| 278 | + if (data.code === 1) { | |
| 279 | + const dataList = { | |
| 280 | + sDataListTabId: sTabId, | |
| 281 | + formRoute, | |
| 282 | + componentName, | |
| 283 | + newIds: data.dataset.rows, | |
| 284 | + }; | |
| 285 | + yield put({ type: 'setDataList', payload: { dataList } }); | |
| 286 | + } else { | |
| 287 | + yield put({ type: 'app/throwError', payload: data }); | |
| 288 | + } | |
| 289 | + }, | |
| 290 | + *saveLogoImageInfo({ payload }, { put }) { | |
| 291 | + const { logoImageInfo } = payload; | |
| 292 | + yield put({ type: 'app/saveLogoImageInfo', payload: logoImageInfo }); | |
| 293 | + }, | |
| 294 | + }, | |
| 295 | + subscriptions: {}, | |
| 296 | +}; | |
| 297 | + | ... | ... |