index.js 13 KB

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