临时提交
This commit is contained in:
parent
1091ef94e3
commit
ba3e032f72
|
@ -75,6 +75,12 @@
|
|||
overflow: hidden !important;
|
||||
text-overflow: ellipsis !important;
|
||||
white-space: nowrap !important;
|
||||
border-right: 3px solid transparent !important;
|
||||
}
|
||||
|
||||
.el-menu-item.is-active {
|
||||
background-color: $base-menu-background-active !important;
|
||||
border-right: 3px solid $base-menu-background-active-border !important;
|
||||
}
|
||||
|
||||
// menu hover
|
||||
|
@ -84,7 +90,7 @@
|
|||
line-height: $base-sidbar-height !important;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, 0.06) !important;
|
||||
background-color: $base-menu-background-active !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,7 +105,7 @@
|
|||
line-height: $base-sidbar-height !important;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(0, 0, 0, 0.06) !important;
|
||||
background-color: $base-menu-background-active !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,8 @@ $panGreen: #30B08F;
|
|||
// 默认菜单主题风格
|
||||
$base-menu-color:#bfcbd9;
|
||||
$base-menu-color-active:#f4f4f5;
|
||||
$base-menu-background-active:#e5f0ff;
|
||||
$base-menu-background-active-border:#829dff;
|
||||
$base-menu-background:#304156;
|
||||
$base-logo-title-color: #ffffff;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class="avatar-wrapper" :style="{backgroundColor: backgroundColor}">
|
||||
<div class="avatar-wrapper" :style="{backgroundColor: isEmpty(src) ? backgroundColor : ''}">
|
||||
<el-avatar :size="size" :src="src" v-if="src"/>
|
||||
<el-avatar :size="size" v-else :style="{fontSize: fontSize}">
|
||||
{{ displayChar }}
|
||||
|
@ -8,6 +8,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { isEmpty } from '@/utils/index.js';
|
||||
export default {
|
||||
name: 'Avatar',
|
||||
props: {
|
||||
|
@ -63,6 +64,9 @@ export default {
|
|||
return colors[index]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
isEmpty,
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -66,9 +66,6 @@
|
|||
|
||||
<!-- 上传提示 -->
|
||||
<div class="el-upload__tip" slot="tip" v-if="showTip">
|
||||
<div style="color: #909399; margin-bottom: 8px;">
|
||||
建议尺寸:700×286
|
||||
</div>
|
||||
请上传
|
||||
<template v-if="fileSize">大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b></template>
|
||||
<template v-if="fileType">格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b></template>
|
||||
|
@ -91,10 +88,10 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { getToken } from '@/utils/auth'
|
||||
import { getQiniuToken } from '@/api/common'
|
||||
import axios from 'axios'
|
||||
import { getRealUrl, getFileIcon, getExt, isImage, getFileNameWithTime, isVideo } from '@/utils'
|
||||
import { getQiniuToken } from '@/api/common';
|
||||
import { getExt, getFileIcon, getFileNameWithTime, getRealUrl, isImage, isVideo } from '@/utils';
|
||||
import { getToken } from '@/utils/auth';
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
|
@ -493,6 +490,9 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.el-upload__tip {
|
||||
line-height: 2em;
|
||||
}
|
||||
/* 上传区域基础样式 */
|
||||
::v-deep .el-upload {
|
||||
display: flex;
|
||||
|
|
|
@ -217,9 +217,8 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="广告图片" prop="picture">
|
||||
<div class="upload-wrapper">
|
||||
<image-upload v-model="form.picture" :limit="1"/>
|
||||
</div>
|
||||
建议尺寸 700x286
|
||||
</el-form-item>
|
||||
<el-form-item label="广告状态" prop="status">
|
||||
<template>
|
||||
|
@ -253,14 +252,13 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { listAd, getAd, delAd, addAd, updateAd } from "@/api/bst/ad";
|
||||
import { $showColumns } from '@/utils/mixins';
|
||||
import FormCol from "@/components/FormCol/index.vue";
|
||||
import AreaRemoteSelect from "@/components/Business/Area/AreaRemoteSelect.vue";
|
||||
import {isSysAdmin} from "@/utils/permission";
|
||||
import {handleAudit} from "@/api/bst/ad";
|
||||
import {AdStatus} from "@/utils/enums";
|
||||
import {enableDevice} from "@/api/bst/device";
|
||||
import { addAd, delAd, getAd, handleAudit, listAd, updateAd } from "@/api/bst/ad";
|
||||
import { enableDevice } from "@/api/bst/device";
|
||||
import AreaRemoteSelect from "@/components/Business/Area/AreaRemoteSelect.vue";
|
||||
import FormCol from "@/components/FormCol/index.vue";
|
||||
import { AdStatus } from "@/utils/enums";
|
||||
import { $showColumns } from '@/utils/mixins';
|
||||
import { isSysAdmin } from "@/utils/permission";
|
||||
|
||||
// 默认排序字段
|
||||
const defaultSort = {
|
||||
|
|
|
@ -202,7 +202,7 @@ export default {
|
|||
{key: 'refundAmount', visible: true, label: '已退款', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'prePayTime', visible: true, label: '预计分成', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'payTime', visible: true, label: '实际分成', minWidth: null, sortable: false, overflow: false, align: 'center', width: "100"},
|
||||
{key: 'toBalance', visible: false, label: '余额变动', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'toBalance', visible: true, label: '余额变动', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "100"},
|
||||
],
|
||||
// 排序方式
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
<form-col :span="span" label="渠道名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入渠道名称"/>
|
||||
</form-col>
|
||||
<form-col :span="span" label="对外名称" prop="outName">
|
||||
<el-input v-model="form.outName" placeholder="请输入对外名称"/>
|
||||
</form-col>
|
||||
<form-col :span="span" label="类型" prop="type">
|
||||
<el-select v-model="form.type" placeholder="请选择类型" style="width: 100%;">
|
||||
<el-option v-for="item in dict.type.channel_type" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
|
@ -26,6 +29,13 @@
|
|||
<form-col :span="24" label="绑定APP" prop="appIds" tip="有哪些APP可以使用该渠道" label-width="7em">
|
||||
<app-select v-model="form.appIds" multiple/>
|
||||
</form-col>
|
||||
<form-col :span="24" label="可用业务" prop="bstTypes" tip="有哪些业务可以使用该渠道" label-width="7em">
|
||||
<el-checkbox-group v-model="form.bstTypes" placeholder="请选择业务类型" style="width: 100%;">
|
||||
<el-checkbox v-for="item in dict.type.channel_bst_type" :key="item.value" :label="item.value">
|
||||
{{ item.label }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</form-col>
|
||||
</el-row>
|
||||
<div class="api-config-title">API配置</div>
|
||||
<el-row>
|
||||
|
@ -96,13 +106,13 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { updateChannel, addChannel, getChannel } from "@/api/bst/channel";
|
||||
import { ChannelType, ChannelApiType } from "@/utils/enums";
|
||||
import AppSelect from '@/components/Business/App/AppSelect.vue'
|
||||
import { addChannel, getChannel, updateChannel } from "@/api/bst/channel";
|
||||
import AppSelect from '@/components/Business/App/AppSelect.vue';
|
||||
import { ChannelApiType, ChannelType } from "@/utils/enums";
|
||||
|
||||
export default {
|
||||
name: "ChannelEditDialog",
|
||||
dicts: ['channel_api_type', 'channel_type'],
|
||||
dicts: ['channel_api_type', 'channel_type', 'channel_bst_type'],
|
||||
components: { AppSelect },
|
||||
props: {
|
||||
show: {
|
||||
|
@ -182,6 +192,7 @@ export default {
|
|||
serviceRate: null,
|
||||
costRate: null,
|
||||
appIds: [],
|
||||
bstTypes: [],
|
||||
type: ChannelType.CUSTOM,
|
||||
channelConfig: {}
|
||||
};
|
||||
|
|
|
@ -41,26 +41,26 @@
|
|||
<el-table v-loading="loading" :data="channelList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="ID" align="center" prop="channelId" width="80"/>
|
||||
<el-table-column label="图片" align="center" prop="picture" width="80">
|
||||
<image-preview slot-scope="d" :src="d.row.picture" :width="32" :height="32"/>
|
||||
</el-table-column>
|
||||
<el-table-column label="渠道名称" align="center" prop="name"/>
|
||||
<el-table-column label="类型" align="center" prop="type">
|
||||
<el-table-column label="渠道" align="left" prop="name" width="300">
|
||||
<template slot-scope="d">
|
||||
<dict-tag :value="d.row.type" :options="dict.type.channel_type"/>
|
||||
<avatar :src="d.row.picture" :size="24" :name="d.row.name" :char-index="-1" style="margin-right:4px"/>
|
||||
{{ d.row.name | dv }}
|
||||
<dict-tag :value="d.row.type" :options="dict.type.channel_type" size="mini" style="margin-left:4px"/>
|
||||
<dict-tag :value="d.row.apiType" :options="dict.type.channel_api_type" size="mini" style="margin-left:4px"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否启用" align="center" prop="enabled">
|
||||
<el-table-column label="启用" align="center" prop="enabled">
|
||||
<template slot-scope="d">
|
||||
<el-switch v-model="d.row.enabled" @change="(nv) => {onChangeEnabled(d.row, nv)}"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="API类型" align="center" prop="apiType">
|
||||
<el-table-column label="对外名称" align="center" prop="outName"/>
|
||||
<el-table-column label="可用业务" align="center" prop="bstTypes" width="300">
|
||||
<template slot-scope="d">
|
||||
<dict-tag :value="d.row.apiType" :options="dict.type.channel_api_type"/>
|
||||
<dict-tag :value="d.row.bstTypes" :options="dict.type.channel_bst_type" size="mini" style="margin-left:4px"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="渠道成本" align="center" prop="costRate">
|
||||
<el-table-column label="成本" align="center" prop="costRate">
|
||||
<template slot-scope="d">{{d.row.costRate | fix2}} %</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" align="center" prop="createTime"/>
|
||||
|
@ -95,13 +95,14 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import { listChannel, delChannel, addChannel, updateChannel } from "@/api/bst/channel";
|
||||
import ChannelEditDialog from '@/views/bst/channel/components/ChannelEditDialog.vue'
|
||||
import { addChannel, delChannel, listChannel, updateChannel } from "@/api/bst/channel";
|
||||
import Avatar from '@/components/Avatar/index.vue';
|
||||
import ChannelEditDialog from '@/views/bst/channel/components/ChannelEditDialog.vue';
|
||||
|
||||
export default {
|
||||
name: "Channel",
|
||||
dicts: ['channel_api_type', 'channel_type'],
|
||||
components: { ChannelEditDialog },
|
||||
dicts: ['channel_api_type', 'channel_type', 'channel_bst_type'],
|
||||
components: { ChannelEditDialog, Avatar },
|
||||
data() {
|
||||
return {
|
||||
row: {},
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px" v-loading="loading">
|
||||
<el-row>
|
||||
<form-col :span="span" label="LOGO" prop="logo">
|
||||
<image-upload v-model="form.logo" :limit="1" />
|
||||
</form-col>
|
||||
<form-col :span="span" label="名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入名称" />
|
||||
</form-col>
|
||||
|
@ -45,7 +48,6 @@ import AreaRemoteSelect from "@/components/Business/Area/AreaRemoteSelect.vue";
|
|||
import FormCol from "@/components/FormCol/index.vue";
|
||||
import { CreditStatus } from "@/utils/enums";
|
||||
|
||||
|
||||
export default {
|
||||
name: 'CreditEditDialog',
|
||||
components: { FormCol, AreaRemoteSelect },
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<el-form-item label="业务类型" prop="bstType">
|
||||
<el-select v-model="queryParams.bstType" placeholder="请选择业务类型" clearable @change="handleQuery">
|
||||
<el-option
|
||||
v-for="dict in dict.type.credit_pay_bst_type"
|
||||
v-for="dict in dict.type.pay_bst_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
|
@ -99,7 +99,7 @@
|
|||
</template>
|
||||
<template v-else-if="column.key === 'description'">
|
||||
{{ d.row.description | dv }}
|
||||
<dict-tag :options="dict.type.credit_pay_bst_type" :value="d.row.bstType" size="mini" style="margin-left: 4px;"/>
|
||||
<dict-tag :options="dict.type.pay_bst_type" :value="d.row.bstType" size="mini" style="margin-left: 4px;"/>
|
||||
<dict-tag :options="dict.type.credit_pay_status" :value="d.row.status" size="mini" style="margin-left: 4px;"/>
|
||||
</template>
|
||||
<template v-else-if="['amount', 'refundAmount', 'paymentAmount'].includes(column.key)">
|
||||
|
@ -155,7 +155,7 @@
|
|||
<form-col :span="span" label="业务类型" prop="bstType">
|
||||
<el-select v-model="form.bstType" placeholder="请选择业务类型">
|
||||
<el-option
|
||||
v-for="dict in dict.type.credit_pay_bst_type"
|
||||
v-for="dict in dict.type.pay_bst_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
|
@ -200,7 +200,7 @@ const defaultSort = {
|
|||
export default {
|
||||
name: "CreditPay",
|
||||
mixins: [$showColumns],
|
||||
dicts: ['credit_pay_status', 'credit_pay_bst_type'],
|
||||
dicts: ['credit_pay_status', 'pay_bst_type'],
|
||||
components: {FormCol, CreditRemoteSelect, AreaRemoteSelect},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
@ -164,7 +164,24 @@
|
|||
<div>
|
||||
<el-row :gutter="8">
|
||||
<el-col :span="12" v-if="d.row.ridingFee != null">骑行:{{d.row.ridingFee | fix2 | dv}} 元</el-col>
|
||||
<el-col :span="12" v-if="d.row.depositFee != null">押金:{{d.row.depositFee | fix2 | dv}} 元</el-col>
|
||||
<el-col :span="12" v-if="d.row.depositFee != null">
|
||||
<el-popover
|
||||
placement="bottom"
|
||||
width="200"
|
||||
trigger="hover"
|
||||
>
|
||||
<div>
|
||||
<div v-if="d.row.creditName">挂账方:{{d.row.creditName | fix2 | dv}} 元</div>
|
||||
<div v-if="d.row.creditUserName">挂账人:{{d.row.creditUserName | fix2 | dv}} 元</div>
|
||||
<div>押金:{{d.row.depositFee | fix2 | dv}} 元</div>
|
||||
</div>
|
||||
<div slot="reference">
|
||||
押金:{{d.row.depositFee | fix2 | dv}} 元
|
||||
<el-tag v-if="d.row.isCredit" type="success" size="mini">挂账</el-tag>
|
||||
<i class="el-icon-info" v-else />
|
||||
</div>
|
||||
</el-popover>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="d.row.totalFee != null">
|
||||
<el-popover
|
||||
placement="bottom"
|
||||
|
|
|
@ -12,11 +12,23 @@
|
|||
</el-statistic>
|
||||
</el-col>
|
||||
<el-col>
|
||||
<el-statistic title="押金" :value="detail.depositFee" :precision="2" suffix="元">
|
||||
<template slot="prefix">
|
||||
<i class="el-icon-money" style="color: #67C23A"></i>
|
||||
</template>
|
||||
</el-statistic>
|
||||
<el-popover placement="bottom" width="200" trigger="hover">
|
||||
<div>
|
||||
<div v-if="detail.creditName">挂账方:{{detail.creditName | fix2 | dv}} 元</div>
|
||||
<div v-if="detail.creditUserName">挂账人:{{detail.creditUserName | fix2 | dv}} 元</div>
|
||||
<div>押金:{{detail.depositFee | fix2 | dv}} 元</div>
|
||||
</div>
|
||||
<el-statistic slot="reference" title="押金" :value="detail.depositFee" :precision="2" suffix="元">
|
||||
<template slot="prefix">
|
||||
<i class="el-icon-money" style="color: #67C23A"></i>
|
||||
</template>
|
||||
<template slot="title">
|
||||
押金
|
||||
<el-tag v-if="detail.isCredit" type="success" size="mini">挂账</el-tag>
|
||||
<i class="el-icon-info" v-else />
|
||||
</template>
|
||||
</el-statistic>
|
||||
</el-popover>
|
||||
</el-col>
|
||||
<el-col v-if="detail.ridePayAmount">
|
||||
<el-statistic title="结算支付" :value="detail.ridePayAmount" :precision="2" suffix="元">
|
||||
|
|
Loading…
Reference in New Issue
Block a user