insert.js 10 KB

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