Procházet zdrojové kódy

页面优化可付费按钮

wangbin před 3 roky
rodič
revize
a208285e58

+ 15 - 0
src/api/log.js

@@ -122,4 +122,19 @@ export const exportExcel = (tableData, fileName) => {
   }).then((res) => {
     handleFileError(res, fileName)
   })
+}
+
+
+export const computerRateExport = (tableData, fileName) => {
+  service({
+    url: '/loging/computerRateExport',
+    method: 'post',
+    data: {
+      fileName: fileName,
+      infoList: tableData
+    },
+    responseType: 'blob'
+  }).then((res) => {
+    handleFileError(res, fileName)
+  })
 }

+ 8 - 0
src/api/task.js

@@ -118,4 +118,12 @@ export const createGameTask = (data) => {
       method: 'post',
       data
     })
+  }
+
+  export const getFeeAccountList = (data) => {
+    return service({
+      url: '/gameTask/getFeeAccountList',
+      method: 'post',
+      data
+    })
   }

+ 50 - 15
src/view/gameTarget/target.vue

@@ -52,29 +52,31 @@
           <el-table-column label="登录方式" width="75" prop="login_method" />
           <el-table-column label="新增目标" width="75" prop="new_target" />
           <el-table-column  label="新增完成" width="75" prop="new_complete" />
-          <el-table-column fixed="right" align="right" label="剩余新增" width="75" prop="new_target1">
+          <el-table-column  label="剩余新增" width="75" prop="new_target1">
             <template #default="scope">
-              {{ scope.row.new_target <= scope.row.new_complete+scope.row.hand_new_complete  ? 0 : scope.row.new_complete+scope.row.hand_new_complete-scope.row.new_target}}
+              {{ scope.row.new_target <= scope.row.new_complete  ? 0 : scope.row.new_complete-scope.row.new_target}}
             </template>
           </el-table-column>
-          <el-table-column fixed="right" align="right" label="留存目标" width="75" prop="retained_target" />
-          <el-table-column fixed="right" align="right" label="留存完成" width="75" prop="retained_complete" />
-          <el-table-column fixed="right" align="right" label="剩余留存" width="75" prop="retained_target1">
+          <el-table-column  label="留存目标" width="75" prop="retained_target" />
+          <el-table-column label="留存完成" width="75" prop="retained_complete" />
+          <el-table-column label="剩余留存" width="75" prop="retained_target1">
             <template #default="scope">
-              {{ scope.row.retained_target <= scope.row.retained_complete+scope.row.hand_retained_complete  ? 0 : scope.row.retained_complete+scope.row.hand_retained_complete-scope.row.retained_target}}
+              {{ scope.row.retained_target <= scope.row.retained_complete  ? 0 : scope.row.retained_complete-scope.row.retained_target}}
             </template>
           </el-table-column>
-          <el-table-column fixed="right" align="right"  label="付费目标" width="75" prop="pay_target" />
-          <el-table-column fixed="right" align="right" label="付费完成" width="75" prop="pay_complete" />
-          <el-table-column fixed="right" align="right" label="剩余付费" width="75" prop="pay_target1">
+          <el-table-column  label="付费目标" width="75" prop="pay_target" />
+          <el-table-column label="付费完成" width="75" prop="pay_complete" />
+          <el-table-column label="剩余付费" width="75" prop="pay_target1">
             <template #default="scope">
-              {{ scope.row.pay_target <= scope.row.pay_complete+scope.row.hand_pay_complete  ? 0 : scope.row.pay_complete+scope.row.hand_pay_complete-scope.row.pay_target}}
+              {{ scope.row.pay_target <= scope.row.pay_complete  ? 0 : scope.row.pay_complete-scope.row.pay_target}}
             </template>
           </el-table-column>
