You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

397 lines
20 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. /**
  2. * mdp框架前端与后端交互扩展组件使用到的公共api
  3. * 一般情况下请勿将业务代码加入此文件业务代码及其它模块及api应该放入各自单独的api文件中如果实在要添加请添加到$mdp.js文件中实现全局调用
  4. */
  5. import util from '@/components/mdp-ui/js/util';//全局公共库
  6. import axios from '@/utils/request'
  7. import config from './mdp_config'
  8. import { getToken } from '@/utils/auth'
  9. const mdpExtCache=new Map();
  10. let sysBase = config.getSysContext();
  11. let arcBase = config.getArcContext()
  12. let formBase = config.getFormContext()
  13. let workflowBase = config.getWorkflowContext()
  14. var funcs = {
  15. /**
  16. * 获取文件附件上传的请求路径全路径
  17. */
  18. getArcAttUploadPath : () => { return `${config.getArcFileUploadBasePath()}/mdp/arc/att/attachment/upload` },
  19. /**
  20. * 获取图片上传的请求路径全路径
  21. * @returns
  22. */
  23. getArcImageUploadPath :() => { return `${config.getArcImagePath()}/mdp/arc/img/image/upload`},
  24. /**
  25. * 预览图片是 url= $mdp.getArcImagePreviewBasePath()/图片url
  26. * @returns
  27. */
  28. getArcImagePreviewBasePath : () => { return `${config.getArcImagePath()}` },
  29. /**
  30. * 文件上传下载时带上token
  31. * @returns
  32. */
  33. getArcUploadHeader: () => { return {Authorization: "Bearor "+ getToken()} },
  34. /**
  35. * sys_user 用户表
  36. *1 默认只开放普通查询所有查询只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
  37. *2 查询新增修改的参数格式 params={userid:'内部用户编号(账户编号),如果是机构管理员账户,则=机构号 主键',unionid:'全局唯一编号,也叫主账户,同一个人(比如同一个微信号,同一个邮箱,同一个手机号视为同一个人)。同一个人在mdp有唯一的主账号。',displayUserid:'登录展示使用用户编号',locked:'是否被锁定0否1是',startdate:'启用日期',nickname:'昵称',username:'用户名称',phoneno:'移动电话号码',password:'密码',salt:'盐值',pwdtype:'密码类型1指纹2密码',headimgurl:'头像地址',country:'国家',city:'城市',province:'省份',address:'详细地址',sex:'性别',enddate:'到期日期',districtId:'区县编号',email:'邮箱',fgOne:'指纹1',fgTwo:'指纹2',fgThr:'指纹3',idCardNo:'身份证号码',officePhoneno:'办公室电话',bizProcInstId:'当前流程实例编号',bizFlowState:'当前流程状态',memType:'从平台角度看会员类型0-个人账户、1-企业管理员账户、2-企业员工账户,个人账户无须绑定机构号,个人子账户可升级为企业员工账户,企业账户必须绑定机构编号branchId个人账户升级后,保留个人主账户,个人子账户绑定企业编号成为企业员工账户',orgId:'机构会员自己的机构会员的机构号,理解为客户的客户',emailBak:'备用邮箱',pwdStrong:'1-高风险,2-中风险,3-低风险',lockType:'锁定类型:0-注册等待邮箱验证,1-注册等待修改初始密码,2-注册等待验证手机号码,3-密码高风险,等待重新修改密码,9-业务需要锁定禁止登录,10-账户被锁定,请联系客服',lockRemark:'锁定原因',ltime:'更新日期',atype:'相对于平台来说的账户类型0-子账户,1-主账户。',branchId:'机构主子账户归属的机构编号,如果是个人,这里填虚拟机构编号,作为虚拟的机构号,方便将来升级成企业号',continent:'洲别',cpaType:'从入驻企业角度看协作类型0-企业内部人员,1-客户,2-供应商,3-上级机构,4-下属机构',cpaOrg:'协作组织0-个人,1机构,如果是机构,机构号填入orgId',roleids:'个人账户拥有的角色,逗号分割',birthday:'生日',shopId:'商户编号',profeId:'职业编号',profeName:'职业名称',gradeId:'等级会员,根据经验值而定',gradeName:'等级会员名称',ilvlId:'权益等级青铜、白银、黄金、紫金、钻石',ilvlName:'权益等级名称',istatus:'会员权益状态0-无效,1-有效,2-过期',istime:'权益开始时间',ietime:'权益结束时间',validLvls:'人工验证结果,当审核状态为2时,同步到sys_user表同一个字段,或者sys_branch同一个字段',features:'个性化签名',profeType:'职业类型1-开发类,2-测试类,3-设计类,4-管理类;',ustatus:'用户账户状态0-初始,1-起效,2-注销申请,3-注销后删除',creditId:'信用等级编号',creditScore:'信用等级分数',guardId:'服务保障等级0-初始,1-金,2-银,3-铜',open:'是否对互联网用户开放查询0-否1是',remark:'简介备注',bizHours:'营业时间说明09:00-12:00',skillIds:'技能编号列表',skillNames:'技能名称列表'}
  38. **/
  39. listUser: params => { return axios.get(`/${sysBase}/mdp/sys/user/list`, { params: params }); },
  40. //查询一个用户
  41. queryUserById : params => { return axios.get(`${sysBase}/mdp/sys/user/queryById`, { params: params });},
  42. //修改用户信息
  43. editUser : params => { return axios.post(`${sysBase}/mdp/sys/user/edit`, params);},
  44. //批量修改用户的某些字段
  45. editSomeFieldsUser : params => { return axios.post(`${sysBase}/mdp/sys/user/editSomeFields`, params);},
  46. //管理人员帮别人重置密码
  47. resetPasswordByAdmin : params => { return axios.post(`${sysBase}/sys/user/resetPassword`, params);},
  48. //修改自己的密码
  49. changePassword : params => { return axios.post(`${sysBase}/sys/user/changePassword`, params);},
  50. //更新当前登录着的头像
  51. editHeadimgurl : params => { return axios.post(`${sysBase}/sys/user/editHeadimgurl`, params); },
  52. //查询机构列表
  53. listBranch : params => { return axios.get(`${sysBase}/mdp/sys/branch/list`, { params: params }); },
  54. /**
  55. * sys_dept
  56. *1 默认只开放普通查询所有查询只要上传 分页参数 {pageNum:当前页码从1开始,pageSize:每页记录数,total:总记录数如果是0后台会自动计算总记录数非0不会自动计算}后台都会自动按分页查询 其它 api用到再打开没用到的api请注释掉
  57. *2 查询新增修改的参数格式 params={deptid:'部门编号 主键',deptName:'部门全称',pdeptid:'上级部门编号',deptType:'参考数据字典deptType',state:'状态A正常E无效',manager:'负责人编号',leader:'上级领导编号',shortName:'简称',displayDeptid:'部门编码外部使用',orgType:'参考数据字典orgType',managerName:'负责人名称',leaderName:'上级领导名称',branchId:'云用户机构编号',levelType:'层级类型(科云:0国,1省,2市,3区县,4街道,5自然村)',idPath:'部门编号路径',bizProcInstId:'当前流程实例编号',bizFlowState:'当前流程状态',ltime:'最后更新时间',isCbCenter:'是否为成本中心0否1是'}
  58. **/
  59. listDept: params => { return axios.get(`/${sysBase}/mdp/sys/dept/list`, { params: params }); },
  60. /**
  61. * 角色列表
  62. * @param {*} params
  63. * @returns
  64. */
  65. listRole: params => { return axios.get(`/${sysBase}/mdp/sys/role/list`, { params: params }); },
  66. /**
  67. * 岗位列表
  68. * @param {*} params
  69. * @returns
  70. */
  71. listPost: params => { return axios.get(`/${sysBase}/mdp/sys/post/list`, { params: params }); },
  72. // --arc tag 相关api
  73. //普通查询 条件之间and关系
  74. getAllTag : params => { return axios.get(`/${arcBase}/mdp/arc/tag/getAllTag`, { params: params }); },
  75. //删除一条arc_tag params={id:'标签编号 主键'}
  76. delTag : params => { return axios.post(`/${arcBase}/mdp/arc/tag/del`,params); },
  77. //新增一条arc_tag
  78. addTag : params => { return axios.post(`/${arcBase}/mdp/arc/tag/add`, params); },
  79. //新增一条arc_tag_category 及相关标签
  80. delTagCategory : params => { return axios.post(`/${arcBase}/mdp/arc/tag/deleteTagCategory`, params); },
  81. //新增一条arc_tag_category
  82. addTagCategory : params => { return axios.post(`/${arcBase}/mdp/arc/tagCategory/add`, params); },
  83. // -- end arc tag 相关api
  84. // -- arc image 图片库相关api
  85. /**
  86. * 图片素材库
  87. * 查询新增修改的参数格式 params={id:'主键 主键',name:'附件名称',url:'访问路径',relativePath:'硬盘存放路径',fileSuffix:'后缀名',rootPath:'根目录',createDate:'存入时间',fileSize:'文件大小',deptid:'归属部门',tag:'标签',remark:'备注信息',categoryId:'图片分类',storageName:'硬盘存储名字(不带后缀)',urlPrefix:'链接前缀',isOutUrl:'是否外部链接',outUrl:'外部链接',branchId:'机构编号',archiveType:'0|知识库',relyTypes:'参考类型,开放式字段,1-开源社区,2-项目论坛,逗号',relyIds:'参考编号,逗号',relySubTypes:'参考子类型,逗号',relySubIds:'参考子编号,逗号',cuserid:'创建人编号',cusername:'创建人姓名',cdate:'创建时间'}
  88. **/
  89. listImage : params => { return axios.get(`/${arcBase}/mdp/arc/img/image/list`, { params: params }); },
  90. //批量删除图片素材库 params=[{id:'主键 主键'}]
  91. batchDelImage : params => { return axios.post(`/${arcBase}/mdp/arc/img/image/batchDel`, params); },
  92. //普通查询 条件之间and关系
  93. listImageCategory : params => { return axios.get(`/${arcBase}/mdp/arc/img/imageCategory/list`, { params: params }); },
  94. //删除一条图片分类 params={id:'主键 主键'}
  95. delImageCategory : params => { return axios.post(`/${arcBase}/mdp/arc/img/imageCategory/del`,params); },
  96. //修改一条图片分类记录
  97. ditImageCategory : params => { return axios.post(`/${arcBase}/mdp/arc/img/imageCategory/edit`, params); },
  98. //新增一条图片分类
  99. addImageCategory : params => { return axios.post(`/${arcBase}/mdp/arc/img/imageCategory/add`, params); },
  100. // end -- arc image 图片库相关api
  101. // -- arc att 附件相关api
  102. /**
  103. * 档案类目
  104. * 查询新增修改的参数格式 params={id:'分类主键 主键',categoryType:'0知识库-1新闻类2企业内部通知公告类3平台通知公告4其它5论坛6公文7归档8网站栏目,关联基础数据categoryType',pid:'上级分类',name:'分类名称',sortOrder:'分类排序',isShow:'是否显示',branchId:'机构编号',imageUrls:'图片列表逗号分割',isLeaf:'是否叶子节点0否1是,叶子节点不允许再建立下级,非叶子节点不允许挂文章',limitType:'文章限制,1-单篇文章,2-多篇文章',isAuth:'文章是否需要审核0-否1是',paths:'上级分类路径,逗号分割,包括自身'}
  105. **/
  106. //普通查询 条件之间and关系
  107. listCategory : params => { return axios.get(`/${arcBase}/mdp/arc/pub/category/list`, { params: params }); },
  108. //普通查询 条件之间and关系
  109. queryCategoryById : params => { return axios.get(`/${arcBase}/mdp/arc/pub/category/queryById`, { params: params }); },
  110. //批量删除档案类目 params=[{id:'分类主键 主键'}]
  111. batchAddCategory : params => { return axios.post(`/${arcBase}/mdp/arc/pub/category/batchAdd`, params); },
  112. //批量删除档案类目 params=[{id:'分类主键 主键'}]
  113. batchDelCategory : params => { return axios.post(`/${arcBase}/mdp/arc/pub/category/batchDel`, params); },
  114. //修改一条档案类目记录
  115. editCategory : params => { return axios.post(`/${arcBase}/mdp/arc/pub/category/edit`, params); },
  116. //新增一条档案类目
  117. addCategory : params => { return axios.post(`/${arcBase}/mdp/arc/pub/category/add`, params); },
  118. //查询分类权限
  119. listCategoryQx : params => { return axios.get(`/${arcBase}/mdp/arc/pub/categoryQx/list`, { params: params }); },
  120. //查询分类权限
  121. queryCategoryQxById : params => { return axios.get(`/${arcBase}/mdp/arc/pub/categoryQx/queryById`, { params: params }); },
  122. //修改一条档案类目记录权限
  123. editCategoryQx : params => { return axios.post(`/${arcBase}/mdp/arc/pub/categoryQx/edit`, params); },
  124. //新增一条档案类目权限
  125. addCategoryQx : params => { return axios.post(`/${arcBase}/mdp/arc/pub/categoryQx/add`, params); },
  126. /**
  127. * 档案附件表
  128. *查询新增修改的参数格式 params={id:'主键 主键',name:'附件名称',url:'访问路径',relativePath:'硬盘存放路径',fileSuffix:'后缀名',cdnUrl:'内容加速器访问路径',isImg:'是否图片',archiveId:'档案主编号',isCdn:'是否使用CDN',rootPath:'根目录',createDate:'存入时间',canDown:'是否可下载',canDel:'是否可删除',canRead:'是否可读',bizId:'业务编号、产品编号、商品编号等',remark:'业务名称、产品名称、商品名称等',storeName:'存储名字',fileSize:'文件大小',branchId:'云用户机构编号',deptid:'部门编号',archiveType:'0|知识库',categoryId:'分类编号'}
  129. **/
  130. //普通查询 条件之间and关系
  131. listAttachment : params => { return axios.get(`/${arcBase}/mdp/arc/att/attachment/list`, { params: params }); },
  132. //普通查询 条件之间and关系
  133. queryAttachmentById : params => { return axios.get(`/${arcBase}/mdp/arc/att/attachment/queryById`, { params: params }); },
  134. //删除一条档案附件表 params={id:'主键 主键'}
  135. delAttachment : params => { return axios.post(`/${arcBase}/mdp/arc/att/attachment/del`,params); },
  136. //批量删除档案附件表 params=[{id:'主键 主键'}]
  137. batchDelAttachment : params => { return axios.post(`/${arcBase}/mdp/arc/att/attachment/batchDel`, params); },
  138. //修改一条档案附件表记录
  139. editAttachment : params => { return axios.post(`/${arcBase}/mdp/arc/att/attachment/edit`, params); },
  140. //新增一条档案附件表
  141. addAttachment : params => { return axios.post(`/${arcBase}/mdp/arc/att/attachment/add`, params); },
  142. //批量修改某些字段
  143. editSomeFieldsAttachment : params => { return axios.post(`/${arcBase}/mdp/arc/att/attachment/editSomeFields`, params); },
  144. // end -- arc att 附件相关api
  145. // start - mdp meta 元数据管理 相关api
  146. /**
  147. * 数据项定义
  148. *查询新增修改的参数格式 params={id:'主键 主键',itemCode:'代码,小写,下横线分割,请不要用驼峰命名',itemName:'名称',remark:'备注',categoryId:'分类编号',itemSize:'长度',itemType:'类型',branchId:'机构编号',deptid:'部门编号',cmenu:'是否创建菜单',values:'默认值,如果是列表,则存储列表编号,多个逗号分割',names:'默认名称,如果是列表,则存储列表名称,多个则逗号分割',options:'item_type=4,5时的选项列表[{value:值,name:显示名称}]',inputFormat:'输入提示',required:'是否必须0否1是',seq:'排序顺序',table:'表名',show:'是否显示0否1是',qx:'权限,是否可以0-新增,1-删除,2-编辑,3-查询,多个以逗号分割'}
  149. **/
  150. //普通查询 条件之间and关系
  151. listItem : params => { return axios.get(`/${sysBase}/mdp/meta/item/list`, { params: params }); },
  152. //删除一条数据项定义 params={id:'主键 主键'}
  153. delItem : params => { return axios.post(`/${sysBase}/mdp/meta/item/del`,params); },
  154. //批量删除数据项定义 params=[{id:'主键 主键'}]
  155. batchDelItem : params => { return axios.post(`/${sysBase}/mdp/meta/item/batchDel`, params); },
  156. //修改一条数据项定义记录
  157. editItem : params => { return axios.post(`/${sysBase}/mdp/meta/item/edit`, params); },
  158. //新增一条数据项定义
  159. addItem : params => { return axios.post(`/${sysBase}/mdp/meta/item/add`, params); },
  160. /**
  161. * 数据项取值列表
  162. *查询新增修改的参数格式 params={id:'主键 主键',itemId:'数据项编号',optionValue:'选项值',optionName:'选项名称',keys:'快捷键',isShow:'是否显示',seqOrder:'顺序',fp:'第一扩展字段',tp:'第三扩展字段',sp:'第二扩展字段',isDefault:'是否默认',cdate:'创建日期',branchId:'机构编号',deptid:'部门编号'}
  163. **/
  164. //普通查询 条件之间and关系
  165. listItemOption : params => { return axios.get(`/${sysBase}/mdp/meta/itemOption/list`, { params: params }); },
  166. //删除一条数据项取值列表 params={id:'主键 主键'}
  167. delItemOption : params => { return axios.post(`/${sysBase}/mdp/meta/itemOption/del`,params); },
  168. //批量删除数据项取值列表 params=[{id:'主键 主键'}]
  169. batchDelItemOption : params => { return axios.post(`/${sysBase}/mdp/meta/itemOption/batchDel`, params); },
  170. //修改一条数据项取值列表记录
  171. editItemOption : params => { return axios.post(`/${sysBase}/mdp/meta/itemOption/edit`, params); },
  172. //新增一条数据项取值列表
  173. addItemOption : params => { return axios.post(`/${sysBase}/mdp/meta/itemOption/add`, params); },
  174. //普通查询 条件之间and关系
  175. queryItemOptionById : params => { return axios.get(`/${sysBase}/mdp/meta/itemOption/queryById`, { params: params }); },
  176. //批量修改某些字段
  177. editSomeFieldsItemOption : params => { return axios.post(`/${sysBase}/mdp/meta/itemOption/editSomeFields`, params); },
  178. //刷新缓存
  179. refresh : params => { return axios.post(`/${sysBase}/mdp/meta/itemOption/refresh`, params); },
  180. // end - mdp meta 元数据管理 相关api
  181. // start form 智能表单 相关api
  182. listFormField : params => { return axios.get(`${formBase}/mdp/lcode/formField/list`, { params: params }); },
  183. listFormFieldCacheFirst : params => {
  184. var baseCode='list-form-fields'
  185. var codeKey=util.getCodeKey(baseCode,params);
  186. return new Promise((resolve,reject)=>{
  187. var data=funcs.listFormFieldFromCache(codeKey,baseCode,params)
  188. if(data){
  189. var res2={
  190. tips:{
  191. isOk:true,
  192. tipscode:'ok',
  193. msg:'成功'
  194. },
  195. data:data
  196. }
  197. resolve({data:res2})
  198. }else{
  199. var lockKey=codeKey+'@lock'
  200. var lock=sessionStorage.getItem(lockKey)
  201. let func = function(){
  202. var data=funcs.listFormFieldFromCache(codeKey,baseCode,params)
  203. if(data){
  204. var res2={
  205. tips:{
  206. isOk:true,
  207. tipscode:'ok',
  208. msg:'成功'
  209. },
  210. data:data
  211. }
  212. resolve({data:res2})
  213. return;
  214. }
  215. funcs.listFormField(params).then(res=>{
  216. sessionStorage.removeItem(lockKey)
  217. if(res.data.tips && res.data.tips.isOk ){
  218. sessionStorage.setItem(codeKey,JSON.stringify(res.data.data))
  219. var res2={
  220. tips:res.data.tips,
  221. data:res.data.data
  222. }
  223. mdpExtCache.set(codeKey,res2)
  224. resolve({data:res2})
  225. }else{
  226. mdpExtCache.set(codeKey,null)
  227. reject(res)
  228. }
  229. }).catch(e=>{
  230. mdpExtCache.set(codeKey,null)
  231. sessionStorage.removeItem(lockKey)
  232. reject(e)
  233. })
  234. }
  235. if(lock){
  236. setTimeout(()=>{
  237. func();
  238. },2000)
  239. }else{
  240. func();
  241. }
  242. }
  243. })
  244. },
  245. /**
  246. * 从缓存中获取字典列表该函数不会向后端请求
  247. * */
  248. listFormFieldFromCache : (codeKey) => {
  249. var item=mdpExtCache.get(codeKey)
  250. if(item && item.formDef && item.formDef.id){
  251. return item
  252. }
  253. var clistStr=sessionStorage.getItem(codeKey);
  254. if (clistStr&& clistStr!='null' && clistStr!='undefined') {
  255. let item = JSON.parse(clistStr)
  256. return item;
  257. }else{
  258. return null;
  259. }
  260. },
  261. removeFormFieldsCache:(formId)=>{
  262. var baseCode='list-form-fields'
  263. var params={formId:formId}
  264. var codeKey=util.getCodeKey(baseCode,params);
  265. mdpExtCache.set(codeKey,null)
  266. sessionStorage.removeItem(codeKey)
  267. },
  268. goToFormDesign: formDefId => {
  269. var url= window.location.protocol + '//' + window.location.host + workflowBase+'/' + process.env.VERSION + '/#/mdp/lcode/design/'+formDefId
  270. util.openWin(url)
  271. },
  272. // end form
  273. /**
  274. * 微信邀请用户加入公司需要state参数防止crfs攻击
  275. * @returns
  276. */
  277. getInviteTpaState: () => {
  278. return axios({
  279. url: '/tpa/invite/wechat/wxpub/state',
  280. method: 'post',
  281. data:{}
  282. })
  283. },
  284. /**
  285. * 微信绑定用户加入公司需要state参数防止crfs攻击
  286. * @param {joinUserid:'需要绑定微信的用户编号',joinUsername:'用户名称',sendUserid:'发起邀请人编号',sendUsername:'发起邀请人姓名'}
  287. * @returns
  288. */
  289. getBindTpaState: (params) => {
  290. return axios({
  291. url: '/tpa/bind/wechat/wxpub/state',
  292. method: 'post',
  293. data:params
  294. })
  295. },
  296. }
  297. export default funcs