|
|
@ -8,33 +8,33 @@ |
|
|
|
<el-input placeholder="请输入精网号" style="width:10vw;" clearable></el-input> |
|
|
|
</div> |
|
|
|
<div class="rowItem"> |
|
|
|
<text style="width: 4vw;">客户姓名</text> |
|
|
|
<el-text style="width: 4vw;">客户姓名</el-text> |
|
|
|
<el-input placeholder="请输入客户姓名" style="width:10vw;" clearable></el-input> |
|
|
|
</div> |
|
|
|
<div class="rowItem"> |
|
|
|
<text style="width: 4vw;">所属地区</text> |
|
|
|
<el-text style="width: 4vw;">所属地区</el-text> |
|
|
|
<el-select placeholder="请选择所属地区" style="width:10vw;" clearable></el-select> |
|
|
|
</div> |
|
|
|
<div class="rowItem"> |
|
|
|
<text style="width: 4vw;">订单状态</text> |
|
|
|
<el-text style="width: 4vw;">订单状态</el-text> |
|
|
|
<el-select placeholder="请选择订单状态" style="width: 10vw;" clearable></el-select> |
|
|
|
</div> |
|
|
|
<div class="rowItem"> |
|
|
|
<text style="width: 4vw;">支付方式</text> |
|
|
|
<el-text style="width: 4vw;">支付方式</el-text> |
|
|
|
<el-select placeholder="请选择支付方式" style="width: 10vw;" clearable></el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="row" style="margin-top: 10px;"> |
|
|
|
<div class="rowItem"> |
|
|
|
<text style="width: 4vw;">活动名称</text> |
|
|
|
<el-text style="width: 4vw;">活动名称</el-text> |
|
|
|
<el-select placeholdert="请选择活动方式" style="width: 10vw;" clearable></el-select> |
|
|
|
</div> |
|
|
|
<div class="rowItem"> |
|
|
|
<text style="width: 4vw;">产品名称</text> |
|
|
|
<el-text style="width: 4vw;">产品名称</el-text> |
|
|
|
<el-select placeholder="请选择产品名称" style="width: 10vw;" clearable></el-select> |
|
|
|
</div> |
|
|
|
<div class="rowItem" style="width: 30vw"> |
|
|
|
<text style="width: 4vw; margin-left: 0.5vw;">付款时间</text> |
|
|
|
<el-text style="width: 4vw; margin-left: 0.5vw;">付款时间</el-text> |
|
|
|
<el-date-picker v-model="getTime" type="datetimerange" range-separator="至" |
|
|
|
start-placeholder="起始时间" end-placeholder="结束时间" style="width: 22vw; " |
|
|
|
@change="handleDatePickerChange" :default-time="defaultTime" |
|
|
@ -47,6 +47,8 @@ |
|
|
|
<el-button type="success">重置</el-button> |
|
|
|
<el-button type="primary">导出excel</el-button> |
|
|
|
<el-button type="primary" style="background-color: #5870FF;">导出列表</el-button> |
|
|
|
<el-button type="primary" @click="checkKefu">切换客服</el-button> |
|
|
|
<el-button type="success" @click="checkCaiwu">切换财务</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
@ -56,7 +58,7 @@ |
|
|
|
<div class="card2"> |
|
|
|
<el-card> |
|
|
|
<div class="btns"> |
|
|
|
<div class="tabs"> |
|
|
|
<div class="tabs" v-if="caiwu"> |
|
|
|
<el-button-group> |
|
|
|
<el-button class="btnItem" |
|
|
|
:style="{ backgroundColor: activeTab === 'wait' ? '#2741DE' : '#E5EBFE', color: activeTab === 'wait' ? 'white' : '#666' }" |
|
|
@ -76,7 +78,7 @@ |
|
|
|
</el-button-group> |
|
|
|
</div> |
|
|
|
<div class="btnAdd"> |
|
|
|
<el-button @click="openAddForm" type="success">添加收款</el-button> |
|
|
|
<el-button @click="openAddForm" type="success" v-if="kefu">添加收款</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
@ -116,8 +118,15 @@ |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="" label="备注" width="150px" show-overflow-tooltip> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column fixed="right" prop="adminName" label="订单状态" width="100px" /> |
|
|
|
<el-table-column fixed="right" prop="rejectReason" label="操作" width="100px" /> |
|
|
|
<el-table-column v-if="kefu" fixed="right" prop="orderStatus" label="订单状态" width="100px" /> |
|
|
|
<el-table-column fixed="right" label="操作" width="100px" v-if="activeTab != 'reject'"> |
|
|
|
<template #default=scope> |
|
|
|
<span v-if="kefu && scope.row.orderStatus == '已通过'" style="color: #FA5A1E;">退款</span> |
|
|
|
<span v-else-if="kefu && scope.row.orderStatus == '已撤回'" style="color: #2741DE;">编辑</span> |
|
|
|
<span v-else-if="activeTab == 'wait'&& !kefu" style="color: #2741DE;">审核</span> |
|
|
|
<span v-else-if="activeTab == 'pass'&& !kefu" style="color: #2741DE;">编辑</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
<div class="pagination"> |
|
|
@ -183,15 +192,15 @@ |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script setup> |
|
|
|
import { ref } from 'vue'; |
|
|
|
import { ElMessage } from 'element-plus' |
|
|
|
import API from '@/util/http.js' |
|
|
|
<script setup> |
|
|
|
import { ref } from 'vue'; |
|
|
|
import { ElMessage } from 'element-plus' |
|
|
|
import API from '@/util/http.js' |
|
|
|
|
|
|
|
//==================== 标签切换 ========================= |
|
|
|
const activeTab = ref('wait') |
|
|
|
//==================== 标签切换 ========================= |
|
|
|
const activeTab = ref('wait') |
|
|
|
|
|
|
|
const navigateTo = (tab) => { |
|
|
|
const navigateTo = (tab) => { |
|
|
|
if (tab === 'wait') { |
|
|
|
activeTab.value = 'wait' |
|
|
|
} else if (tab === 'pass') { |
|
|
@ -200,22 +209,33 @@ const navigateTo = (tab) => { |
|
|
|
else if (tab === 'reject') { |
|
|
|
activeTab.value = 'reject' |
|
|
|
} |
|
|
|
} |
|
|
|
//================= 客服新增弹窗 ================== |
|
|
|
const addFormData = ref({ |
|
|
|
} |
|
|
|
|
|
|
|
const kefu = ref(true) |
|
|
|
const caiwu = ref(true) |
|
|
|
const checkKefu = () => { |
|
|
|
kefu.value = true |
|
|
|
caiwu.value = false |
|
|
|
} |
|
|
|
const checkCaiwu = () => { |
|
|
|
kefu.value = false |
|
|
|
caiwu.value = true |
|
|
|
} |
|
|
|
//================= 客服新增弹窗 ================== |
|
|
|
const addFormData = ref({ |
|
|
|
|
|
|
|
}) |
|
|
|
const addFormisible = ref(false) |
|
|
|
const uploadRef = ref() |
|
|
|
const openAddForm = () => { |
|
|
|
}) |
|
|
|
const addFormisible = ref(false) |
|
|
|
const uploadRef = ref() |
|
|
|
const openAddForm = () => { |
|
|
|
addFormisible.value = true |
|
|
|
} |
|
|
|
const closeAddForm = () => { |
|
|
|
} |
|
|
|
const closeAddForm = () => { |
|
|
|
addFormisible.value = false |
|
|
|
addFormData.value = {} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const handleImgSuccess = (response, uploadFile) => { |
|
|
|
const handleImgSuccess = (response, uploadFile) => { |
|
|
|
try { |
|
|
|
console.log('11', response) |
|
|
|
addFormData.value.imageUrl = response.data.url |
|
|
@ -224,14 +244,14 @@ const handleImgSuccess = (response, uploadFile) => { |
|
|
|
console.log('报错信息', error) |
|
|
|
ElMessage.error(response.msg || '图片上传失败') |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const handelImgErr = (err) => { |
|
|
|
const handelImgErr = (err) => { |
|
|
|
console.log(err); |
|
|
|
addFormData.value.imageUrl = null |
|
|
|
ElMessage.error("图片上传失败") |
|
|
|
} |
|
|
|
const beforeUpload = (rawFile) => { |
|
|
|
} |
|
|
|
const beforeUpload = (rawFile) => { |
|
|
|
if (rawFile.type !== 'image/jpeg' && rawFile.type !== 'image/png') { |
|
|
|
ElMessage.error('图片必须是jpg或png类型!') |
|
|
|
return false |
|
|
@ -240,12 +260,12 @@ const beforeUpload = (rawFile) => { |
|
|
|
return false |
|
|
|
} |
|
|
|
return true |
|
|
|
} |
|
|
|
const handleImageChange = (file) => { |
|
|
|
} |
|
|
|
const handleImageChange = (file) => { |
|
|
|
uploadRef.value.submit() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const customUpload = async (options) => { |
|
|
|
const customUpload = async (options) => { |
|
|
|
try { |
|
|
|
const formData = new FormData() |
|
|
|
formData.append('file', options.file) |
|
|
@ -269,16 +289,16 @@ const customUpload = async (options) => { |
|
|
|
console.error('上传错误:', error) |
|
|
|
ElMessage.error(`上传失败: ${error.msg || error.message || '网络异常'}`) |
|
|
|
} |
|
|
|
} |
|
|
|
//========================分页相关================== |
|
|
|
const pageInfo = ref({ |
|
|
|
} |
|
|
|
//========================分页相关================== |
|
|
|
const pageInfo = ref({ |
|
|
|
pageSize: 10, |
|
|
|
pageNum: 1 |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
const total = ref(0) |
|
|
|
const tableData = [ |
|
|
|
const total = ref(0) |
|
|
|
const tableData = [ |
|
|
|
{ |
|
|
|
jwcode: 'HW2023001', |
|
|
|
name: '张三', |
|
|
@ -290,8 +310,7 @@ const tableData = [ |
|
|
|
freeGold: '银行转账', |
|
|
|
remark: '2023-03-15 10:30:00', |
|
|
|
voucher: 'https://example.com/images/voucher1.jpg', |
|
|
|
adminName: '已支付', |
|
|
|
rejectReason: '无', |
|
|
|
orderStatus: '待审核', |
|
|
|
}, |
|
|
|
{ |
|
|
|
jwcode: 'HW2023002', |
|
|
@ -304,8 +323,7 @@ const tableData = [ |
|
|
|
freeGold: '支付宝', |
|
|
|
remark: '2023-06-20 14:15:00', |
|
|
|
voucher: 'https://example.com/images/voucher2.jpg', |
|
|
|
adminName: '已支付', |
|
|
|
rejectReason: '无', |
|
|
|
orderStatus: '已通过', |
|
|
|
}, |
|
|
|
{ |
|
|
|
jwcode: 'HW2023003', |
|
|
@ -318,8 +336,7 @@ const tableData = [ |
|
|
|
freeGold: '微信支付', |
|
|
|
remark: '2023-09-10 09:20:00', |
|
|
|
voucher: '', |
|
|
|
adminName: '待支付', |
|
|
|
rejectReason: '无', |
|
|
|
orderStatus: '已撤回', |
|
|
|
}, |
|
|
|
{ |
|
|
|
jwcode: 'HW2023004', |
|
|
@ -332,7 +349,7 @@ const tableData = [ |
|
|
|
freeGold: '信用卡', |
|
|
|
remark: '2023-12-05 16:40:00', |
|
|
|
voucher: 'https://example.com/images/voucher4.jpg', |
|
|
|
adminName: '已支付', |
|
|
|
orderStatus: '已驳回', |
|
|
|
rejectReason: '无', |
|
|
|
}, |
|
|
|
{ |
|
|
@ -346,13 +363,12 @@ const tableData = [ |
|
|
|
freeGold: '银行转账', |
|
|
|
remark: '2024-01-20 11:10:00', |
|
|
|
voucher: '', |
|
|
|
adminName: '已驳回', |
|
|
|
rejectReason: '支付金额有误', |
|
|
|
orderStatus: '已驳回', |
|
|
|
} |
|
|
|
]; |
|
|
|
]; |
|
|
|
</script> |
|
|
|
<style scoped lang="scss"> |
|
|
|
.content { |
|
|
|
<style scoped lang="scss"> |
|
|
|
.content { |
|
|
|
height: 100%; |
|
|
|
width: 83vw; |
|
|
|
|
|
|
@ -392,17 +408,20 @@ const tableData = [ |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
.tabs{ |
|
|
|
padding-bottom: 10px; |
|
|
|
|
|
|
|
.tabs { |
|
|
|
min-width: 300px; |
|
|
|
|
|
|
|
.btnItem { |
|
|
|
margin-left: 10px; |
|
|
|
border-radius: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.btnAdd { |
|
|
|
flex: 1; |
|
|
|
justify-content: flex-end; |
|
|
|
margin-right: 1vw; |
|
|
|
margin-right: 5vw; |
|
|
|
padding-left: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -422,6 +441,7 @@ const tableData = [ |
|
|
|
:deep(.adddialog) { |
|
|
|
min-width: 450px; |
|
|
|
background-color: #F3FAFE !important; |
|
|
|
margin-top: 10vh; |
|
|
|
|
|
|
|
.addForm { |
|
|
|
padding: 0 3vw 1vh 1vw; |
|
|
@ -446,5 +466,5 @@ const tableData = [ |
|
|
|
font-weight: 800; |
|
|
|
padding-bottom: 15px; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |