org.js 9.9 KB

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