index.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. const _Http = getApp().globalData.http;
  2. Page({
  3. data: {
  4. form: [{
  5. label: "联系人",
  6. error: false,
  7. errMsg: "",
  8. type: "text",
  9. value: "",
  10. placeholder: "联系人",
  11. valueName: "name",
  12. required: true,
  13. checking: "base"
  14. }, {
  15. label: "联系方式",
  16. error: false,
  17. errMsg: "",
  18. type: "number",
  19. value: "",
  20. placeholder: "联系方式",
  21. valueName: "phonenumber",
  22. required: true,
  23. checking: "phone"
  24. }, {
  25. label: "省市县",
  26. error: false,
  27. errMsg: "",
  28. type: "region",
  29. value: [],
  30. placeholder: "省,市,县",
  31. valueName: "region",
  32. required: true
  33. }, {
  34. label: "详细地址",
  35. error: false,
  36. errMsg: "",
  37. type: "textarea",
  38. value: "",
  39. placeholder: "例: 科创园11栋1103室",
  40. valueName: "address",
  41. required: false,
  42. checking: "base"
  43. }],
  44. disabled: true,
  45. "content": {
  46. "contactsid": 0, //地址id
  47. "sys_enterpriseid": 0, //绑定数据
  48. "sex": "",
  49. "depname": "",
  50. "position": "",
  51. "isleader": 0,
  52. "birthday": "",
  53. "email": "",
  54. "remarks": "",
  55. "workaddress": 1,
  56. "isdefault": 0, //是否默认地址
  57. "isprimary": 0 //是否为主地址
  58. },
  59. tags: []
  60. },
  61. onLoad(options) {
  62. getApp().globalData.Language.getLanguagePackage(this, '填写地址');
  63. if (options.sys_enterpriseid) this.setData({
  64. "content.sys_enterpriseid": options.sys_enterpriseid
  65. })
  66. if (options.data) {
  67. let item = JSON.parse(options.data)
  68. this.setData({
  69. content: {
  70. ...this.data.content,
  71. ...item
  72. },
  73. "content.isdefault": item.isdefault,
  74. 'form[0].value': item.name,
  75. 'form[1].value': item.phonenumber,
  76. 'form[2].value': item.city ? [item.province, item.city, item.county] : "",
  77. 'form[3].value': item.address,
  78. tags: item.tag,
  79. 'content.isdefault': item.isdefault,
  80. "disabled": false
  81. })
  82. };
  83. _Http.basic({
  84. "id": 20220929085401,
  85. "content": {
  86. "ownertable": "sys_enterprise_contacts",
  87. "ownerid": 0
  88. }
  89. }).then(res => {
  90. console.log("数据标签", res)
  91. this.setData({
  92. tagList: res.data.option
  93. })
  94. })
  95. if (options.type == '竞争对手') this.setData({
  96. form: this.data.form.map(v => {
  97. v.required = false
  98. if (v.valueName == "phonenumber") {
  99. v.checking = ""
  100. v.type = "text"
  101. }
  102. return v
  103. }),
  104. disabled: false
  105. })
  106. },
  107. selectTag(e) {
  108. const {
  109. tag
  110. } = e.currentTarget.dataset.item;
  111. let i = this.data.tags.findIndex(v => tag == v);
  112. if (i == -1) {
  113. this.data.tags.push(tag);
  114. } else {
  115. this.data.tags.splice(i, 1)
  116. };
  117. this.setData({
  118. tags: this.data.tags
  119. })
  120. },
  121. /* 提交数据 */
  122. submit() {
  123. let data = this.selectComponent("#Form").submit();
  124. if (!data || this.data.disabled) return;
  125. const content = {
  126. ...this.data.content,
  127. ...data,
  128. "province": data.region[0],
  129. "city": data.region[1],
  130. "county": data.region[2],
  131. };
  132. delete(content.region);
  133. _Http.basic({
  134. "id": "20221018141802",
  135. content
  136. }).then(res => {
  137. console.log('新建地址', res)
  138. if (res.code != '1') return wx.showToast({
  139. title: res.data,
  140. icon: "none"
  141. });
  142. _Http.basic({
  143. "id": 20220929090901,
  144. "content": {
  145. "ownertable": "sys_enterprise_contacts",
  146. "ownerid": res.data.contactsid,
  147. "datatag": this.data.tags
  148. }
  149. }).then(s => {
  150. console.log("设置地址标签", s)
  151. wx.showToast({
  152. title: getApp().globalData.Language.getMapText('保存成功'),
  153. icon: "none"
  154. });
  155. res.data.tag = this.data.tags;
  156. setTimeout(() => {
  157. getCurrentPages().forEach(v => {
  158. //更新列表
  159. if (v.selectComponent("#Address")) {
  160. let page = v.selectComponent("#Address"),
  161. list = res.data.isdefault == 0 ? page.data.list : page.data.list.map(v => {
  162. v.isdefault = 0;
  163. return v;
  164. }),
  165. index = list.findIndex(value => value.contactsid == res.data.contactsid);
  166. if (index != -1) {
  167. //列表中存在说明是编辑,返回上一级页面并更新数据
  168. list[index] = res.data;
  169. page.setData({
  170. list
  171. });
  172. } else {
  173. //列表中不存在说明是新增,返回上一级页面更新数据 并进入详情
  174. list.push(res.data);
  175. page.setData({
  176. list,
  177. "content.total": page.data.content.total + 1
  178. });
  179. }
  180. if (res.data.isdefault == 1) setTimeout(() => {
  181. page.selectComponent("#List").initRadio();
  182. }, 200)
  183. wx.navigateBack();
  184. };
  185. if ("packageA/setclient/modules/address/search/index" == v.__route__) v.getList(true);
  186. })
  187. }, 300)
  188. })
  189. })
  190. },
  191. /* 设置默认 */
  192. checkboxChange() {
  193. this.setData({
  194. "content.isdefault": this.data.content.isdefault == 1 ? 0 : 1
  195. })
  196. },
  197. /* 表单是否填写完成 */
  198. onConfirm({
  199. detail
  200. }) {
  201. this.setData({
  202. disabled: detail
  203. })
  204. }
  205. })