App.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <div class="SingleDay">
  3. <el-breadcrumb>
  4. <el-breadcrumb-item>新媒体</el-breadcrumb-item>
  5. <el-breadcrumb-item>app数据报送</el-breadcrumb-item>
  6. </el-breadcrumb>
  7. <br />
  8. <el-card class="box-card">
  9. <el-row :gutter="10">
  10. <el-col :span="16">
  11. <el-form :model="form" label-width="auto">
  12. <el-form-item label="周期">
  13. <span v-text="form.dateRange"></span>
  14. </el-form-item>
  15. <el-form-item label="客户端日活数">
  16. <el-input v-model="form.clientOnlineUser" />
  17. </el-form-item>
  18. <el-form-item label="端外H5日活数">
  19. <el-input v-model="form.webOnlineUser" />
  20. </el-form-item>
  21. <el-form-item label="客户端日人均使用时长(毫秒)">
  22. <el-input v-model="form.clientAvgDuration" />
  23. </el-form-item>
  24. <el-form-item>
  25. <el-popconfirm title="确认更新数据?" @confirm="onSubmitOptimize">
  26. <template #reference>
  27. <el-button type="primary">修改数据</el-button>
  28. </template>
  29. </el-popconfirm>
  30. <el-popconfirm title="确认提交数据?" @confirm="onUploadData">
  31. <template #reference>
  32. <el-button type="primary">上报数据</el-button>
  33. </template>
  34. </el-popconfirm>
  35. </el-form-item>
  36. </el-form>
  37. </el-col>
  38. <el-col :span="8">
  39. <el-form label-width="auto">
  40. <el-form-item label=" ">
  41. <span style="color: #fff">1</span>
  42. </el-form-item>
  43. <el-form-item label="客户端日活数">
  44. <span v-text="form.rawClientOnlineUser"></span>
  45. </el-form-item>
  46. <el-form-item label="端外H5日活数">
  47. <span v-text="form.rawWebOnlineUser"></span>
  48. </el-form-item>
  49. <el-form-item label="客户端日人均使用时长(毫秒)">
  50. <span v-text="form.rawClientAvgDuration"></span>
  51. </el-form-item>
  52. </el-form>
  53. </el-col>
  54. </el-row>
  55. </el-card>
  56. </div>
  57. </template>
  58. <script>
  59. import {
  60. appReportList,
  61. appReportUpdate,
  62. appReportUpload
  63. } from '@/api/portrait';
  64. import { ElMessage } from 'element-plus';
  65. import 'element-plus/lib/theme-chalk/el-message.css';
  66. export default {
  67. name: 'Report',
  68. data() {
  69. return {
  70. form: {
  71. clientOnlineUser: 0,
  72. webOnlineUser: 0,
  73. clientAvgDuration: 0,
  74. month: '',
  75. id: '',
  76. rawClientAvgDuration: 0,
  77. rawClientOnlineUser: 0,
  78. rawWebOnlineUser: 0
  79. },
  80. t: undefined
  81. };
  82. },
  83. mounted() {
  84. appReportList().then(res => {
  85. this.form = res;
  86. });
  87. },
  88. computed: {},
  89. methods: {
  90. onSubmitOptimize() {
  91. let userinfo = JSON.parse(parent.localStorage.userinfo || '{}');
  92. if (!userinfo.loginname) {
  93. ElMessage({
  94. message: '请登录后再试',
  95. type: 'error'
  96. });
  97. return;
  98. }
  99. if (this.t) clearTimeout(this.t);
  100. this.t = setTimeout(() => {
  101. this.t = clearTimeout(this.t);
  102. const { id, clientOnlineUser, webOnlineUser, clientAvgDuration } =
  103. this.form;
  104. appReportUpdate({
  105. id,
  106. loginName: userinfo.loginname || '',
  107. clientOnlineUser,
  108. webOnlineUser,
  109. clientAvgDuration
  110. })
  111. .then(() => {
  112. ElMessage({
  113. message: '成功',
  114. type: 'success'
  115. });
  116. })
  117. .catch(err => {
  118. ElMessage({
  119. message: err.message || '请重试',
  120. type: 'error'
  121. });
  122. });
  123. }, 200);
  124. },
  125. onUploadData() {
  126. let userinfo = JSON.parse(parent.localStorage.userinfo || '{}');
  127. if (!userinfo.loginname) {
  128. ElMessage({
  129. message: '请登录后再试',
  130. type: 'error'
  131. });
  132. return;
  133. }
  134. if (this.t) clearTimeout(this.t);
  135. this.t = setTimeout(() => {
  136. this.t = clearTimeout(this.t);
  137. const { id } = this.form;
  138. appReportUpload({
  139. id,
  140. loginName: userinfo.loginname || ''
  141. })
  142. .then(() => {
  143. ElMessage({
  144. message: '成功',
  145. type: 'success'
  146. });
  147. })
  148. .catch(err => {
  149. ElMessage({
  150. message: err.message || '请重试',
  151. type: 'error'
  152. });
  153. });
  154. }, 200);
  155. }
  156. },
  157. components: {}
  158. };
  159. </script>
  160. <style>
  161. .SingleDay {
  162. margin: 10px 15px;
  163. }
  164. .SingleDay .nowrap .cell {
  165. white-space: nowrap;
  166. }
  167. </style>