add.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. /*******************************************************************************
  2. * Copyright(c) 2022 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.员工资料-新组建
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * admin 2024-2-12 1.00
  9. *******************************************************************************/
  10. const mixins = require('@/mixins/index.js')
  11. const Constants = require('@/utils/Constants')
  12. const app = getApp()
  13. Page({
  14. mixins: [mixins],
  15. /**
  16. * 页面的初始数据
  17. */
  18. data: {
  19. cardList: ['main', 'oauth', 'remarks'],
  20. hrStatus: false,
  21. // 底部保存按钮
  22. buttonFootList: [{
  23. name: 'save',
  24. title: mixins.$t('save')
  25. }],
  26. contentObj: {
  27. main:
  28. [
  29. { code: 'staffCode', type: 'str', required: true, title: mixins.$t('staffCode') },
  30. { code: 'staffName', type: 'str', required: true, title: mixins.$t('staffName') },
  31. { code: 'staffPhone', type: 'phone', title: mixins.$t('staffPhone'), required: true },
  32. { code: 'orgId', name: 'orgName', type: 'choose', required: true, urlKey: 'chooseOrg' },
  33. { code: 'roleId', name: 'roleName', type: 'choose', required: false, urlKey: 'chooseRole' },
  34. ],
  35. oauth:
  36. [],
  37. remarks:
  38. [
  39. { code: 'remarks', type: 'textarea', title: mixins.$t('remarks') }
  40. ]
  41. },
  42. // 路由
  43. routeObjName: 'staff',
  44. },
  45. /**
  46. * @desc : 选择数据源
  47. * @date : 2024/2/1 15:49
  48. * @author : 姜永辉
  49. */
  50. chooseData(e) {
  51. let formData = JSON.parse(this.data.formData)
  52. let code = e.detail.code
  53. let data = e.detail.data.data
  54. if (code == "staffId") { //员工
  55. formData.staffId = data.id
  56. formData.staffName = data.name
  57. }
  58. if (code == "orgId") { //部门
  59. formData.orgId = data.id
  60. formData.orgName = data.name
  61. }
  62. if (code == "roleId") { //角色
  63. let ids = []
  64. let names = []
  65. if (data && data.list) {
  66. data.list.forEach(element => {
  67. ids.push(element.roleId)
  68. names.push(element.roleName)
  69. });
  70. }
  71. formData.roleIds = ids.join(',')
  72. formData.roleName = names.join(',')
  73. }
  74. this.setData({
  75. formData: JSON.stringify(formData)
  76. })
  77. },
  78. /**
  79. * @desc : 保存的參數設置
  80. * @date : 2024/2/1 15:49
  81. * @author : 姜永辉
  82. */
  83. setParams(params) {
  84. let formData = JSON.parse(this.data.formData)
  85. params.roleIds = (params.roleIds && params.roleIds.length > 0) ? params.roleIds.split(',') : []
  86. if (this.data.gradeCode != Constants.gradeCode.PRO) {
  87. params.roleIds = [app.globalData.user.roleIds[0]]
  88. }
  89. // 专业版
  90. if (this.data.gradeCode == Constants.gradeCode.PRO) {
  91. params.flgCanLogin = (formData.flgCanPcLogin || formData.flgCanWxLogin)
  92. // 1:PC端,2:移动端,3:PC+移动端
  93. if (formData.flgCanPcLogin && formData.flgCanWxLogin) {
  94. params.loginType = Constants.loginType.loginTypeWxPc
  95. } else if (formData.flgCanPcLogin) {
  96. params.loginType = Constants.loginType.loginTypePc
  97. } else if (formData.flgCanWxLogin) {
  98. params.loginType = Constants.loginType.loginTypeWx
  99. } else {
  100. params.loginType = Constants.loginType.loginTypeNo
  101. }
  102. } else {
  103. // 标准版的 loginType 只能是 2:移动端 没有pc端
  104. params.loginType = Constants.loginType.loginTypeWx
  105. }
  106. return params
  107. },
  108. /**
  109. * @desc : 保存数据服务
  110. * @date : 2024/2/1 15:49
  111. * @author : 姜永辉
  112. */
  113. saveData() {
  114. if (this.data.formMode == Constants.formMode.edit) {
  115. return this.excute(this.data.service, this.data.service.update, this.data.params)
  116. } else {
  117. return this.excute(this.data.service, this.data.service.insert, this.data.params)
  118. }
  119. },
  120. /**
  121. * @desc : 处理保存后续事件
  122. * @date : 2024/6/17 15:49
  123. * @author : 于继渤
  124. */
  125. handleSaveData() {
  126. //新手引导过来,需要返回
  127. if (this.data.formReturnMode == Constants.formReturnMode.beginnerGuide) {
  128. const eventChannel = this.getOpenerEventChannel();
  129. eventChannel.emit('refresh', {
  130. id: 1
  131. })
  132. setTimeout(() => {
  133. wx.navigateBack({
  134. delta: 1
  135. });
  136. }, 200)
  137. }
  138. },
  139. /**
  140. * @desc : 给表单赋值
  141. * @date : 2024/2/1 15:49
  142. * @author : 姜永辉
  143. */
  144. setValuesByEdit(data) {
  145. data.roleIds = (data.roleIds && data.roleIds.length > 0) ? data.roleIds.join(',') : undefined
  146. data.roleName = data.roleNames
  147. // 专业版
  148. if (this.data.gradeCode == Constants.gradeCode.PRO) {
  149. // 1:PC端,2:移动端,3:PC+移动端 4无
  150. if (data.loginType == Constants.loginType.loginTypeWxPc) {
  151. if (data.flgCanLogin) {
  152. data.flgCanPcLogin = true
  153. data.flgCanWxLogin = true
  154. }
  155. } else if (data.loginType == Constants.loginType.loginTypePc) {
  156. if (data.flgCanLogin) {
  157. data.flgCanPcLogin = data.flgCanLogin
  158. }
  159. } else if (data.loginType == Constants.loginType.loginTypeWx) {
  160. if (data.flgCanLogin) {
  161. data.flgCanWxLogin = data.flgCanLogin
  162. }
  163. }
  164. }
  165. this.setData({
  166. hrStatus: data.hrStatus == 2 ? true : false,
  167. formData: JSON.stringify(data)
  168. })
  169. },
  170. /**
  171. * @desc : 页面加载数据方法
  172. * @date : 2024/2/1 15:49
  173. * @author : 姜永辉
  174. */
  175. loadInit() {
  176. let contentObj_ = this.data.contentObj
  177. if (this.data.formMode == Constants.formMode.edit) {
  178. wx.setNavigationBarTitle({
  179. title: mixins.$t('staffEdit'),
  180. })
  181. } else {
  182. wx.setNavigationBarTitle({
  183. title: mixins.$t('staffAdd'),
  184. })
  185. let formData = {}
  186. formData.orgId = app.globalData.user.orgId
  187. formData.orgName = app.globalData.user.orgName
  188. }
  189. // 专业版
  190. if (this.data.gradeCode == Constants.gradeCode.PRO) {
  191. contentObj_['oauth'] =
  192. [
  193. { code: 'flgCanPcLogin', type: 'switch', title: mixins.$t('flgCanPcLogin') },
  194. { code: 'flgCanWxLogin', type: 'switch', title: mixins.$t('flgCanWxLogin') },
  195. ]
  196. } else {
  197. contentObj_['main'] = [
  198. { code: 'staffCode', type: 'str', required: true, title: mixins.$t('staffCode') },
  199. { code: 'staffName', type: 'str', required: true, title: mixins.$t('staffName') },
  200. { code: 'staffPhone', type: 'phone', title: mixins.$t('staffPhone'), required: true },
  201. { code: 'orgId', name: 'orgName', type: 'choose', required: true, urlKey: 'chooseOrg' }
  202. ]
  203. contentObj_['oauth'] =
  204. [
  205. { code: 'flgCanLogin', type: 'switch', title: mixins.$t('flgCanLogin') },
  206. ]
  207. //标准版-新建选择部门页面隐藏新建
  208. if (this.data.formMode == Constants.formMode.edit) { } else {
  209. let formData = {}
  210. formData.orgId = app.globalData.user.orgId
  211. formData.orgName = app.globalData.user.orgName
  212. this.setData({
  213. formData: JSON.stringify(formData)
  214. })
  215. }
  216. }
  217. this.setData({
  218. contentObj: contentObj_,
  219. })
  220. },
  221. })