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