-          <el-table-column fixed="right" align="right" label="付费流水" width="75" prop="amount"/>
-          <el-table-column fixed="right" align="right" label="手动新增" width="75" prop="hand_new_complete"/>
-          <el-table-column fixed="right" align="right" label="手动留存" width="75" prop="hand_retained_complete"/>
-          <el-table-column fixed="right" align="right" label="手动付费" width="75" prop="hand_pay_complete"/>
+          <el-table-column label="付费流水" width="75" prop="amount"/>
+          <el-table-column label="群控效率" width="75" prop="game_rate"/>
+          <el-table-column label="手动新增" width="75" prop="hand_new_complete"/>
+          <el-table-column label="手动留存" width="75" prop="hand_retained_complete"/>
+          <el-table-column label="手动付费" width="75" prop="hand_pay_complete"/>
+          <el-table-column label="手动付费金额" width="75" prop="hand_amount_total"/>
           <el-table-column fixed="right" align="right" label="是否完成" width="75" prop="is_complete" >
           <template #default="scope">
             <div>
@@ -98,6 +100,13 @@
                 link
                 @click="resetFeeFunc(scope.row)"
               >重置付费</el-button>
+              <el-button
+                icon="edit"
+                size="small"
+                type="primary"
+                link
+                @click="accountListFunc(scope.row)"
+              >可付费账号</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -239,6 +248,17 @@
           </div>
         </template>
       </el-dialog>
+      <el-dialog v-model="accountFormVisible" :before-close="closeAccount" :title="accountTitle">
+        <el-table :data="tableData1">
+          <el-table-column align="left" label="账号" show-overflow-tooltip min-width="160" prop="account" />
+          <el-table-column align="left" label="密码" show-overflow-tooltip min-width="160" prop="password" />
+        </el-table>
+        <template #footer>
+          <div class="dialog-footer">
+            <el-button size="small" @click="closeAccount">取 消</el-button>
+          </div>
+        </template>
+    </el-dialog>
     </div>
   </template>
   
@@ -254,6 +274,7 @@
     updateGameTaskTarget,
     getGameTaskTargetList,
     taskResetFee,
