addAndEditor.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. let _Http = getApp().globalData.http,
  2. count = null;
  3. Page({
  4. data: {
  5. showAll: false,
  6. repetitionShow: false,
  7. repetitionList: [],
  8. isSubmit: false,
  9. form: [{
  10. label: "企业名称",
  11. error: false,
  12. errMsg: "",
  13. type: "textarea",
  14. value: "",
  15. placeholder: "企业全称",
  16. valueName: "enterprisename",
  17. checking: "base",
  18. slot: "info",
  19. required: true
  20. }, {
  21. label: "客户类型",
  22. error: false,
  23. errMsg: "",
  24. type: "option",
  25. optionNmae: "customertypemx",
  26. optionType: "radio", //复选 radio 单选
  27. value: "",
  28. placeholder: "客户类型",
  29. valueName: "type",
  30. checking: "base",
  31. required: true
  32. }, {
  33. label: "客户级别",
  34. error: false,
  35. errMsg: "",
  36. type: "option",
  37. optionNmae: "agentgrade",
  38. optionType: "radio", //复选 radio 单选
  39. value: "",
  40. placeholder: "客户数字级别",
  41. valueName: "grade",
  42. checking: "base",
  43. required: false
  44. }, {
  45. label: "企业简称",
  46. error: false,
  47. errMsg: "",
  48. type: "textarea",
  49. value: "",
  50. placeholder: "企业简称",
  51. valueName: "abbreviation",
  52. checking: "base",
  53. required: false
  54. }, {
  55. label: "统一社会信用代码",
  56. error: false,
  57. errMsg: "",
  58. type: "textarea",
  59. value: "",
  60. placeholder: "企业税号/注册号/营业执照号码",
  61. valueName: "taxno",
  62. checking: "base",
  63. required: false
  64. }, {
  65. label: "法定代表人",
  66. error: false,
  67. errMsg: "",
  68. type: "text",
  69. value: "",
  70. placeholder: "企业法人",
  71. valueName: "contact",
  72. checking: "base",
  73. required: false
  74. }, {
  75. label: "所属行业",
  76. error: false,
  77. errMsg: "",
  78. type: "option", //自定义选择 配合预定接口
  79. optionNmae: "industry", //选择类型
  80. optionType: "radio", //复选 radio 单选
  81. value: "",
  82. placeholder: "企业所属行业",
  83. valueName: "industry",
  84. checking: "base",
  85. required: false
  86. }, {
  87. label: "省市县",
  88. error: false,
  89. errMsg: "",
  90. type: "region",
  91. value: [],
  92. placeholder: "省/市/县",
  93. valueName: "region",
  94. required: false
  95. }, {
  96. label: "企业地址",
  97. error: false,
  98. errMsg: "",
  99. type: "textarea",
  100. value: "",
  101. placeholder: "企业所在地址",
  102. valueName: "address",
  103. checking: "base",
  104. required: false
  105. }],
  106. content: {
  107. "sa_customersid": 0, //新增是传0
  108. "parentid": 0, //上级客户ID,默认或没有上级的时候传0
  109. "sys_enterpriseid": 0, //合作企业档案ID,新增是传0,更新
  110. "sa_customerpoolid": 0, //客户池(公海池)ID,默认或没有的时候传0
  111. "source": "", //客户来源
  112. ispublic: 0, //是否为公海客户
  113. },
  114. disabled: true,
  115. countDown: "", //查重倒计时
  116. },
  117. queryClient() {
  118. let data = this.selectComponent("#Form").query();
  119. if (data.enterprisename == '') {
  120. wx.showToast({
  121. title: `您还未填写企业名称`,
  122. icon: "none"
  123. });
  124. } else {
  125. this.setData({
  126. form: this.selectComponent("#Form").data.form,
  127. })
  128. this.selectComponent("#Info").queryClient(data.enterprisename)
  129. }
  130. },
  131. /* 工商查询 */
  132. introduce({
  133. detail
  134. }) {
  135. let item = detail;
  136. let data = {
  137. enterprisename: item.companyName, //企业名称
  138. taxno: item.taxNum, //税号
  139. contact: item.legalPerson, //法人
  140. region: [item.regProvince, item.regCity, item.regArea], //地区
  141. address: item.address, //地区
  142. }
  143. this.setData({
  144. form: this.data.form.map(v => {
  145. if (data[v.valueName]) v.value = data[v.valueName];
  146. return v
  147. })
  148. })
  149. },
  150. setOption(item) {
  151. let i = this.data.form.findIndex(v => v.valueName == item.valueName);
  152. this.setData({
  153. [`form[${i}]`]: item
  154. })
  155. },
  156. onLoad(options) {
  157. if (options.data) {
  158. let data = JSON.parse(options.data);
  159. this.setData({
  160. disabled: false,
  161. content: {
  162. sa_customersid: data.sa_customersid,
  163. parentid: data.parentid,
  164. sys_enterpriseid: data.sys_enterpriseid,
  165. sa_customerpoolid: data.sa_customerpoolid,
  166. source: data.source,
  167. },
  168. form: this.data.form.map(v => {
  169. if (v.valueName != 'region') {
  170. v.value = data[v.valueName];
  171. } else {
  172. v.value = data.province ? [data.province, data.city, data.county] : []
  173. }
  174. return v
  175. })
  176. })
  177. }
  178. },
  179. repClose() {
  180. if (this.data.isSubmit) {
  181. let that = this;
  182. wx.showModal({
  183. title: '提示',
  184. content: `是否继续创建客户`,
  185. complete: (res) => {
  186. if (res.confirm) that.handleSubmit(true);
  187. }
  188. })
  189. }
  190. this.setData({
  191. repetitionShow: false,
  192. isSubmit: false
  193. })
  194. },
  195. /* 表单必填项是否完成 */
  196. onConfirm({
  197. detail
  198. }) {
  199. this.setData({
  200. disabled: detail
  201. })
  202. },
  203. // 是否显示全部
  204. onChange({
  205. detail
  206. }) {
  207. this.setData({
  208. showAll: detail
  209. })
  210. },
  211. /* 查询是否重复 */
  212. async queryRepetition(e) {
  213. let {
  214. enterprisename,
  215. taxno,
  216. address
  217. } = this.selectComponent("#Form").query();
  218. if (enterprisename == '') return wx.showToast({
  219. title: `您还未填写企业名称`,
  220. icon: "none"
  221. });
  222. let res = await this.handleQueryRepetition({
  223. sa_customersid: this.data.content.sa_customersid,
  224. enterprisename,
  225. taxno,
  226. address
  227. });
  228. console.log("查询重复", res)
  229. if (res.msg != '成功') return wx.showToast({
  230. title: res.msg,
  231. icon: "none"
  232. });
  233. this.setData({
  234. countDown: 6
  235. });
  236. count = setInterval(() => {
  237. let countDown = this.data.countDown;
  238. if (countDown == 0) {
  239. clearInterval(count);
  240. this.setData({
  241. countDown: ""
  242. })
  243. } else {
  244. countDown--;
  245. this.setData({
  246. countDown
  247. })
  248. }
  249. }, 1000)
  250. if (res.total == 0) {
  251. wx.showToast({
  252. title: '未查询到疑似重复的客户信息',
  253. icon: "none"
  254. })
  255. } else {
  256. wx.showToast({
  257. title: `查询到${res.total}条疑似重复客户信息`,
  258. icon: "none"
  259. })
  260. this.setData({
  261. repetitionShow: true,
  262. repetitionList: res.data
  263. })
  264. }
  265. },
  266. /* 处理查重 */
  267. handleQueryRepetition(content) {
  268. return _Http.basic({
  269. "id": 20221208172002,
  270. content
  271. })
  272. },
  273. async submit() {
  274. let data = this.selectComponent("#Form").submit();
  275. let query = await this.handleQueryRepetition({
  276. sa_customersid: this.data.content.sa_customersid,
  277. enterprisename: data.enterprisename,
  278. taxno: data.taxno,
  279. address: data.address
  280. });
  281. if (query.total != 0) {
  282. wx.showToast({
  283. title: `查询到${query.total}条疑似重复客户信息`,
  284. icon: "none"
  285. })
  286. this.setData({
  287. repetitionShow: true,
  288. repetitionList: query.data,
  289. isSubmit: true
  290. })
  291. } else {
  292. this.handleSubmit();
  293. }
  294. },
  295. handleSubmit(tag = false) {
  296. let data = this.selectComponent("#Form").submit();
  297. if (data.region.length != 0) {
  298. data.province = data.region[0]
  299. data.city = data.region[1]
  300. data.county = data.region[2]
  301. };
  302. delete(data.region);
  303. _Http.basic({
  304. "id": 20221012163902,
  305. "content": {
  306. ...this.data.content,
  307. ...data,
  308. }
  309. }).then(res => {
  310. console.log("新建客户", res)
  311. if (res.msg != '成功') return wx.showToast({
  312. title: res.data,
  313. icon: "none"
  314. })
  315. wx.showToast({
  316. title: '保存成功',
  317. icon: "none"
  318. })
  319. //绑定疑似重复标签
  320. if (tag) _Http.basic({
  321. "id": 20220929090901,
  322. "content": {
  323. "ownertable": "sa_customers",
  324. "ownerid": res.data.sa_customersid,
  325. "datatag": ["疑似重复"]
  326. }
  327. })
  328. setTimeout(() => {
  329. getCurrentPages().forEach(v => {
  330. switch (v.__route__) {
  331. case 'packageA/setclient/index':
  332. v.getList(true);
  333. break;
  334. case 'packageA/setclient/detail':
  335. v.getDetail();
  336. wx.navigateBack()
  337. break;
  338. }
  339. })
  340. let pages = getCurrentPages();
  341. if (pages[pages.length - 2].__route__ == 'packageA/setclient/index') wx.redirectTo({
  342. url: '/packageA/setclient/detail?id=' + res.data.sa_customersid,
  343. })
  344. }, tag ? 500 : 300)
  345. })
  346. },
  347. })