addClue.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. const _Http = getApp().globalData.http,
  2. getTime = require("../../utils/getTime");
  3. Page({
  4. data: {
  5. loading: false,
  6. showAll: false,
  7. form: [{
  8. label: "客户(企业)",
  9. error: false,
  10. errMsg: "",
  11. type: "text",
  12. value: "",
  13. placeholder: "客户(企业)",
  14. valueName: "enterprisename",
  15. checking: "base",
  16. slot: "info",
  17. required: false
  18. }, {
  19. label: "联系人",
  20. error: false,
  21. errMsg: "",
  22. type: "text",
  23. value: "",
  24. placeholder: "联系人",
  25. valueName: "name",
  26. checking: "base",
  27. required: true
  28. }, {
  29. label: "联系方式",
  30. error: false,
  31. checking: "phone",
  32. errMsg: "",
  33. type: "number",
  34. value: "",
  35. placeholder: "手机号码",
  36. valueName: "phonenumber", //绑定的字段名称
  37. required: true, //必填
  38. }, {
  39. label: "微信",
  40. error: false,
  41. errMsg: "",
  42. type: "text",
  43. value: "",
  44. placeholder: "微信号",
  45. valueName: "wechatnum",
  46. checking: "base",
  47. required: false
  48. }, {
  49. label: "省市县",
  50. error: false,
  51. errMsg: "",
  52. type: "region",
  53. value: "",
  54. placeholder: "省市县",
  55. valueName: "region",
  56. checking: "base",
  57. required: false
  58. }, {
  59. label: "详细地址",
  60. error: false,
  61. errMsg: "",
  62. type: "textarea",
  63. value: "",
  64. placeholder: "详细地址",
  65. valueName: "address",
  66. checking: "base",
  67. required: false
  68. }, {
  69. label: "项目名称",
  70. error: false,
  71. errMsg: "",
  72. type: "textarea",
  73. value: "",
  74. placeholder: "项目名称",
  75. valueName: "projectname",
  76. checking: "base",
  77. required: false
  78. }, {
  79. label: "项目规模",
  80. error: false,
  81. errMsg: "",
  82. type: "digit",
  83. value: "",
  84. placeholder: "请填写数值",
  85. valueName: "scale",
  86. checking: "base",
  87. required: false
  88. }, {
  89. label: "项目规模单位",
  90. error: false,
  91. errMsg: "",
  92. type: "option",
  93. optionNmae: "scaleunitname",
  94. optionType: "radio", //复选 radio 单选
  95. value: "",
  96. placeholder: "选择单位",
  97. valueName: "unitname",
  98. required: false
  99. }, {
  100. label: "总投资额(万元)",
  101. error: false,
  102. errMsg: "",
  103. type: "digit",
  104. value: "",
  105. placeholder: "请填写金额",
  106. valueName: "totalinvestment",
  107. checking: "base",
  108. required: false
  109. }, {
  110. label: "造价(万元)",
  111. error: false,
  112. errMsg: "",
  113. type: "digit",
  114. value: "",
  115. placeholder: "请填写金额",
  116. valueName: "costofconstruction",
  117. checking: "base",
  118. required: false
  119. }, {
  120. label: "预计开工时间",
  121. error: false,
  122. errMsg: "",
  123. type: "date",
  124. fields: "month",
  125. value: "",
  126. placeholder: "预计开工时间",
  127. valueName: "begdate_due",
  128. checking: "base",
  129. required: false
  130. }, {
  131. label: "预计完工时间",
  132. error: false,
  133. errMsg: "",
  134. type: "date",
  135. fields: "month",
  136. value: "",
  137. placeholder: "预计完工时间",
  138. valueName: "enddate_due",
  139. checking: "base",
  140. required: false
  141. },
  142. {
  143. label: "市场活动",
  144. error: false,
  145. errMsg: "",
  146. type: "route",
  147. url: "/packageA/select/selectActivity/index",
  148. value: "",
  149. params: {
  150. "id": 20221101095102,
  151. "content": {
  152. nocache: true,
  153. isAll: 0,
  154. "where": {
  155. 'condition': '',
  156. "unend": 1
  157. }
  158. }
  159. },
  160. query: "&radio=true",
  161. placeholder: "选择市场活动",
  162. valueName: "campaign_name",
  163. checking: "base",
  164. required: false
  165. }, {
  166. label: "领域",
  167. error: false,
  168. errMsg: "",
  169. type: "selector",
  170. range: [],
  171. rangeKey: "tradefield",
  172. rangeIndex: "",
  173. value: "",
  174. placeholder: "领域",
  175. valueName: "tradefield",
  176. required: true, //必填
  177. }, {
  178. label: "来源",
  179. error: false,
  180. errMsg: "",
  181. type: "text",
  182. value: "",
  183. placeholder: "来源",
  184. valueName: "cluesource",
  185. checking: "base",
  186. required: false
  187. }, {
  188. label: "线索概括",
  189. error: false,
  190. errMsg: "",
  191. type: "text",
  192. value: "",
  193. placeholder: "线索概括",
  194. valueName: "notes",
  195. checking: "base",
  196. required: false
  197. }
  198. ],
  199. "content": {
  200. "sat_orderclueid": 0,
  201. "sat_orderclueid": 0, //活动id,当活动id大于0是默认业务员创建
  202. "isprivate": 1 //0表示公海,1表示私域
  203. },
  204. disabled: true
  205. },
  206. onLoad(options) {
  207. if (wx.getStorageSync('userMsg').siteid == 'HY') this.setHY();
  208. if (options.sat_orderclueid) this.data.content.sat_orderclueid = options.sat_orderclueid;
  209. if (options.rowData) {
  210. let data = JSON.parse(options.rowData);
  211. this.setData({
  212. form: this.data.form.map(v => {
  213. if (v.valueName != 'region') {
  214. if (v.valueName == 'campaign_name') {
  215. v.value = data[v.valueName] ? [data[v.valueName],
  216. [data.sat_campaignid]
  217. ] : ""
  218. } else {
  219. v.value = data[v.valueName] || "";
  220. }
  221. } else {
  222. v.value = data.province ? [data.province, data.city, data.county] : []
  223. }
  224. return v
  225. }),
  226. 'form[0].value': data.enterprisename_customer || data.enterprisename || "",
  227. 'content.sat_orderclueid': data.sat_orderclueid || 0,
  228. 'content.sa_customersid': data.sa_customersid || 0,
  229. 'content.sat_campaignid': data.sat_campaignid || 0
  230. })
  231. this.selectComponent("#Form").confirm();
  232. } else {
  233. this.getUnitname();
  234. }
  235. /* 获取领域 */
  236. _Http.basic({
  237. "id": 20221223141802,
  238. "content": {
  239. "pageNumber": 1,
  240. "pageSize": 99999,
  241. "where": {
  242. "condition": ""
  243. }
  244. }
  245. }).then(res => {
  246. console.log("获取领域", res)
  247. let item = this.data.form.find(v => v.label == '领域');
  248. item.range = res.msg == '成功' ? res.data : [];
  249. this.setData({
  250. form: this.data.form
  251. })
  252. })
  253. },
  254. setHY() {
  255. let remove = ["项目预算(万元)", "总投资额(万元)", "造价(万元)"];
  256. this.setData({
  257. form: this.data.form.filter(v => !remove.includes(v.label))
  258. })
  259. },
  260. getUnitname() {
  261. _Http.basic({
  262. "classname": "sysmanage.develop.optiontype.optiontype",
  263. "method": "optiontypeselect",
  264. "content": {
  265. pageNumber: 1,
  266. "pageSize": 1,
  267. "typename": "scaleunitname",
  268. "parameter": {
  269. "siteid": wx.getStorageSync('siteP').siteid
  270. }
  271. }
  272. }).then(res => {
  273. console.log("项目规模", res)
  274. if (res.msg == '成功') {
  275. let index = this.data.form.findIndex(v => v.label == '项目规模单位');
  276. if (index != -1) this.setData({
  277. [`form[${index}].value`]: res.data[0].value
  278. })
  279. }
  280. })
  281. },
  282. introduce({
  283. detail
  284. }) {
  285. let item = detail;
  286. this.setData({
  287. [`form[0].value`]: item.companyName,
  288. [`form[5].value`]: item.address,
  289. [`form[4].value`]: [item.regProvince, item.regCity, item.regArea],
  290. })
  291. },
  292. queryClient() {
  293. let data = this.selectComponent("#Form").query();
  294. if (data.enterprisename == '') {
  295. wx.showToast({
  296. title: `您还未填写企业名称`,
  297. icon: "none"
  298. });
  299. } else {
  300. this.setData({
  301. form: this.selectComponent("#Form").data.form,
  302. })
  303. this.selectComponent("#Info").queryClient(data.enterprisename)
  304. }
  305. },
  306. submit() {
  307. let content = {
  308. ...this.data.content,
  309. ...this.selectComponent("#Form").submit()
  310. };
  311. content.sat_campaignid = content.campaign_name ? content.campaign_name[1][0] : 0;
  312. content.city = content.region[1] || "";
  313. content.county = content.region[2] || "";
  314. content.province = content.region[0] || "";
  315. delete(content.region)
  316. delete(content.campaign_name)
  317. if (content.enterprisename == "" && content.projectname == "") return wx.showToast({
  318. title: '客户名称或项目名称为空,请完善信息',
  319. icon: "none"
  320. });
  321. if (content.scale.length != 0 && content.scale == 0) return wx.showToast({
  322. title: '项目规模不可为0',
  323. icon: "none"
  324. })
  325. this.setData({
  326. loading: true
  327. })
  328. _Http.basic({
  329. "id": "20221205162402",
  330. content
  331. }).then(res => {
  332. console.log("添加线索", res)
  333. this.setData({
  334. loading: false
  335. })
  336. wx.showToast({
  337. title: res.msg != '成功' ? res.msg : '保存成功',
  338. icon: "none"
  339. })
  340. if (res.msg != '成功') return;
  341. setTimeout(() => {
  342. wx.navigateBack();
  343. getCurrentPages().forEach(v => {
  344. if (v.__route__ == 'packageA/saleClue/detail') {
  345. v.getDetail();
  346. } else if (v.__route__ == 'packageA/saleClue/index') {
  347. v.getList(true);
  348. } else if (['packageA/setclient/detail', 'packageA/publicCustomer/detail'].includes(v.__route__)) {
  349. v.selectComponent("#Clue").getList(this.data.content.sa_customersid, true)
  350. }
  351. })
  352. }, 300)
  353. })
  354. },
  355. // 是否显示全部
  356. onChange({
  357. detail
  358. }) {
  359. this.setData({
  360. showAll: detail
  361. })
  362. },
  363. /* 表单必填项是否完成 */
  364. onConfirm({
  365. detail
  366. }) {
  367. this.setData({
  368. disabled: detail
  369. })
  370. }
  371. })