dk-form.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852
  1. /*******************************************************************************
  2. * Copyright(c) 2024 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.功能描述:表单-(基础数据)
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 周兴 2024-1-30 1.00 新建
  9. *******************************************************************************/
  10. const common = require('@/utils/common');
  11. const Constants = require('@/utils/Constants');
  12. const util = require('@/utils/util.js')
  13. const chooseLocation = requirePlugin('chooseLocation');
  14. const config = require('@/config/config.js')
  15. const app = getApp();
  16. Component({
  17. /**
  18. * 组件的属性列表
  19. */
  20. properties: {
  21. // 区域
  22. cardList: {
  23. type: Array,
  24. value: []
  25. },
  26. uploaderMAX: {
  27. type: Number,
  28. value: 5
  29. },
  30. // 表名,用于上传附件
  31. table: {
  32. type: String,
  33. },
  34. // 内容
  35. contentObj: {
  36. type: Object,
  37. },
  38. // 结果集
  39. value: {
  40. type: String,
  41. observer: function (newVal) {
  42. if (newVal) {
  43. this.setData({
  44. form: JSON.parse(newVal) || {}
  45. })
  46. } else {
  47. this.setData({
  48. form: {}
  49. })
  50. }
  51. }
  52. },
  53. routeObjName: {
  54. type: String,
  55. }
  56. },
  57. /**
  58. * 组件的初始数据
  59. */
  60. data: {
  61. // 是否显示pop
  62. show: false,
  63. mutishow: false,
  64. showDate: false,
  65. showDateTime: false,
  66. currentDate: new Date().getTime(),
  67. $t: app.globalData.lang,
  68. routeUrl: app.globalData['routeUrl'],
  69. item: null,
  70. index: null,
  71. card: null,
  72. // 下拉类型
  73. dropType: null,
  74. dropCode: null,
  75. dropName: null,
  76. // 根据值控制组件的显示隐藏
  77. changeObj: null,
  78. form: {},
  79. maxSize: Constants.uploadFileConfig.maxSize,
  80. checked: false
  81. },
  82. lifetimes: {
  83. attached: function () { },
  84. detached: function () {
  85. // 在组件实例被从页面节点树移除时执行
  86. // 清空地址信息
  87. chooseLocation.setLocation(null);
  88. },
  89. },
  90. pageLifetimes: {
  91. /**
  92. * @desc : 生命周期函数--监听页面显示
  93. * @author : 周兴
  94. * @date : 2024/2/19 12:16
  95. */
  96. show: function () {
  97. const location = chooseLocation.getLocation();
  98. let form = this.data.form
  99. if (location) {
  100. form['address'] = location;
  101. form['addressName'] = location.name;
  102. form['addressFull'] = form['addressFull'] ? form['addressFull'] : location.address + location.name;
  103. form['addressGcj02'] = {
  104. latitude: location.latitude,
  105. longitude: location.longitude
  106. };
  107. form['addressArea'] = {
  108. province: location.province,
  109. city: location.city,
  110. district: location.district == undefined || !location.district ? location.city : location.district
  111. }
  112. // 如果有校验信息就清除掉
  113. let card = this.data.card;
  114. let index = this.data.index;
  115. let contentObj = this.data.contentObj;
  116. if (card && contentObj[card][index]?.errMsg) {
  117. contentObj[card][index].errMsg = undefined;
  118. this.setData({
  119. contentObj: contentObj
  120. })
  121. }
  122. }
  123. this.setData({
  124. value: JSON.stringify(form),
  125. form: form
  126. })
  127. }
  128. },
  129. /**
  130. * 组件的方法列表
  131. */
  132. methods: {
  133. /**
  134. * @desc : 显示tip
  135. * @author : 周兴
  136. * @date : 2024/4/25 11:46
  137. */
  138. showTip(e) {
  139. let item = e.currentTarget.dataset.item
  140. if (item.tip) {
  141. util.showToast(item.tip);
  142. }
  143. },
  144. /**
  145. * @desc : 外漏str的点击事件
  146. * @author : 周兴
  147. * @date : 2024/1/26 11:46
  148. */
  149. openStr(e){
  150. let item = e.currentTarget.dataset;
  151. this.triggerEvent("openStr", { code: item.key,})
  152. },
  153. /**
  154. * @desc : 打开下拉
  155. * @author : 周兴
  156. * @date : 2024/1/26 11:46
  157. */
  158. open(e) {
  159. let item = e.currentTarget.dataset;
  160. if (item.item.readonly) {
  161. return
  162. }
  163. this.setData({
  164. dropCode: item.key,
  165. dropName: item.name,
  166. dropType: item.type,
  167. index: item.index,
  168. card: item.card
  169. })
  170. console.log('ee', e);
  171. // 单选
  172. if (item.item.type == 'drop') {
  173. this.setData({
  174. show: true,
  175. changeObj: item.item.changeObj,
  176. })
  177. // 多选
  178. } else if (item.item.type == 'mutidrop') {
  179. this.setData({
  180. mutishow: true
  181. })
  182. } else if (item.item.type == 'choose') {
  183. let that = this
  184. console.log(item, this.data.routeObjName, this.data.routeUrl);
  185. that.setData({
  186. changeObj: item.item.changeObj,
  187. })
  188. // 跳转链接
  189. if (item.item.urlKey) {
  190. let route = this.data.routeUrl[this.data.routeObjName][item.item.urlKey]
  191. let url = route.url
  192. // TODO
  193. // url = '/package-base-select/pages/select-customers/select-customers'
  194. if (url) {
  195. wx.navigateTo({
  196. url: url,
  197. events: {
  198. // 回调后
  199. bindData: function (data) {
  200. let contentObj = that.data.contentObj
  201. // 是否根据值进行控制其他组件显示、隐藏
  202. let changeObj = that.data.changeObj
  203. let key = data.data ? data.data.id : null;
  204. let card = that.data.card;
  205. if (changeObj && changeObj[key]) {
  206. // 显示
  207. if (changeObj[key]['visible']) {
  208. changeObj[key]['visible'].forEach(it => {
  209. let index = contentObj[card].findIndex(t => t.code == it)
  210. console.log('index', index);
  211. if (contentObj[card][index]) {
  212. contentObj[card][index].hide = false
  213. }
  214. })
  215. }
  216. // 隐藏
  217. if (changeObj[key]['hide']) {
  218. changeObj[key]['hide'].forEach(it => {
  219. let index = contentObj[card].findIndex(t => t.code == it)
  220. console.log('index', index);
  221. if (contentObj[card][index]) {
  222. contentObj[card][index].hide = true
  223. }
  224. })
  225. }
  226. }
  227. that.setData({
  228. contentObj: contentObj
  229. })
  230. that.triggerEvent("chooseData", {
  231. code: item.key,
  232. data: data
  233. })
  234. }
  235. },
  236. success: function (res) {
  237. console.log('item', that.data.form)
  238. let data = {
  239. item: {
  240. data: item.item.datalist || []
  241. },
  242. route: route,
  243. formMode: item.item.formMode,
  244. id: that.data.form[item.item.idKey],
  245. chooseType: item.item.chooseType
  246. }
  247. if (that.data.form[item.item.code]) {
  248. data[item.item.code] = that.data.form[item.item.code]
  249. }
  250. // 通过eventChannel向被打开页面传送数据
  251. // that.data.form.formMode = item.item.formMode
  252. // that.data.form.id = that.data.form[item.item.idKey]
  253. // that.data.form.chooseType = item.item.chooseType
  254. res.eventChannel.emit('params', data)
  255. }
  256. })
  257. }
  258. }
  259. }
  260. },
  261. /**
  262. * @desc : 非空校验
  263. * @author : 周兴
  264. * @date : 2024/2/20 11:46
  265. */
  266. validData() {
  267. let flag = true;
  268. let cardList = this.data.cardList;
  269. if (!cardList || cardList.length == 0) {
  270. return flag;
  271. }
  272. let form = this.data.form;
  273. let contentObj = this.data.contentObj;
  274. cardList.forEach(card => {
  275. if (contentObj[card]) {
  276. contentObj[card].forEach(item => {
  277. let title = this.$t(item.title ? item.title : item.code)
  278. // 如果必须输入,就要进行判断
  279. if (item.required && !form[item.code]) {
  280. item.errMsg = title + '不为空'
  281. flag = false;
  282. }
  283. // 电话校验
  284. console.log(item.type,item.required,form[item.code]);
  285. if (item.type == 'phone' && item.required && form[item.code]) {
  286. // 联系电话格式错误
  287. var myreg = Constants.Mobile_Phone_Number_Regular_Expression
  288. if (!myreg.test(form[item.code])) {
  289. item.errMsg = title + '格式错误'
  290. flag = false;
  291. }
  292. }
  293. })
  294. }
  295. })
  296. this.setData({
  297. contentObj: contentObj
  298. })
  299. return flag;
  300. },
  301. /**
  302. * @desc : 默认隐藏或者显示列 四个参数(1.contentObj 要改变的对象列表 2. 对象列表需要改变的块名 3.改变块 里的 changeObj 改变规则 4.规则里的 规则名)
  303. * @author : 周兴
  304. * @date : 2024/1/26 11:46
  305. */
  306. defaultvisibleOrHide(contentObj, card, changeObj, key) {
  307. // 是否根据值进行控制其他组件显示、隐藏
  308. if (changeObj && changeObj[key]) {
  309. // 显示
  310. if (changeObj[key]['visible']) {
  311. changeObj[key]['visible'].forEach(it => {
  312. let index = contentObj[card].findIndex(t => t.code == it)
  313. console.log('index', index);
  314. if (contentObj[card][index]) {
  315. contentObj[card][index].hide = false
  316. }
  317. })
  318. }
  319. // 隐藏
  320. if (changeObj[key]['hide']) {
  321. changeObj[key]['hide'].forEach(it => {
  322. let index = contentObj[card].findIndex(t => t.code == it)
  323. console.log('index', index);
  324. if (contentObj[card][index]) {
  325. contentObj[card][index].hide = true
  326. }
  327. })
  328. }
  329. }
  330. this.setData({
  331. contentObj: contentObj
  332. })
  333. },
  334. /**
  335. * @desc : 选择数据
  336. * @author : 周兴
  337. * @date : 2024/1/26 11:46
  338. */
  339. chooseData(e) {
  340. let contentObj = this.data.contentObj;
  341. let form = this.data.form
  342. if (e.detail.ids) {
  343. form[this.data.dropCode + 's'] = e.detail.ids;
  344. form[this.data.dropName + 's'] = e.detail.names;
  345. } else {
  346. form[this.data.dropCode] = e.detail.value;
  347. form[this.data.dropName] = e.detail.text;
  348. }
  349. let card = this.data.card;
  350. // 选择后清空校验提示信息
  351. if (card && contentObj[card][this.data.index]?.errMsg && e.detail) {
  352. contentObj[card][this.data.index].errMsg = undefined;
  353. }
  354. this.setData({
  355. value: JSON.stringify(form),
  356. form: form,
  357. contentObj: contentObj
  358. })
  359. // 是否根据值进行控制其他组件显示、隐藏
  360. let changeObj = this.data.changeObj
  361. let key = e.detail.value //util.getKeyByValue(Constants.kindCode, e.detail.value);
  362. if (changeObj && changeObj[key]) {
  363. // 显示
  364. if (changeObj[key]['visible']) {
  365. changeObj[key]['visible'].forEach(it => {
  366. let index = contentObj[card].findIndex(t => t.code == it)
  367. console.log('index', index);
  368. if (contentObj[card][index]) {
  369. contentObj[card][index].hide = false
  370. }
  371. })
  372. }
  373. // 隐藏
  374. if (changeObj[key]['hide']) {
  375. changeObj[key]['hide'].forEach(it => {
  376. let index = contentObj[card].findIndex(t => t.code == it)
  377. console.log('index', index);
  378. if (contentObj[card][index]) {
  379. contentObj[card][index].hide = true
  380. }
  381. })
  382. }
  383. }
  384. this.setData({
  385. contentObj: contentObj
  386. })
  387. // 如果处理id,name还需要赋值其他,需要在页面事件中自行处理
  388. this.triggerEvent("chooseData", {
  389. code: this.data.dropCode,
  390. list: e.detail.list
  391. })
  392. },
  393. /**
  394. * @desc : 打开日期pop
  395. * @author : 周兴
  396. * @date : 2024/1/26 11:46
  397. */
  398. openDatePop(e) {
  399. let item = e.currentTarget.dataset;
  400. if (item.item.readonly) {
  401. return
  402. }
  403. this.setData({
  404. showDate: true,
  405. index: item.index,
  406. key: item.key,
  407. card: item.card
  408. })
  409. },
  410. /**
  411. * @desc : 关闭日期pop
  412. * @author : 周兴
  413. * @date : 2024/1/26 11:46
  414. */
  415. cancelDatePop() {
  416. this.setData({
  417. showDate: false
  418. })
  419. },
  420. /**
  421. * @desc : 选择日期
  422. * @author : 周兴
  423. * @date : 2024/1/26 11:46
  424. */
  425. chooseDate(e) {
  426. let form = this.data.form;
  427. let index = this.data.index;
  428. let card = this.data.card;
  429. let code = this.data.key;
  430. form[code + '_time'] = e.detail
  431. form[code] = util.toDateStr(e.detail);
  432. let contentObj = this.data.contentObj;
  433. if (card && contentObj[card][index]?.errMsg && e.detail) {
  434. contentObj[card][index].errMsg = undefined;
  435. }
  436. this.setData({
  437. value: JSON.stringify(form),
  438. form: form,
  439. contentObj: contentObj,
  440. showDate: false
  441. })
  442. },
  443. /**
  444. * @desc : 修改输入框的值
  445. * @author : 周兴
  446. * @date : 2024/2/2 11:46
  447. */
  448. changeField(e) {
  449. let ds = e.currentTarget.dataset
  450. let key = ds.key
  451. let item = ds.item
  452. let form = this.data.form
  453. if (e.detail) {
  454. form[key] = e.detail;
  455. } else {
  456. delete form[key]
  457. }
  458. let contentObj = this.data.contentObj;
  459. // 输入值后清空校验提示信息
  460. if (item.errMsg && e.detail) {
  461. contentObj[ds.card][ds.index].errMsg = undefined;
  462. }
  463. this.setData({
  464. form: form,
  465. contentObj: contentObj
  466. })
  467. },
  468. /**
  469. * @desc : 失去焦点,把值传出
  470. * @author : 周兴
  471. * @date : 2024/2/2 11:46
  472. */
  473. blurField(e) {
  474. this.setData({
  475. value: JSON.stringify(this.data.form)
  476. })
  477. },
  478. /**
  479. * @desc : 清空输入框的值
  480. * @author : 周兴
  481. * @date : 2024/2/2 11:46
  482. */
  483. clearField(e) {
  484. console.log('eee', e);
  485. let ds = e.currentTarget.dataset
  486. let key = ds.key
  487. let form = this.data.form
  488. form[key] = undefined
  489. this.setData({
  490. value: JSON.stringify(form),
  491. form: form
  492. })
  493. // 如果要清除其他值,需要调用
  494. this.triggerEvent("clear", {
  495. code: ds.key
  496. })
  497. },
  498. /**
  499. * @desc : 清空选单的值
  500. * @author : 周兴
  501. * @date : 2024/2/2 11:46
  502. */
  503. clearChoose(e) {
  504. let ds = e.currentTarget.dataset
  505. let key = ds.key
  506. let name = ds.name
  507. let form = this.data.form
  508. if (ds.item.readonly) {
  509. return
  510. }
  511. form[key] = undefined
  512. form[name] = undefined
  513. this.setData({
  514. value: JSON.stringify(form),
  515. form: form
  516. })
  517. // 如果要清除其他值,需要调用
  518. this.triggerEvent("clear", {
  519. code: ds.key
  520. })
  521. },
  522. /**
  523. * @desc : 清空地址的值
  524. * @author : 周兴
  525. * @date : 2024/2/2 11:46
  526. */
  527. clearAddress(e) {
  528. let form = this.data.form
  529. delete form['address']
  530. delete form['addressName'];
  531. delete form['addressFull'];
  532. delete form['addressGcj02'];
  533. delete form['addressArea'];
  534. this.setData({
  535. value: JSON.stringify(form),
  536. form: form
  537. })
  538. // 如果要清除其他值,需要调用
  539. this.triggerEvent("clear", {
  540. code: ds.key
  541. })
  542. },
  543. /**
  544. * @desc : 清空日期的值
  545. * @author : 周兴
  546. * @date : 2024/2/2 11:46
  547. */
  548. clearDate(e) {
  549. let ds = e.currentTarget.dataset
  550. if (ds.item.readonly) {
  551. return
  552. }
  553. let key = ds.key
  554. let form = this.data.form
  555. form[key] = undefined
  556. form[key + '_time'] = undefined
  557. this.setData({
  558. value: JSON.stringify(form),
  559. form: form
  560. })
  561. },
  562. /**
  563. * @desc : 修改数值输入框的值
  564. * @author : 周兴
  565. * @date : 2024/2/2 11:46
  566. */
  567. changeNumberField(e) {
  568. let ds = e.currentTarget.dataset
  569. let key = ds.key
  570. let item = ds.item
  571. let form = this.data.form
  572. form[key] = e.detail.value
  573. let contentObj = this.data.contentObj;
  574. // 输入值后清空校验提示信息
  575. if (item.errMsg && e.detail) {
  576. contentObj[ds.card][ds.index].errMsg = undefined;
  577. }
  578. this.setData({
  579. value: JSON.stringify(form),
  580. form: form,
  581. contentObj: contentObj
  582. })
  583. // 如果要清除其他值,需要调用
  584. this.triggerEvent("changeNumberField", {
  585. code: ds.key
  586. })
  587. },
  588. /**
  589. * @desc : 修改电话的值
  590. * @author : 周兴
  591. * @date : 2024/2/2 11:46
  592. */
  593. changePhone(e) {
  594. let ds = e.currentTarget.dataset;
  595. let key = ds.key;
  596. let index = ds.index;
  597. let card = ds.card;
  598. let form = this.data.form
  599. form[key] = e.detail.detail
  600. let contentObj = this.data.contentObj;
  601. if (card && contentObj[card][index]?.errMsg && e.detail.detail) {
  602. contentObj[card][index].errMsg = undefined;
  603. }
  604. this.setData({
  605. value: JSON.stringify(form),
  606. form: form,
  607. contentObj: contentObj
  608. })
  609. },
  610. /**
  611. * @desc : 给电话赋值错误信息
  612. * @author : 周兴
  613. * @date : 2024/2/20 11:46
  614. */
  615. changePhoneblur(e) {
  616. let ds = e.currentTarget.dataset
  617. let errMsg = e.detail.errMsg;
  618. let card = ds.card;
  619. let index = ds.index;
  620. let contentObj = this.data.contentObj;
  621. if (errMsg && card && contentObj[card][index]) {
  622. contentObj[card][index].errMsg = errMsg;
  623. this.setData({
  624. errMsg: errMsg
  625. })
  626. }
  627. this.triggerEvent('changePhoneblur', e)
  628. },
  629. /**
  630. * @desc : 小程序地图调用
  631. * @author : 周兴
  632. * @date : 2024/2/18 18:16
  633. */
  634. onClickWxchartAddress(e) {
  635. // 跳转新建地图实例
  636. common.onClickWxchartAddress();
  637. let item = e.currentTarget.dataset;
  638. this.setData({
  639. index: item.index,
  640. card: item.card
  641. })
  642. },
  643. /**
  644. * @desc : 改变选择框内容
  645. * @author : 周兴
  646. * @date : 2024/1/26 11:46
  647. */
  648. onChange(e) {
  649. let key = e.currentTarget.dataset.key
  650. let item = e.currentTarget.dataset.item
  651. let checkFlag = e.currentTarget.dataset.value
  652. let form = this.data.form
  653. if (item && item.readonly) {
  654. return
  655. }
  656. form[key] = !checkFlag
  657. this.setData({
  658. value: JSON.stringify(form),
  659. form: form
  660. })
  661. this.triggerEvent("onSwitchChange", {
  662. code: key,
  663. checkFlag: checkFlag
  664. })
  665. },
  666. /**
  667. * @desc : 改变选择框内容
  668. * @author : 周兴
  669. * @date : 2024/1/26 11:46
  670. */
  671. changeTabs(e) {
  672. let key = e.currentTarget.dataset.key
  673. let id = e.detail.id
  674. let form = this.data.form
  675. form[key] = id
  676. this.setData({
  677. value: JSON.stringify(form),
  678. form: form
  679. })
  680. this.triggerEvent("changeTab", {
  681. code: key,
  682. id: id
  683. })
  684. },
  685. /**
  686. * @desc : 打开日期pop
  687. * @author : 周兴
  688. * @date : 2024/1/26 11:46
  689. */
  690. openDatePopTime(e) {
  691. let item = e.currentTarget.dataset;
  692. this.setData({
  693. showDateTime: true,
  694. index: item.index,
  695. key: item.key,
  696. card: item.card
  697. })
  698. },
  699. /**
  700. * @desc : 关闭日期pop
  701. * @author : 周兴
  702. * @date : 2024/1/26 11:46
  703. */
  704. cancelDatePopTime() {
  705. this.setData({
  706. showDateTime: false
  707. })
  708. },
  709. /**
  710. * @desc : 选择日期
  711. * @author : 周兴
  712. * @date : 2024/1/26 11:46
  713. */
  714. chooseDateTime(e) {
  715. let form = this.data.form;
  716. let index = this.data.index;
  717. let card = this.data.card;
  718. let code = this.data.key;
  719. form[code + '_time'] = e.detail
  720. form[code] = util.formatDataTime(new Date(e.detail));
  721. let contentObj = this.data.contentObj;
  722. if (card && contentObj[card][index]?.errMsg && e.detail) {
  723. contentObj[card][index].errMsg = undefined;
  724. }
  725. this.setData({
  726. value: JSON.stringify(form),
  727. form: form,
  728. contentObj: contentObj,
  729. showDateTime: false
  730. })
  731. },
  732. /**
  733. * @desc : 是点击事件
  734. * @author : 于继渤
  735. * @date : 2024/1/26 11:46
  736. */
  737. onChangeCheckedBoxYes(e) {
  738. let form = this.data.form;
  739. let code = e.currentTarget.dataset.key;
  740. form[code] = e.detail
  741. this.setData({
  742. value: JSON.stringify(form),
  743. form: form,
  744. })
  745. },
  746. /**
  747. * @desc : 否点击事件
  748. * @author : 于继渤
  749. * @date : 2024/1/26 11:46
  750. */
  751. onChangeCheckedBoxNo(e) {
  752. let form = this.data.form;
  753. let code = e.currentTarget.dataset.key;
  754. form[code] = !e.detail
  755. this.setData({
  756. value: JSON.stringify(form),
  757. form: form,
  758. })
  759. },
  760. /**
  761. * @desc : 上传附件超出大小
  762. * @author : 周兴
  763. * @date : 2024/3/27 16:16
  764. */
  765. overSize(e) {
  766. util.showToast('文件超出' + Constants.uploadFileConfig.maxSizeMB);
  767. },
  768. /**
  769. * @desc : 删除图片
  770. * @author : 周兴
  771. * @date : 2024/4/29 18:16
  772. */
  773. deleteImg(e) {
  774. let form = this.data.form;
  775. let index = e.detail.index;
  776. let arr = form['annexPaths']
  777. arr.splice(index, 1);
  778. this.setData({
  779. form: form,
  780. value: JSON.stringify(form)
  781. })
  782. },
  783. /**
  784. * @desc : 上传附件
  785. * @author : 周兴
  786. * @date : 2024/3/27 16:16
  787. */
  788. afterRead(e) {
  789. // this.setData({
  790. // uploadFileFlag:true
  791. // })
  792. const _this = this;
  793. const {
  794. file
  795. } = e.detail;
  796. // 配置存放的文件夹 公司code - 表名 - 年月 -- 日
  797. let folder = app.globalData.company.cpCode + '/' + this.data.table + '/' + new Date().toYearMonth2() + '/' + new Date().toDay()
  798. let url = config.upload_url;
  799. url = url.replace('mdm-server', 'mdm-server' + '-' + app.globalData.company.svcCode.replace('_', '-'))
  800. file.forEach(res => {
  801. // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
  802. wx.uploadFile({
  803. url: url,
  804. filePath: res.path,
  805. name: 'file',
  806. formData: {
  807. 'folder': folder
  808. },
  809. header: {
  810. 'Authorization': 'Bearer ' + app.globalData.token
  811. },
  812. success(res) {
  813. let data = JSON.parse(res.data)
  814. if (data.code === 200) {
  815. _this.setData({
  816. uploadFileFlag: false
  817. })
  818. let form = _this.data.form
  819. let annexPaths = form['annexPaths'] || []
  820. data.data.url = config.image_url + data.data.path
  821. annexPaths.push(data.data)
  822. form.annexPaths = annexPaths;
  823. _this.setData({
  824. form: form,
  825. value: JSON.stringify(form)
  826. })
  827. console.log('ff', _this.data.form);
  828. }
  829. },
  830. })
  831. })
  832. },
  833. /**
  834. * @desc : 获取语言的方法
  835. * @author : 周兴
  836. * @date : 2024/1/19
  837. */
  838. $t(name) {
  839. if (this.data.$t[name]) {
  840. return this.data.$t[name];
  841. } else {
  842. return name;
  843. }
  844. },
  845. },
  846. })