org.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  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 mixins = require('@/mixins/index.js')
  12. const util = require('@/utils/util.js')
  13. const app = getApp()
  14. Page({
  15. mixins: [mixins],
  16. /**
  17. * 页面的初始数据
  18. */
  19. data: {
  20. readonly: false,
  21. // 查询条件
  22. searchContent: [],
  23. form: null, //新建的数据form
  24. // 路由
  25. routeObjName: 'org', // 路由
  26. popContent: [{ //新建的 各个控件信息
  27. code: 'orgCode',
  28. type: 'str',
  29. name: 'orgCode',
  30. required: false,
  31. readonly: true
  32. }, { //上级部门
  33. code: 'parentId',
  34. name: 'parentName',
  35. title: mixins.$t("parentName"),
  36. type: 'choose',
  37. urlKey: 'chooseOrg',
  38. required: true
  39. }, { //部门名称
  40. code: 'orgName',
  41. type: 'str',
  42. name: 'orgName',
  43. required: true
  44. }, { //可用仓库
  45. code: 'whId',
  46. name: 'whName',
  47. title: '可用仓库',
  48. type: 'choose',
  49. urlKey: 'selectWarehouse',
  50. }, { //可用资金账号
  51. code: 'accountOut',
  52. name: 'accountOutName',
  53. title: '可用资金账号',
  54. type: 'choose',
  55. urlKey: 'selectMoneyAccount'
  56. }, { //备注
  57. code: 'remarks',
  58. type: 'str',
  59. title: mixins.$t("remarks"),
  60. required: false
  61. }],
  62. },
  63. /**
  64. * @desc :设置查询参数
  65. * @date : 2024/2/1 15:49
  66. * @author : 王英杰
  67. */
  68. setSearchParams(params) {
  69. params.pageSize = 100000
  70. params.currentPage = 1
  71. return params
  72. },
  73. /**
  74. * @desc :打开新建
  75. * @date : 2024/2/1 15:49
  76. * @author : 王英杰
  77. */
  78. toadd() {
  79. let form = JSON.parse(this.data.form)||{}
  80. form.editFlag = false
  81. this.setData({
  82. showPop: true,
  83. editFlag: false,
  84. form:JSON.stringify(form)
  85. })
  86. },
  87. /**
  88. * @desc :关闭新建框(弹出的popup)
  89. * @date : 2024/2/1 15:49
  90. * @author : 王英杰
  91. */
  92. onClosePopup() {
  93. // 使用 setTimeout 添加一秒钟延迟
  94. setTimeout(() => {
  95. this.setData({
  96. readonly: false,
  97. });
  98. }, 1000); // 延迟 1000 毫秒,即 1 秒
  99. },
  100. /**
  101. * @desc : 关闭Pop后修改数据
  102. * @author : 王英杰
  103. * @date : 2024/1/26 11:46
  104. */
  105. editItems(data) {
  106. console.log('data', data);
  107. let params = {
  108. ...this.data.params,
  109. ...data.detail.form
  110. };
  111. let macList = []
  112. if (params.accountOut_data) {
  113. params.accountOut_data.forEach(element => {
  114. let item = {}
  115. item.macId = element.macId
  116. item.ownerFlag = element.flgDefault
  117. macList.push(item)
  118. });
  119. params.macList = macList
  120. }
  121. let warehouseList = []
  122. if (params.whId_data) {
  123. params.whId_data.forEach(element => {
  124. let item = {}
  125. item.whId = element.whId
  126. item.ownerFlag = element.flgDefault
  127. warehouseList.push(item)
  128. });
  129. params.warehouseList = warehouseList
  130. }
  131. console.log("save", params);
  132. if(this.data.editFlag){
  133. return this.excute(this.data.service, this.data.service.update, params);
  134. }else{
  135. return this.excute(this.data.service, this.data.service.insert, params);
  136. }
  137. },
  138. /**
  139. * @desc :打开选择客户
  140. * @date : 2024/2/1 15:49
  141. * @author : 王英杰
  142. */
  143. openChooseOrg() {
  144. let that = this
  145. let addForm = that.data.addForm
  146. wx.navigateTo({
  147. // url: "./add/add",
  148. url: this.data.route.toAdd.url,
  149. events: {
  150. bindData: function (e) {
  151. console.log('e', e);
  152. addForm.parentOrgName = e.data.name
  153. addForm.parentId = e.data.id
  154. that.setData({
  155. addForm
  156. })
  157. }
  158. },
  159. success: function (res) {
  160. res.eventChannel.emit('params-org', {
  161. url: ''
  162. })
  163. }
  164. })
  165. },
  166. /**
  167. * @desc : 跳转员工新建
  168. * @date : 2024/2/1 15:49
  169. * @author : 王英杰
  170. */
  171. toAddStaff() {
  172. let _this = this
  173. wx.navigateTo({
  174. url: this.data.route.staffAdd.url,
  175. events: {
  176. // 回调后,在这里给页面赋值
  177. bandData: function (e) {
  178. _this.getData()
  179. }
  180. },
  181. success: function (res) {
  182. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  183. res.eventChannel.emit('params', {})
  184. }
  185. })
  186. },
  187. /**
  188. * @desc : 查询
  189. * @date : 2024/2/1 15:49
  190. * @author : 王英杰
  191. */
  192. getData(params) {
  193. return this.excute(this.data.service, this.data.service.selectByCond, params);
  194. },
  195. /**
  196. * @desc : 查询 后续处理
  197. * @date : 2024/2/1 15:49
  198. * @author : 王英杰
  199. */
  200. handleSearchData(data) {
  201. this.setData({
  202. tableData: util.convertToChildren(data, "parentId", "orgId", null),
  203. })
  204. },
  205. /**
  206. * @desc :保存接口的 后续处理方法
  207. * @date : 2024/2/1 15:49
  208. * @author : 王英杰
  209. */
  210. handleData(data) {
  211. this.setData({
  212. showPop: false,
  213. })
  214. this.searchData()
  215. },
  216. /**
  217. * @desc :初始化
  218. * @date : 2024/2/1 15:49
  219. * @author : 王英杰
  220. */
  221. loadInit() {
  222. this.setData({
  223. orgName: app.globalData.user.orgName
  224. })
  225. },
  226. /**
  227. * @desc :列表收起 打开 下拉
  228. * @date : 2024/2/1 15:49
  229. * @author : 王英杰
  230. */
  231. onchange(e) {
  232. let index = e.currentTarget.dataset.index;
  233. let open = e.currentTarget.dataset.open;
  234. let tableData = this.data.tableData
  235. tableData[index].open = !open
  236. this.setData({
  237. tableData: tableData,
  238. })
  239. },
  240. /**
  241. * @desc : 跳转跳转三级部门
  242. * @date : 2024/2/1 15:49
  243. * @author : 王英杰
  244. */
  245. toSubOrg(e) {
  246. let _this = this
  247. let dataset = e.currentTarget.dataset;
  248. let chooseOrgSort = this.data.orgName + " > " + dataset.item.orgName + " > " + dataset.item_.orgName
  249. wx.navigateTo({
  250. url: this.data.route.subOrgChoose.url,
  251. events: {
  252. // 回调后,在这里给页面赋值
  253. bandData: function (e) {
  254. // _this.getData()
  255. }
  256. },
  257. success: function (res) {
  258. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  259. res.eventChannel.emit('params', {
  260. item: {
  261. parentId: dataset.item_.orgId,
  262. chooseOrgSort: chooseOrgSort
  263. }
  264. })
  265. }
  266. })
  267. },
  268. /**
  269. * @desc : 点击页面的三级部门名称 查询对应详细
  270. * @date : 2024/2/1 15:49
  271. * @author : 王英杰
  272. */
  273. clickName(e) {
  274. let item = e.currentTarget.dataset.item
  275. // let param = {}
  276. // param.orgId = item.orgId
  277. let excute = this.excute(this.data.service, this.data.service.getbyid + "/" + item.orgId, {});
  278. excute.then(res => {
  279. if (res.data.code === Constants.SUCESS_CODE) {
  280. let form = {}
  281. let data = res.data.data
  282. form.orgId = data.orgId
  283. form.orgCode = data.orgCode
  284. form.parentId = data.parentId
  285. form.parentName = data.parentName
  286. form.orgName = data.orgName
  287. form.remarks = data.remarks
  288. if (data.warehouseBeanList) {
  289. let whId_data = []
  290. let names = []
  291. data.warehouseBeanList.forEach(element => {
  292. let item = {}
  293. item.whId = element.whId
  294. item.flgDefault = element.flgDefault
  295. whId_data.push(item)
  296. names.push(element['whName'])
  297. });
  298. form.whId_data = whId_data
  299. form.whName = names.join(',')
  300. }
  301. if (data.macBeanList) {
  302. let accountOut_data = []
  303. let names = []
  304. data.macBeanList.forEach(element => {
  305. let item = {}
  306. item.macId = element.macId
  307. item.flgDefault = element.flgDefault
  308. accountOut_data.push(item)
  309. names.push(element['macName'])
  310. });
  311. form.accountOut_data = accountOut_data
  312. form.accountOutName = names.join(',')
  313. }
  314. let form_ = JSON.parse(this.data.form)
  315. form_.editFlag = false
  316. this.setData({
  317. form: JSON.stringify(form_),
  318. showPop: true,
  319. editFlag: false,
  320. readonly: true,
  321. form:JSON.stringify(form)
  322. })
  323. }
  324. })
  325. return excute;
  326. },
  327. /**
  328. * @desc : 编辑
  329. * @date : 2024/2/1 15:49
  330. * @author : 王英杰
  331. */
  332. toEdit() {
  333. let form = JSON.parse(this.data.form)
  334. form.editFlag = true
  335. this.setData({
  336. showPop: false,
  337. readonly: false,
  338. editFlag: true,
  339. });
  340. setTimeout(() => {
  341. this.setData({
  342. showPop: true,
  343. form:JSON.stringify(form)
  344. });
  345. }, 200);
  346. },
  347. })