select-data.js 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115
  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. simpleFlag: true,
  627. // contentList: [{
  628. // name: 'orgCode',
  629. // title: '部门编码'
  630. // },],
  631. placeholder: ['orgName']
  632. })
  633. break;
  634. // 员工
  635. case Constants.chooseType.staff:
  636. title = "员工"
  637. this.setData({
  638. addUrl: '/package-basic-data/pages/staff/add/add',
  639. routeObjName: 'common',
  640. method: 'getStaff',
  641. valueKey: 'staffId',
  642. title: 'staffName',
  643. contentList: [{
  644. name: 'staffCode',
  645. title: '员工工号'
  646. },
  647. {
  648. name: 'orgName',
  649. title: '部门'
  650. },
  651. ],
  652. placeholder: ['staffName']
  653. })
  654. break;
  655. //客户来源
  656. case Constants.chooseType.cusFrom:
  657. title = "客户来源"
  658. this.setData({
  659. routeObjName: 'common',
  660. method: 'getInitData',
  661. valueKey: 'dataId',
  662. title: 'dataValue',
  663. contentList: [{
  664. name: 'dataCode',
  665. title: '来源编码'
  666. },
  667. {
  668. name: 'dataValue',
  669. title: '来源名称'
  670. },
  671. ],
  672. placeholder: ['sourceName']
  673. })
  674. break;
  675. // 资金账户
  676. case Constants.chooseType.moneyAccount:
  677. title = "资金账户"
  678. this.setData({
  679. routeObjName: 'common',
  680. pageFlag: false,
  681. method: 'getMac',
  682. valueKey: 'macId',
  683. title: 'macName',
  684. contentList: [{
  685. name: 'macCode',
  686. title: '账户编码'
  687. },
  688. {
  689. name: 'macName',
  690. title: '账户名称'
  691. },
  692. ],
  693. placeholder: ['moneyAccount']
  694. })
  695. break;
  696. //销售渠道
  697. case Constants.chooseType.saleChannel:
  698. title = "销售渠道"
  699. this.setData({
  700. routeObjName: 'common',
  701. method: 'getInitData',
  702. valueKey: 'channelId',
  703. title: 'channelName',
  704. simpleFlag: true,
  705. placeholder: ['channelName']
  706. })
  707. break;
  708. // 供应商
  709. case Constants.chooseType.supplier:
  710. case Constants.chooseType.outSupplier:
  711. title = "供应商"
  712. this.setData({
  713. addUrl: '/package-purchase/pages/supplier-list/add/add',
  714. routeObjName: 'supplier',
  715. method: 'selectByCond',
  716. title: 'supName',
  717. valueKey: 'supId',
  718. labelKey: 'supName',
  719. chooseFlag: route.chooseFlag,
  720. contentList: [{
  721. name: 'supTypeName',
  722. title: '供应商类别'
  723. },
  724. {
  725. name: 'returnAddress',
  726. title: '供应商地址'
  727. },
  728. {
  729. name: 'payableResidue',
  730. title: '剩余应付'
  731. },
  732. {
  733. name: 'paymentResidue',
  734. title: '预付金额'
  735. },
  736. ],
  737. placeholder: ['supplier']
  738. })
  739. // 多选时就不要有其他的tag标签
  740. // if (!route.chooseFlag) {
  741. // this.setData({
  742. // tagList: [{
  743. // title: mixins.$t("all") //全部
  744. // }, {
  745. // title: mixins.$t("procurementSupplier") //采购供应商
  746. // }, {
  747. // title: mixins.$t("serviceProvider") // 服务供应商
  748. // }],
  749. // })
  750. // }
  751. break;
  752. // 仓库
  753. case Constants.chooseType.warehouse:
  754. title = "仓库"
  755. dataItemData['supervisor'] = app.globalData.user.staffName
  756. dataItemData['contactPhone'] = app.globalData.user.userPhone
  757. this.setData({
  758. routeObjName: 'common',
  759. routeObjNamePop: 'warehouse',
  760. method: 'getWarehouseListBy',
  761. valueKey: 'whId',
  762. title: 'whName',
  763. contentList: [{
  764. name: 'supervisor',
  765. title: '仓库主管'
  766. },
  767. {
  768. name: 'contactPhone',
  769. title: '联系电话'
  770. },
  771. ],
  772. placeholder: ['whName'],
  773. popContent:
  774. [
  775. // { code: 'whCode', type: 'str', title: mixins.$t('whCode'), required: false, readonly: true, },
  776. { code: 'whName', type: 'str', title: mixins.$t('whName'), required: true },
  777. {
  778. name: 'supervisor',
  779. code: 'supervisor',
  780. title: mixins.$t("supervisor"),
  781. type: 'choose',
  782. required: true,
  783. urlKey: 'chooseStaff'
  784. },
  785. { code: 'contactPhone', type: 'str', title: mixins.$t('contactPhone'), required: true },
  786. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  787. ],
  788. //设置默认主管
  789. dataItem: JSON.stringify(dataItemData)
  790. })
  791. break;
  792. case Constants.chooseType.inventorySku:
  793. title = "库存"
  794. this.setData({
  795. routeObjName: 'common',
  796. method: 'getInventory',
  797. title: 'skuName',
  798. contentList: [
  799. {
  800. name: 'skuCode',
  801. title: '商品编码'
  802. },
  803. {
  804. name: 'whName',
  805. title: '库区'
  806. },
  807. {
  808. name: 'nonStdCode',
  809. title: '色号'
  810. },
  811. {
  812. name: 'usableQty',
  813. title: '可售量'
  814. },
  815. {
  816. name: 'invQty',
  817. title: '库存量'
  818. },
  819. {
  820. name: 'outingQty',
  821. title: '占库量'
  822. },
  823. {
  824. name: 'freezeQty',
  825. title: '冻结量'
  826. },
  827. ],
  828. placeholder: ['whName']
  829. })
  830. break;
  831. // 品牌
  832. case Constants.chooseType.brand:
  833. title = "品牌"
  834. this.setData({
  835. routeObjName: 'common',
  836. routeObjNamePop: 'goodsBrand',
  837. method: 'goodsBrandListNoPage',
  838. chooseFlag: route.chooseFlag,
  839. repeatFlag: route.repeatFlag,
  840. valueKey: 'brandId',
  841. pageFlag: false,
  842. popTitle: mixins.$t('add') + title,
  843. title: 'brandName',
  844. simpleFlag: true,
  845. // contentList: [{
  846. // name: 'brandCode',
  847. // title: '品牌编码'
  848. // },
  849. // {
  850. // name: 'brandName',
  851. // title: '品牌名称'
  852. // },
  853. // ],
  854. placeholder: ['brandName']
  855. })
  856. // 标准版没有供应商
  857. if (this.data.gradeCode == Constants.gradeCode.STD) {
  858. this.setData({
  859. popContent: [
  860. { code: 'brandName', type: 'str', title: mixins.$t('brandName'), required: true },
  861. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  862. ],
  863. })
  864. } else {
  865. this.setData({
  866. popContent: [
  867. { code: 'brandName', type: 'str', title: mixins.$t('brandName'), required: true },
  868. { code: 'supplierIds', name: 'supplierNames', title: 'supplier', type: 'choose', dropType: 'supplier', urlKey: '', code: 'supplierIds', formMode: 'index', idKey: 'roleId', title: mixins.$t('supplier') },
  869. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  870. ],
  871. })
  872. }
  873. break;
  874. // 系列 刘尧 2024.05.29
  875. case Constants.chooseType.series:
  876. title = "系列"
  877. this.setData({
  878. routeObjName: 'common',
  879. routeObjNamePop: 'goodsSeries',
  880. method: 'getGoodsSeriesNoPage',
  881. chooseFlag: route.chooseFlag,
  882. repeatFlag: route.repeatFlag,
  883. valueKey: 'seriesId',
  884. pageFlag: false,
  885. popTitle: mixins.$t('add') + title,
  886. title: 'seriesName',
  887. simpleFlag: true,
  888. placeholder: ['seriesName'],
  889. popContent: [
  890. { code: 'seriesName', type: 'str', title: mixins.$t('seriesName'), required: true },
  891. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  892. ]
  893. })
  894. break;
  895. // 计量单位 刘尧 2024.05.29
  896. case Constants.chooseType.unit:
  897. title = "单位"
  898. dataItemData['decimalPlaces'] = 0
  899. this.setData({
  900. routeObjName: 'common',
  901. routeObjNamePop: 'unit',
  902. method: 'getUnitNoPage',
  903. status: 'decimalPlacesStr',
  904. chooseFlag: route.chooseFlag,
  905. repeatFlag: route.repeatFlag,
  906. statusFlag: true,
  907. valueKey: 'unitId',
  908. pageFlag: false,
  909. popTitle: mixins.$t('add') + title,
  910. title: 'unitName',
  911. simpleFlag: true,
  912. placeholder: ['unitName'],
  913. popContent: [
  914. { code: 'unitName', type: 'str', title: mixins.$t('unitName'), required: true },
  915. { code: 'decimalPlaces', max: 6, type: 'number', sign: "", digits: 0, title: mixins.$t('decimalPlaces'), required: true, formatThousandth: false, content: 0 },
  916. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false }
  917. ],
  918. //设置小数位数
  919. dataItem: JSON.stringify(dataItemData)
  920. })
  921. break;
  922. // 数据字典
  923. case Constants.chooseType.dictionary:
  924. title = "数据字典"
  925. let dictCode = route.dictCode
  926. this.setData({
  927. addUrl: '/package-basic-data/pages/basic-data/basic-data',
  928. routeObjName: 'common',
  929. method: 'getDictionaryData',
  930. routeObjNamePop: 'basicData',
  931. dictCode: route.dictCode,
  932. chooseFlag: route.chooseFlag,
  933. repeatFlag: route.repeatFlag,
  934. pageFlag: false,
  935. valueKey: 'dataId',
  936. title: 'dataValue',
  937. contentList: [{
  938. name: 'dataCode',
  939. title: '数据编码'
  940. },
  941. {
  942. name: 'dictCode',
  943. title: '字典项目'
  944. },
  945. ],
  946. placeholder: ['dicName'],
  947. })
  948. if (dictCode == mixins.$t('reasonStorageSys')) {
  949. let popContent =
  950. [
  951. { code: 'dataValue', type: 'str', title: mixins.$t('reasonName'), required: true },
  952. { code: 'remarks', type: 'str', title: mixins.$t('remarks'), required: false, },
  953. ]
  954. this.setData({
  955. popContent
  956. })
  957. }
  958. break;
  959. // 系统数据
  960. case Constants.chooseType.kindData:
  961. title = "系统数据"
  962. this.setData({
  963. pageFlag: false,
  964. routeObjName: 'common',
  965. method: 'getDataKind',
  966. kindType: route.kindType,
  967. valueKey: 'kindCode',
  968. title: 'kindName',
  969. chooseFlag: route.chooseFlag,
  970. repeatFlag: route.repeatFlag,
  971. contentList: [{
  972. name: 'kindCode',
  973. title: '数据代码'
  974. },
  975. {
  976. name: 'kindName',
  977. title: '数据名称'
  978. },
  979. ],
  980. placeholder: ['sensitiveName']
  981. })
  982. break;
  983. // 对象类型
  984. case Constants.chooseType.objectType:
  985. this.setData({
  986. title: 'objName',
  987. routeObjName: 'common',
  988. method: 'getSupplierAndCustomerData',
  989. })
  990. if (!route.objectType) {
  991. title = "对象类型"
  992. this.setData({
  993. contentList: [{
  994. name: 'objCode',
  995. title: '对象编码'
  996. },
  997. {
  998. name: 'objTypeName',
  999. title: '对象'
  1000. },
  1001. {
  1002. name: 'addressFull',
  1003. title: '地址'
  1004. },
  1005. {
  1006. name: 'phone',
  1007. title: '电话'
  1008. }],
  1009. searchContent: [{
  1010. code: 'supplier-customer',
  1011. title: '选择对象',
  1012. searchType: Constants.searchType.switch,
  1013. list: [{
  1014. code: 'supplier',
  1015. title: '供应商',
  1016. value: 1,
  1017. },
  1018. {
  1019. code: 'customer',
  1020. title: '客户',
  1021. value: 2
  1022. }]
  1023. }],
  1024. placeholder: ['customerName', 'supplierName', 'address', 'telephone']
  1025. })
  1026. } else {
  1027. // 客户
  1028. if (route.objectType == 'customer') {
  1029. title = "客户"
  1030. this.setData({
  1031. contentList: [{
  1032. name: 'phone',
  1033. title: '客户电话'
  1034. },
  1035. {
  1036. name: 'addressFull',
  1037. title: '客户地址'
  1038. }],
  1039. placeholder: ['customerName', 'address', 'telephone'],
  1040. otherSearchParam: { 'supplier-customerList': "2" }
  1041. })
  1042. } else {
  1043. // 供应商
  1044. title = "供应商"
  1045. this.setData({
  1046. contentList: [{
  1047. name: 'phone',
  1048. title: '供应商电话'
  1049. },
  1050. {
  1051. name: 'addressFull',
  1052. title: '供应商地址'
  1053. }],
  1054. placeholder: ['supplierName', 'address', 'telephone'],
  1055. otherSearchParam: { 'supplier-customerList': "1" }
  1056. })
  1057. }
  1058. }
  1059. break;
  1060. default:
  1061. break;
  1062. }
  1063. // 多选,数据回显到已选列表
  1064. if (this.data.chooseFlag && this.data.item && this.data.item.data) {
  1065. this.setData({
  1066. choosedData: this.data.item.data
  1067. })
  1068. }
  1069. wx.setNavigationBarTitle({
  1070. title: '选择' + title,
  1071. })
  1072. // 调取查询
  1073. this.searchData();
  1074. },
  1075. /**
  1076. * @desc : 对获取到的数据进行处理
  1077. * @date : 2024年5月29日
  1078. * @author : 刘尧
  1079. */
  1080. handleSearchData(tableData) {
  1081. let addItem = this.data.addItem
  1082. let valueKey = this.data.valueKey
  1083. let choosedData = this.data.choosedData
  1084. tableData.forEach(item => {
  1085. if (addItem && valueKey) {
  1086. if (item[valueKey] == addItem[valueKey]) {
  1087. item.checked = true;
  1088. choosedData.push({ ...item });
  1089. }
  1090. }
  1091. // 判断数据中是否存在计量单位的小数位数字段
  1092. if (item && (item.decimalPlaces || item.decimalPlaces === 0)) {
  1093. item.decimalPlacesStr = '小数:' + item.decimalPlaces
  1094. }
  1095. })
  1096. this.setData({
  1097. tableData: tableData,
  1098. choosedData: choosedData
  1099. })
  1100. }
  1101. })