jk_B.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752
  1. var app = getApp()
  2. var that;
  3. var animation;
  4. var setTime;
  5. Page({
  6. data: {
  7. users: [],
  8. items: [],
  9. animationInfo: '',
  10. isShowType: '',//是显示选择规则还是显示选择分类
  11. activeIndex: '',
  12. isArr: ['奖', '扣'],
  13. reviewerObj: [],//默认的审批人
  14. disabled: false,
  15. employeeList: [],//人员列表
  16. superior_list: [],//领导人员
  17. type: 'B',
  18. isGzType: 'BF',
  19. defaultRuleId: '',
  20. isCreator: false,//是否系统管理员
  21. popupCx: '',
  22. boxTop: 0,
  23. ruleOnoff: false,
  24. // 长连接结果
  25. results: [], //提交的返回结果集合
  26. isResult: false,
  27. percentage: 0,
  28. resultList: [],//要发送数据的集合
  29. resultIndex: 0,
  30. isShowError: false,
  31. errorList: [],
  32. isErrorShow: false,
  33. isBh:false,
  34. },
  35. onLoad(data) {
  36. that = this;
  37. this.cheakAx()
  38. this.setData({
  39. type: data.type,
  40. isGzType: data.type == "B" ? "BF" : "AF",
  41. isCreator: app.globalData.isCreator,
  42. superior_list: app.globalData.userData.employee_detail.superior_list,
  43. items: [{//录入选项列表
  44. ticket_count:false,
  45. checked: true,//判断是否开启指定规则
  46. rule_id: '',//积分分类id
  47. rule_id2: '',
  48. rule_name: '',//积分分类名称
  49. item_id: 0,//积分细则id 不选可以为0
  50. point: '',//录入积分可为正负值,不能为0(细则)
  51. point2: '',//录入积分可为正负值,不能为0(分类)
  52. remark: '',//备注
  53. event_time: app.globalData.day,//事件时间
  54. pt_id: '',//积分种类id
  55. reviewer_id: '',//审核人ID
  56. revieweName: '',//审批人姓名(非传)
  57. files: '',//附件数组列表
  58. isArrindex: true,//奖扣索引(默认奖)(细则)
  59. isArrindex2: true,//奖扣索引(默认奖)(分类)
  60. selectRule: '',//选择的规则
  61. }],
  62. })
  63. if (data.type == "B") {
  64. dd.setNavigationBar({ title: "奖扣B分" });
  65. } else {
  66. dd.setNavigationBar({ title: "奖扣A分" });
  67. }
  68. },
  69. onPageScroll(e) {
  70. if (e.scrollTop != 0) {
  71. this.setData({
  72. boxTop: e.scrollTop
  73. })
  74. }
  75. },
  76. onShow() {
  77. animation = dd.createAnimation({
  78. duration: 200,
  79. timeFunction: "linear",
  80. });
  81. },
  82. // 页面被关闭
  83. onUnload() {
  84. app.globalData.socketApi.closewebsocket();
  85. },
  86. showText() {
  87. this.setData({ isBh: !this.data.isBh })
  88. },
  89. //显示图片
  90. showImg(e) {
  91. var index = e.target.dataset.index;
  92. var item = e.target.dataset.item
  93. dd.previewImage({
  94. current: index,
  95. urls: item
  96. });
  97. },
  98. //获取系统配置
  99. cheakAx() {
  100. app.$get("/api/integral/site/config").then((res) => {
  101. let data = res.data.data;
  102. if (data.specified_rule_item) {
  103. this.setData({
  104. ruleOnoff: data.specified_rule_item == 1 ? true : false
  105. })
  106. } else {
  107. this.setData({
  108. ruleOnoff: false
  109. })
  110. }
  111. })
  112. },
  113. //选择奖还是扣(细则)
  114. bindPickerChange(e) {
  115. var index = e.target.dataset.index;
  116. var isArrindex = `items[${index}].isArrindex`;
  117. var isTrue = that.data.items[index].isArrindex
  118. this.setData({
  119. [isArrindex]: !isTrue,
  120. });
  121. },
  122. //选择奖还是扣(分类)
  123. bindPickerChange2(e) {
  124. var index = e.target.dataset.index;
  125. var isArrindex2 = `items[${index}].isArrindex2`;
  126. var isTrue = that.data.items[index].isArrindex2
  127. this.setData({
  128. [isArrindex2]: !isTrue,
  129. });
  130. },
  131. //关闭规则
  132. onClose() {
  133. animation.translateY(1200).step();
  134. that.setData({
  135. isShowType: '',
  136. animationInfo: animation.export(),
  137. popupCx: '',
  138. });
  139. setTimeout(() => {
  140. dd.pageScrollTo({
  141. scrollTop: that.data.boxTop
  142. })
  143. }, 100)
  144. },
  145. //选择弹窗
  146. openSelect(e) {
  147. var num = e.target.dataset.num;
  148. var superior_list = this.data.superior_list;
  149. that.setData({ activeIndex: '', isShowType: '0' });
  150. if (num == 4) {
  151. if (superior_list.length == 0) {
  152. this.showToast('你没有审批人,请联系管理员')
  153. return;
  154. }
  155. }
  156. if (e.target.dataset.ruleId) {
  157. that.setData({ defaultRuleId: e.target.dataset.ruleId });
  158. }
  159. if (e.target.dataset.item) {
  160. if (e.target.dataset.item.id) {
  161. that.setData({ reviewerObj: [e.target.dataset.item] });
  162. } else {
  163. that.setData({ reviewerObj: [] });
  164. }
  165. }
  166. animation.translateY(0).step();
  167. that.setData({
  168. isShowType: num,
  169. activeIndex: e.target.dataset.index,
  170. animationInfo: animation.export(),
  171. popupCx: 'container__mask',
  172. });
  173. },
  174. //删除图片
  175. deteleImg(e) {
  176. var { itemIndx, index } = e.target.dataset;
  177. var files = that.data.items[itemIndx].files;//获取itemS集合中对应的files
  178. var files_box = `items[${itemIndx}].files`;//
  179. app.globalData.arrRemoveObj(files, files[index]);
  180. that.setData({
  181. [files_box]: files
  182. });
  183. },
  184. // 清空内容
  185. deleteRemark(e) {
  186. var index2 = e.target.dataset.index;
  187. var remark = `items[${index2}].remark`;//
  188. that.setData({
  189. [remark]: ''
  190. });
  191. },
  192. //图片选择
  193. openImg(e) {
  194. var index2 = e.target.dataset.index;
  195. var files = that.data.items[index2].files;
  196. if (files.length >= 3) {
  197. app.globalData.showToast("只能上传三张");
  198. return false;
  199. }
  200. dd.chooseImage({
  201. count: 1,
  202. success: (res) => {
  203. that.postImg(res.filePaths[0], index2);
  204. },
  205. });
  206. },
  207. postImg(img_url, index) {
  208. var files_box = `items[${index}].files`;
  209. var files = this.data.items[index].files;
  210. dd.httpRequest({
  211. url: app.globalData.imgHttpUrl,
  212. method: 'POST',
  213. data: {
  214. md5: that.random_string(32),
  215. 'name': app.globalData.day
  216. },
  217. success: function (res) {
  218. if (app.globalData.userData.site_id) {
  219. var key = 'intesys/dd/' + app.globalData.userData.site_id + "/" + app.globalData.day + '/' + that.random_string(32) + '.png';
  220. } else {
  221. var key = 'intesys/dd/' + app.globalData.day + '/' + that.random_string(32) + '.png';
  222. }
  223. var obj = res.data.data;
  224. dd.uploadFile({
  225. url: app.globalData.ALIOSS_URL,
  226. fileType: 'image',
  227. fileName: 'file',
  228. filePath: img_url,
  229. formData: {
  230. key: key,
  231. policy: obj.policy,
  232. OSSAccessKeyId: obj.accessid,
  233. success_action_status: 200,
  234. signature: obj.signature
  235. },
  236. success: (res) => {
  237. if (res.statusCode == 200) {
  238. if (files.length > 0) {
  239. files.push('http://cdn.intesys.g107.com/' + key)
  240. } else {
  241. files = ['http://cdn.intesys.g107.com/' + key];
  242. }
  243. that.setData({
  244. [files_box]: files
  245. });
  246. app.globalData.showToast("已上传");
  247. }
  248. },
  249. fail: function (res) {
  250. app.globalData.showToast("上传失败");
  251. }
  252. });
  253. },
  254. fail: function (res) {
  255. app.globalData.showToast("上传失败");
  256. }
  257. })
  258. },
  259. random_string(len) {
  260. len = len || 32
  261. var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
  262. var maxPos = chars.length
  263. var pwd = ''
  264. for (let i = 0; i < len; i++) {
  265. pwd += chars.charAt(Math.floor(Math.random() * maxPos))
  266. }
  267. return pwd
  268. },
  269. //备注输入
  270. bindTextAreaBlur: function (e) {
  271. var index = e.target.dataset.index;
  272. var remark = `items[${index}].remark`
  273. this.setData({
  274. [remark]: e.detail.value,
  275. });
  276. },
  277. //积分输入
  278. bindKeyInput(e) {
  279. var index = e.target.dataset.index;
  280. var point = `items[${index}].point`;
  281. var selectRule = this.data.items[index].selectRule;
  282. var isArrindex = this.data.items[index].isArrindex;
  283. // var strMin, strMax;
  284. // if (selectRule.min_point < 0) {
  285. // var min = selectRule.min_point.toString();
  286. // strMin = min.slice(1, min.length);
  287. // } else {
  288. // strMin = selectRule.min_point
  289. // }
  290. this.setData({
  291. [point]: e.detail.value,
  292. });
  293. return;
  294. //最小值
  295. var value;
  296. var showValue = e.detail.value
  297. if (isArrindex == true) {
  298. value = e.detail.value;
  299. } else {
  300. value = 0 - e.detail.value;
  301. }
  302. if (selectRule) {
  303. if (value < selectRule.min_point || value > selectRule.max_point) {
  304. app.globalData.showToast("已超出范围值")
  305. that.setData({
  306. [point]: Number(strMin)
  307. });
  308. } else {
  309. this.setData({
  310. [point]: showValue,
  311. });
  312. }
  313. } else {
  314. this.setData({
  315. [point]: showValue,
  316. });
  317. }
  318. },
  319. //选择规则分类
  320. bindKeyInput2(e) {
  321. var index = e.target.dataset.index;
  322. var point = `items[${index}].point2`;
  323. this.setData({
  324. [point]: e.detail.value,
  325. });
  326. },
  327. //删除一条
  328. deleteArr(e) {
  329. var index = e.target.dataset.index;
  330. var list = that.data.items;
  331. app.globalData.arrRemoveObj(list, list[index]);
  332. that.setData({
  333. items: list
  334. })
  335. },
  336. //添加一条
  337. addArr() {
  338. var list = that.data.items
  339. if (list.length >= 10) {
  340. this.showToast('一次只能添加10条奖扣')
  341. return;
  342. }
  343. var arr = {//录入选项列表.
  344. ticket_count:false,
  345. checked: true,
  346. rule_id: '',
  347. rule_id2: '',
  348. rule_name: '',
  349. item_id: 0,
  350. point: '',
  351. point2: '',
  352. remark: '',
  353. event_time: app.globalData.day,
  354. pt_id: '',
  355. reviewer_id: '',//审核人ID
  356. revieweName: '',//审批人姓名(非传)
  357. files: '',
  358. isArrindex: true,
  359. isArrindex2: true,
  360. selectRule: '',
  361. };
  362. list.push(arr);
  363. that.setData({
  364. items: list
  365. })
  366. },
  367. showToast(text) {
  368. app.globalData.showToast(text);
  369. },
  370. resubmit(){
  371. this.setData({
  372. resultList: this.data.errorList,
  373. resultIndex: 0,
  374. percentage: 0,
  375. results: [],
  376. isResult: true,
  377. isErrorShow: false,
  378. popupCx: 'container__mask',
  379. })
  380. this.opneWebSocket()
  381. },
  382. formSubmit() {
  383. // app.globalData.socketApi.sendData({type:'review'},(res)=>{
  384. // console.log(res)
  385. // })
  386. var items = this.data.items;
  387. var userData = this.data.users;
  388. var arr = [];
  389. var isTg = true;
  390. var pt_id = app.getTypesItem(this.data.isGzType).id
  391. if (userData.length == 0) {
  392. this.showToast('请选择奖扣对象')
  393. return;
  394. }
  395. for (var i = 0; i < items.length; i++) {
  396. var obj = {};
  397. var item = items[i];
  398. var num = item.checked ? item.point : item.point2
  399. var point;
  400. if (item.checked) {
  401. if (item.isArrindex != true) {
  402. point = 0 - num;
  403. } else {
  404. point = num;
  405. }
  406. if (point < item.selectRule.min_point || point > item.selectRule.max_point) {
  407. this.showToast(`第${i + 1}条,积分分值超出可输入范围`);
  408. isTg = false;
  409. }
  410. } else {
  411. if (item.isArrindex2 != true) {
  412. point = 0 - num;
  413. } else {
  414. point = num;
  415. }
  416. }
  417. if (item.checked) {
  418. if (!item.rule_id) {
  419. this.showToast(`第${i + 1}条请选择规则`);
  420. isTg = false;
  421. break;
  422. }
  423. } else {
  424. if (!item.rule_id2) {
  425. this.showToast(`第${i + 1}条请选择分类`);
  426. isTg = false;
  427. break;
  428. }
  429. }
  430. if (point == 0 || !point) {
  431. this.showToast(`第${i + 1}条积分分值不能为0或者为空`);
  432. isTg = false;
  433. break;
  434. }
  435. if (!item.remark) {
  436. this.showToast(`第${i + 1}条事件内容不能为空`);
  437. isTg = false;
  438. break;
  439. }
  440. obj.rule_id = item.checked ? item.rule_id : item.rule_id2;
  441. obj.item_id = item.checked ? item.item_id : 0;
  442. obj.item_name = item.item_name;
  443. obj.rule_name = item.rule_name;
  444. obj.point = point;
  445. obj.remark = item.remark;
  446. obj.event_time = item.event_time;
  447. obj.pt_id = pt_id;
  448. obj.reviewer_id = item.reviewer_id ? item.reviewer_id : 0;
  449. obj.files = item.files;
  450. obj.ticket_count=item.ticket_count? 1:0,
  451. arr.push(obj);
  452. }
  453. var userIds = []
  454. userData.map(item => {
  455. userIds.push(item.id)
  456. })
  457. if (isTg) {
  458. var data = { members: userIds, items: arr }
  459. // 走长连接
  460. this.webSocket(data)
  461. return false;
  462. this.setData({ disabled: true });
  463. var url = this.data.type == 'B' ? 'api/integral/point/entry' : 'api/integral/review/a/entry'
  464. app.$post(url, data).then((res) => {
  465. var is = true, msg;
  466. if (this.data.type == 'B') {
  467. res.data.data.list.forEach(item => {
  468. if (item.status != 1) {
  469. is = false;
  470. msg = item.msg;
  471. }
  472. })
  473. } else {
  474. res.data.data.list.forEach(item => {
  475. if (item.status != 1) {
  476. is = false;
  477. msg = item.rule_item;
  478. }
  479. })
  480. }
  481. if (is) {
  482. this.showToast('提交成功');
  483. setTimeout(() => {
  484. this.setData({ disabled: false });
  485. dd.navigateBack({ delta: 1 })
  486. }, 1000);
  487. } else {
  488. this.setData({ disabled: false });
  489. this.showToast(msg);
  490. }
  491. }).catch(err => {
  492. this.setData({ disabled: false });
  493. })
  494. }
  495. },
  496. webSocket(data) {
  497. let { members, items } = data;
  498. let arr = [];
  499. members.forEach(item => {
  500. items.forEach(item2 => {
  501. item2.type = this.data.type == 'B' ? 'peb' : 'pea';
  502. item2.employee_id = item;
  503. arr.push(JSON.parse(JSON.stringify(item2)))
  504. })
  505. })
  506. this.setData({
  507. resultList: arr,
  508. resultIndex: 0,
  509. percentage: 0,
  510. results: [],
  511. isResult: true,
  512. popupCx: 'container__mask',
  513. })
  514. this.opneWebSocket()
  515. },
  516. opneWebSocket() {
  517. let wsData = this.data.resultList;
  518. if (wsData[this.data.resultIndex]) {
  519. setTime = setTimeout(() => {
  520. let errorList = wsData.slice(this.data.resultIndex, wsData.length);
  521. errorList.forEach(item => {
  522. let obj = this.returnResult(Number(item.employee_id))[0]
  523. item.name = obj ? obj.name:'未知';
  524. })
  525. this.setData({
  526. isErrorShow: true,
  527. errorList: errorList
  528. })
  529. clearTimeout(setTime);
  530. app.globalData.socketApi.closewebsocket();
  531. }, 15000)
  532. app.globalData.socketApi.sendData(wsData[this.data.resultIndex],this.onmessageWS,true);
  533. } else {
  534. // console.log(this.data.results)
  535. }
  536. },
  537. onmessageWS(e) {
  538. // 因为作用域问题,这个函数不能使用this
  539. if (e.type == 'peb' || e.type == 'pea') {
  540. clearTimeout(setTime);
  541. let lng = that.data.resultList.length;// 进度条
  542. let results = that.data.results;//结果集
  543. results.unshift(e.result);
  544. that.setData({
  545. percentage: Math.floor(that.data.percentage += (100 / lng)),
  546. results: results,
  547. resultIndex: that.data.resultIndex + 1
  548. })
  549. that.opneWebSocket();
  550. if (lng == that.data.results.length) {
  551. that.setData({
  552. percentage: 100,
  553. })
  554. }
  555. }
  556. if (e.type == 'error') {
  557. clearTimeout(setTime);
  558. that.setData({
  559. isShowError: true,
  560. })
  561. }
  562. },
  563. closeTc(e) {
  564. var index = e.target.dataset.index;
  565. this.setData({
  566. resultList: [],
  567. resultIndex: 0,
  568. percentage: 0,
  569. results: [],
  570. errorList:[],
  571. isErrorShow:false,
  572. isShowError: false,
  573. isResult: false,
  574. popupCx: '',
  575. users: [],
  576. items: [{//录入选项列表
  577. ticket_count:false,
  578. checked: true,//判断是否开启指定规则
  579. rule_id: '',//积分分类id
  580. rule_id2: '',
  581. rule_name: '',//积分分类名称
  582. item_id: 0,//积分细则id 不选可以为0
  583. point: '',//录入积分可为正负值,不能为0(细则)
  584. point2: '',//录入积分可为正负值,不能为0(分类)
  585. remark: '',//备注
  586. event_time: app.globalData.day,//事件时间
  587. pt_id: '',//积分种类id
  588. reviewer_id: '',//审核人ID
  589. revieweName: '',//审批人姓名(非传)
  590. files: '',//附件数组列表
  591. isArrindex: true,//奖扣索引(默认奖)(细则)
  592. isArrindex2: true,//奖扣索引(默认奖)(分类)
  593. selectRule: '',//选择的规则
  594. }],
  595. })
  596. if(index==1){
  597. setTimeout(() => {
  598. dd.navigateBack({ delta: 1 })
  599. }, 1000);
  600. }
  601. },
  602. returnResult(id) {
  603. return app.globalData.usersList.filter(item => {
  604. return item.id == id;
  605. })
  606. },
  607. switchChange(e) {
  608. var index = e.target.dataset.index;
  609. var item = `items[${index}].checked`;
  610. that.setData({
  611. [item]: e.detail.value
  612. })
  613. },
  614. switchChange2(e) {
  615. var index = e.target.dataset.index;
  616. var item = `items[${index}].ticket_count`;
  617. that.setData({
  618. [item]: e.detail.value
  619. })
  620. },
  621. //选择时间
  622. openDate(e) {
  623. var index = e.target.dataset.index;
  624. var item = `items[${index}].event_time`
  625. dd.datePicker({
  626. format: 'yyyy-MM-dd',
  627. currentDate: app.globalData.day,
  628. success: (res) => {
  629. that.setData({
  630. [item]: res.date
  631. })
  632. },
  633. });
  634. },
  635. //选择人
  636. onSelectUser(item) {
  637. //空数据
  638. // this.data.items.forEach((obj, index) => {
  639. // var reviewer_id = `items[${index}].reviewer_id`
  640. // var revieweName = `items[${index}].revieweName`
  641. // if (obj.reviewer_id) {
  642. // that.setData({
  643. // [reviewer_id]: '',
  644. // [revieweName]: '',
  645. // });
  646. // }
  647. // })
  648. // this.setData({ superior_list: [] });
  649. // if (item.length > 0) {
  650. that.setData({
  651. users: item.length > 0 ? item : [],
  652. })
  653. // }
  654. },
  655. //选择人2
  656. onSelectUser2(item) {
  657. var elm = item.length > 0 ? item[0] : { id: '', name: '' };
  658. var index = this.data.activeIndex;
  659. var reviewer_id = `items[${index}].reviewer_id`
  660. var revieweName = `items[${index}].revieweName`
  661. var ticket_count = `items[${index}].ticket_count`
  662. var getTicket_count = this.data.items[index].ticket_count;
  663. that.setData({
  664. [reviewer_id]: elm.id,
  665. [revieweName]: elm.name,
  666. });
  667. if(elm.id){
  668. that.setData({
  669. [ticket_count]:false
  670. });
  671. if(getTicket_count){
  672. app.globalData.showToast("选择递交审批人时,发放奖票将失效,由审批上级来发放奖票");
  673. }
  674. }
  675. },
  676. //选择规则分类
  677. onSelectType(item) {
  678. var index = this.data.activeIndex;
  679. var rule_id2 = `items[${index}].rule_id2`;//分类ID
  680. var rule_name = `items[${index}].rule_name`;//分类名称
  681. this.setData({
  682. [rule_id2]: item.id,
  683. [rule_name]: item.name,
  684. });
  685. },
  686. //选择规则
  687. onSelectItem(item) {
  688. var index = this.data.activeIndex;
  689. var point = `items[${index}].point`
  690. var isArrindex = `items[${index}].isArrindex`
  691. var selectRule = `items[${index}].selectRule`
  692. var remark = `items[${index}].remark`
  693. var rule_id = `items[${index}].rule_id`;//分类ID
  694. var item_id = `items[${index}].item_id`;//分类ID
  695. var item_name = `items[${index}].item_name`;//分类ID
  696. var strMin;
  697. if (item.min_point < 0) {
  698. var min = item.min_point.toString();
  699. var strMin = min.slice(1, min.length);
  700. } else {
  701. strMin = item.min_point;
  702. }
  703. this.setData({
  704. [point]: Number(strMin),
  705. [isArrindex]: item.min_point > 0 ? true : false,
  706. [selectRule]: item,
  707. [remark]: item.remark,
  708. [item_name]: item.remark,
  709. [rule_id]: item.rule_id,
  710. [item_id]: item.id,
  711. });
  712. },
  713. //获取人员(上级人员)
  714. getEmployeeList(userIdArr, callBack) {
  715. app.$get("api/employee/superior", { employee_id: userIdArr, filter_applyor: 1 }).then((res) => {
  716. callBack(res.data.data.list)
  717. })
  718. },
  719. intersection(arr) {
  720. const arrSet = []
  721. const intersectionSet = new Set()
  722. arr.forEach(items => {
  723. arrSet.push(new Set(items.map(item => item.id)))
  724. items.forEach(item => intersectionSet.add(item.id))
  725. })
  726. return [...intersectionSet].filter(item => arrSet.every(set => set.has(item)))
  727. },
  728. });