org.js 9.8 KB

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