|
|
@@ -1,47 +1,59 @@
|
|
|
<template>
|
|
|
<div v-if="jobData && packageData && hireData">
|
|
|
- <div class="header">云端托管:{{jobData.sumJob.totalAmount/100}}元,整包托管:{{packageData.sumPackage.totalAmount/100}}元,雇佣托管:{{hireData.sumHire.totalAmount/100 || 0}}元</div>
|
|
|
- <el-tabs v-model="activeName" type="card">
|
|
|
+ <div
|
|
|
+ class="header"
|
|
|
+ >云端托管:{{jobData.sumJob.totalAmount/100}}元,整包托管:{{packageData.sumPackage.totalAmount/100}}元,雇佣托管:{{hireData.sumHire.totalAmount/100 || 0}}元</div>
|
|
|
+ <el-tabs v-model="activeName" type="border-card">
|
|
|
<el-tab-pane label="云端" name="job">
|
|
|
- <div class="tab-header">云端项目待支出总额{{jobData.sumJob.totalAmount/100}}元,共{{jobData.sumJob.totalNum}}笔</div>
|
|
|
+ <div
|
|
|
+ class="tab-header"
|
|
|
+ >云端项目待支出总额{{jobData.sumJob.totalAmount/100}}元,共{{jobData.sumJob.totalNum}}笔</div>
|
|
|
<div class="tab-content">
|
|
|
- <el-table :data="jobData.orders" border style="width:100%;" height="100%">
|
|
|
- <el-table-column prop="product_title" label="订单名称" width="300"/>
|
|
|
- <el-table-column prop="user_info.nickname" label="用户" width="150"/>
|
|
|
- <el-table-column prop="real_amount_yuan" label="实际金额" width="100"/>
|
|
|
- <el-table-column prop="real_amount" label="收支类型" width="100">
|
|
|
+ <el-table :data="jobData.orders" border :stripe="true" height="100%">
|
|
|
+ <el-table-column prop="product_title" label="订单名称" width="150" />
|
|
|
+ <el-table-column prop="user_info.nickname" label="用户" />
|
|
|
+ <el-table-column prop="real_amount_yuan" label="实际金额" />
|
|
|
+ <el-table-column prop="real_amount" label="收支类型">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{parseInt(scope.row.real_amount_yuan)>=0?"收入":"支出"}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="channel_name" label="支付方式" width="100"/>
|
|
|
- <el-table-column prop="order_state_name" label="订单状态" width="100"/>
|
|
|
- <el-table-column label="创建时间" width="100">
|
|
|
+ <el-table-column prop="channel_name" label="支付方式" />
|
|
|
+ <el-table-column prop="order_state_name" label="订单状态" />
|
|
|
+ <el-table-column label="创建时间">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{formatDate(scope.row.created_at)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="到账时间" width="100">
|
|
|
+ <el-table-column label="到账时间">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{formatDate(scope.row.pay_time)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单编号" width="100">
|
|
|
+ <el-table-column label="订单编号">
|
|
|
<template slot-scope="scope">
|
|
|
- <nuxt-link target="_blank" :to="{path:'/main/orders_detail?id='+scope.row.order_no}">{{scope.row.order_no}}</nuxt-link>
|
|
|
+ <nuxt-link
|
|
|
+ target="_blank"
|
|
|
+ :to="{path:'/main/orders_detail?id='+scope.row.order_no}"
|
|
|
+ >{{scope.row.order_no}}</nuxt-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="out_order_id" label="支付编号" width="100"/>
|
|
|
- <el-table-column prop="product_type_name" label="订单类型" width="100"/>
|
|
|
- <el-table-column prop="order_type_name" label="交易类型" width="100"/>
|
|
|
- <el-table-column label="关联项目" width="100">
|
|
|
+ <el-table-column prop="out_order_id" label="支付编号" />
|
|
|
+ <el-table-column prop="product_type_name" label="订单类型" />
|
|
|
+ <el-table-column prop="order_type_name" label="交易类型" />
|
|
|
+ <el-table-column label="关联项目">
|
|
|
<template slot-scope="scope">
|
|
|
- <a :href="scope.row.related_project.url?scope.row.related_project.url:'#'" target="_blank">
|
|
|
- <span class="lblue" >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
|
|
|
+ <a
|
|
|
+ :href="scope.row.related_project.url?scope.row.related_project.url:'#'"
|
|
|
+ target="_blank"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ class="lblue"
|
|
|
+ >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
|
|
|
</a>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="人工" width="100">
|
|
|
+ <el-table-column label="人工">
|
|
|
<template slot-scope="scope">
|
|
|
<span v-if="scope.row.operator_info.nickname">{{scope.row.operator_info.nickname}}</span>
|
|
|
<span>({{scope.row.operator_uid}})</span>
|
|
|
@@ -49,48 +61,65 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- <el-pagination class="order-footer" background layout="prev, pager, next" :page-size="10" :total="Number(jobData.sumJob.totalNum)" @current-change="handleJobCurrentChange"/>
|
|
|
+ <el-pagination
|
|
|
+ class="order-footer"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="Number(jobData.sumJob.totalNum)"
|
|
|
+ @current-change="handleJobCurrentChange"
|
|
|
+ />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="整包" name="package">
|
|
|
- <div class="tab-header">整包项目待支出总额{{packageData.sumPackage.totalAmount/100}}元,共{{packageData.sumPackage.totalNum}}笔</div>
|
|
|
+ <div
|
|
|
+ class="tab-header"
|
|
|
+ >整包项目待支出总额{{packageData.sumPackage.totalAmount/100}}元,共{{packageData.sumPackage.totalNum}}笔</div>
|
|
|
<div class="tab-content">
|
|
|
- <el-table :data="packageData.orders" border style="width:100%;" height="100%">
|
|
|
- <el-table-column prop="product_title" label="订单名称" width="300"/>
|
|
|
- <el-table-column prop="user_info.nickname" label="用户" width="150"/>
|
|
|
- <el-table-column prop="real_amount_yuan" label="实际金额" width="100"/>
|
|
|
- <el-table-column prop="real_amount" label="收支类型" width="100">
|
|
|
+ <el-table :data="packageData.orders" border :stripe="true" height="100%">
|
|
|
+ <el-table-column prop="product_title" label="订单名称" width="150" />
|
|
|
+ <el-table-column prop="user_info.nickname" label="用户" />
|
|
|
+ <el-table-column prop="real_amount_yuan" label="实际金额" />
|
|
|
+ <el-table-column prop="real_amount" label="收支类型">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{parseInt(scope.row.real_amount_yuan)>=0?"收入":"支出"}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="channel_name" label="支付方式" width="100"/>
|
|
|
- <el-table-column prop="order_state_name" label="订单状态" width="100"/>
|
|
|
- <el-table-column label="创建时间" width="100">
|
|
|
+ <el-table-column prop="channel_name" label="支付方式" />
|
|
|
+ <el-table-column prop="order_state_name" label="订单状态" />
|
|
|
+ <el-table-column label="创建时间">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{formatDate(scope.row.created_at)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="到账时间" width="100">
|
|
|
+ <el-table-column label="到账时间">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{formatDate(scope.row.pay_time)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单编号" width="100">
|
|
|
+ <el-table-column label="订单编号">
|
|
|
<template slot-scope="scope">
|
|
|
- <nuxt-link target="_blank" :to="{path:'/main/orders_detail?id='+scope.row.order_no}">{{scope.row.order_no}}</nuxt-link>
|
|
|
+ <nuxt-link
|
|
|
+ target="_blank"
|
|
|
+ :to="{path:'/main/orders_detail?id='+scope.row.order_no}"
|
|
|
+ >{{scope.row.order_no}}</nuxt-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="out_order_id" label="支付编号" width="100"/>
|
|
|
- <el-table-column prop="product_type_name" label="订单类型" width="100"/>
|
|
|
- <el-table-column prop="order_type_name" label="交易类型" width="100"/>
|
|
|
- <el-table-column label="关联项目" width="100">
|
|
|
+ <el-table-column prop="out_order_id" label="支付编号" />
|
|
|
+ <el-table-column prop="product_type_name" label="订单类型" />
|
|
|
+ <el-table-column prop="order_type_name" label="交易类型" />
|
|
|
+ <el-table-column label="关联项目">
|
|
|
<template slot-scope="scope">
|
|
|
- <a :href="scope.row.related_project.url?scope.row.related_project.url:'#'" target="_blank">
|
|
|
- <span class="lblue" >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
|
|
|
+ <a
|
|
|
+ :href="scope.row.related_project.url?scope.row.related_project.url:'#'"
|
|
|
+ target="_blank"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ class="lblue"
|
|
|
+ >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
|
|
|
</a>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="人工" width="100">
|
|
|
+ <el-table-column label="人工">
|
|
|
<template slot-scope="scope">
|
|
|
<span v-if="scope.row.operator_info.nickname">{{scope.row.operator_info.nickname}}</span>
|
|
|
<span>({{scope.row.operator_uid}})</span>
|
|
|
@@ -98,48 +127,65 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- <el-pagination class="order-footer" background layout="prev, pager, next" :page-size="10" :total="Number(packageData.sumPackage.totalNum)" @current-change="handlePackageCurrentChange"/>
|
|
|
+ <el-pagination
|
|
|
+ class="order-footer"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="Number(packageData.sumPackage.totalNum)"
|
|
|
+ @current-change="handlePackageCurrentChange"
|
|
|
+ />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="雇佣" name="hire">
|
|
|
- <div class="tab-header">整包项目待支出总额{{hireData.sumHire.totalAmount/100}}元,共{{hireData.sumHire.totalNum}}笔</div>
|
|
|
+ <div
|
|
|
+ class="tab-header"
|
|
|
+ >整包项目待支出总额{{hireData.sumHire.totalAmount/100}}元,共{{hireData.sumHire.totalNum}}笔</div>
|
|
|
<div class="tab-content">
|
|
|
- <el-table :data="hireData.orders" border style="width:100%;" height="100%">
|
|
|
- <el-table-column prop="product_title" label="订单名称" width="300"/>
|
|
|
- <el-table-column prop="user_info.nickname" label="用户" width="150"/>
|
|
|
- <el-table-column prop="real_amount_yuan" label="实际金额" width="100"/>
|
|
|
- <el-table-column prop="real_amount" label="收支类型" width="100">
|
|
|
+ <el-table :data="hireData.orders" border :stripe="true" height="100%">
|
|
|
+ <el-table-column prop="product_title" label="订单名称" width="150" />
|
|
|
+ <el-table-column prop="user_info.nickname" label="用户" />
|
|
|
+ <el-table-column prop="real_amount_yuan" label="实际金额" />
|
|
|
+ <el-table-column prop="real_amount" label="收支类型">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{parseInt(scope.row.real_amount)>=0?"收入":"支出"}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="channel_name" label="支付方式" width="100"/>
|
|
|
- <el-table-column prop="order_state_name" label="订单状态" width="100"/>
|
|
|
- <el-table-column label="创建时间" width="100">
|
|
|
+ <el-table-column prop="channel_name" label="支付方式" />
|
|
|
+ <el-table-column prop="order_state_name" label="订单状态" />
|
|
|
+ <el-table-column label="创建时间">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{formatDate(scope.row.created_at)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="到账时间" width="100">
|
|
|
+ <el-table-column label="到账时间">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{formatDate(scope.row.pay_time)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="订单编号" width="100">
|
|
|
+ <el-table-column label="订单编号">
|
|
|
<template slot-scope="scope">
|
|
|
- <nuxt-link target="_blank" :to="{path:'/main/orders_detail?id='+scope.row.order_no}">{{scope.row.order_no}}</nuxt-link>
|
|
|
+ <nuxt-link
|
|
|
+ target="_blank"
|
|
|
+ :to="{path:'/main/orders_detail?id='+scope.row.order_no}"
|
|
|
+ >{{scope.row.order_no}}</nuxt-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="out_order_id" label="支付编号" width="100"/>
|
|
|
- <el-table-column prop="product_type_name" label="订单类型" width="100"/>
|
|
|
- <el-table-column prop="order_type_name" label="交易类型" width="100"/>
|
|
|
- <el-table-column label="关联项目" width="100">
|
|
|
+ <el-table-column prop="out_order_id" label="支付编号" />
|
|
|
+ <el-table-column prop="product_type_name" label="订单类型" />
|
|
|
+ <el-table-column prop="order_type_name" label="交易类型" />
|
|
|
+ <el-table-column label="关联项目">
|
|
|
<template slot-scope="scope">
|
|
|
- <a :href="scope.row.related_project.url?scope.row.related_project.url:'#'" target="_blank">
|
|
|
- <span class="lblue" >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
|
|
|
+ <a
|
|
|
+ :href="scope.row.related_project.url?scope.row.related_project.url:'#'"
|
|
|
+ target="_blank"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ class="lblue"
|
|
|
+ >{{scope.row.related_project.name?scope.row.related_project.name:"--"}}</span>
|
|
|
</a>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="人工" width="100">
|
|
|
+ <el-table-column label="人工">
|
|
|
<template slot-scope="scope">
|
|
|
<span v-if="scope.row.operator_info.nickname">{{scope.row.operator_info.nickname}}</span>
|
|
|
<span>({{scope.row.operator_uid}})</span>
|
|
|
@@ -147,7 +193,14 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- <el-pagination class="order-footer" background layout="prev, pager, next" :page-size="10" :total="Number(hireData.sumHire.totalNum)" @current-change="handleHireCurrentChange"/>
|
|
|
+ <el-pagination
|
|
|
+ class="order-footer"
|
|
|
+ background
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :page-size="10"
|
|
|
+ :total="Number(hireData.sumHire.totalNum)"
|
|
|
+ @current-change="handleHireCurrentChange"
|
|
|
+ />
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</div>
|
|
|
@@ -157,20 +210,20 @@
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- activeName: 'job',
|
|
|
+ activeName: "job",
|
|
|
jobPage: 1,
|
|
|
- jobData: '',
|
|
|
+ jobData: "",
|
|
|
packagePage: 1,
|
|
|
- packageData: '',
|
|
|
+ packageData: "",
|
|
|
hirePage: 1,
|
|
|
- hireData: '',
|
|
|
- }
|
|
|
+ hireData: ""
|
|
|
+ };
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.activeName = this.$route.query.activeName || 'job'
|
|
|
- this.getJobOrders()
|
|
|
- this.getPackageOrders()
|
|
|
- this.getHireOrders()
|
|
|
+ this.activeName = this.$route.query.activeName || "job";
|
|
|
+ this.getJobOrders();
|
|
|
+ this.getPackageOrders();
|
|
|
+ this.getHireOrders();
|
|
|
},
|
|
|
methods: {
|
|
|
async getJobOrders() {
|
|
|
@@ -178,10 +231,10 @@ export default {
|
|
|
page: this.jobPage,
|
|
|
pageSize: 10,
|
|
|
productType: 9
|
|
|
- }
|
|
|
- let res = await this.$post("/api/admin/order/getWaitExpenseOrders", data)
|
|
|
+ };
|
|
|
+ let res = await this.$post("/api/admin/order/getWaitExpenseOrders", data);
|
|
|
if (res) {
|
|
|
- this.jobData = res.data
|
|
|
+ this.jobData = res.data;
|
|
|
// console.log(this.jobData)
|
|
|
}
|
|
|
},
|
|
|
@@ -190,10 +243,10 @@ export default {
|
|
|
page: this.packagePage,
|
|
|
pageSize: 10,
|
|
|
productType: 2
|
|
|
- }
|
|
|
- let res = await this.$post("/api/admin/order/getWaitExpenseOrders", data)
|
|
|
+ };
|
|
|
+ let res = await this.$post("/api/admin/order/getWaitExpenseOrders", data);
|
|
|
if (res) {
|
|
|
- this.packageData = res.data
|
|
|
+ this.packageData = res.data;
|
|
|
// console.log(this.packageData)
|
|
|
}
|
|
|
},
|
|
|
@@ -202,24 +255,24 @@ export default {
|
|
|
page: this.hirePage,
|
|
|
pageSize: 10,
|
|
|
productType: 4
|
|
|
- }
|
|
|
- let res = await this.$post("/api/admin/order/getWaitExpenseOrders", data)
|
|
|
+ };
|
|
|
+ let res = await this.$post("/api/admin/order/getWaitExpenseOrders", data);
|
|
|
if (res) {
|
|
|
- this.hireData = res.data
|
|
|
+ this.hireData = res.data;
|
|
|
// console.log(this.hireData)
|
|
|
}
|
|
|
},
|
|
|
handleJobCurrentChange(val) {
|
|
|
- this.jobPage = val
|
|
|
- this.getJobOrders()
|
|
|
+ this.jobPage = val;
|
|
|
+ this.getJobOrders();
|
|
|
},
|
|
|
handlePackageCurrentChange(val) {
|
|
|
- this.packagePage = val
|
|
|
- this.getPackageOrders()
|
|
|
+ this.packagePage = val;
|
|
|
+ this.getPackageOrders();
|
|
|
},
|
|
|
handleHireCurrentChange(val) {
|
|
|
- this.hirePage = val
|
|
|
- this.getHireOrders()
|
|
|
+ this.hirePage = val;
|
|
|
+ this.getHireOrders();
|
|
|
},
|
|
|
formatDate(time) {
|
|
|
var now = new Date(time * 1000);
|
|
|
@@ -251,29 +304,47 @@ export default {
|
|
|
":" +
|
|
|
second
|
|
|
);
|
|
|
- },
|
|
|
-
|
|
|
+ }
|
|
|
}
|
|
|
-}
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
- .header {
|
|
|
- margin-top: 20px;
|
|
|
- margin-bottom: 30px;
|
|
|
- }
|
|
|
+<style scoped lang="scss">
|
|
|
+.header {
|
|
|
+ margin-top: 20px;
|
|
|
+ margin-bottom: 30px;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 1.5;
|
|
|
+}
|
|
|
|
|
|
- .tab-header {
|
|
|
- margin-bottom: 10px;
|
|
|
- }
|
|
|
+.tab-header {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 1.5;
|
|
|
+}
|
|
|
|
|
|
- .tab-content {
|
|
|
- white-space: nowrap;
|
|
|
- overflow-x: scroll;
|
|
|
- height: calc(100vh - 300px);
|
|
|
- }
|
|
|
+.tab-content {
|
|
|
+ white-space: nowrap;
|
|
|
+ overflow-x: scroll;
|
|
|
+ height: calc(100vh - 300px);
|
|
|
+}
|
|
|
|
|
|
- .order-footer {
|
|
|
- margin-top: 10px;
|
|
|
+.order-footer {
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
+.el-table {
|
|
|
+ font-size: 12px !important;
|
|
|
+ td {
|
|
|
+ padding: 4px 0 !important;
|
|
|
}
|
|
|
+ th {
|
|
|
+ padding: 4px 0 !important;
|
|
|
+ }
|
|
|
+}
|
|
|
+.el-form-item {
|
|
|
+ margin-bottom: 0;
|
|
|
+}
|
|
|
+.el-form:last-child {
|
|
|
+ margin-bottom: 22px;
|
|
|
+}
|
|
|
</style>
|