select-data.js 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114
  1. const app = getApp();
  2. const api = require('@/utils/api.js');
  3. const Constants = require('@/utils/Constants.js')
  4. const mixins = require('@/mixins/index.js')
  5. Page({
  6. mixins: [mixins],
  7. /**
  8. * 页面的初始数据
  9. */
  10. data: {
  11. showPop: false,
  12. gradeCode: app.globalData.company.gradeCode,
  13. active: 0,
  14. // 选择数据
  15. choosedData: [],
  16. // // 是否显示tab
  17. // tabFlag: false,
  18. // 页签默认在第一个
  19. // 查询条件
  20. searchContent: null,
  21. // 路由
  22. routeObjName: 'common',
  23. // pop使用
  24. routeObjNamePop: '',
  25. // 列表区(内容)
  26. contentList: null,
  27. // 方法名
  28. method: null,
  29. // 字典类型
  30. dictCode: null,
  31. // 标题
  32. title: null,
  33. // 弹出pop的标题
  34. popTitle: null,
  35. // 需要调到的新建路由
  36. addUrl: null,
  37. // 是否多选
  38. chooseFlag: false,
  39. // 提示信息
  40. placeholder: [],
  41. // tab页签
  42. tagList: [],
  43. // 用于多选
  44. valueKey: null,
  45. labelKey: null,
  46. // 多选时是否允许重复
  47. repeatFlag: false,
  48. // 简单标识
  49. simpleFlag: false,
  50. // 弹出新建
  51. popContent: null,
  52. // 是否有默认值
  53. defaultFlag: false,
  54. // 状态
  55. status: null,
  56. // 控制是否显示状态
  57. statusFlag: false,
  58. // 确定按钮
  59. buttonList: [{
  60. name: 'confirm',
  61. title: '确定'
  62. }],
  63. // 新加的数据
  64. addItem: null,
  65. // 其他查询条件
  66. otherSearchParam: null,
  67. },
  68. /**
  69. * @desc : 调到新建
  70. * @author : 姜永辉
  71. * @date : 2022/5/23 15:16
  72. */
  73. toAdd() {
  74. let addUrl = this.data.addUrl
  75. // 如果链接有值,跳转
  76. if (addUrl) {
  77. let _this = this
  78. wx.navigateTo({
  79. url: this.data.addUrl,
  80. events: {
  81. // 保存成功后刷新页面
  82. refresh: function (data) {
  83. // 刷新一览界面
  84. _this.searchData();
  85. }
  86. },
  87. success: function (res) {
  88. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  89. res.eventChannel.emit('params', { formType: _this.data.chooseRoute.type, backFlag: true })
  90. }
  91. })
  92. } else if (this.data.popContent && this.data.popContent.length > 0) {
  93. let popContent = this.data.popContent
  94. popContent.forEach(it => {
  95. if (it.code == 'decimalPlaces') {
  96. let formData = this.data.formData ? JSON.parse(this.data.formData) : {
  97. decimalPlaces: 1
  98. }
  99. this.setData({
  100. formData: JSON.stringify(formData)
  101. })
  102. }
  103. })
  104. this.setData({
  105. showPop: true
  106. })
  107. }
  108. },
  109. /**
  110. * @desc : 选择数据
  111. * @author : 周兴
  112. * @date : 2024/3/25 15:16
  113. */
  114. chooseData(e) {
  115. console.log('eerere', e);
  116. let list = e.detail.list;
  117. let item = e.detail.item;
  118. let valueKey = this.data.valueKey;
  119. if (!valueKey) {
  120. this.setData({
  121. choosedData: list
  122. })
  123. } else {
  124. let choosedData = this.data.choosedData
  125. // 不允许重复
  126. if (!this.data.repeatFlag) {
  127. if (e.detail.checked) { // 勾选
  128. let filters = choosedData.filter(it => it[valueKey] == item[valueKey])
  129. if (!filters || filters.length == 0) {
  130. choosedData.push(item);
  131. }
  132. } else { // 取消勾选
  133. choosedData = choosedData.filter(it => it[valueKey] != item[valueKey])
  134. }
  135. } else {
  136. if (e.detail.checked) { // 勾选
  137. // 可以重复
  138. choosedData.push(item);
  139. }
  140. }
  141. this.setData({
  142. choosedData: choosedData
  143. })
  144. }
  145. },
  146. /**
  147. * @desc : 确定事件-返回数据
  148. * @author : 周兴
  149. * @date : 2024/3/25 15:16
  150. */
  151. confirm() {
  152. let list = [...this.data.choosedData]
  153. let id = list.map(it => it[this.data.valueKey])
  154. let name = list.map(it => it[this.data.labelKey])
  155. const eventChannel = this.getOpenerEventChannel();
  156. eventChannel.emit('bindData', {
  157. data: {
  158. list,
  159. id,
  160. name
  161. }
  162. })
  163. wx.navigateBack({
  164. delta: 1
  165. })
  166. },
  167. /**
  168. * @desc : 点击事件-返回数据
  169. * @author : 周兴
  170. * @date : 2024/5/8 15:16
  171. */
  172. choose(e) {
  173. // 如果选择框开启就走确定模式
  174. if (this.data.chooseFlag) {
  175. return;
  176. }
  177. let item = e.currentTarget.dataset.item
  178. let index = e.currentTarget.dataset.index
  179. let tableData = this.data.tableData
  180. tableData.forEach(res => {
  181. res.checked = false
  182. })
  183. tableData[index].checked = true
  184. this.setData({
  185. tableData: tableData
  186. })
  187. // 执行点击事件
  188. this._toDetail(item);
  189. },
  190. /**
  191. * @desc : 点击事件-返回数据
  192. * @author : 姜永辉
  193. * @date : 2022/5/23 15:16
  194. */
  195. toDetail(e) {
  196. // 如果选择框开启就走确定模式
  197. if (this.data.chooseFlag) {
  198. return;
  199. }
  200. let item = e.detail.item
  201. let tableData = this.data.tableData
  202. tableData.forEach(res => {
  203. res.checked = false
  204. })
  205. tableData[e.detail.index].checked = true
  206. this.setData({
  207. tableData: tableData
  208. })
  209. // 执行点击事件
  210. this._toDetail(item);
  211. },
  212. /**
  213. * @desc : 执行点击事件(私有方法)
  214. * @author : 周兴
  215. * @date : 2024/5/9 15:16
  216. */
  217. _toDetail(item) {
  218. // 读取传入的单据类型
  219. let route = this.data.chooseRoute
  220. console.log('dddf', route);
  221. let data = {}
  222. switch (route.type) {
  223. // 部门
  224. case Constants.chooseType.org:
  225. data = {
  226. id: item.orgId,
  227. name: item.orgName
  228. }
  229. break;
  230. // 员工
  231. case Constants.chooseType.staff:
  232. data = {
  233. id: item.staffId,
  234. name: item.staffName,
  235. orgId: item.orgId,
  236. orgName: item.orgName,
  237. staffPhone: item.staffPhone,
  238. }
  239. break;
  240. // 角色
  241. case Constants.chooseType.role:
  242. data = {
  243. id: item.roleId,
  244. name: item.roleName,
  245. }
  246. break;
  247. //渠道
  248. case Constants.chooseType.saleChannel:
  249. data = {
  250. id: item.channelId,
  251. name: item.channelName,
  252. code: item.channelCode
  253. }
  254. break;
  255. //资金账户
  256. case Constants.chooseType.moneyAccount:
  257. data = {
  258. id: item.macId,
  259. name: item.macName,
  260. code: item.macCode
  261. }
  262. break;
  263. //客户来源
  264. case Constants.chooseType.cusFrom:
  265. data = {
  266. id: item.dataId,
  267. name: item.dataValue,
  268. code: item.dataCode
  269. }
  270. break;
  271. // 供应商
  272. case Constants.chooseType.supplier:
  273. case Constants.chooseType.outSupplier:
  274. data = {
  275. id: item.supId,
  276. name: item.supName,
  277. item: item
  278. }
  279. break;
  280. // 对象类型
  281. case Constants.chooseType.objectType:
  282. data = {
  283. id: item.objId,
  284. name: item.objName,
  285. objType: item.objType
  286. }
  287. break;
  288. // 仓库
  289. case Constants.chooseType.warehouse:
  290. data = {
  291. id: item.whId,
  292. name: item.whName
  293. }
  294. break;
  295. case Constants.chooseType.inventorySku:
  296. data = {
  297. id: item.whId,
  298. name: item.whName,
  299. item: item
  300. }
  301. break;
  302. // 品牌
  303. case Constants.chooseType.brand:
  304. data = {
  305. id: item.brandId,
  306. name: item.brandName
  307. }
  308. break;
  309. // 系列 刘尧 2024.05.29
  310. case Constants.chooseType.series:
  311. data = {
  312. id: item.seriesId,
  313. name: item.seriesName
  314. }
  315. break;
  316. // 计量单位 刘尧 2024.05.29
  317. case Constants.chooseType.unit:
  318. data = {
  319. id: item.unitId,
  320. name: item.unitName,
  321. decimalPlaces: item.decimalPlaces
  322. }
  323. break;
  324. // 系统数据
  325. case Constants.chooseType.kindData:
  326. data = {
  327. id: item.kindCode,
  328. name: item.kindName
  329. }
  330. break;
  331. // 数据字典
  332. case Constants.chooseType.dictionary:
  333. data = {
  334. id: item.dataId,
  335. name: item.dataValue,
  336. dictCode: item.dictCode,
  337. dataCode: item.dataCode,
  338. flgDefault: item.flgDefault,
  339. }
  340. break;
  341. // 系统数据
  342. case Constants.chooseType.kindType:
  343. data = {
  344. id: item.id,
  345. name: item.kindName,
  346. kindType: item.kindType,
  347. kindCode: item.kindCode,
  348. flgDefault: item.flgDefault,
  349. }
  350. break;
  351. default:
  352. data = {}
  353. break;
  354. }
  355. const eventChannel = this.getOpenerEventChannel();
  356. eventChannel.emit('bindData', {
  357. data: data
  358. })
  359. wx.navigateBack({
  360. delta: 1
  361. })
  362. },
  363. /**
  364. * @desc : 设置查询参数
  365. * @date : 2024/3/25 15:49
  366. * @author : 周兴
  367. */
  368. setSearchParams(params) {
  369. params.flgValid = true
  370. // 字典类别
  371. if (this.data.dictCode) {
  372. params.dictCode = this.data.dictCode
  373. }
  374. // 系统数据
  375. if (this.data.kindType) {
  376. params.kindType = this.data.kindType
  377. }
  378. if (this.data.otherSearchParam) {
  379. Object.assign(params, this.data.otherSearchParam)
  380. }
  381. let chooseType = this.data.chooseRoute.type;
  382. // 供应商
  383. if (chooseType == Constants.chooseType.supplier) {
  384. params.supType = "";
  385. let active = this.data.active
  386. params.supType = Constants.kindCode.supplierPur;
  387. if (active == 1) { //采购供应商
  388. params.supType = Constants.kindCode.supplierPur;
  389. } else if (active == 2) { //服务供应商
  390. params.supType = Constants.kindCode.supplierService;
  391. }
  392. }
  393. // 外协供应商
  394. if (chooseType == Constants.chooseType.outSupplier) {
  395. params.supType = Constants.kindCode.supplierOutsourcing;
  396. }
  397. //跟据色号公司skuid判断库存
  398. if (chooseType == Constants.chooseType.inventorySku) {
  399. console.log('globalData', app.globalData)
  400. params.skuId = this.data.item.skuId
  401. params.nonStdCode = this.data.item.nonStdCode
  402. params.cpId = app.globalData.company.cpId
  403. }
  404. if (chooseType == Constants.chooseType.saleChannel) {
  405. params.dataSourceCode = Constants.chooseType.saleChannel
  406. }
  407. if (chooseType == Constants.chooseType.cusFrom) {
  408. params.dataSourceCode = Constants.chooseType.cusFrom
  409. }
  410. if (chooseType == Constants.chooseType.inventorySku) {
  411. params.flgValid = true
  412. }
  413. if (chooseType == Constants.chooseType.warehouse) {
  414. params.flgValid = true
  415. }
  416. return params
  417. },
  418. /**
  419. * @desc : 删除已选
  420. * @date : 2024年3月26日
  421. * @author : 周兴
  422. */
  423. delChoosed(e) {
  424. let choosedData = this.data.choosedData;
  425. choosedData = choosedData.filter((it, index) => index != e.detail.index)
  426. this.setData({
  427. choosedData: choosedData
  428. })
  429. },
  430. /**
  431. * @desc : 查询数据
  432. * @date : 2024年3月23日
  433. * @author : 周兴
  434. */
  435. getData(params) {
  436. console.log('this.data.routeObjName', this.data.method)
  437. let service = app.globalData[this.data.routeObjName + 'Service'];
  438. return this.excute(service, service[this.data.method], params);
  439. },
  440. /**
  441. * @desc : 保存数据
  442. * @date : 2024年5月9日
  443. * @author : 周兴
  444. */
  445. editItems(e) {
  446. let data = e.detail.form
  447. // 基础资料的传值
  448. data.dictCode = this.data.dictCode
  449. this.setData({
  450. formData: JSON.stringify(data)
  451. })
  452. //执行保存编辑操作
  453. this.save({})
  454. },
  455. /**
  456. * @desc : 执行保存
  457. * @date : 2024年5月9日
  458. * @author : 周兴
  459. */
  460. saveData(params) {
  461. let routeObjNamePop = this.data.routeObjNamePop
  462. if (!routeObjNamePop) return;
  463. this.setData({
  464. addItem: null
  465. })
  466. let service = app.globalData[routeObjNamePop + 'Service']
  467. let defaultFlag = this.data.defaultFlag;
  468. // 没有默认值就直接保存
  469. if (!defaultFlag) {
  470. return this.excute(service, service.insert, params).then(res => {
  471. if (res.data.code === Constants.SUCESS_CODE) {
  472. wx.showToast({
  473. title: '保存成功',
  474. image: '/static/image/success.png',
  475. duration: 2000
  476. })
  477. if (res.data.data) {
  478. setTimeout(() => {
  479. // 多选就选中
  480. if (this.data.chooseFlag) {
  481. this.setData({
  482. addItem: res.data.data
  483. })
  484. this.searchData();
  485. } else {
  486. // 执行点击事件
  487. this._toDetail(res.data.data)
  488. }
  489. }, 2000)
  490. }
  491. }
  492. })
  493. } else {
  494. this.isFlgDefaultSave(service).then(it => {
  495. //存在默认
  496. Dialog.confirm({
  497. message: mixins.$t('defaultInfo'),
  498. }).then(() => {
  499. return this.excute(service, service.insert, params).then(res => {
  500. if (res.data.code === Constants.SUCESS_CODE) {
  501. wx.showToast({
  502. title: '保存成功',
  503. image: '/static/image/success.png',
  504. duration: 2000
  505. })
  506. if (res.data.data) {
  507. setTimeout(() => {
  508. // 执行点击事件
  509. this._toDetail(res.data.data)
  510. }, 2000)
  511. }
  512. }
  513. })
  514. }).catch(() => {
  515. // this.setData({
  516. // dataItem: null
  517. // })
  518. // //清除组件数据
  519. // this.selectComponent('#popup').setFormNull()
  520. return
  521. });
  522. })
  523. }
  524. },
  525. /**
  526. * @desc : 新建默认设置提示
  527. * @author : 于继渤
  528. * @date : 2022/5/26 20:16
  529. */
  530. isFlgDefaultSave(service) {
  531. return new Promise((resolve, reject) => {
  532. this.excute(service, service.selectByCond, {
  533. flgDefault: true
  534. }).then(res => {
  535. if (res.data.data.list && res.data.data.list.length > 0) {
  536. resolve(false)
  537. } else {
  538. resolve(true)
  539. }
  540. })
  541. })
  542. },
  543. /**
  544. * @desc : tab切换(列表和已选)
  545. * @date : 2024/3/25 15:49
  546. * @author : 周兴
  547. */
  548. changeTag(e) {
  549. this.setData({
  550. active: e.detail.index
  551. })
  552. },
  553. /**
  554. * @desc : 切换tab
  555. * @date : 2024/2/1 15:49
  556. * @author : 周兴
  557. */
  558. onChangeTabs(e) {
  559. let index = e.detail.detail.index
  560. this.setData({
  561. active: index,
  562. })
  563. // 查询
  564. this.searchData()
  565. },
  566. /**
  567. * @desc : stickyView的高度
  568. * @date : 2024年3月23日
  569. * @author : 周兴
  570. */
  571. queryHeight() {
  572. let _this = this
  573. var query = wx.createSelectorQuery();
  574. query.select('#stickyView').boundingClientRect(function (rect) {
  575. var height = rect.height; // 获取元素的高度
  576. console.log('元素的高度: ' + height + 'px');
  577. _this.setData({
  578. heightList: height + 20
  579. })
  580. }).exec();
  581. },
  582. /**
  583. * @desc : 生命周期函数(初始加载)
  584. * @date : 2024年3月23日
  585. * @author : 周兴
  586. */
  587. loadInit(e) {
  588. // // stickyView的高度
  589. // this.queryHeight()
  590. let route = this.data.chooseRoute;
  591. if (!route || !route.type) {
  592. return;
  593. }
  594. let title;
  595. // 读取传入的单据类型
  596. let chooseType = route.type
  597. //
  598. let dataItemData = {}
  599. switch (chooseType) {
  600. // 角色
  601. case Constants.chooseType.role:
  602. title = "角色"
  603. this.setData({
  604. addUrl: '/package-basic-data/pages/role/add/add',
  605. routeObjName: 'common',
  606. method: 'getRole',
  607. valueKey: 'roleId',
  608. title: 'roleName',
  609. chooseFlag: route.chooseFlag,
  610. contentList: [{
  611. name: 'roleCode',
  612. title: '编码'
  613. },],
  614. placeholder: ['roleName']
  615. })
  616. break;
  617. // 部门
  618. case Constants.chooseType.org:
  619. title = "部门"
  620. this.setData({
  621. addUrl: app.globalData.company.gradeCode == Constants.gradeCode.STD ? null : '/package-basic-data/pages/org/org',
  622. routeObjName: 'common',
  623. method: 'getOrg',
  624. valueKey: 'orgId',
  625. title: 'orgName',
  626. contentList: [{
  627. name: 'orgCode',
  628. title: '部门编码'
  629. },],
  630. placeholder: ['orgName']
  631. })
  632. break;
  633. // 员工
  634. case Constants.chooseType.staff:
  635. title = "员工"
  636. this.setData({
  637. addUrl: '/package-basic-data/pages/staff/add/add',
  638. routeObjName: 'common',
  639. method: 'getStaff',
  640. valueKey: 'staffId',
  641. title: 'staffName',
  642. contentList: [{
  643. name: 'staffCode',
  644. title: '员工工号'
  645. },
  646. {
  647. name: 'orgName',
  648. title: '部门'
  649. },
  650. ],
  651. placeholder: ['staffName']
  652. })
  653. break;
  654. //客户来源
  655. case Constants.chooseType.cusFrom:
  656. title = "客户来源"
  657. this.setData({
  658. routeObjName: 'common',
  659. method: 'getInitData',
  660. valueKey: 'dataId',
  661. title: 'dataValue',
  662. contentList: [{
  663. name: 'dataCode',
  664. title: '来源编码'
  665. },
  666. {
  667. name: 'dataValue',
  668. title: '来源名称'
  669. },
  670. ],
  671. placeholder: ['sourceName']
  672. })
  673. break;
  674. // 资金账户
  675. case Constants.chooseType.moneyAccount:
  676. title = "资金账户"
  677. this.setData({
  678. routeObjName: 'common',
  679. pageFlag: false,
  680. method: 'getMac',
  681. valueKey: 'macId',
  682. title: 'macName',
  683. contentList: [{
  684. name: 'macCode',
  685. title: '账户编码'
  686. },
  687. {
  688. name: 'macName',
  689. title: '账户名称'
  690. },
  691. ],
  692. placeholder: ['moneyAccount']
  693. })
  694. break;
  695. //销售渠道
  696. case Constants.chooseType.saleChannel:
  697. title = "销售渠道"
  698. this.setData({
  699. routeObjName: 'common',
  700. method: 'getInitData',
  701. valueKey: 'channelId',
  702. title: 'channelName',
  703. simpleFlag: true,
  704. placeholder: ['channelName']
  705. })
  706. break;
  707. // 供应商
  708. case Constants.chooseType.supplier:
  709. case Constants.chooseType.outSupplier:
  710. title = "供应商"
  711. this.setData({
  712. addUrl: '/package-purchase/pages/supplier-list/add/add',
  713. routeObjName: 'supplier',
  714. method: 'selectByCond',
  715. title: 'supName',
  716. valueKey: 'supId',
  717. labelKey: 'supName',
  718. chooseFlag: route.chooseFlag,
  719. contentList: [{
  720. name: 'supTypeName',
  721. title: '供应商类别'
  722. },
  723. {
  724. name: 'returnAddress',
  725. title: '供应商地址'
  726. },
  727. {
  728. name: 'payableResidue',
  729. title: '剩余应付'
  730. },
  731. {
  732. name: 'paymentResidue',
  733. title: '预付金额'
  734. },
  735. ],
  736. placeholder: ['supplier']
  737. })
  738. // 多选时就不要有其他的tag标签
  739. // if (!route.chooseFlag) {
  740. // this.setData({
  741. // tagList: [{
  742. // title: mixins.$t("all") //全部
  743. // }, {
  744. // title: mixins.$t("procurementSupplier") //采购供应商
  745. // }, {
  746. // title: mixins.$t("serviceProvider") // 服务供应商
  747. // }],
  748. // })
  749. // }
  750. break;
  751. // 仓库
  752. case Constants.chooseType.warehouse:
  753. title = "仓库"
  754. dataItemData['supervisor'] = app.globalData.user.staffName
  755. dataItemData['contactPhone'] = app.globalData.user.userPhone
  756. this.setData({
  757. routeObjName: 'common',
  758. routeObjNamePop: 'warehouse',
  759. method: 'getWarehouseListBy',
  760. valueKey: 'whId',
  761. title: 'whName',
  762. contentList: [{
  763. name: 'supervisor',
  764. title: '仓库主管'
  765. },
  766. {
  767. name: 'contactPhone',
  768. title: '联系电话'
  769. },
  770. ],
  771. placeholder: ['whName'],
  772. popContent:
  773. [
  774. // { code: 'whCode', type: 'str', title: mixins.$t('whCode'), required: false, readonly: true, },
  775. { code: 'whName', type: 'str', title: mixins.$t('whName'), required: true },
  776. {
  777. name: 'supervisor',
  778. code: 'supervisor',
  779. title: mixins.$t("supervisor"),
  780. type: 'choose',
  781. required: true,
  782. urlKey: 'chooseStaff'
  783. },
  784. { code: 'contactPhone', type: 'str', title: mixins.$t('contactPhone'), required: true },
  785. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  786. ],
  787. //设置默认主管
  788. dataItem: JSON.stringify(dataItemData)
  789. })
  790. break;
  791. case Constants.chooseType.inventorySku:
  792. title = "库存"
  793. this.setData({
  794. routeObjName: 'common',
  795. method: 'getInventory',
  796. title: 'skuName',
  797. contentList: [
  798. {
  799. name: 'skuCode',
  800. title: '商品编码'
  801. },
  802. {
  803. name: 'whName',
  804. title: '库区'
  805. },
  806. {
  807. name: 'nonStdCode',
  808. title: '色号'
  809. },
  810. {
  811. name: 'usableQty',
  812. title: '可售量'
  813. },
  814. {
  815. name: 'invQty',
  816. title: '库存量'
  817. },
  818. {
  819. name: 'outingQty',
  820. title: '占库量'
  821. },
  822. {
  823. name: 'freezeQty',
  824. title: '冻结量'
  825. },
  826. ],
  827. placeholder: ['whName']
  828. })
  829. break;
  830. // 品牌
  831. case Constants.chooseType.brand:
  832. title = "品牌"
  833. this.setData({
  834. routeObjName: 'common',
  835. routeObjNamePop: 'goodsBrand',
  836. method: 'goodsBrandListNoPage',
  837. chooseFlag: route.chooseFlag,
  838. repeatFlag: route.repeatFlag,
  839. valueKey: 'brandId',
  840. pageFlag: false,
  841. popTitle: mixins.$t('add') + title,
  842. title: 'brandName',
  843. simpleFlag: true,
  844. // contentList: [{
  845. // name: 'brandCode',
  846. // title: '品牌编码'
  847. // },
  848. // {
  849. // name: 'brandName',
  850. // title: '品牌名称'
  851. // },
  852. // ],
  853. placeholder: ['brandName']
  854. })
  855. // 标准版没有供应商
  856. if (this.data.gradeCode == Constants.gradeCode.STD) {
  857. this.setData({
  858. popContent: [
  859. { code: 'brandName', type: 'str', title: mixins.$t('brandName'), required: true },
  860. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  861. ],
  862. })
  863. } else {
  864. this.setData({
  865. popContent: [
  866. { code: 'brandName', type: 'str', title: mixins.$t('brandName'), required: true },
  867. { code: 'supplierIds', name: 'supplierNames', title: 'supplier', type: 'choose', dropType: 'supplier', urlKey: '', code: 'supplierIds', formMode: 'index', idKey: 'roleId', title: mixins.$t('supplier') },
  868. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  869. ],
  870. })
  871. }
  872. break;
  873. // 系列 刘尧 2024.05.29
  874. case Constants.chooseType.series:
  875. title = "系列"
  876. this.setData({
  877. routeObjName: 'common',
  878. routeObjNamePop: 'goodsSeries',
  879. method: 'getGoodsSeriesNoPage',
  880. chooseFlag: route.chooseFlag,
  881. repeatFlag: route.repeatFlag,
  882. valueKey: 'seriesId',
  883. pageFlag: false,
  884. popTitle: mixins.$t('add') + title,
  885. title: 'seriesName',
  886. simpleFlag: true,
  887. placeholder: ['seriesName'],
  888. popContent: [
  889. { code: 'seriesName', type: 'str', title: mixins.$t('seriesName'), required: true },
  890. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  891. ]
  892. })
  893. break;
  894. // 计量单位 刘尧 2024.05.29
  895. case Constants.chooseType.unit:
  896. title = "单位"
  897. dataItemData['decimalPlaces'] = 0
  898. this.setData({
  899. routeObjName: 'common',
  900. routeObjNamePop: 'unit',
  901. method: 'getUnitNoPage',
  902. status: 'decimalPlacesStr',
  903. chooseFlag: route.chooseFlag,
  904. repeatFlag: route.repeatFlag,
  905. statusFlag: true,
  906. valueKey: 'unitId',
  907. pageFlag: false,
  908. popTitle: mixins.$t('add') + title,
  909. title: 'unitName',
  910. simpleFlag: true,
  911. placeholder: ['unitName'],
  912. popContent: [
  913. { code: 'unitName', type: 'str', title: mixins.$t('unitName'), required: true },
  914. { code: 'decimalPlaces', max: 6, type: 'number', sign: "", digits: 0, title: mixins.$t('decimalPlaces'), required: true, formatThousandth: false, content: 0 },
  915. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  916. ],
  917. //设置小数位数
  918. dataItem: JSON.stringify(dataItemData)
  919. })
  920. break;
  921. // 数据字典
  922. case Constants.chooseType.dictionary:
  923. title = "数据字典"
  924. let dictCode = route.dictCode
  925. this.setData({
  926. addUrl: '/package-basic-data/pages/basic-data/basic-data',
  927. routeObjName: 'common',
  928. method: 'getDictionaryData',
  929. routeObjNamePop: 'basicData',
  930. dictCode: route.dictCode,
  931. chooseFlag: route.chooseFlag,
  932. repeatFlag: route.repeatFlag,
  933. pageFlag: false,
  934. valueKey: 'dataId',
  935. title: 'dataValue',
  936. contentList: [{
  937. name: 'dataCode',
  938. title: '数据编码'
  939. },
  940. {
  941. name: 'dictCode',
  942. title: '字典项目'
  943. },
  944. ],
  945. placeholder: ['dicName'],
  946. })
  947. if (dictCode == mixins.$t('reasonStorageSys')) {
  948. let popContent =
  949. [
  950. { code: 'dataValue', type: 'str', title: mixins.$t('reasonName'), required: true },
  951. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false, },
  952. ]
  953. this.setData({
  954. popContent
  955. })
  956. }
  957. break;
  958. // 系统数据
  959. case Constants.chooseType.kindData:
  960. title = "系统数据"
  961. this.setData({
  962. pageFlag: false,
  963. routeObjName: 'common',
  964. method: 'getDataKind',
  965. kindType: route.kindType,
  966. valueKey: 'kindCode',
  967. title: 'kindName',
  968. chooseFlag: route.chooseFlag,
  969. repeatFlag: route.repeatFlag,
  970. contentList: [{
  971. name: 'kindCode',
  972. title: '数据代码'
  973. },
  974. {
  975. name: 'kindName',
  976. title: '数据名称'
  977. },
  978. ],
  979. placeholder: ['sensitiveName']
  980. })
  981. break;
  982. // 对象类型
  983. case Constants.chooseType.objectType:
  984. this.setData({
  985. title: 'objName',
  986. routeObjName: 'common',
  987. method: 'getSupplierAndCustomerData',
  988. })
  989. if (!route.objectType) {
  990. title = "对象类型"
  991. this.setData({
  992. contentList: [{
  993. name: 'objCode',
  994. title: '对象编码'
  995. },
  996. {
  997. name: 'objTypeName',
  998. title: '对象'
  999. },
  1000. {
  1001. name: 'addressFull',
  1002. title: '地址'
  1003. },
  1004. {
  1005. name: 'phone',
  1006. title: '电话'
  1007. }],
  1008. searchContent: [{
  1009. code: 'supplier-customer',
  1010. title: '选择对象',
  1011. searchType: Constants.searchType.switch,
  1012. list: [{
  1013. code: 'supplier',
  1014. title: '供应商',
  1015. value: 1,
  1016. },
  1017. {
  1018. code: 'customer',
  1019. title: '客户',
  1020. value: 2
  1021. }]
  1022. }],
  1023. placeholder: ['customerName', 'supplierName', 'address', 'telephone']
  1024. })
  1025. } else {
  1026. // 客户
  1027. if (route.objectType == 'customer') {
  1028. title = "客户"
  1029. this.setData({
  1030. contentList: [{
  1031. name: 'phone',
  1032. title: '客户电话'
  1033. },
  1034. {
  1035. name: 'addressFull',
  1036. title: '客户地址'
  1037. }],
  1038. placeholder: ['customerName', 'address', 'telephone'],
  1039. otherSearchParam: { 'supplier-customerList': "2" }
  1040. })
  1041. } else {
  1042. // 供应商
  1043. title = "供应商"
  1044. this.setData({
  1045. contentList: [{
  1046. name: 'phone',
  1047. title: '供应商电话'
  1048. },
  1049. {
  1050. name: 'addressFull',
  1051. title: '供应商地址'
  1052. }],
  1053. placeholder: ['supplierName', 'address', 'telephone'],
  1054. otherSearchParam: { 'supplier-customerList': "1" }
  1055. })
  1056. }
  1057. }
  1058. break;
  1059. default:
  1060. break;
  1061. }
  1062. // 多选,数据回显到已选列表
  1063. if (this.data.chooseFlag && this.data.item && this.data.item.data) {
  1064. this.setData({
  1065. choosedData: this.data.item.data
  1066. })
  1067. }
  1068. wx.setNavigationBarTitle({
  1069. title: '选择' + title,
  1070. })
  1071. // 调取查询
  1072. this.searchData();
  1073. },
  1074. /**
  1075. * @desc : 对获取到的数据进行处理
  1076. * @date : 2024年5月29日
  1077. * @author : 刘尧
  1078. */
  1079. handleSearchData(tableData) {
  1080. let addItem = this.data.addItem
  1081. let valueKey = this.data.valueKey
  1082. let choosedData = this.data.choosedData
  1083. tableData.forEach(item => {
  1084. if (addItem && valueKey) {
  1085. if (item[valueKey] == addItem[valueKey]) {
  1086. item.checked = true;
  1087. choosedData.push({ ...item });
  1088. }
  1089. }
  1090. // 判断数据中是否存在计量单位的小数位数字段
  1091. if (item && (item.decimalPlaces || item.decimalPlaces === 0)) {
  1092. item.decimalPlacesStr = '小数:' + item.decimalPlaces
  1093. }
  1094. })
  1095. this.setData({
  1096. tableData: tableData,
  1097. choosedData: choosedData
  1098. })
  1099. }
  1100. })