insert.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  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: "text",
  78. value: "",
  79. placeholder: "联系人所属部门",
  80. valueName: "depname",
  81. required: true,
  82. checking: "base"
  83. }, {
  84. label: "职位",
  85. error: false,
  86. errMsg: "",
  87. type: "text",
  88. value: "",
  89. placeholder: "联系人职位",
  90. valueName: "position",
  91. required: true,
  92. checking: "base"
  93. }, {
  94. label: "性别",
  95. error: false,
  96. errMsg: "",
  97. type: "sex",
  98. value: "男",
  99. placeholder: "联系人性别",
  100. valueName: "sex",
  101. required: false,
  102. checking: "base"
  103. }, {
  104. label: "生日",
  105. error: false,
  106. errMsg: "",
  107. type: "date",
  108. value: "",
  109. placeholder: "联系人生日",
  110. valueName: "birthday",
  111. required: false
  112. }, {
  113. label: "家庭地址",
  114. error: false,
  115. errMsg: "",
  116. type: "textarea",
  117. value: "",
  118. placeholder: "家庭地址",
  119. valueName: "homeaddress",
  120. required: false,
  121. checking: "base"
  122. }, {
  123. label: "群组",
  124. error: false,
  125. errMsg: "",
  126. type: "route",
  127. url: "/packageA/select/group/select",
  128. value: "",
  129. query: "&radio=true",
  130. placeholder: "选择群组",
  131. valueName: "group",
  132. required: false,
  133. checking: "base",
  134. interrupt: false
  135. }, {
  136. label: "偏好",
  137. error: false,
  138. errMsg: "",
  139. type: "text",
  140. value: "",
  141. valueName: "preference",
  142. required: false,
  143. checking: "base"
  144. }, {
  145. label: "爱好",
  146. error: false,
  147. errMsg: "",
  148. type: "text",
  149. value: "",
  150. valueName: "hobby",
  151. required: false,
  152. checking: "base"
  153. }, {
  154. label: "备注",
  155. error: false,
  156. errMsg: "",
  157. type: "textarea",
  158. value: "",
  159. placeholder: "请填写",
  160. valueName: "remarks",
  161. required: false,
  162. checking: "base"
  163. }],
  164. disabled: true,
  165. "content": {
  166. sys_phonebookid: 0,
  167. },
  168. loading: false
  169. },
  170. onLoad(options) {
  171. getApp().globalData.Language.getLanguagePackage(this, '联系人')
  172. let form = this.data.form;
  173. if (options.data) {
  174. let item = JSON.parse(options.data),
  175. arr = item.phonenumber.split("-");
  176. item.isTelephone = arr.length == 2 ? "1" : "0";
  177. item.group = [item.groupname, [item.sys_phonebookgroupid]]
  178. this.data.content.sys_phonebookid = item.sys_phonebookid;
  179. this.setData({
  180. form: 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. if (v.valueName == 'group') v.disabled = item.leaderid != wx.getStorageSync('userMsg').userid
  207. return v
  208. }),
  209. "disabled": false
  210. });
  211. } else if (options.name) {
  212. let index = form.findIndex(v => v.label == '群组');
  213. form[index].value = [options.name, [options.id || 0]]
  214. this.setData({
  215. form
  216. })
  217. }
  218. },
  219. /* 提交数据 */
  220. submit() {
  221. this.setData({
  222. loading: true
  223. })
  224. try {
  225. const content = {
  226. ...this.data.content,
  227. ...this.selectComponent("#Form").submit()
  228. };
  229. if (content.telephone) {
  230. content.phonenumber = content.telephone.join("-");
  231. delete(content.telephone)
  232. }
  233. content.groupname = content.group[0] || '';
  234. content.sys_phonebookgroupid = content.group[1][0] || 0;
  235. delete(content.group)
  236. _Http.basic({
  237. "id": "20220831164503",
  238. content
  239. }).then(res => {
  240. this.setData({
  241. loading: false
  242. })
  243. console.log("编辑联系人", res)
  244. wx.showToast({
  245. title: res.code != '1' ? res.msg : getApp().globalData.Language.getMapText('保存成功'),
  246. icon: "none",
  247. mask: true
  248. });
  249. if (res.code == '1') {
  250. if (content.sys_phonebookid == 0) {
  251. setTimeout(() => {
  252. const {
  253. sys_phonebookid,
  254. sa_project_contactsid,
  255. contactsid,
  256. } = res.data;
  257. wx.redirectTo({
  258. url: `/packageA/contacts/detail?id=${sys_phonebookid||0}&sa_project_contactsid=${sa_project_contactsid||0}&contactsid=${contactsid||0}`,
  259. })
  260. }, 500)
  261. } else {
  262. getCurrentPages().forEach(v => {
  263. if (v.__route__ == 'packageA/contacts/detail') {
  264. v.getDetail(true);
  265. } else if (v.__route__ == 'packageA/project/detail') {
  266. let model = v.selectComponent("#Contacts");
  267. if (model) model.getList(model.data.sa_projectid, true)
  268. } else if (v.__route__ == 'packageA/setclient/detail') {
  269. let model = v.selectComponent("#Contacts");
  270. if (model) model.getList(model.data.sys_enterpriseid, true)
  271. }
  272. })
  273. setTimeout(() => {
  274. wx.navigateBack();
  275. }, 500)
  276. }
  277. }
  278. });
  279. } catch (error) {
  280. this.setData({
  281. loading: false
  282. })
  283. }
  284. },
  285. /* 打断 */
  286. interrupt({
  287. detail
  288. }) {
  289. let {
  290. data,
  291. form
  292. } = detail;
  293. if (data.label == '联系方式') {
  294. if (data.value == 0) {
  295. data.telephone = form[2].value;
  296. form[2] = {
  297. label: "手机号",
  298. error: false,
  299. errMsg: "",
  300. type: "number",
  301. value: data.phonenumber,
  302. placeholder: "联系人手机号码",
  303. valueName: "phonenumber",
  304. required: true,
  305. checking: "phone"
  306. }
  307. } else {
  308. data.phonenumber = form[2].value;
  309. form[2] = {
  310. label: "电话",
  311. error: false,
  312. errMsg: "",
  313. type: "telephone",
  314. value: data.telephone,
  315. placeholder: "联系人手机号码",
  316. valueName: "telephone",
  317. required: true,
  318. checking: "telephone"
  319. }
  320. };
  321. this.setData({
  322. form
  323. })
  324. } else if (data.label == '群组') {
  325. console.log(data, form)
  326. }
  327. },
  328. /* 表单是否填写完成 */
  329. onConfirm({
  330. detail
  331. }) {
  332. this.setData({
  333. disabled: detail
  334. })
  335. },
  336. /* 是否显示全部 */
  337. changefromShowAll({
  338. detail
  339. }) {
  340. this.setData({
  341. fromShowAll: detail
  342. })
  343. },
  344. })