import axios from '@/utils/request' import config from '@/common/config' let base = config.getSysBasePath(); /*** * { * * } */ var cacheOptions={}; var cacheSeconds={}; var cacheOptionsBySecondCodeRows={}; var cacheCompanyDepts=null; var cacheCompanyEmployees=null; //默认只开放普通查询,所有查询,只要上传 分页参数 {currentPage:1,pageSize:10,total:0},后台都会自动按分页查询 其它 api用到再打开,没用到的api请注释掉, //普通查询 export const listCode = params => { return axios.get(`${base}/sys/code/list`, { params: params }); }; //关键字模糊查询 {字段1:v1,字段2:v1,字段3:v1},字段驼峰命名,条件之间默认为or关系 export const listCodeKey = params => { return axios.get(`${base}/sys/code/listKey`, { params: params }); }; /** * 查询下拉选项目 参数为数组型参数 如 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类 * 返回结果为: * res.data.data:{ * sex:[{codeName:男,codeValue:1,ifdefault:'1'},{codeName:女,codeValue:2,ifdefault:'0'}], * age:[{codeName:1岁,codeValue:1,ifdefault:'1'},{codeName:2岁,codeValue:2,ifdefault:'0'},{codeName:3岁,codeValue:3,ifdefault:'0'}] * } */ export const selectCacheOptions = params => { let code=params.code; let fieldNames=params.fieldNames; if(!cacheOptions[code]){ return new Promise((resolve, reject) => { axios.get(`${base}/sys/code/selectOptions`, { params:params }).then(res=>{ let options=res.data.data; cacheOptions[code]=options; resolve({ data: {data:options} }); }); }); }else{ let codeOptions=cacheOptions[code]; var lostFieldNames=[]; var cacheHasOptions={}; fieldNames.forEach(item=>{ if(codeOptions[item]){ cacheHasOptions[item]=codeOptions[item]; }else{ lostFieldNames.push(item); } }); if(lostFieldNames.length>0){ return new Promise((resolve, reject) => { axios.get(`${base}/sys/code/selectOptions`, { params:{code:code,fieldNames:lostFieldNames} }).then(res=>{ let options2=res.data.data; lostFieldNames.forEach(item=>{ codeOptions[item]=options2[item]; cacheHasOptions[item]=options2[item]; cacheOptions[code]=codeOptions; }); resolve( { data: {data:cacheHasOptions} }); }); }); }else{ return new Promise((resolve, reject) => { resolve( { data: {data:cacheHasOptions} }); }); } } }; /** * 查询下拉选项目 参数为数组型参数 如 selectOptionsBySecondCodeRows( {secondCodeRows:['secondCodeRow1','secondCodeRow2']} ) * 返回结果为: * res.data.data:{ * secondCodeRow1:[{codeName:男,codeValue:1,ifdefault:'1'},{codeName:女,codeValue:2,ifdefault:'0'}], * secondCodeRow1:[{codeName:1岁,codeValue:1,ifdefault:'1'},{codeName:2岁,codeValue:2,ifdefault:'0'},{codeName:3岁,codeValue:3,ifdefault:'0'}] * } */ export const selectOptionsBySecondCodeRows = params => { let secondCodeRows=params.secondCodeRows; var lostSecondCodeRows=[]; var cacheHasOptions={}; secondCodeRows.forEach(item=>{ if(cacheOptionsBySecondCodeRows[item]){ cacheHasOptions[item]=cacheOptionsBySecondCodeRows[item]; }else{ lostSecondCodeRows.push(item); } }); if(lostSecondCodeRows.length>0){ return new Promise((resolve, reject) => { axios.get(`${base}/sys/code/selectOptionsBySecondCodeRows`, { params:{secondCodeRows:lostSecondCodeRows }}).then(res=>{ let options2=res.data.data; lostSecondCodeRows.forEach(item=>{ cacheOptionsBySecondCodeRows[item]=options2[item]; cacheHasOptions[item]=options2[item]; }); resolve( { data: {data:cacheHasOptions} }); }); }); }else{ return new Promise((resolve, reject) => { resolve( { data: {data:cacheHasOptions} }); }); } }; /** * 查询下拉选项目 参数为数组型参数 如 selectOptions( { fieldNames:['sex','age','student'],code:'all' } ),code为数据分类 * 返回结果为: * res.data.data:{ * sex:[{codeName:男,codeValue:1,ifdefault:'1'},{codeName:女,codeValue:2,ifdefault:'0'}], * age:[{codeName:1岁,codeValue:1,ifdefault:'1'},{codeName:2岁,codeValue:2,ifdefault:'0'},{codeName:3岁,codeValue:3,ifdefault:'0'}] * } */ export const selectOptions = params => { return axios.get(`${base}/sys/code/selectOptions`, { params:params }) }; //获取代码对应的名称 用于数据反显 如 getCodeName(options.sex,'1'); export const getCodeName = (options,codeValue)=>{ if(!options)return codeValue; let code=options.filter(i=>i.codeValue==codeValue); if(code.length>0){ return code[0].codeName }else{ return codeValue } }; /** * 获取某个字段的默认值 * getDefaultValue(options.sex,'1'); */ export const getDefaultValue = (fieldOptions,defaultValue) =>{ if(fieldOptions==null || fieldOptions.length==0){ return defaultValue; } let defaultV=defaultValue; fieldOptions.forEach(i=>{ if(i.ifdefault=='1'){ defaultV=i.codeValue; } }); return defaultV; }; /** * 根据一级分类列表查询所有的二级分类 * @param codes 分类编码 列表 如['JCBM_TPL','SystemParas'] * @return 返回如下格式的map。secondCodeRow为主键,dtcodeId为编码,dtcodeName中文描述 * { * JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:男},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:男}], * SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}] * } */ export const selectSeconds = params => { return axios.get(`${base}/sys/code/selectSeconds`, { params:params }); }; /** * 根据一级分类列表查询所有的二级分类 * @param codes 分类编码 列表 如['JCBM_TPL','SystemParas'] * @return 返回如下格式的map。secondCodeRow为主键,dtcodeId为编码,dtcodeName中文描述 * { * JCBM_TPL:[{secondCodeRow:'xxxx',dtcodeId:1,dtcodeName:男},{secondCodeRow:'xxxx',dtcodeid:1,dtcodeName:男}], * SystemParas:[{secondCodeRow:'xxxx',dtcodeId:3,dtcodeName:其它},{secondCodeRow:'xxxx',dtcodeid:2,dtcodeName:其它2}] * } */ export const selectCacheSeconds = params => { let codes=params.codes; let lostCodes=[]; codes.forEach(item=>{ if(!cacheSeconds[item]){ lostCodes.push(item); } }); if(lostCodes.length>0){ return new Promise((resolve, reject) => { selectSeconds({codes:lostCodes}).then(res=>{ let seconds=res.data.data; lostCodes.forEach(item=>{ cacheSeconds[item]=seconds[item]; }); let result={}; codes.forEach(item=>{ result[item]=cacheSeconds[item]; }); resolve( { data: {data:result} }); }); }); }else{ let result={}; codes.forEach(item=>{ result[item]=cacheSeconds[item]; }); return new Promise((resolve, reject) => { resolve( { data: {data:result} }); }); } }; // [{dpetid:'',displayDeptid:'',deptName:'',shortName:'',pdeptid:''},{dpetid:'',displayDeptid:'',deptName:'',shortName:'',pdeptid:''}] export const getCompanyDepts = () => { if(cacheCompanyDepts!=null && cacheCompanyDepts.length>=0){ return new Promise((resolve, reject) => { resolve( { data: {data:cacheCompanyDepts} }); }); } return axios.get(`${base}/sys/code/companyDepts`).then(res=>{ if(res.data.data==null){ cacheCompanyDepts=[]; }else{ cacheCompanyDepts=res.data.data; } return new Promise((resolve, reject) => { resolve( { data: {data:cacheCompanyDepts} }); }); }); }; //[{userid:'',displayUserid:'',username:'',deptid:'',shortName:'',deptName:''},{userid:'',displayUserid:'',username:'',deptid:'',shortName:'',deptName:''}] export const getCompanyEmployees = () => { if(cacheCompanyEmployees!=null && cacheCompanyEmployees.length>=0){ return new Promise((resolve, reject) => { resolve( { data: {data:cacheCompanyEmployees} }); }); } return axios.get(`${base}/sys/code/companyEmployees`).then(res=>{ if(res.data.data==null){ cacheCompanyEmployees=[]; }else{ cacheCompanyEmployees=res.data.data; } return new Promise((resolve, reject) => { resolve( { data: {data:cacheCompanyEmployees} }); }); }); };