订单、英雄榜

V0.1
yujialong 1 year ago
parent 36963a0265
commit aed69ad7f7
  1. BIN
      src/assets/images/armory/1.png
  2. BIN
      src/assets/images/armory/2.png
  3. BIN
      src/assets/images/armory/3.png
  4. BIN
      src/assets/images/armory/4.png
  5. BIN
      src/assets/images/armory/5.png
  6. BIN
      src/assets/images/armory/6.png
  7. BIN
      src/assets/images/armory/7.png
  8. BIN
      src/assets/images/armory/8.png
  9. BIN
      src/assets/images/armory/9.png
  10. BIN
      src/assets/images/armory/bg1.png
  11. BIN
      src/assets/images/armory/bg2.png
  12. BIN
      src/assets/images/armory/bg3.png
  13. BIN
      src/assets/images/armory/header1.png
  14. BIN
      src/assets/images/armory/header2.png
  15. BIN
      src/assets/images/armory/header3.png
  16. BIN
      src/assets/images/armory/icon1.png
  17. BIN
      src/assets/images/armory/icon2.png
  18. BIN
      src/assets/images/armory/icon3.png
  19. 2
      src/router/index.ts
  20. 2
      src/settings.ts
  21. 260
      src/views/finance/Armory.vue
  22. 153
      src/views/finance/Order.vue

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -39,6 +39,8 @@ export const routes: Array<RouteRecordRaw> = [
children: [ children: [
{ path: 'publish', component: () => import('@/views/finance/Publish.vue'), meta: { title: '发布' } }, { path: 'publish', component: () => import('@/views/finance/Publish.vue'), meta: { title: '发布' } },
{ path: 'account', component: () => import('@/views/finance/Account.vue'), meta: { title: '我的账户' } }, { path: 'account', component: () => import('@/views/finance/Account.vue'), meta: { title: '我的账户' } },
{ path: 'order', component: () => import('@/views/finance/Order.vue'), meta: { title: '我的订单' } },
{ path: 'armory', component: () => import('@/views/finance/Armory.vue'), meta: { title: '英雄榜' } },
], ],
}, },
// 404 page must be placed at the end !!! // 404 page must be placed at the end !!!

@ -6,5 +6,5 @@ export default {
* @type {array} * @type {array}
* @description * @description
*/ */
hideNavPath: ['/finance/publish', '/finance/account'], hideNavPath: ['/finance/publish', '/finance/account', '/finance/order', '/finance/armory'],
}; };

