org.js 9.0 KB

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