sub-org-choose.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. /*******************************************************************************
  2. * Copyright(c) 2022 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.组织机构列表
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 王英杰 2024-2-12 1.00
  9. *******************************************************************************/
  10. const Constants = require('@/utils/Constants.js');
  11. const config = require('@/config/config.js');
  12. const mixins = require('@/mixins/index.js')
  13. const util = require('@/utils/util.js')
  14. const app = getApp()
  15. Page({
  16. mixins: [mixins],
  17. /**
  18. * 页面的初始数据
  19. */
  20. data: {
  21. imageUrl: config.image_url + '/static/img/',
  22. readonly: false,
  23. // 上级部门
  24. topOrg: null,
  25. btnFormData: '{\"flag\":true}',
  26. // 弹出按钮
  27. buttonList: [{
  28. code: "newSubOrg",
  29. title: mixins.$t('newSubOrg'), //'确定'
  30. }],
  31. contentList: [{
  32. code: 'flag',
  33. title: mixins.$t('enable'), //'启用',
  34. type: 'checkbox'
  35. }],
  36. // 查询条件
  37. searchContent: [],
  38. form: null, //新建的数据form
  39. // 路由
  40. routeObjName: 'org', // 路由
  41. popContent: [{ //新建的 各个控件信息
  42. code: 'orgCode',
  43. type: 'str',
  44. name: 'orgCode',
  45. required: false,
  46. readonly: true
  47. }, { //上级部门
  48. code: 'parentId',
  49. name: 'parentName',
  50. title: mixins.$t("parentName"),
  51. type: 'choose',
  52. urlKey: 'chooseOrg',
  53. required: true
  54. }, { //部门名称
  55. code: 'orgName',
  56. type: 'str',
  57. name: 'orgName',
  58. required: true
  59. }, { //可用仓库
  60. code: 'whId',
  61. name: 'whName',
  62. title: '可用仓库',
  63. type: 'choose',
  64. urlKey: 'selectWarehouse',
  65. }, { //可用资金账号
  66. code: 'accountOut',
  67. name: 'accountOutName',
  68. title: '可用资金账号',
  69. type: 'choose',
  70. urlKey: 'selectMoneyAccount'
  71. }, { //备注
  72. code: 'remarks',
  73. type: 'str',
  74. title: mixins.$t("remarks"),
  75. required: false
  76. }],
  77. },
  78. /**
  79. * @desc : 启用停用
  80. * @date : 2024/5/7 15:49
  81. * @author : 周兴
  82. */
  83. deactivateEnable(e) {
  84. if (e.detail == 'right') {
  85. let item = e.currentTarget.dataset.item
  86. //执行接口
  87. this.handleMoreDataIsValid(this.data.service, item, 'orgId')
  88. }
  89. },
  90. /**
  91. * @desc :暂时提示信息
  92. * @date : 2024/5/7 15:49
  93. * @author : 周兴
  94. */
  95. showBusinessTip(e) {
  96. util.showToast('业务部门');
  97. },
  98. /**
  99. * @desc : 按钮点击事件回调
  100. * @date : 2024/2/1 15:49
  101. * @author : 王英杰
  102. */
  103. open(e) {
  104. let that = this
  105. let code = e.detail.name
  106. if (code == "newSubOrg") { //跳转部门
  107. this.toadd()
  108. }
  109. },
  110. /**
  111. * @desc :打开新建
  112. * @date : 2024/2/1 15:49
  113. * @author : 王英杰
  114. */
  115. toadd() {
  116. let form = {}
  117. form.editFlag = false
  118. // 给上级部门添加默认值
  119. let item = this.data.item
  120. if (item) {
  121. form.parentId = item.parentId
  122. form.parentName = item.parentName
  123. }
  124. this.setData({
  125. showPop: true,
  126. editFlag: false,
  127. popTitle: this.$t('newDepartment'),
  128. form: JSON.stringify(form)
  129. })
  130. },
  131. /**
  132. * @desc :设置查询参数
  133. * @date : 2024/2/1 15:49
  134. * @author : 王英杰
  135. */
  136. setSearchParams(params) {
  137. let btnFormData = JSON.parse(this.data.btnFormData)
  138. params.pageSize = 100000
  139. params.currentPage = 1
  140. params.parentId = this.data.item.parentId
  141. params.flgValid = btnFormData.flag
  142. return params
  143. },
  144. /**
  145. * @desc :底部按钮 过滤停用启用
  146. * @date : 2024/2/1 15:49
  147. * @author : 王英杰
  148. */
  149. onEnableChange() {
  150. this.searchData()
  151. },
  152. /**
  153. * @desc :关闭新建框(弹出的popup)
  154. * @date : 2024/2/1 15:49
  155. * @author : 王英杰
  156. */
  157. onClosePopup() {
  158. // 使用 setTimeout 添加一秒钟延迟
  159. setTimeout(() => {
  160. this.setData({
  161. readonly: false,
  162. });
  163. }, 1000); // 延迟 1000 毫秒,即 1 秒
  164. },
  165. /**
  166. * @desc : 关闭Pop后修改数据
  167. * @author : 王英杰
  168. * @date : 2024/1/26 11:46
  169. */
  170. editItems(data) {
  171. console.log('data', data);
  172. let params = {
  173. ...this.data.params,
  174. ...data.detail.form
  175. };
  176. let macList = []
  177. if (params.accountOut_data) {
  178. params.accountOut_data.forEach(element => {
  179. let item = {}
  180. item.macId = element.macId
  181. item.ownerFlag = element.flgDefault
  182. macList.push(item)
  183. });
  184. params.macList = macList
  185. }
  186. let warehouseList = []
  187. if (params.whId_data) {
  188. params.whId_data.forEach(element => {
  189. let item = {}
  190. item.whId = element.whId
  191. item.ownerFlag = element.flgDefault
  192. warehouseList.push(item)
  193. });
  194. params.warehouseList = warehouseList
  195. }
  196. console.log("save", params);
  197. if (this.data.editFlag) {
  198. this.excute(this.data.service, this.data.service.update, params, true).then(res => {
  199. if (res.data.code === Constants.SUCESS_CODE) {
  200. // 保存成功清空数据
  201. this.setData({
  202. form: null
  203. })
  204. // 刷新数据
  205. this.searchData();
  206. }
  207. });
  208. } else {
  209. this.excute(this.data.service, this.data.service.insert, params, true).then(res => {
  210. if (res.data.code === Constants.SUCESS_CODE) {
  211. // 保存成功清空数据
  212. this.setData({
  213. form: null
  214. })
  215. // 刷新数据
  216. this.searchData();
  217. }
  218. });
  219. }
  220. },
  221. /**
  222. * @desc :打开选择客户
  223. * @date : 2024/2/1 15:49
  224. * @author : 王英杰
  225. */
  226. openChooseOrg() {
  227. let that = this
  228. let addForm = that.data.addForm
  229. wx.navigateTo({
  230. // url: "./add/add",
  231. url: this.data.route.toAdd.url,
  232. events: {
  233. bindData: function (e) {
  234. console.log('e', e);
  235. addForm.parentOrgName = e.data.name
  236. addForm.parentId = e.data.id
  237. that.setData({
  238. addForm
  239. })
  240. }
  241. },
  242. success: function (res) {
  243. res.eventChannel.emit('params-org', {
  244. url: ''
  245. })
  246. }
  247. })
  248. },
  249. /**
  250. * @desc : 跳转员工新建
  251. * @date : 2024/2/1 15:49
  252. * @author : 王英杰
  253. */
  254. toAddStaff() {
  255. let _this = this
  256. wx.navigateTo({
  257. url: this.data.route.staffAdd.url,
  258. events: {
  259. // 回调后,在这里给页面赋值
  260. bandData: function (e) {
  261. _this.getData()
  262. }
  263. },
  264. success: function (res) {
  265. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  266. res.eventChannel.emit('params', {})
  267. }
  268. })
  269. },
  270. /**
  271. * @desc : 查询
  272. * @date : 2024/2/1 15:49
  273. * @author : 王英杰
  274. */
  275. getData(params) {
  276. return this.excute(this.data.service, this.data.service.selectByCond, params);
  277. },
  278. /**
  279. * @desc :保存接口的 后续处理方法
  280. * @date : 2024/2/1 15:49
  281. * @author : 王英杰
  282. */
  283. handleData(data) {
  284. this.setData({
  285. showPop: false,
  286. })
  287. this.searchData()
  288. },
  289. /**
  290. * @desc :初始化
  291. * @date : 2024/2/1 15:49
  292. * @author : 王英杰
  293. */
  294. loadInit() {
  295. this.setData({
  296. orgName: app.globalData.user.orgName
  297. })
  298. },
  299. /**
  300. * @desc :列表收起 打开 下拉
  301. * @date : 2024/2/1 15:49
  302. * @author : 王英杰
  303. */
  304. onchange(e) {
  305. let index = e.currentTarget.dataset.index;
  306. let open = e.currentTarget.dataset.open;
  307. let tableData = this.data.tableData
  308. tableData[index].open = !open
  309. this.setData({
  310. tableData: tableData,
  311. })
  312. },
  313. /**
  314. * @desc : 跳转跳转三级部门
  315. * @date : 2024/2/1 15:49
  316. * @author : 王英杰
  317. */
  318. toSubOrg(e) {
  319. let _this = this
  320. let dataset = e.currentTarget.dataset;
  321. let chooseOrgSort = this.data.item.chooseOrgSort + " > " + dataset.item.orgName
  322. wx.navigateTo({
  323. url: this.data.route.subOrgChoose.url,
  324. events: {
  325. // 回调后,在这里给页面赋值
  326. bandData: function (e) {
  327. // _this.getData()
  328. }
  329. },
  330. success: function (res) {
  331. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  332. res.eventChannel.emit('params', {
  333. item: {
  334. parentId: dataset.item.orgId,
  335. parentName: dataset.item.orgName,
  336. chooseOrgSort: chooseOrgSort
  337. }
  338. })
  339. }
  340. })
  341. },
  342. /**
  343. * @desc : 点击页面的三级部门名称 查询对应详细
  344. * @date : 2024/2/1 15:49
  345. * @author : 王英杰
  346. */
  347. clickName(e) {
  348. let item = e.currentTarget.dataset.item
  349. // let param = {}
  350. // param.orgId = item.orgId
  351. let excute = this.excute(this.data.service, this.data.service.getbyid + "/" + item.orgId, {});
  352. excute.then(res => {
  353. if (res.data.code === Constants.SUCESS_CODE) {
  354. let form = {}
  355. let data = res.data.data
  356. // form.orgId = data.orgId
  357. // form.orgCode = data.orgCode
  358. // form.parentId = data.parentId
  359. // form.parentName = data.parentName
  360. // form.orgName = data.orgName
  361. // form.remarks = data.remarks
  362. form = { ...data }
  363. // 记录原始的部门Id
  364. form.orgId_social = form.orgId
  365. form.parentId_social = form.parentId
  366. if (data.warehouseBeanList) {
  367. let whId_data = []
  368. let names = []
  369. data.warehouseBeanList.forEach(element => {
  370. let item = {}
  371. item.whId = element.whId
  372. item.flgDefault = element.flgDefault
  373. whId_data.push(item)
  374. names.push(element['whName'])
  375. });
  376. form.whId_data = whId_data
  377. form.whName = names.join(',')
  378. }
  379. if (data.macBeanList) {
  380. let accountOut_data = []
  381. let names = []
  382. data.macBeanList.forEach(element => {
  383. let item = {}
  384. item.macId = element.macId
  385. item.flgDefault = element.flgDefault
  386. accountOut_data.push(item)
  387. names.push(element['macName'])
  388. });
  389. form.accountOut_data = accountOut_data
  390. form.accountOutName = names.join(',')
  391. }
  392. let form_ = { ...form }
  393. form_.editFlag = false
  394. this.setData({
  395. form: JSON.stringify(form_),
  396. showPop: true,
  397. editFlag: false,
  398. readonly: true,
  399. })
  400. }
  401. })
  402. return excute;
  403. },
  404. /**
  405. * @desc : 编辑
  406. * @date : 2024/2/1 15:49
  407. * @author : 王英杰
  408. */
  409. toEdit() {
  410. let form = JSON.parse(this.data.form)
  411. form.flgBusinessControl = form.flgBusiness
  412. form.editFlag = true
  413. this.setData({
  414. showPop: false,
  415. readonly: false,
  416. editFlag: true,
  417. });
  418. setTimeout(() => {
  419. this.setData({
  420. showPop: true,
  421. form: JSON.stringify(form)
  422. });
  423. }, 200);
  424. },
  425. })