index.js 12 KB

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