index.js 7.5 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: "route",
  41. url: "/packageA/project/modules/contacts/select/index",
  42. value: "",
  43. query:"&radio=true",
  44. placeholder: "选择单位",
  45. valueName: "sys_enterpriseid",
  46. required: true,
  47. checking: "base",
  48. }, {
  49. label: "职位",
  50. error: false,
  51. errMsg: "",
  52. type: "text",
  53. value: "",
  54. placeholder: "联系人职位",
  55. valueName: "position",
  56. required: false,
  57. checking: "base"
  58. }, {
  59. label: "性别",
  60. error: false,
  61. errMsg: "",
  62. type: "sex",
  63. value: "",
  64. placeholder: "联系人性别",
  65. valueName: "sex",
  66. required: false,
  67. checking: "base"
  68. }, {
  69. label: "生日",
  70. error: false,
  71. errMsg: "",
  72. type: "date",
  73. value: "",
  74. placeholder: "联系人生日",
  75. valueName: "birthday",
  76. required: false
  77. }, {
  78. label: "邮箱",
  79. error: false,
  80. errMsg: "",
  81. type: "textarea",
  82. value: "",
  83. placeholder: "请填写",
  84. valueName: "email",
  85. required: false,
  86. checking: "mail"
  87. }, {
  88. label: "地区",
  89. error: false,
  90. errMsg: "",
  91. type: "region",
  92. value: [],
  93. placeholder: "省,市,区",
  94. valueName: "region",
  95. required: false
  96. }, {
  97. label: "详细地址",
  98. error: false,
  99. errMsg: "",
  100. type: "textarea",
  101. value: "",
  102. placeholder: "例: 科创园11栋1103室",
  103. valueName: "address",
  104. required: false,
  105. checking: "base"
  106. }, {
  107. label: "备注",
  108. error: false,
  109. errMsg: "",
  110. type: "textarea",
  111. value: "",
  112. placeholder: "请填写",
  113. valueName: "remarks",
  114. required: false,
  115. checking: "base"
  116. }],
  117. disabled: true,
  118. "content": {
  119. "contactsid": 0, //地址id
  120. "sa_projectid": 0, //绑定数据
  121. "isleader": 0, //默认0
  122. "workaddress": 0,
  123. "isdefault": 0, //是否默认地址
  124. "isprimary": 0 //是否为主地址
  125. }
  126. },
  127. onLoad(options) {
  128. this.setData({
  129. "content.sa_projectid": options.sa_projectid
  130. });
  131. if (options.data) {
  132. let item = JSON.parse(options.data),
  133. disabled = false,
  134. form = this.data.form.map(v => {
  135. if (v.valueName == 'region') {
  136. v.value = item.province ? [item.province, item.city, item.county] : []
  137. } else if (v.valueName == 'sys_enterpriseid') {
  138. if (item.sys_enterpriseid) {
  139. v.value = [item.enterprisename, [item.sys_enterpriseid]]
  140. } else {
  141. v.value = "";
  142. disabled = true;
  143. }
  144. } else {
  145. v.value = Object.hasOwn(item, v.valueName) ? item[v.valueName] : v.value;
  146. }
  147. return v
  148. });
  149. this.setData({
  150. form,
  151. disabled,
  152. "content.contactsid": item.contactsid
  153. });
  154. if (item.sys_phonebookid) this.setData({
  155. sys_phonebookid: item.sys_phonebookid
  156. })
  157. };
  158. },
  159. /* 提交数据 */
  160. submit() {
  161. let data = this.selectComponent("#Form").submit();
  162. if (!data || this.data.disabled) return;
  163. data.sys_enterpriseid = data.sys_enterpriseid[1][0]
  164. const content = {
  165. ...this.data.content,
  166. ...data,
  167. "province": data.region[0] || "",
  168. "city": data.region[1] || "",
  169. "county": data.region[2] || "",
  170. sys_phonebookid: ""
  171. };
  172. delete(content.region);
  173. if (this.data.sys_phonebookid == null) {
  174. this.handleSubmit(content);
  175. } else {
  176. let that = this;
  177. wx.showModal({
  178. title: '提示',
  179. content: '是否删除原通讯录联系人信息',
  180. complete({
  181. confirm
  182. }) {
  183. content.sys_phonebookid = confirm ? that.data.sys_phonebookid : "";
  184. that.handleSubmit(content);
  185. }
  186. })
  187. }
  188. },
  189. handleSubmit(content) {
  190. _Http.basic({
  191. "id": "20221018141802",
  192. content
  193. }).then(res => {
  194. console.log("编辑联系人", res)
  195. if (res.msg != '成功') return wx.showToast({
  196. title: res.data,
  197. icon: "none"
  198. });
  199. let that = this;
  200. let page = getCurrentPages()[getCurrentPages().length - 2];
  201. _Http.basic({
  202. "id": 20221111131104,
  203. "content": {
  204. "sa_project_contactsid": 0,
  205. contactsids: [res.data.contactsid],
  206. "sa_projectid": page.data.sa_projectid,
  207. "remarks": ""
  208. }
  209. }).then(res => {
  210. console.log("项目添加联系人", res)
  211. if (res.msg != '成功') return wx.showToast({
  212. title: res.data,
  213. icon: "none"
  214. });
  215. wx.showToast({
  216. title: '添加成功',
  217. icon: "none"
  218. });
  219. setTimeout(() => {
  220. wx.navigateBack();
  221. let model = page.selectComponent("#Contacts")
  222. model.getList(model.data.sa_projectid, true)
  223. }, 300)
  224. })
  225. wx.showToast({
  226. title: '保存成功',
  227. icon: "none"
  228. });
  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. })