index.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <div>
  3. <pointRecharge :pointid='pointid' :pointitem='pointitem' :pointchildName='pointchildName' :visible='ponintVisible' @closePoint="pointshandle"/>
  4. <capacityRecharge @qixian='qixianHandle' :capacitycount='capacitycount' @renewItem='renewhandle' :capacitydetail='capacitydetail' :capacityitem='capacityitem' :capacitycountry='capacitycountry' :capacitychildName='capacitychildName' :deadline='capacitydeadline' :type='capacitytype' :visible='capacityvisible' @closePoint="capacityhandle"/>
  5. <editInvoice :edititem=editItem :visible='editVisible' @closePoint="invoicehandle"/>
  6. <showInvoice :showitem=showItem :visible='showVisible' @closePoint="()=>{showVisible = false}"/>
  7. <binding :btype="bindingType" :visible='bindingVisible' @closePoint="()=>{bindingVisible = false,emitCallback()}"/>
  8. <cooperation :sceneNum="sceneNum" :cooType="cooType" :visible='cooperationVisible' @closePoint="handleCooClose"/>
  9. <div
  10. class="toast-layout"
  11. :style="{background:isLoaing?'none':'rgba(0, 0, 0, 0.3)',zIndex:988888988}"
  12. :class="{'toast-active':isLoaing}"
  13. >
  14. <div class="loading">
  15. <loading/>
  16. </div>
  17. </div>
  18. <div
  19. class="toast-layout"
  20. :style="{background:isLoaing?'none':'rgba(0, 0, 0, 0.3)',zIndex:998888988}"
  21. :class="{'toast-active':visible}"
  22. >
  23. <div class="toast-con" :style="{minWidth:toastType==='comfirm'?'704px':'560px'}">
  24. <div class="top">
  25. <span>{{typeTxt}}</span>
  26. <i
  27. @click="toastType==='comfirm'?visible=false:emitCallback()"
  28. class="iconfont icon-cuowu"
  29. ></i>
  30. </div>
  31. <div class="t-line"></div>
  32. <div class="detail">
  33. <img :src="img" alt>
  34. <span v-html="message"></span>
  35. </div>
  36. <div class="t-line"></div>
  37. <div class="bottom" v-if="toastType==='comfirm'">
  38. <span class="btn primary" @click="emitCallback">{{diycomfirm||comfirmtxt}}</span>
  39. <span @click="visible=false,cancal()" class="btn cancel">{{lang==='en'?'Cancel':'取消'}}</span>
  40. </div>
  41. <div class="bottom mid-bottom" v-else>
  42. <span class="btn primary" @click="emitCallback">{{diycomfirm||comfirmtxt}}</span>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. </template>
  48. <script>
  49. import pointRecharge from './pointRecharge'
  50. import capacityRecharge from './capacityRecharge'
  51. import editInvoice from './editInvoice'
  52. import showInvoice from './showInvoice'
  53. import binding from './binding'
  54. import cooperation from './cooperation'
  55. import { mapState } from 'vuex'
  56. import loading from './loadingicon'
  57. let types = {
  58. warn: '提示',
  59. error: '错误',
  60. success: '成功'
  61. }
  62. let typesEn = {
  63. warn: 'Message',
  64. error: 'Error',
  65. success: 'Success'
  66. }
  67. export default {
  68. components: {pointRecharge, binding, loading, cooperation, capacityRecharge, editInvoice, showInvoice},
  69. data () {
  70. return {
  71. visible: false,
  72. bindingType: 1,
  73. sceneNum: '',
  74. cooType: '',
  75. capacitytype: '',
  76. capacityvisible: false,
  77. ponintVisible: false,
  78. editVisible: false,
  79. showVisible: false,
  80. bindingVisible: false,
  81. cooperationVisible: false,
  82. editItem: '',
  83. showItem: '',
  84. capacitydetail: '',
  85. capacitycountry: 0,
  86. capacitycount: 0,
  87. capacityitem: '',
  88. capacitychildName: '',
  89. capacitydeadline: '',
  90. pointid: '',
  91. pointitem: '',
  92. pointchildName: '',
  93. message: '',
  94. type: 'warn',
  95. toastType: 'show',
  96. callback: '',
  97. cooCallback: '',
  98. cancal: '',
  99. diycomfirm: '',
  100. isLoaing: false,
  101. comfirmtxt: localStorage.getItem('language') === 'en' ? 'OK' : '确定',
  102. img: this.$cdn + 'images/icon/warn.png',
  103. lang: localStorage.getItem('language')
  104. }
  105. },
  106. computed: {
  107. ...mapState({
  108. info: state => state.user.info
  109. }),
  110. typeTxt () {
  111. return this.lang === 'en' ? typesEn[this.type] : types[this.type]
  112. }
  113. },
  114. created () {},
  115. watch: {
  116. visible: function (newVal) {
  117. this.lang = localStorage.getItem('language')
  118. this.comfirmtxt = this.lang === 'en' ? 'OK' : '确定'
  119. },
  120. localStorage: function (newVal) {
  121. console.log(newVal)
  122. }
  123. },
  124. mounted () {
  125. },
  126. methods: {
  127. handleCooClose (data) {
  128. this.cooperationVisible = false
  129. data === 'getList' && this.emitCooCallback()
  130. },
  131. qixianHandle (data) {
  132. this.capacityitem.month = data
  133. },
  134. renewhandle (data) {
  135. this.capacityitem = data.item
  136. this.capacitycount++
  137. this.capacitydeadline = data.deadLine
  138. },
  139. capacityhandle (data) {
  140. if (data) {
  141. this.callback()
  142. }
  143. this.capacityitem = ''
  144. this.capacitycount = 0
  145. this.capacityvisible = false
  146. },
  147. invoicehandle (data) {
  148. this.editVisible = false
  149. },
  150. pointshandle (data) {
  151. if (data) {
  152. this.callback()
  153. }
  154. this.ponintVisible = false
  155. },
  156. emitCooCallback () {
  157. this.cooCallback && this.cooCallback()
  158. this.visible = false
  159. },
  160. emitCallback () {
  161. this.callback && this.callback()
  162. this.visible = false
  163. }
  164. }
  165. }
  166. </script>
  167. <style lang="scss" scoped>
  168. @import './style.scss';
  169. </style>