|
|
@@ -23,11 +23,11 @@
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<div class="gva-table-box">
|
|
|
- <el-table border
|
|
|
- :data="tableData"
|
|
|
+ <el-table border
|
|
|
+ :data="tableData"
|
|
|
:span-method="objectSpanMethod"
|
|
|
- @sort-change="sortChange"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
+ @sort-change="sortChange"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
header-align="center"
|
|
|
>
|
|
|
<el-table-column
|
|
|
@@ -107,6 +107,32 @@
|
|
|
</el-table-column>
|
|
|
</el-table-column>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="扫码完成率" align="center" min-width="100" prop="local_order_success_rate" sortable="custom">
|
|
|
+ <el-table-column label="扫码成功" align="center">
|
|
|
+ <el-table-column prop="target_num,scanning_code_success" label="任务总数" align="center" min-width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.row.scanning_code_success }}
|
|
|
+ <el-divider style="margin:0 5px" direction="vertical" />
|
|
|
+ {{ scope.row.target_num}}
|
|
|
+ <el-divider style="margin:0" />
|
|
|
+ {{ scope.row.scanning_code_success == 0 ? 0 + '%' : Math.round(scope.row.scanning_code_success/scope.row.target_num * 10000) / 100 + '%'}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="完成扫码率" align="center" min-width="100" prop="local_order_success_rate" sortable="custom">
|
|
|
+ <el-table-column label="扫码成功" align="center">
|
|
|
+ <el-table-column prop="new_complete,scanning_code_success" label="完成总数" align="center" min-width="100">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.row.scanning_code_success }}
|
|
|
+ <el-divider style="margin:0 5px" direction="vertical" />
|
|
|
+ {{ scope.row.new_complete}}
|
|
|
+ <el-divider style="margin:0" />
|
|
|
+ {{ scope.row.scanning_code_success == 0 ? 0 + '%' : Math.round(scope.row.scanning_code_success/scope.row.new_complete * 10000) / 100 + '%'}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="微信扫码率" align="center" min-width="100" prop="scanning_success_rate" sortable="custom">
|
|
|
<el-table-column label="扫码成功" align="center">
|
|
|
<el-table-column prop="scanning_code_success,enter_scanning_code" label="扫码总数" align="center" min-width="100">
|
|
|
@@ -138,8 +164,8 @@
|
|
|
<el-table-column align="center" label="下发付费" min-width="70" prop="order_create"/>
|
|
|
<el-table-column align="center" label="订单数" min-width="70" prop="order_success"/>
|
|
|
<el-table-column align="center" label="付费成功" min-width="70" prop="fee_ok"/>
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
<el-table-column label="封号" min-width="60" prop="ban_off" />
|
|
|
<el-table-column label="冻结" min-width="60" prop="freeze" />
|
|
|
<el-table-column prop="has_role" label="新增有角色" width="60" />
|
|
|
@@ -156,9 +182,9 @@
|
|
|
@size-change="handleSizeChange"
|
|
|
/>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="dialogTitle">
|
|
|
<el-table :data="tableData" @sort-change="sortChange" @selection-change="handleSelectionChange" height="500" style="width: 100%">
|
|
|
<el-table-column
|
|
|
@@ -172,13 +198,13 @@
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
-
|
|
|
+
|
|
|
<script>
|
|
|
export default {
|
|
|
name: 'LogStatisticsList',
|
|
|
}
|
|
|
</script>
|
|
|
-
|
|
|
+
|
|
|
<script setup>
|
|
|
import {
|
|
|
logStatistics,
|
|
|
@@ -187,14 +213,14 @@
|
|
|
import { createElementBlock, ref } from 'vue'
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import warningBar from '@/components/warningBar/warningBar.vue'
|
|
|
-
|
|
|
+
|
|
|
const apis = ref([])
|
|
|
const form = ref({
|
|
|
game_name: '',
|
|
|
game_package_name: ''
|
|
|
})
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
const type = ref('')
|
|
|
const rules = ref({
|
|
|
game_name: [{ required: true, message: '请输入游戏名称', trigger: 'blur' }],
|
|
|
@@ -202,7 +228,7 @@
|
|
|
{ required: true, message: '请输入游戏包名', trigger: 'blur' }
|
|
|
]
|
|
|
})
|
|
|
-
|
|
|
+
|
|
|
const page = ref(1)
|
|
|
const total = ref(0)
|
|
|
const pageSize = ref(10)
|
|
|
@@ -214,7 +240,7 @@
|
|
|
searchInfo.value = {}
|
|
|
}
|
|
|
// 搜索
|
|
|
-
|
|
|
+
|
|
|
const onSubmit = () => {
|
|
|
page.value = 1
|
|
|
pageSize.value = 10
|
|
|
@@ -241,7 +267,7 @@
|
|
|
const target = typeOptions.value.filter(item => item.value === value)[0]
|
|
|
return target && `${target.label}`
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const renderheader = ({ column, $index }) => {
|
|
|
console.log(column)
|
|
|
console.log($index)
|
|
|
@@ -265,12 +291,12 @@ const renderheader = ({ column, $index }) => {
|
|
|
pageSize.value = val
|
|
|
getTableData()
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const handleCurrentChange = (val) => {
|
|
|
page.value = val
|
|
|
getTableData()
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const headerStyle = () => {
|
|
|
return {
|
|
|
fontSize:"12px"
|
|
|
@@ -288,7 +314,7 @@ const renderheader = ({ column, $index }) => {
|
|
|
getTableData()
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
const getSpanArr = (data) => {
|
|
|
spanArr = []
|
|
|
var pos = 0
|
|
|
@@ -306,7 +332,7 @@ const renderheader = ({ column, $index }) => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- console.log(spanArr)
|
|
|
+ console.log(spanArr)
|
|
|
}
|
|
|
|
|
|
const objectSpanMethod = (row) => {
|
|
|
@@ -319,7 +345,7 @@ const renderheader = ({ column, $index }) => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 查询
|
|
|
const getTableData = async() => {
|
|
|
const table = await logStatistics({ page: page.value, pageSize: pageSize.value, ...searchInfo.value })
|
|
|
@@ -331,17 +357,17 @@ const renderheader = ({ column, $index }) => {
|
|
|
getSpanArr(table.data.list)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
getTableData()
|
|
|
-
|
|
|
+
|
|
|
// 批量操作
|
|
|
const handleSelectionChange = (val) => {
|
|
|
apis.value = val
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const deleteVisible = ref(false)
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
// 弹窗相关
|
|
|
const apiForm = ref(null)
|
|
|
const initForm = () => {
|
|
|
@@ -351,7 +377,7 @@ const renderheader = ({ column, $index }) => {
|
|
|
game_package_name: ''
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const dialogTitle = ref('新增game')
|
|
|
const dialogFormVisible = ref(false)
|
|
|
const openDialog = (key) => {
|
|
|
@@ -371,13 +397,13 @@ const renderheader = ({ column, $index }) => {
|
|
|
const closeDialog = () => {
|
|
|
dialogFormVisible.value = false
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const editCardFunc = async(row) => {
|
|
|
const res = await getGameById({ id: row.id })
|
|
|
form.value = res.data
|
|
|
openDialog('edit')
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
const enterDialog = async() => {
|
|
|
apiForm.value.validate(async valid => {
|
|
|
if (valid) {
|
|
|
@@ -395,7 +421,7 @@ const renderheader = ({ column, $index }) => {
|
|
|
getTableData()
|
|
|
closeDialog()
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
break
|
|
|
case 'edit':
|
|
|
{
|
|
|
@@ -425,10 +451,10 @@ const renderheader = ({ column, $index }) => {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
</script>
|
|
|
-
|
|
|
+
|
|
|
<style scoped lang="scss">
|
|
|
.el-table .cell {
|
|
|
white-space: pre-wrap; /*这是重点。文本换行*/
|
|
|
@@ -443,4 +469,3 @@ const renderheader = ({ column, $index }) => {
|
|
|
color: #dc143c;
|
|
|
}
|
|
|
</style>
|
|
|
-
|