useActivityActions.ts 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. import { ref } from 'vue'
  2. import { useI18n } from 'vue-i18n'
  3. import { activityApi } from '@/service/activity'
  4. import Config from '@/config/index'
  5. import type { AccountInfo } from '../types/activity'
  6. const { Code, Host05 } = Config
  7. export function useActivityActions(
  8. activityState: any,
  9. loginOptions: any,
  10. tableDataCptFlagCode: any,
  11. refreshCallback?: () => void
  12. ) {
  13. const { t, locale } = useI18n()
  14. // ==================== 弹窗状态 ====================
  15. const dialogChinaUnionPay = ref(false)
  16. const dialogChinaUnionPay1 = ref(false)
  17. const dialogChinaUnionPayJX = ref(false)
  18. const dialogDealResult = ref(false)
  19. const dialogDealResultJx = ref(false)
  20. const dialogDealResultJxVip = ref(false)
  21. const dialogDealResultCpt = ref(false)
  22. const dialogDealResultJxJYB = ref(false)
  23. const dialogDealResultNoWorries = ref(false)
  24. const dialogNoWorries = ref(false)
  25. const dialogNoWorriesApply = ref(false)
  26. const dialogNewTask = ref(false)
  27. const dialogNewTaskDraw = ref(false)
  28. const dialogSurplusActivity = ref(false)
  29. const dialogSurplusActivity1 = ref(false)
  30. const dialogInfoTradingAdd = ref(false)
  31. const openCalculatorFlag = ref(false)
  32. // ==================== 表单数据 ====================
  33. const dialogDealResult_form = ref({ login: '' })
  34. const dialogDealResultJx_form = ref({ login: '' })
  35. const dialogDealResultJx_formVip = ref({ login: '' })
  36. const dialogDealResultJx_formJYB = ref({ login: '' })
  37. const dialogDealResultCpt_form = ref({
  38. login: '',
  39. address: '',
  40. cptId: '',
  41. mobile: '',
  42. nickname: '',
  43. recipient: ''
  44. })
  45. const dialogDeal_formNoWorries = ref({ login: '' })
  46. // Surplus活动相关
  47. const selectedAccount = ref<AccountInfo | null>(null)
  48. const valueInfo = ref('')
  49. const surplusActivityOptions = ref<any[]>([])
  50. const surplusActivityLoading = ref(false)
  51. const selectedSurplusActivity = ref('')
  52. // ==================== 页面跳转 ====================
  53. const toSingle = (id: string, listID?: string) => {
  54. const specialIds = [
  55. '20zj', '23yx', '23jx', '23nz', '23nzTwo', '23jxVip',
  56. '23xinjia', '23jnhcj', '23nz_zx', '24JYB', 'NoWorries', 'NewYear24'
  57. ]
  58. if (specialIds.includes(id)) {
  59. let query: any = { id: '', type: 1, active: id }
  60. if (id === '23jx' && activityState.tableData3) {
  61. query = {
  62. ...query,
  63. data1: activityState.tableData3.show ? activityState.tableData3.activityStartTime : activityState.tableData3.showActivityStartTime,
  64. data2: activityState.tableData3.show ? activityState.tableData3.activityEndTime : activityState.tableData3.showActivityEndTime,
  65. data3: activityState.tableData3.show ? activityState.tableData3.applicationStartTime : activityState.tableData3.showApplicationStartTime,
  66. data4: activityState.tableData3.show ? activityState.tableData3.applicationEndTime : activityState.tableData3.showApplicationEndTime
  67. }
  68. } else if (id === '23jxVip' && activityState.tableData3Vip) {
  69. query = {
  70. ...query,
  71. data1: activityState.tableData3Vip.show ? activityState.tableData3Vip.activityStartTime : activityState.tableData3Vip.showActivityStartTime,
  72. data2: activityState.tableData3Vip.show ? activityState.tableData3Vip.activityEndTime : activityState.tableData3Vip.showActivityEndTime,
  73. data3: activityState.tableData3Vip.show ? activityState.tableData3Vip.applicationStartTime : activityState.tableData3Vip.showApplicationStartTime,
  74. data4: activityState.tableData3Vip.show ? activityState.tableData3Vip.applicationEndTime : activityState.tableData3Vip.showApplicationEndTime
  75. }
  76. } else if (id === '24JYB' && activityState.tableData3JYB) {
  77. query = {
  78. ...query,
  79. data1: activityState.tableData3JYB.show ? activityState.tableData3JYB.activityStartTime : activityState.tableData3JYB.showActivityStartTime,
  80. data2: activityState.tableData3JYB.show ? activityState.tableData3JYB.activityEndTime : activityState.tableData3JYB.showActivityEndTime,
  81. data3: activityState.tableData3JYB.show ? activityState.tableData3JYB.applicationStartTime : activityState.tableData3JYB.showApplicationStartTime,
  82. data4: activityState.tableData3JYB.show ? activityState.tableData3JYB.applicationEndTime : activityState.tableData3JYB.showApplicationEndTime
  83. }
  84. } else if (id === '23nz' && activityState.tableData4) {
  85. query = {
  86. ...query,
  87. data3: activityState.tableData4.show ? activityState.tableData4.applicationStartTime : activityState.tableData4.showApplicationStartTime,
  88. data4: activityState.tableData4.show ? activityState.tableData4.applicationEndTime : activityState.tableData4.showApplicationEndTime
  89. }
  90. } else if (id === '23nzTwo' && activityState.tableData4Two) {
  91. query = {
  92. ...query,
  93. data3: activityState.tableData4Two.show ? activityState.tableData4Two.applicationStartTime : activityState.tableData4Two.showApplicationStartTime,
  94. data4: activityState.tableData4Two.show ? activityState.tableData4Two.applicationEndTime : activityState.tableData4Two.showApplicationEndTime
  95. }
  96. }
  97. uni.navigateTo({
  98. url: `/pages/activities/content?${new URLSearchParams(query).toString()}`
  99. })
  100. } else if (id === 'newList') {
  101. uni.navigateTo({
  102. url: `/pages/activities/content?id=${listID}&type=1&active=newList`
  103. })
  104. } else {
  105. uni.navigateTo({
  106. url: `/pages/activities/content?id=${id}&type=1`
  107. })
  108. }
  109. }
  110. const toDeposit = () => {
  111. uni.navigateTo({ url: '/pages/customer/deposit-select' })
  112. }
  113. const toActivity24nianzhong = () => {
  114. uni.navigateTo({ url: '/pages/customer/deposit-select' })
  115. }
  116. const toActivity24Trading = () => {
  117. uni.navigateTo({ url: '/pages/analytics/new' })
  118. }
  119. const toHistoryLuckyDraw = () => {
  120. uni.navigateTo({ url: '/pages/customer/history/lucky/draw' })
  121. }
  122. const toTaskList = () => {
  123. uni.navigateTo({ url: '/pages/customer/task-list' })
  124. }
  125. const goSurplusTaskList = () => {
  126. uni.navigateTo({ url: '/pages/activities/surplus-list' })
  127. }
  128. const goMonthlyTaskList = () => {
  129. uni.navigateTo({ url: '/pages/activities/monthly-list' })
  130. }
  131. const toDocumentary = () => {
  132. uni.navigateTo({ url: '/pages/documentary/trading/center' })
  133. }
  134. const backActivity = () => {
  135. uni.navigateBack()
  136. }
  137. // ==================== PDF打开 ====================
  138. const openPdf = (pdfConfig: any) => {
  139. let url = ''
  140. if (typeof pdfConfig === 'string') {
  141. url = pdfConfig
  142. } else if (pdfConfig.dynamic) {
  143. if (pdfConfig.langMap) {
  144. url = pdfConfig.langMap[activityState.lang] || pdfConfig.langMap.default
  145. } else if (pdfConfig.path) {
  146. url = pdfConfig.path.replace('{lang}', activityState.lang)
  147. if (pdfConfig.supportedLangs && !pdfConfig.supportedLangs.includes(activityState.lang)) {
  148. url = pdfConfig.fallback || url
  149. }
  150. }
  151. } else if (pdfConfig.cn) {
  152. url = pdfConfig[activityState.lang] || pdfConfig.default
  153. }
  154. if (url) {
  155. // #ifdef H5
  156. window.open(url, '_blank')
  157. // #endif
  158. // #ifdef APP-PLUS
  159. plus.runtime.openURL(url)
  160. // #endif
  161. // #ifdef MP-WEIXIN
  162. uni.downloadFile({
  163. url: url,
  164. success: (res) => {
  165. if (res.statusCode === 200) {
  166. uni.openDocument({
  167. filePath: res.tempFilePath,
  168. success: () => {
  169. uni.showToast({ title: t('common.success'), icon: 'success' })
  170. }
  171. })
  172. }
  173. }
  174. })
  175. // #endif
  176. }
  177. }
  178. // ==================== 活动操作 ====================
  179. const toApply23Open = async () => {
  180. uni.showLoading({ title: t('common.loading') })
  181. try {
  182. const res = await activityApi.Activity23Login({})
  183. if (res.code === Code.StatusOK) {
  184. loginOptions.value = res.data
  185. dialogDealResult.value = true
  186. } else {
  187. uni.showToast({ title: res.msg, icon: 'none' })
  188. }
  189. } catch (error) {
  190. console.error('获取账户列表失败', error)
  191. } finally {
  192. uni.hideLoading()
  193. }
  194. }
  195. const toApply23 = async () => {
  196. uni.showLoading({ title: t('common.loading') })
  197. try {
  198. const res = await activityApi.Activity23HundredApply({
  199. login: dialogDealResult_form.value.login
  200. })
  201. if (res.code === Code.StatusOK) {
  202. uni.showToast({ title: res.msg, icon: 'success' })
  203. dialogDealResult.value = false
  204. if (refreshCallback) refreshCallback()
  205. } else {
  206. uni.showToast({ title: res.msg, icon: 'none' })
  207. }
  208. } catch (error) {
  209. console.error('申请失败', error)
  210. } finally {
  211. uni.hideLoading()
  212. }
  213. }
  214. const toApply23Cancel = () => {
  215. dialogDealResult_form.value = { login: '' }
  216. dialogDealResult.value = false
  217. }
  218. const toTransform = () => {
  219. dialogChinaUnionPay.value = true
  220. }
  221. const toTransformActive = async () => {
  222. uni.showLoading({ title: t('common.loading') })
  223. try {
  224. const res = await activityApi.Activity23HundredTransform({})
  225. if (res.code === Code.StatusOK) {
  226. uni.showToast({ title: res.msg, icon: 'success' })
  227. dialogChinaUnionPay.value = false
  228. if (refreshCallback) refreshCallback()
  229. } else {
  230. uni.showToast({ title: res.msg, icon: 'none' })
  231. }
  232. } catch (error) {
  233. console.error('转换失败', error)
  234. } finally {
  235. uni.hideLoading()
  236. }
  237. }
  238. const toRealization = () => {
  239. dialogChinaUnionPay1.value = true
  240. }
  241. const toRealizationActive = async () => {
  242. uni.showLoading({ title: t('common.loading') })
  243. try {
  244. const res = await activityApi.Activity23HundredRealization({})
  245. if (res.code === Code.StatusOK) {
  246. uni.showToast({ title: res.msg, icon: 'success' })
  247. dialogChinaUnionPay1.value = false
  248. if (refreshCallback) refreshCallback()
  249. } else {
  250. uni.showToast({ title: res.msg, icon: 'none' })
  251. }
  252. } catch (error) {
  253. console.error('变现失败', error)
  254. } finally {
  255. uni.hideLoading()
  256. }
  257. }
  258. // 23匠鑫活动申请
  259. const toApply23Jx = async () => {
  260. uni.showLoading({ title: t('common.loading') })
  261. try {
  262. const res = await activityApi.Activity23JiangxinApply({
  263. login: dialogDealResultJx_form.value.login
  264. })
  265. if (res.code === Code.StatusOK) {
  266. uni.showToast({ title: res.msg, icon: 'success' })
  267. dialogDealResultJx.value = false
  268. if (refreshCallback) refreshCallback()
  269. } else {
  270. uni.showToast({ title: res.msg, icon: 'none' })
  271. }
  272. } catch (error) {
  273. console.error('申请失败', error)
  274. } finally {
  275. uni.hideLoading()
  276. }
  277. }
  278. const toApply23JxCancel = () => {
  279. dialogDealResultJx_form.value = { login: '' }
  280. dialogDealResultJx.value = false
  281. }
  282. // 23匠鑫VIP活动申请
  283. const toApply23JxVip = async () => {
  284. uni.showLoading({ title: t('common.loading') })
  285. try {
  286. const res = await activityApi.Activity23JiangxinApplyVip({
  287. login: dialogDealResultJx_formVip.value.login
  288. })
  289. if (res.code === Code.StatusOK) {
  290. uni.showToast({ title: res.msg, icon: 'success' })
  291. dialogDealResultJxVip.value = false
  292. if (refreshCallback) refreshCallback()
  293. } else {
  294. uni.showToast({ title: res.msg, icon: 'none' })
  295. }
  296. } catch (error) {
  297. console.error('申请失败', error)
  298. } finally {
  299. uni.hideLoading()
  300. }
  301. }
  302. const toApply23JxCancelVip = () => {
  303. dialogDealResultJx_formVip.value = { login: '' }
  304. dialogDealResultJxVip.value = false
  305. }
  306. // 匠鑫活动变现
  307. const toRealizationJx = async () => {
  308. uni.showLoading({ title: t('common.loading') })
  309. try {
  310. const res = await activityApi.Activity23JiangxinRealization({
  311. id: activityState.tableData3?.id
  312. })
  313. if (res.code === Code.StatusOK) {
  314. uni.showToast({ title: res.msg, icon: 'success' })
  315. if (refreshCallback) refreshCallback()
  316. } else {
  317. uni.showToast({ title: res.msg, icon: 'none' })
  318. }
  319. } catch (error) {
  320. console.error('变现失败', error)
  321. } finally {
  322. uni.hideLoading()
  323. }
  324. }
  325. // 匠鑫VIP活动变现
  326. const toRealizationJxVip = async () => {
  327. uni.showLoading({ title: t('common.loading') })
  328. try {
  329. const res = await activityApi.Activity23JiangxinRealizationVip({
  330. id: activityState.tableData3Vip?.id
  331. })
  332. if (res.code === Code.StatusOK) {
  333. uni.showToast({ title: res.msg, icon: 'success' })
  334. if (refreshCallback) refreshCallback()
  335. } else {
  336. uni.showToast({ title: res.msg, icon: 'none' })
  337. }
  338. } catch (error) {
  339. console.error('变现失败', error)
  340. } finally {
  341. uni.hideLoading()
  342. }
  343. }
  344. // 交易大赛申请
  345. const toApplyCpt = async () => {
  346. uni.showLoading({ title: t('common.loading') })
  347. try {
  348. const res = await activityApi.ActivityCptInfoAdd({
  349. cptId: activityState.tableDataCpt?.id,
  350. login: dialogDealResultCpt_form.value.login,
  351. nickname: dialogDealResultCpt_form.value.nickname,
  352. mobile: dialogDealResultCpt_form.value.mobile,
  353. address: dialogDealResultCpt_form.value.address,
  354. recipient: dialogDealResultCpt_form.value.recipient
  355. })
  356. if (res.code === Code.StatusOK) {
  357. uni.showToast({ title: res.msg, icon: 'success' })
  358. dialogDealResultCpt.value = false
  359. if (refreshCallback) refreshCallback()
  360. } else {
  361. uni.showToast({ title: res.msg, icon: 'none' })
  362. }
  363. } catch (error) {
  364. console.error('申请失败', error)
  365. } finally {
  366. uni.hideLoading()
  367. }
  368. }
  369. const toApplyCptCancel = () => {
  370. dialogDealResultCpt_form.value = {
  371. login: '',
  372. address: '',
  373. cptId: '',
  374. mobile: '',
  375. nickname: '',
  376. recipient: ''
  377. }
  378. dialogDealResultCpt.value = false
  379. }
  380. // 24精英杯申请
  381. const toApply24JYBVip = async () => {
  382. uni.showLoading({ title: t('common.loading') })
  383. try {
  384. const res = await activityApi.Activity24JYBApplyVip({
  385. login: dialogDealResultJx_formJYB.value.login
  386. })
  387. if (res.code === Code.StatusOK) {
  388. uni.showToast({ title: res.msg, icon: 'success' })
  389. dialogDealResultJxJYB.value = false
  390. if (refreshCallback) refreshCallback()
  391. } else {
  392. uni.showToast({ title: res.msg, icon: 'none' })
  393. }
  394. } catch (error) {
  395. console.error('申请失败', error)
  396. } finally {
  397. uni.hideLoading()
  398. }
  399. }
  400. const toApply24JYBCancelVip = () => {
  401. dialogDealResultJx_formJYB.value = { login: '' }
  402. dialogDealResultJxJYB.value = false
  403. }
  404. // 24精英杯变现
  405. const toRealization24JYBVip = async () => {
  406. uni.showLoading({ title: t('common.loading') })
  407. try {
  408. const res = await activityApi.Activity24JYBRealizationVip({
  409. id: activityState.tableData3JYB?.id
  410. })
  411. if (res.code === Code.StatusOK) {
  412. uni.showToast({ title: res.msg, icon: 'success' })
  413. if (refreshCallback) refreshCallback()
  414. } else {
  415. uni.showToast({ title: res.msg, icon: 'none' })
  416. }
  417. } catch (error) {
  418. console.error('变现失败', error)
  419. } finally {
  420. uni.hideLoading()
  421. }
  422. }
  423. // 无忧交易申请
  424. const toApplyNoWorries = async () => {
  425. uni.showLoading({ title: t('common.loading') })
  426. try {
  427. const res = await activityApi.ActivityNoWorriesApply({
  428. login: dialogDeal_formNoWorries.value.login
  429. })
  430. if (res.code === Code.StatusOK) {
  431. uni.showToast({ title: res.msg, icon: 'success' })
  432. dialogDealResultNoWorries.value = false
  433. dialogNoWorriesApply.value = true
  434. if (refreshCallback) refreshCallback()
  435. } else {
  436. uni.showToast({ title: res.msg, icon: 'none' })
  437. }
  438. } catch (error) {
  439. console.error('申请失败', error)
  440. } finally {
  441. uni.hideLoading()
  442. }
  443. }
  444. const toApplyNoWorriesCancel = () => {
  445. dialogDeal_formNoWorries.value = { login: '' }
  446. dialogDealResultNoWorries.value = false
  447. }
  448. // 无忧交易变现
  449. const realizationNoWorries = async () => {
  450. uni.showLoading({ title: t('common.loading') })
  451. try {
  452. const res = await activityApi.ActivityNoWorriesRealization({
  453. id: activityState.tableDataNoWorries?.id
  454. })
  455. if (res.code === Code.StatusOK) {
  456. uni.showToast({ title: res.msg, icon: 'success' })
  457. dialogNoWorries.value = false
  458. if (refreshCallback) refreshCallback()
  459. } else {
  460. uni.showToast({ title: res.msg, icon: 'none' })
  461. }
  462. } catch (error) {
  463. console.error('变现失败', error)
  464. } finally {
  465. uni.hideLoading()
  466. }
  467. }
  468. // Surplus活动相关
  469. const getSurplusActivityOptions = async (account: any) => {
  470. if (!account) return
  471. surplusActivityLoading.value = true
  472. try {
  473. const res = await activityApi.ActivitySurplusDepositAmount({
  474. login: account.login,
  475. platform: account.platform
  476. })
  477. if (res.code === Code.StatusOK) {
  478. surplusActivityOptions.value = res.data.map((item: any, index: number) => ({
  479. id: index,
  480. value: item.level,
  481. label: `${t('AmountLabel.item1')}: ${item.amount} | ${t('AmountLabel.item2')}: ${item.needVolume}`,
  482. giveFlag: item.giveFlag
  483. }))
  484. } else {
  485. uni.showToast({ title: res.msg, icon: 'none' })
  486. }
  487. } catch (error) {
  488. console.error('获取Surplus活动选项失败', error)
  489. } finally {
  490. surplusActivityLoading.value = false
  491. }
  492. }
  493. const confirmSurplusActivity = async () => {
  494. if (!selectedAccount.value || !selectedSurplusActivity.value) return
  495. surplusActivityLoading.value = true
  496. try {
  497. const res = await activityApi.ActivitySurplusAdd({
  498. login: selectedAccount.value.login,
  499. platform: selectedAccount.value.platform,
  500. level: selectedSurplusActivity.value
  501. })
  502. if (res.code === Code.StatusOK) {
  503. uni.showToast({ title: res.msg, icon: 'success' })
  504. dialogSurplusActivity.value = false
  505. if (refreshCallback) refreshCallback()
  506. } else {
  507. uni.showToast({ title: res.msg, icon: 'none' })
  508. }
  509. } catch (error) {
  510. console.error('参加Surplus活动失败', error)
  511. } finally {
  512. surplusActivityLoading.value = false
  513. }
  514. }
  515. const confirmSurplusActivity1 = async () => {
  516. try {
  517. const res = await activityApi.ActivityMonthlyAdd({})
  518. if (res.code === Code.StatusOK) {
  519. uni.showToast({ title: res.msg, icon: 'success' })
  520. dialogSurplusActivity1.value = false
  521. if (refreshCallback) refreshCallback()
  522. } else {
  523. uni.showToast({ title: res.msg, icon: 'none' })
  524. }
  525. } catch (error) {
  526. console.error('参加月赏礼遇活动失败', error)
  527. }
  528. }
  529. // 现金嘉年华相关
  530. const closedialogNewTaskDraw = () => {
  531. dialogNewTaskDraw.value = false
  532. if (refreshCallback) refreshCallback()
  533. }
  534. // 打开外部链接
  535. const toOpenSingle = (pageAddress: string) => {
  536. let link = pageAddress
  537. if (tableDataCptFlagCode.value) {
  538. if (pageAddress.indexOf('html?') === -1) {
  539. link = pageAddress + '?code=' + tableDataCptFlagCode.value
  540. } else if (pageAddress.indexOf('code') === -1) {
  541. link = pageAddress + '&code=' + tableDataCptFlagCode.value
  542. }
  543. }
  544. // #ifdef H5
  545. window.open(Host05 + link, '_blank')
  546. // #endif
  547. // #ifndef H5
  548. plus.runtime.openURL(Host05 + link)
  549. // #endif
  550. }
  551. // 返现
  552. const cashBack = async () => {
  553. uni.showLoading({ title: t('common.loading') })
  554. try {
  555. const res = await activityApi.ActivityPercentageGiveApply({})
  556. if (res.code === Code.StatusOK) {
  557. uni.showToast({ title: t('Msg.Application'), icon: 'success' })
  558. } else {
  559. uni.showToast({ title: res.msg, icon: 'none' })
  560. }
  561. } catch (error) {
  562. console.error('返现失败', error)
  563. } finally {
  564. uni.hideLoading()
  565. }
  566. }
  567. // 收益计算
  568. const calculateIncome = (balance: number, details: any[]) => {
  569. let rate = 0
  570. details.forEach((item) => {
  571. if (balance > item.min && balance <= item.max) {
  572. rate = item.rate
  573. } else if (balance > item.min && balance >= item.max && item.max === 0) {
  574. rate = item.rate
  575. }
  576. })
  577. return ((balance * rate) / 100 / 365 * 30).toFixed(2)
  578. }
  579. return {
  580. // 弹窗状态
  581. dialogChinaUnionPay,
  582. dialogChinaUnionPay1,
  583. dialogChinaUnionPayJX,
  584. dialogDealResult,
  585. dialogDealResultJx,
  586. dialogDealResultJxVip,
  587. dialogDealResultCpt,
  588. dialogDealResultJxJYB,
  589. dialogDealResultNoWorries,
  590. dialogNoWorries,
  591. dialogNoWorriesApply,
  592. dialogNewTask,
  593. dialogNewTaskDraw,
  594. dialogSurplusActivity,
  595. dialogSurplusActivity1,
  596. dialogInfoTradingAdd,
  597. openCalculatorFlag,
  598. // 表单数据
  599. dialogDealResult_form,
  600. dialogDealResultJx_form,
  601. dialogDealResultJx_formVip,
  602. dialogDealResultJx_formJYB,
  603. dialogDealResultCpt_form,
  604. dialogDeal_formNoWorries,
  605. selectedAccount,
  606. valueInfo,
  607. surplusActivityOptions,
  608. surplusActivityLoading,
  609. selectedSurplusActivity,
  610. // 页面跳转
  611. toSingle,
  612. toDeposit,
  613. toActivity24nianzhong,
  614. toActivity24Trading,
  615. toHistoryLuckyDraw,
  616. toTaskList,
  617. goSurplusTaskList,
  618. goMonthlyTaskList,
  619. toDocumentary,
  620. backActivity,
  621. // PDF打开
  622. openPdf,
  623. // 活动操作
  624. toApply23Open,
  625. toApply23,
  626. toApply23Cancel,
  627. toTransform,
  628. toTransformActive,
  629. toRealization,
  630. toRealizationActive,
  631. toApply23Jx,
  632. toApply23JxCancel,
  633. toApply23JxVip,
  634. toApply23JxCancelVip,
  635. toRealizationJx,
  636. toRealizationJxVip,
  637. toApplyCpt,
  638. toApplyCptCancel,
  639. toApply24JYBVip,
  640. toApply24JYBCancelVip,
  641. toRealization24JYBVip,
  642. toApplyNoWorries,
  643. toApplyNoWorriesCancel,
  644. realizationNoWorries,
  645. getSurplusActivityOptions,
  646. confirmSurplusActivity,
  647. confirmSurplusActivity1,
  648. closedialogNewTaskDraw,
  649. toOpenSingle,
  650. cashBack,
  651. calculateIncome
  652. }
  653. }