index.js 11 KB

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