index.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  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. hint: "",
  21. type: "radio",
  22. value: "0",
  23. radioList: [{
  24. id: '0',
  25. name: '手机号'
  26. }, {
  27. id: '1',
  28. name: '座机电话'
  29. }],
  30. valueName: "isTelephone", //绑定的字段名称
  31. required: true, //必填
  32. interrupt: true,
  33. checking: `true`,
  34. phonenumber: "",
  35. telephone: ["", ""]
  36. }, {
  37. label: "手机号",
  38. error: false,
  39. errMsg: "",
  40. type: "number",
  41. value: "",
  42. placeholder: "联系人手机号码",
  43. valueName: "phonenumber",
  44. required: true,
  45. checking: "phone"
  46. }, {
  47. label: "微信",
  48. error: false,
  49. errMsg: "",
  50. type: "text",
  51. value: "",
  52. placeholder: "联系人微信",
  53. valueName: "wechatnum",
  54. required: false
  55. }, {
  56. label: "邮箱",
  57. error: false,
  58. errMsg: "",
  59. type: "textarea",
  60. value: "",
  61. placeholder: "请填写",
  62. valueName: "email",
  63. required: false,
  64. checking: "mail"
  65. }, {
  66. label: "传真",
  67. error: false,
  68. errMsg: "",
  69. type: "textarea",
  70. value: "",
  71. placeholder: "请填写",
  72. valueName: "fax",
  73. required: false,
  74. }, {
  75. label: "部门",
  76. error: false,
  77. errMsg: "",
  78. type: "text",
  79. value: "",
  80. placeholder: "联系人所属部门",
  81. valueName: "depname",
  82. required: false,
  83. checking: "base"
  84. }, {
  85. label: "职位",
  86. error: false,
  87. errMsg: "",
  88. type: "text",
  89. value: "",
  90. placeholder: "联系人职位",
  91. valueName: "position",
  92. required: false,
  93. checking: "base"
  94. }, {
  95. label: "性别",
  96. error: false,
  97. errMsg: "",
  98. type: "sex",
  99. value: "男",
  100. placeholder: "联系人性别",
  101. valueName: "sex",
  102. required: false,
  103. checking: "base"
  104. }, {
  105. label: "生日",
  106. error: false,
  107. errMsg: "",
  108. type: "date",
  109. value: "",
  110. placeholder: "联系人生日",
  111. valueName: "birthday",
  112. required: false
  113. }, {
  114. label: "家庭地址",
  115. error: false,
  116. errMsg: "",
  117. type: "textarea",
  118. value: "",
  119. placeholder: "家庭地址",
  120. valueName: "address",
  121. required: false,
  122. checking: "base"
  123. }, {
  124. label: "备注",
  125. error: false,
  126. errMsg: "",
  127. type: "textarea",
  128. value: "",
  129. placeholder: "请填写",
  130. valueName: "remarks",
  131. required: false,
  132. checking: "base"
  133. }],
  134. disabled: true,
  135. "content": {
  136. "contactsid": 0, //地址id
  137. "sys_enterpriseid": 0, //绑定数据
  138. "isleader": 0, //默认0
  139. "workaddress": 0,
  140. "isdefault": 0, //是否默认地址
  141. "isprimary": 0 //是否为主地址
  142. }
  143. },
  144. onLoad(options) {
  145. console.log(options)
  146. if (options.sys_enterpriseid) this.data.content.sys_enterpriseid = options.sys_enterpriseid;
  147. if (options.contactsid) this.data.content.contactsid = options.contactsid;
  148. if (options.data) {
  149. let item = JSON.parse(options.data),
  150. arr = item.phonenumber.split("-");
  151. console.log(item)
  152. item.isTelephone = arr.length == 2 ? "1" : "0";
  153. if (options.enterprisename) {
  154. item.sys_enterpriseid = [options.enterprisename, [options.sys_enterpriseid]]
  155. } else if (item.enterprisename || item.company) {
  156. item.sys_enterpriseid = [item.enterprisename || item.company, [item.sys_enterpriseid]]
  157. }
  158. if (typeof item.sys_enterpriseid == "object") {
  159. this.data.form.splice(6, 0, {
  160. label: "单位",
  161. error: false,
  162. errMsg: "",
  163. type: "route",
  164. url: "/packageA/project/modules/contacts/select/index",
  165. value: "",
  166. query: "&radio=true",
  167. placeholder: "选择单位",
  168. valueName: "sys_enterpriseid",
  169. required: true,
  170. checking: "base",
  171. disabled: true
  172. })
  173. this.data.content.sys_enterpriseid = item.sys_enterpriseid[1][0] || 0;
  174. }
  175. this.data.content.contactsid = item.contactsid;
  176. this.data.content.sys_phonebookid = item.sys_phonebookid || 0;
  177. if (item.sa_customersid) this.data.content.ownerid = item.sa_customersid;
  178. if (options.sys_enterpriseid) this.data.sys_phonebookid = item.sys_phonebookid || 0;
  179. this.setData({
  180. form: this.data.form.map(v => {
  181. if (v.valueName == 'phonenumber') {
  182. v = arr.length == 2 ? {
  183. label: "电话",
  184. error: false,
  185. errMsg: "",
  186. type: "telephone",
  187. value: arr,
  188. placeholder: "联系人手机号码",
  189. valueName: "telephone",
  190. required: true,
  191. checking: "telephone"
  192. } : {
  193. label: "手机号",
  194. error: false,
  195. errMsg: "",
  196. type: "number",
  197. value: arr[0],
  198. placeholder: "联系人手机号码",
  199. valueName: "phonenumber",
  200. required: true,
  201. checking: "phone"
  202. }
  203. } else {
  204. v.value = item[v.valueName] || v.value || '';
  205. }
  206. return v
  207. })
  208. });
  209. this.selectComponent("#Form").confirm();
  210. } else {
  211. this.data.form.splice(6, 0, {
  212. label: "单位",
  213. error: false,
  214. errMsg: "",
  215. type: "route",
  216. url: "/packageA/project/modules/contacts/select/index",
  217. value: [options.enterprisename, [options.sys_enterpriseid]],
  218. query: "&radio=true",
  219. placeholder: "选择单位",
  220. valueName: "sys_enterpriseid",
  221. required: true,
  222. checking: "base",
  223. disabled: true
  224. })
  225. this.setData({
  226. form: this.data.form
  227. })
  228. }
  229. if (options.sa_customersid) this.data.content.ownerid = options.sa_customersid
  230. console.log(this.data.content)
  231. },
  232. /* 打断 */
  233. interrupt({
  234. detail
  235. }) {
  236. let {
  237. data,
  238. form
  239. } = detail;
  240. if (data.label == '联系方式') {
  241. if (data.value == 0) {
  242. data.telephone = form[2].value;
  243. form[2] = {
  244. label: "手机号",
  245. error: false,
  246. errMsg: "",
  247. type: "number",
  248. value: data.phonenumber,
  249. placeholder: "联系人手机号码",
  250. valueName: "phonenumber",
  251. required: true,
  252. checking: "phone"
  253. }
  254. } else {
  255. data.phonenumber = form[2].value;
  256. form[2] = {
  257. label: "电话",
  258. error: false,
  259. errMsg: "",
  260. type: "telephone",
  261. value: data.telephone,
  262. placeholder: "联系人手机号码",
  263. valueName: "telephone",
  264. required: true,
  265. checking: "telephone"
  266. }
  267. };
  268. this.setData({
  269. form
  270. })
  271. }
  272. },
  273. /* 提交数据 */
  274. submit() {
  275. let data = this.selectComponent("#Form").submit();
  276. if (!data || this.data.disabled) return;
  277. const content = {
  278. ...this.data.content,
  279. ...data,
  280. ownertable: "sa_customers"
  281. };
  282. if (content.telephone) {
  283. content.phonenumber = content.telephone.join("-");
  284. delete(content.telephone)
  285. }
  286. content.sa_customersid = content.ownerid;
  287. content.sys_enterpriseid = this.data.content.sys_enterpriseid;
  288. content.oldcontactsid = content.contactsid;
  289. if (this.data.sys_phonebookid == null) {
  290. this.handleSubmit(content);
  291. } else {
  292. let that = this;
  293. wx.showModal({
  294. title: '提示',
  295. content: '是否删除原通讯录联系人信息',
  296. complete({
  297. confirm
  298. }) {
  299. content.sys_phonebookid = confirm ? content.sys_phonebookid : 0;
  300. content.contactsid = 0;
  301. that.handleSubmit(content);
  302. }
  303. })
  304. }
  305. },
  306. handleSubmit(content) {
  307. console.log("提交", content)
  308. _Http.basic({
  309. "id": "20221018141802",
  310. content
  311. }).then(res => {
  312. console.log("编辑联系人", res)
  313. wx.showToast({
  314. title: res.msg != '成功' ? res.msg : '保存成功',
  315. icon: "none",
  316. mask: true
  317. });
  318. if (res.msg == '成功') setTimeout(() => {
  319. wx.navigateBack()
  320. getCurrentPages().forEach(v => {
  321. if (v.__route__ == 'packageA/setclient/modules/contacts/detail/index' || v.__route__ == 'packageA/contacts/detail') {
  322. v.getDetail();
  323. } else if (v.selectComponent("#Contacts")) {
  324. let page = v.selectComponent("#Contacts");
  325. page.getList(page.data.content.sys_enterpriseid, true)
  326. } else if (v.__route__ == 'packageA/project/modules/contacts/search/index') {
  327. let index = v.data.list.findIndex(value => value.contactsid == res.data.contactsid);
  328. if (index != -1) v.setData({
  329. [`list[${index}]`]: res.data
  330. })
  331. }
  332. });
  333. }, 500)
  334. });
  335. },
  336. /* 表单是否填写完成 */
  337. onConfirm({
  338. detail
  339. }) {
  340. this.setData({
  341. disabled: detail
  342. })
  343. },
  344. /* 是否显示全部 */
  345. changefromShowAll({
  346. detail
  347. }) {
  348. this.setData({
  349. fromShowAll: detail
  350. })
  351. },
  352. })