+    getFeeAccountList,
   } from '@/api/task'
   import {
     selectResponsiblePerson,
@@ -490,6 +511,7 @@ const deleteBtn = async(btns, index) => {
   const total = ref(0)
   const pageSize = ref(10)
   const tableData = ref([])
+  const tableData1 = ref([])
   const searchInfo = ref({})
   
   const onReset = () => {
@@ -619,6 +641,7 @@ const deleteBtn = async(btns, index) => {
   
   const dialogTitle = ref('新增')
   const dialogFormVisible = ref(false)
+  const accountFormVisible = ref(false)
   const openDialog = (key) => {
     switch (key) {
       case 'addCard':
@@ -639,6 +662,10 @@ const deleteBtn = async(btns, index) => {
     initForm()
     dialogFormVisible.value = false
   }
+
+  const closeAccount = () => {
+    accountFormVisible.value = false
+  }
   
   const editCardFunc = async(row) => {
     const res = await getGameTaskTargetById({ id: row.task_id, create_date:row.create_date })
@@ -646,7 +673,15 @@ const deleteBtn = async(btns, index) => {
       form.value = res.data
       openDialog('edit')
     }
-    
+  }
+
+  const accountListFunc = async(row) => {
+    const res = await getFeeAccountList({ id: row.task_id, create_date:row.create_date })
+    if (res.code === 0) {
+      tableData1.value = res.data
+      dialogTitle.value = '可付费账号'
+      accountFormVisible.value = true
+    }
   }
   
   const enterDialog = async() => {

+ 47 - 2
src/view/gameTask/list.vue

@@ -5,9 +5,27 @@
           <el-form-item label="任务Id">
             <el-input v-model="searchInfo.task_id" placeholder="任务Id" />
           </el-form-item>
-          <el-form-item label="使用者">
-            <el-input v-model="searchInfo.user" placeholder="使用者" />
+          <el-form-item label="负责人">
+            <el-select v-model="searchInfo.user" placeholder="负责人" >
+            <el-option
+                v-for="item in ResponsiblePerson"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+              />
+            </el-select>
           </el-form-item>
+          <el-form-item label="状态">
+          <el-select v-model="searchInfo.status" placeholder="是否完成" >
+              <el-option
+                v-for="item in searchStatusOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+                :disabled="item.disabled"
+              />
+            </el-select>
+        </el-form-item>
           <el-form-item>
             <el-button size="small" type="primary" icon="search" @click="onSubmit">查询</el-button>
             <el-button size="small" icon="refresh" @click="onReset">重置</el-button>
@@ -253,6 +271,9 @@
     updateGameTask,
     deleteGameTask,
   } from '@/api/task'
+  import {
+    selectResponsiblePerson,
+} from '@/api/responsiblePerson'
   import { useUserStore } from '@/pinia/modules/user'
   import { toSQLLine } from '@/utils/stringFun'
   import warningBar from '@/components/warningBar/warningBar.vue'
@@ -290,6 +311,14 @@
     const target = statusOptions.value.filter(item => item.value === value)[0]
     return target && `${target.label}`
   }
+  const ResponsiblePerson = ref([])
+  const getResponsiblePerson = async() => {
+    const table = await selectResponsiblePerson()
+    if (table.code === 0) {
+      ResponsiblePerson.value = table.data
+    }
+  }
+  getResponsiblePerson()
   const searchStatusOptions = ref([
     {
       value: -1,
@@ -651,6 +680,22 @@
       form.value.retained_target = Number(form.value.retained_target)
       form.value.new_target_h = Number(form.value.new_target_h)
       form.value.retained_target_h = Number(form.value.retained_target_h)
+      if(form.value.new_target > form.value.new_target_h){
+        ElMessage({
+                  type: 'warning',
+                  message: '新增目标下限不能大于上限',
+                  showClose: false
+                })
+                return
+      }
+      if(form.value.retained_target > form.value.retained_target_h){
+        ElMessage({
+                  type: 'warning',
+                  message: '活跃目标下限不能大于上限',
+                  showClose: false
+                })
+                return
+      }
       if (valid) {
         switch (type.value) {
           case 'addCard':

+ 1 - 4
src/view/logComputer/computerUseLog.vue

@@ -43,10 +43,7 @@
         <el-table :data="tableData"  @sort-change="sortChange" @selection-change="handleSelectionChange"
         border
         >
-          <el-table-column
-            type="selection"
-            width="55"
-          />
+          
           <el-table-column align="left" label="电脑编号" min-width="100" prop="pc_code" sortable="custom"/>
           <el-table-column align="left" label="使用者" min-width="150" prop="operator" sortable="custom"/>
           <el-table-column align="left" label="日期" min-width="150" prop="create_date" />

+ 18 - 4
src/view/logComputer/list.vue

@@ -39,13 +39,12 @@
       </el-tooltip>
     </div>
       <div class="gva-table-box">
+        <div class="gva-btn-list">
+        <el-button class="excel-btn" size="small" type="primary" icon="download" @click="handleExcelExport">导出</el-button>
+      </div>
         <el-table :data="tableData"  @sort-change="sortChange" @selection-change="handleSelectionChange"
         border
         >
-          <el-table-column
-            type="selection"
-            width="55"
-          />
           <el-table-column align="left" label="电脑编号" min-width="100" prop="pc_code" sortable="custom"/>
           <el-table-column align="left" label="脚本负责人" min-width="150" prop="operator" sortable="custom"/>
           <el-table-column align="left" label="日期" min-width="150" prop="create_date" />
@@ -101,6 +100,7 @@
   import {
     logComputerList,
     logComputerNum,
+    computerRateExport,
   } from '@/api/log'
   import { toSQLLine } from '@/utils/stringFun'
   import { ref } from 'vue'
@@ -157,6 +157,20 @@
     } 
   }
   
+  const handleExcelExport = async() => {
+    var fileName = Date.parse(new Date()) + "-cpc.xlsx"
+    if(searchInfo.value.create_date == null){
+      let dt = new Date()
+            var y = dt.getFullYear()
+            var mt = (dt.getMonth() + 1).toString().padStart(2,'0')
+            var day = dt.getDate().toString().padStart(2,'0')
+            var timeStr = y + "-" + mt + "-" + day
+      fileName = timeStr + "-cpc.xlsx"
+    }else{
+      fileName = searchInfo.value.create_date + "-cpc.xlsx"
+    }
+    computerRateExport({ page: page.value, pageSize: pageSize.value, ...searchInfo.value },fileName)
+}
 
   const value = ref('')
   const statusList = [