index.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. const _Http = getApp().globalData.http;
  2. Page({
  3. data: {
  4. sys_phonebookid: null, //是否为快捷选择创建的账号
  5. fromShowAll: false,
  6. form: [{
  7. label: "姓名",
  8. error: false,
  9. errMsg: "",
  10. type: "text",
  11. value: "",
  12. placeholder: "联系人名称",
  13. valueName: "name",
  14. required: true,
  15. checking: "base"
  16. }, {
  17. label: "手机号",
  18. error: false,
  19. errMsg: "",
  20. type: "number",
  21. value: "",
  22. placeholder: "联系人手机号码",
  23. valueName: "phonenumber",
  24. required: true,
  25. checking: "phone"
  26. }, {
  27. label: "部门",
  28. error: false,
  29. errMsg: "",
  30. type: "text",
  31. value: "",
  32. placeholder: "联系人所属部门",
  33. valueName: "depname",
  34. required: false,
  35. checking: "base"
  36. }, {
  37. label: "单位",
  38. error: false,
  39. errMsg: "",
  40. type: "text",
  41. value: "",
  42. placeholder: "",
  43. valueName: "dw",
  44. required: false,
  45. checking: "base",
  46. disabled: true
  47. }, {
  48. label: "职位",
  49. error: false,
  50. errMsg: "",
  51. type: "text",
  52. value: "",
  53. placeholder: "联系人职位",
  54. valueName: "position",
  55. required: false,
  56. checking: "base"
  57. }, {
  58. label: "性别",
  59. error: false,
  60. errMsg: "",
  61. type: "sex",
  62. value: "",
  63. placeholder: "联系人性别",
  64. valueName: "sex",
  65. required: false,
  66. checking: "base"
  67. }, {
  68. label: "生日",
  69. error: false,
  70. errMsg: "",
  71. type: "date",
  72. value: "",
  73. placeholder: "联系人生日",
  74. valueName: "birthday",
  75. required: false
  76. }, {
  77. label: "邮箱",
  78. error: false,
  79. errMsg: "",
  80. type: "textarea",
  81. value: "",
  82. placeholder: "请填写",
  83. valueName: "email",
  84. required: false,
  85. checking: "mail"
  86. }, {
  87. label: "地区",
  88. error: false,
  89. errMsg: "",
  90. type: "region",
  91. value: [],
  92. placeholder: "省,市,区",
  93. valueName: "region",
  94. required: false
  95. }, {
  96. label: "详细地址",
  97. error: false,
  98. errMsg: "",
  99. type: "textarea",
  100. value: "",
  101. placeholder: "例: 科创园11栋1103室",
  102. valueName: "address",
  103. required: false,
  104. checking: "base"
  105. }, {
  106. label: "备注",
  107. error: false,
  108. errMsg: "",
  109. type: "textarea",
  110. value: "",
  111. placeholder: "请填写",
  112. valueName: "remarks",
  113. required: false,
  114. checking: "base"
  115. }],
  116. disabled: true,
  117. "content": {
  118. "contactsid": 0, //地址id
  119. "sys_enterpriseid": 0, //绑定数据
  120. "isleader": 0, //默认0
  121. "workaddress": 0,
  122. "isdefault": 0, //是否默认地址
  123. "isprimary": 0 //是否为主地址
  124. }
  125. },
  126. onLoad(options) {
  127. this.setData({
  128. "content.sys_enterpriseid": options.sys_enterpriseid
  129. });
  130. if (options.data) {
  131. let item = JSON.parse(options.data),
  132. form = this.data.form.map(v => {
  133. if (v.valueName == 'region') {
  134. v.value = item.province ? [item.province, item.city, item.county] : []
  135. } else {
  136. v.value = Object.hasOwn(item, v.valueName) ? item[v.valueName] : v.value;
  137. }
  138. return v
  139. });
  140. let page = getCurrentPages()[getCurrentPages().length - 2];
  141. form[3].value = page.data.detail.enterprisename;
  142. this.setData({
  143. form,
  144. "disabled": false,
  145. "content.contactsid": page.__route__ == 'packageA/setclient/detail' ? 0 : item.contactsid
  146. });
  147. if (item.sys_phonebookid) this.setData({
  148. sys_phonebookid: item.sys_phonebookid
  149. })
  150. };
  151. },
  152. /* 提交数据 */
  153. submit() {
  154. let data = this.selectComponent("#Form").submit();
  155. if (!data || this.data.disabled) return;
  156. const content = {
  157. ...this.data.content,
  158. ...data,
  159. "province": data.region[0] || "",
  160. "city": data.region[1] || "",
  161. "county": data.region[2] || "",
  162. sys_phonebookid: ""
  163. };
  164. delete(content.region);
  165. if (this.data.sys_phonebookid == null) {
  166. this.handleSubmit(content);
  167. } else {
  168. let that = this;
  169. wx.showModal({
  170. title: '提示',
  171. content: '是否删除原通讯录联系人信息',
  172. complete({
  173. confirm
  174. }) {
  175. content.sys_phonebookid = confirm ? that.data.sys_phonebookid : "";
  176. that.handleSubmit(content);
  177. }
  178. })
  179. }
  180. },
  181. handleSubmit(content) {
  182. _Http.basic({
  183. "id": "20221018141802",
  184. content
  185. }).then(res => {
  186. console.log("编辑联系人", res)
  187. if (res.msg != '成功') return wx.showToast({
  188. title: res.data,
  189. icon: "none"
  190. });
  191. wx.showToast({
  192. title: '保存成功',
  193. icon: "none"
  194. });
  195. setTimeout(() => {
  196. wx.navigateBack()
  197. getCurrentPages().forEach(v => {
  198. if (v.__route__ == 'packageA/setclient/modules/contacts/detail/index') {
  199. v.getDetail();
  200. } else if (v.selectComponent("#Contacts")) {
  201. let page = v.selectComponent("#Contacts"),
  202. list = page.data.list,
  203. index = list.findIndex(value => value.contactsid == res.data.contactsid);
  204. if (index != -1) {
  205. //列表中存在说明是编辑,返回上一级页面并更新数据
  206. list[index] = res.data;
  207. page.setData({
  208. list
  209. });
  210. } else {
  211. //列表中不存在说明是新增,返回上一级页面更新数据 并进入详情
  212. list.push(res.data);
  213. page.setData({
  214. list,
  215. "content.total": page.data.content.total + 1
  216. });
  217. wx.navigateTo({
  218. url: '/packageA/setclient/modules/contacts/detail/index?contactsid=' + res.data.contactsid
  219. })
  220. }
  221. } else if (v.__route__ == 'packageA/project/modules/contacts/search/index') {
  222. let index = v.data.list.findIndex(value => value.contactsid == res.data.contactsid);
  223. if (index != -1) v.setData({
  224. [`list[${index}]`]: res.data
  225. })
  226. }
  227. });
  228. }, 500)
  229. });
  230. },
  231. /* 表单是否填写完成 */
  232. onConfirm({
  233. detail
  234. }) {
  235. this.setData({
  236. disabled: detail
  237. })
  238. },
  239. /* 是否显示全部 */
  240. changefromShowAll({
  241. detail
  242. }) {
  243. this.setData({
  244. fromShowAll: detail
  245. })
  246. },
  247. })