@ -0,0 +1,260 @@
<template>
<div class="flex justify-between mb-5">
<div class="inline-flex items-center text-lg text-[#333] font-semibold">
<span class="w-[5px] h-[18px] mr-3 bg-[#006BFF]"></span>
市场英雄榜
</div>
<div class="inline-flex items-center">
<ul class="types inline-flex items-center mr-5">
<li v-for="(item, i) in types"
:key="i">{{ item.name }}</li>
</ul>
<ul class="times inline-flex items-center">
<li v-for="(item, i) in times"
:key="i">{{ item.name }}</li>
</ul>
</div>
</div>
<div class="flex">
<div class="wrap">
<div class="header">
<img src="@/assets/images/armory/7.png"
alt=""
class="mr-2" />
收益排行
</div>
<ul class="c-table table-header">
<li>排名</li>
<li>商品名称</li>
<li>产品经理</li>
<li>金额</li>
</ul>
<ul class="c-table table-body">
<div class="line">
<li>
<img src="@/assets/images/armory/icon1.png"
alt=""
class="mx-auto" />
</li>
<li>周转易</li>
<li>刘物语</li>
<li>+59,500,000.00</li>
</div>
</ul>
</div>
<div class="wrap">
<div class="header">
<img src="@/assets/images/armory/8.png"
alt=""
class="mr-2" />
总资产排行
</div>
<ul class="c-table table-header">
<li>排名</li>
<li>产品经理</li>
<li>账户类型</li>
<li>金额</li>
</ul>
<ul class="c-table table-body">
<div class="line">
<li>
<img src="@/assets/images/armory/icon1.png"
alt=""
class="mx-auto" />
</li>
<li>周转易</li>
<li>刘物语</li>
<li>+59,500,000.00</li>
</div>
</ul>
</div>
<div class="wrap">
<div class="header">
<img src="@/assets/images/armory/9.png"
alt=""
class="mr-2" />
交易订单排行
</div>
<ul class="c-table table-header">
<li>排名</li>
<li>产品经理</li>
<li>订单数</li>
<li>详情</li>
</ul>
<ul class="c-table table-body">
<div class="line">
<li>
<img src="@/assets/images/armory/icon1.png"
alt=""
class="mx-auto" />
</li>
<li>周转易</li>
<li>刘物语</li>
<li>+59,500,000.00</li>
</div>
</ul>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue';
import { ElMessage } from 'element-plus';
import { Plus } from '@element-plus/icons-vue';
import { primaryTypeOfGuarantee, bankingProductsList } from '@/api/bank';
const form = ref<Object>({});
const types = ref<Array<any>>([
{
id: '',
name: '不限',
},
{
id: 1,
name: '银行',
},
{
id: 2,
name: '保险',
},
{
id: 3,
name: '基金',
},
]);
const times = ref<Array<any>>([
{
id: 1,
name: '昨日',
},
{
id: 2,
name: '近1周',
},
{
id: 3,
name: '近1月',
},
]);
const productVisible = ref<boolean>(false);
const keyword = ref<string>('');
const currentPage = ref<number>(1);
const pageSize = ref<number>(10);
const total = ref<number>(0);
const table = ref<any>();
const list = ref<Array<any>>([]);
const selection = ref<Array<any>>([]);
const loading = ref<boolean>(false);
//
const showProduct = async () => {
productVisible.value = true;
};
//
const getGuarantee = async () => {
try {
const { data } = await primaryTypeOfGuarantee();
guarantees.value = data;
} finally {
}
};
onMounted(() => {
// getGuarantee();
// fetchData();
});
</script>
<style lang="scss" scoped>
.types {
li {
@apply px-5 py-3 text-sm text-white cursor-pointer;
background: url(../../assets/images/armory/1.png) 0 0/100% 100% no-repeat;
&:nth-child(2) {
@apply mr-1;
}
&:nth-child(2),
&:nth-child(3) {
background-image: url(../../assets/images/armory/2.png);
}
&:last-child {
background-image: url(../../assets/images/armory/3.png);
}
&.active,
&:hover {
@apply text-[#333];
background: #fff;
}
}
}
.times {
li {
@apply px-5 py-3 text-sm text-white cursor-pointer;
background: url(../../assets/images/armory/4.png) 0 0/100% 100% no-repeat;
&:nth-child(2) {
@apply mr-1;
}
&:nth-child(2) {
background-image: url(../../assets/images/armory/5.png);
}
&:last-child {
background-image: url(../../assets/images/armory/6.png);
}
&.active,
&:hover {
@apply text-[#333];
}
}
}
.wrap {
@apply w-[calc((100%-40px)/3)] mr-5 rounded-[10px] bg-white;
.header {
@apply flex items-center px-5 py-4;
background: url(../../assets/images/armory/header1.png) 0 0/100% 100% no-repeat;
}
&:nth-child(2) {
.header {
background-image: url(../../assets/images/armory/header2.png);
}
}
&:last-child {
@apply mr-0;
.header {
background-image: url(../../assets/images/armory/header2.png);
}
}
}
.c-table {
@apply text-center;
li {
@apply w-[18%] text-sm leading-10;
&:nth-child(2) {
@apply w-[20%];
}
&:nth-child(3) {
@apply w-[25%];
}
&:last-child {
@apply w-[37%];
}
}
}
.table-header {
@apply flex items-center;
border: 1px solid #e7f0fc;
box-shadow: 0px 3px 3px 0px rgba(176, 188, 208, 0.26);
border-radius: 10px 10px 0px 0px;
li {
@apply text-[#333];
}
}
.table-body {
.line {
@apply flex items-center;
border-bottom: 1px solid #e7f0fc;
&:hover {
box-shadow: 0px 0px 13px 0px rgba(0, 107, 255, 0.26);
}
}
}
</style>

@ -0,0 +1,153 @@
<template>
<div>
<back name="我的订单"></back>
<div class="block mb-5">
<h6 class="title mb-5">订单组成</h6>
</div>
<div class="block mb-5">
<h6 class="title mb-5">订单列表</h6>
<div class="flex justify-between mb-5">
<div class="search">
<input type="text"
placeholder="搜索"
maxlength="20" />
<img src="@/assets/images/search.png"
alt=""
class="icon" />
</div>
<div>
<el-select v-model="form.status"
placeholder="订单类型"
size="large">
<el-option v-for="item in paces"
:key="item.id"
:label="item.name"
:value="item.id" />
</el-select>
</div>
</div>
<el-table ref="table"
v-loading="loading"
:data="data">
<el-table-column type="selection"
:selectable="deletable"
width="50"></el-table-column>
<el-table-column prop="parentIds"
label="订单号"></el-table-column>
<el-table-column prop="parentIds"
label="产品名称"></el-table-column>
<el-table-column prop="parentIds"
label="订单类型"></el-table-column>
<el-table-column prop="parentIds"
label="成交情况"></el-table-column>
<el-table-column prop="parentIds"
label="成交日期"></el-table-column>
<el-table-column prop="parentIds"
label="订单情况 "></el-table-column>
<el-table-column prop="parentIds"
label="备注"></el-table-column>
</el-table>
<el-pagination v-model:currentPage="currentPage"
v-model:pageSize="pageSize"
:total="total"
:page-sizes="pageSizes"
:layout="pageLayout"
@size-change="fetchData()"
@current-change="fetchData()"
small
background
class="px-3 py-2 justify-end"></el-pagination>
</div>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue';
import { ElMessage } from 'element-plus';
import { Plus } from '@element-plus/icons-vue';
import { primaryTypeOfGuarantee, bankingProductsList } from '@/api/bank';
import Search from '@/components/Search.vue';
import Back from '@/components/Back.vue';
import { pageSizes, pageLayout, toParams, resetParams } from '@/utils/common';
const form = ref<Object>({});
const paces = ref<Array<any>>([
{
id: 1,
name: '配置风控',
},
{
id: 2,
name: '待审批',
},
{
id: 3,
name: '审批通过',
},
{
id: 4,
name: '审批不通过',
},
{
id: 5,
name: '审批打回',
},
]);
const productVisible = ref<boolean>(false);
const keyword = ref<string>('');
const currentPage = ref<number>(1);
const pageSize = ref<number>(10);
const total = ref<number>(0);
const table = ref<any>();
const list = ref<Array<any>>([]);
const selection = ref<Array<any>>([]);
const loading = ref<boolean>(false);
//
const showProduct = async () => {
productVisible.value = true;
};
//
const getGuarantee = async () => {
try {
const { data } = await primaryTypeOfGuarantee();
guarantees.value = data;
} finally {
}
};
onMounted(() => {
// getGuarantee();
// fetchData();
});
</script>
<style lang="scss" scoped>
.title {
@apply text-lg text-[#333] font-semibold leading-[1];
}
.search {
position: relative;
width: 320px;
padding: 0 12px;
background-color: #f6f8fc;
border-radius: 8px;
input {
width: 90%;
height: 36px;
font-size: 14px;
line-height: 36px;
color: #333;
border: 0;
background-color: transparent;
&:focus {
outline: none;
}
}
.icon {
position: absolute;
top: 9px;
right: 12px;
cursor: pointer;
}
}
</style>
Loading…
Cancel
Save