2163 lines
84 KiB
Vue
2163 lines
84 KiB
Vue
<template>
|
||
<div class="divBox relative">
|
||
<el-card class="box-card">
|
||
<div class="clearfix">
|
||
<div class="container">
|
||
<el-form size="small" label-width="100px">
|
||
<el-form-item label="订单类型:" v-if="false">
|
||
<el-radio-group v-model="tableFrom.type" type="button" class="mr20" size="small"
|
||
@change="seachList">
|
||
<el-radio-button v-for="(item, i) in options" :key="i" :label="item.value">{{
|
||
item.label
|
||
}}</el-radio-button>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<div style="display: flex;padding-left: 20px;margin-bottom: 20px;" >
|
||
<div class="tit" style="font-size: 22px;">剩余待领取订单数量:<span style="color: red;">{{ allOrderNum}}</span></div>
|
||
</div>
|
||
<el-form-item label="订单领取:">
|
||
<el-radio-group v-model="orderNum">
|
||
<el-radio-button label="10"></el-radio-button>
|
||
<el-radio-button label="20"></el-radio-button>
|
||
<el-radio-button label="30"></el-radio-button>
|
||
<el-radio-button label="40"></el-radio-button>
|
||
</el-radio-group>
|
||
<el-input v-model="orderNum" placeholder="请输入要领取的订单数量" style="width: 80px;" size="small"
|
||
>
|
||
|
||
</el-input>
|
||
<el-button type="primary" @click="getOrder()">确认领取</el-button>
|
||
</el-form-item>
|
||
<el-form-item label="订单状态:" v-if="checkPermi(['admin:order:status:num'])">
|
||
<el-radio-group v-model="tableFrom.status" type="button" @change="seachList">
|
||
<el-radio-button label="all">全部 {{ '(' + orderChartType.all ? orderChartType.all : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="unPaid" v-if="false">未支付 {{ '(' + orderChartType.unPaid ?
|
||
orderChartType.unPaid : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="audit">待审核 {{ '(' + orderChartType.audit ? orderChartType.audit : 0
|
||
+ ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="awaitSign" >待签约 {{ '(' + orderChartType.awaitSign ?
|
||
orderChartType.awaitSign : 0 +
|
||
')' }}</el-radio-button>
|
||
<el-radio-button label="notShipped" >未发货 {{ '(' + orderChartType.notShipped ?
|
||
orderChartType.notShipped : 0
|
||
+ ')' }}</el-radio-button>
|
||
<!-- <el-radio-button label="spike"-->
|
||
<!-- >待收货 {{ '(' + orderChartType.spike ? orderChartType.spike : 0 + ')' }}</el-radio-button-->
|
||
<!-- >-->
|
||
<el-radio-button label="inUse" >使用中 {{ '(' + orderChartType.inUse ?
|
||
orderChartType.inUse : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="bargain">待评价 {{ '(' + orderChartType.bargain ?
|
||
orderChartType.bargain : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="complete" >交易完成 {{ '(' + orderChartType.complete ?
|
||
orderChartType.complete : 0 +
|
||
')' }}</el-radio-button>
|
||
<el-radio-button label="toBeWrittenOff" v-if="false">待核销
|
||
{{ '(' + orderChartType.toBeWrittenOff ? orderChartType.toBeWrittenOff : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="refunding" v-if="false">退款中 {{ '(' + orderChartType.refunding ?
|
||
orderChartType.refunding : 0 +
|
||
')' }}</el-radio-button>
|
||
<el-radio-button label="refunded" v-if="false">已退款 {{ '(' + orderChartType.refunded ?
|
||
orderChartType.refunded : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="auditReject" >已驳回 {{ '(' + orderChartType.auditReject ?
|
||
orderChartType.auditReject
|
||
: 0 + ')' }}</el-radio-button>
|
||
<el-radio-button label="deleted" v-if="false">已删除 {{ '(' + orderChartType.deleted ?
|
||
orderChartType.deleted : 0 + ')'
|
||
}}</el-radio-button>
|
||
<el-radio-button label="audited" v-if="false">已审核 {{ '(' + orderChartType.deleted ?
|
||
orderChartType.deleted : 0 + ')'
|
||
}}</el-radio-button>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item label="时间选择:" class="width100" v-if="false">
|
||
<el-radio-group v-model="tableFrom.dateLimit" type="button" class="mr20" size="small"
|
||
@change="selectChange(tableFrom.dateLimit)">
|
||
<el-radio-button v-for="(item, i) in fromList.fromTxt" :key="i" :label="item.val">{{
|
||
item.text
|
||
}}</el-radio-button>
|
||
</el-radio-group>
|
||
<el-date-picker v-model="timeVal" value-format="yyyy-MM-dd" format="yyyy-MM-dd" size="small"
|
||
type="daterange" placement="bottom-end" placeholder="自定义时间" style="width: 220px"
|
||
@change="onchangeTime" />
|
||
</el-form-item>
|
||
<div class="smallbox" style="display: flex;flex-wrap: wrap;">
|
||
<el-form-item label="订单号:">
|
||
<el-input v-model="tableFrom.orderNo" placeholder="请输入订单号" class="selWidth" size="small"
|
||
clearable>
|
||
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
|
||
</el-input>
|
||
</el-form-item>
|
||
<el-form-item label="用户姓名:">
|
||
<el-input v-model="tableFrom.userName" placeholder="请输入用户姓名" class="selWidth" size="small"
|
||
clearable>
|
||
<el-button slot="append" icon="el-icon-search" size="small" @click="seachList" />
|
||
</el-input>
|
||
</el-form-item>
|
||
</div>
|
||
<el-form-item class="width100">
|
||
<el-button size="small" @click="exports"
|
||
v-hasPermi="['admin:export:excel:order']">导出</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
</el-card>
|
||
<el-card class="box-card">
|
||
<el-table v-loading="listLoading" border :data="tableData.data" size="mini" class="table"
|
||
highlight-current-row :header-cell-style="{ fontWeight: 'bold' }" :row-key="(row) => {
|
||
return row.orderId;
|
||
}
|
||
">
|
||
<!-- @selection-change="handleSelectionChange" -->
|
||
<!-- <el-table-column
|
||
type="selection"
|
||
:reserve-selection="true"
|
||
width="55"
|
||
/> -->
|
||
<!-- <el-table-column label="订单号" min-width="210" v-if="checkedCities.includes('订单号')">
|
||
<template slot-scope="scope">
|
||
<span style="display: block" v-text="scope.row.orderId" />
|
||
<span v-show="scope.row.isDel" style="color: #ed4014; display: block">用户已删除</span>
|
||
</template>
|
||
</el-table-column> -->
|
||
<el-table-column label="ID" min-width="50">
|
||
<template slot-scope="scope">
|
||
|
||
<span v-text="scope.row.id"></span>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="订单信息" min-width="265" >
|
||
<template slot-scope="scope">
|
||
<div class="list">
|
||
<div class="li">订单编号: <span v-text="scope.row.orderId"></span></div>
|
||
</div>
|
||
<div class="list">
|
||
<div class="li">订单类型: <span v-text="scope.row.orderType"></span></div>
|
||
</div>
|
||
<div class="list">
|
||
<div class="li">下单时间: <span v-text="scope.row.createTime"></span></div>
|
||
</div>
|
||
<div class="list">
|
||
<div class="li">支付时间: <span v-text="scope.row.createTime"></span></div>
|
||
</div>
|
||
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column label="订单信息" min-width="210" max-width="210" >
|
||
<template slot-scope="scope">
|
||
<div class="list1" style="width: 210px;">
|
||
<div class="img">
|
||
<img src="http://img01.taobaocdn.com/bao/uploaded/i1/184783763/O1CN01kpWgHk1dfVJXquPtk_!!0-item_pic.jpg"
|
||
alt="">
|
||
</div>
|
||
<div class="info">
|
||
|
||
<div class="li">会员编号 <span>06605046</span></div>
|
||
|
||
<div class="li">会员等级: <span>普通会员</span></div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</template>
|
||
</el-table-column> -->
|
||
<!-- <el-table-column prop="orderType" label="订单类型" min-width="110" v-if="checkedCities.includes('订单类型')" /> -->
|
||
<!-- <el-table-column prop="realName" label="收货人" min-width="100" v-if="checkedCities.includes('收货人')" /> -->
|
||
<el-table-column label="商品信息" min-width="200" v-if="checkedCities.includes('商品信息')">
|
||
<template slot-scope="scope">
|
||
<el-popover trigger="hover" placement="right" :open-delay="800">
|
||
<div v-if="scope.row.productList && scope.row.productList.length" slot="reference">
|
||
<div v-for="(val, i) in scope.row.productList" :key="i" class="tabBox acea-row row-middle"
|
||
style="flex-wrap: inherit">
|
||
<div class="demo-image__preview mr10">
|
||
<el-image :src="val.info.image" :preview-src-list="[val.info.image]" />
|
||
</div>
|
||
<div class="text_overflow">
|
||
<span class="tabBox_tit mr10">{{ val.info.productName + ' | ' }}{{ val.info.sku ? val.info.sku : '-'
|
||
}}</span>
|
||
<span class="tabBox_pice">{{
|
||
'¥' + val.info.price ? val.info.price + ' x ' + val.info.payNum : '-'
|
||
}}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="pup_card" v-if="scope.row.productList && scope.row.productList.length">
|
||
<div v-for="(val, i) in scope.row.productList" :key="i" class="tabBox acea-row row-middle"
|
||
style="flex-wrap: inherit">
|
||
<div class="">
|
||
<span class="tabBox_tit mr10">{{ val.info.productName + ' | ' }}{{ val.info.sku ? val.info.sku : '-'
|
||
}}</span>
|
||
<span class="tabBox_pice">{{
|
||
'¥' + val.info.price ? val.info.price + ' x ' + val.info.payNum : '-'
|
||
}}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-popover>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="payPrice" label="实际支付" min-width="80" v-if="checkedCities.includes('实际支付')" /> -->
|
||
<!-- <el-table-column label="支付方式" min-width="80" v-if="checkedCities.includes('支付方式')">
|
||
<template slot-scope="scope">
|
||
<span>{{ scope.row.payTypeStr }}</span>
|
||
</template>
|
||
</el-table-column> -->
|
||
<el-table-column label="订单状态" min-width="150" v-if="checkedCities.includes('订单状态')">
|
||
<template slot-scope="scope">
|
||
<div>
|
||
<div v-if="scope.row.refundStatus === 1 || scope.row.refundStatus === 2" class="refunding">
|
||
<template>
|
||
<el-popover trigger="hover" placement="left" :open-delay="500">
|
||
<b style="color: #f124c7; cursor: pointer" slot="reference">{{ scope.row.statusStr.value }}</b>
|
||
<div class="pup_card flex-column">
|
||
<span>退款原因:{{ scope.row.refundReasonWap }}</span>
|
||
<span>备注说明:{{ scope.row.refundReasonWapExplain }}</span>
|
||
<span>退款时间:{{ scope.row.refundReasonTime }}</span>
|
||
<span class="acea-row">
|
||
退款凭证:
|
||
<template v-if="scope.row.refundReasonWapImg">
|
||
<div v-for="(item, index) in scope.row.refundReasonWapImg.split(',')" :key="index"
|
||
class="demo-image__preview" style="width: 35px; height: auto; display: inline-block">
|
||
<el-image :src="item" :preview-src-list="[item]" />
|
||
</div>
|
||
</template>
|
||
<span v-else style="display: inline-block">无</span>
|
||
</span>
|
||
</div>
|
||
</el-popover>
|
||
</template>
|
||
</div>
|
||
<div v-if="scope.row.statusStr.value === '待审核'">当前状态:<span style="color: green;">{{ scope.row.statusStr.value }}</span></div>
|
||
<div v-if="scope.row.statusStr.value === '审核失败'">当前状态:<span style="color: red;">{{ scope.row.statusStr.value }}</span></div>
|
||
<div v-else>当前状态:<span>{{ scope.row.statusStr.value }}</span></div>
|
||
<div >渠道名称: <span>{{scope.row.channel}}</span></div>
|
||
<div>审核人员:{{ scope.row.auditor }}</div>
|
||
<div>支付方式:{{ scope.row.payTypeStr }}</div>
|
||
<div>实际金额:{{ scope.row.payPrice }}</div>
|
||
</div>
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="createTime" label="下单时间" min-width="150" v-if="checkedCities.includes('下单时间')" /> -->
|
||
<el-table-column label="用户信息" min-width="150" max-width="150">
|
||
<template slot-scope="scope">
|
||
<div class="list1" style="width: 150px;">
|
||
|
||
<div class="info" style="width: 150px;">
|
||
|
||
<div class="li" style="width: 100%;">姓名: <span v-text="scope.row.realName"></span></div>
|
||
<div class="li" style="margin-right: 10px;">性别: <span>{{ scope.row.sex }}</span></div>
|
||
<div class="li">年龄: <span>{{ scope.row.age }}</span></div>
|
||
<div class="li" v-if="scope.row.systemLoginLog">浏览器: <span>{{ scope.row.systemLoginLog.browserName }}</span></div>
|
||
<div class="li" style="width: 100%;" v-if="scope.row.systemLoginLog">定位: <span></span></div>
|
||
<div class="li" style="width: 100%;" v-if="scope.row.systemLoginLog">手机型号: <span>{{ scope.row.systemLoginLog.deviceModel }}</span></div>
|
||
<div class="li" style="width: 100%;" v-if="scope.row.systemLoginLog">下单IP: <span>{{ scope.row.systemLoginLog.ipaddr }}</span></div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="操作" min-width="250" fixed="right" align="center" :render-header="renderHeader">
|
||
<template slot-scope="scope">
|
||
<el-button size="small" @click.native="onOrderDetails(scope.row.orderId)">订单详情</el-button>
|
||
<!-- scope.row.uid -->
|
||
<el-button size="small" @click.native="getuserinfo(scope.row.uid)">用户信息</el-button>
|
||
<el-button size="small" style="margin-top: 10px;"
|
||
v-if="scope.row.orderType == '[分期订单]' && scope.row.statusStr.key === 'audit' && checkPermi(['admin:order:audit'])"
|
||
@click="onAudit(scope.row)">审核订单</el-button>
|
||
<el-button size="small" @click="sendOrder(scope.row)" v-if="scope.row.statusStr.key === 'notShipped' &&
|
||
scope.row.refundStatus === 0 &&
|
||
checkPermi(['admin:order:send'])
|
||
">发货</el-button>
|
||
<el-button size="small" style="margin-top: 10px;" @click="showht(scope.row.contractUrl)"
|
||
v-if="scope.row.contractUrl">查看合同</el-button>
|
||
<el-button size="small" style="margin-top: 10px;" v-if="scope.row.statusStr.key!='inUse' "
|
||
@click.native="handleDelete(scope.row, scope.$index)" >取消订单</el-button>
|
||
<!-- <el-button
|
||
v-if="scope.row.paid === false && !scope.row.isAlterPrice && checkPermi(['admin:order:update:price'])"
|
||
type="text"
|
||
size="small"
|
||
@click="edit(scope.row)"
|
||
class="mr10"
|
||
>编辑</el-button
|
||
>
|
||
<el-button
|
||
v-if="scope.row.orderType == '[分期订单]' && scope.row.statusStr.key === 'audit' && checkPermi(['admin:order:audit'])"
|
||
type="text"
|
||
size="small"
|
||
@click="onAudit(scope.row)"
|
||
class="mr10"
|
||
>审核</el-button
|
||
> -->
|
||
<!-- <el-button-->
|
||
<!-- v-if="scope.row.orderType == '[分期订单]' && scope.row.statusStr.key === 'audit'"-->
|
||
<!-- type="text"-->
|
||
<!-- size="small"-->
|
||
<!-- @click="userDetail(scope.row)"-->
|
||
<!-- class="mr10"-->
|
||
<!-- >用户详情</el-button>-->
|
||
<!-- <el-button
|
||
v-if="
|
||
scope.row.statusStr.key === 'notShipped' &&
|
||
scope.row.refundStatus === 0 &&
|
||
checkPermi(['admin:order:send'])
|
||
"
|
||
type="text"
|
||
size="small"
|
||
class="mr10"
|
||
@click="sendOrder(scope.row)"
|
||
>发送货</el-button
|
||
> -->
|
||
<!--视频号订单不可修改-->
|
||
<!-- <el-button
|
||
v-if="
|
||
scope.row.statusStr.key === 'spike' &&
|
||
scope.row.type === 0 &&
|
||
checkPermi(['admin:order:tracking:number:update']) &&
|
||
!scope.row.shipmentTaskId
|
||
"
|
||
type="text"
|
||
size="small"
|
||
class="mr10"
|
||
@click="handleUpdateNumber(scope.row)"
|
||
>修改快递单号</el-button
|
||
> -->
|
||
<!-- <el-button
|
||
v-if="
|
||
scope.row.statusStr.key === 'toBeWrittenOff' &&
|
||
scope.row.paid == true &&
|
||
scope.row.refundStatus === 0 &&
|
||
checkPermi(['admin:order:write:update'])
|
||
"
|
||
type="text"
|
||
size="small"
|
||
class="mr10"
|
||
@click="onWriteOff(scope.row)"
|
||
>立即核销</el-button
|
||
> -->
|
||
<el-dropdown trigger="click" v-show="false">
|
||
<span class="el-dropdown-link"> 更多<i class="el-icon-arrow-down el-icon--right" /> </span>
|
||
<el-dropdown-menu slot="dropdown">
|
||
<el-dropdown-item @click.native="onOrderDetails(scope.row.orderId)"
|
||
v-if="checkPermi(['admin:order:info'])">订单详情</el-dropdown-item>
|
||
<el-dropdown-item @click.native="onInstallmentBills(scope.row.id)" v-if="checkPermi(['admin:order:info'])"
|
||
v-show="scope.row.orderType == '[分期订单]' && scope.row.statusStr.key != 'audit' && scope.row.statusStr.key != 'auditReject'">查看账单</el-dropdown-item>
|
||
<el-dropdown-item @click.native="onOrderLog(scope.row.orderId)"
|
||
v-if="checkPermi(['admin:order:status:list'])">订单记录</el-dropdown-item>
|
||
<el-dropdown-item @click.native="onOrderMark(scope.row)"
|
||
v-if="checkPermi(['admin:order:mark'])">订单备注</el-dropdown-item>
|
||
<el-dropdown-item v-if="scope.row.refundStatus === 1 && checkPermi(['admin:order:refund:refuse'])"
|
||
@click.native="onOrderRefuse(scope.row)">拒绝退款</el-dropdown-item>
|
||
<!--v-show="((scope.row.statusStr.key !== 'refunded' && scope.row.statusStr.key !== 'unPaid') && (parseFloat(scope.row.payPrice) >= parseFloat(scope.row.refundPrice))) || (scope.row.payPrice == 0 && [0,1].indexOf(scope.row.refundStatus) !== -1)"-->
|
||
<el-dropdown-item v-if="scope.row.refundStatus === 1 && checkPermi(['admin:order:refund'])"
|
||
@click.native="onOrderRefund(scope.row)">立即退款</el-dropdown-item>
|
||
<el-dropdown-item v-if="scope.row.statusStr.key === 'deleted' && checkPermi(['admin:order:delete'])"
|
||
@click.native="handleDelete(scope.row, scope.$index)">删除订单</el-dropdown-item>
|
||
<el-dropdown-item v-if="scope.row.statusStr.key !== 'unPaid'"
|
||
@click.native="onOrderPrint(scope.row)">打印小票</el-dropdown-item>
|
||
</el-dropdown-menu>
|
||
</el-dropdown>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="block">
|
||
<el-pagination :page-sizes="[20, 40, 60, 80]" :page-size="tableFrom.limit" :current-page="tableFrom.page"
|
||
layout="total, sizes, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange"
|
||
@current-change="pageChange" />
|
||
</div>
|
||
</el-card>
|
||
<div class="card_abs" v-show="card_select_show">
|
||
<template>
|
||
<div class="cell_ht">
|
||
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"
|
||
@change="handleCheckAllChange">全选</el-checkbox>
|
||
<el-button type="text" @click="checkSave()">保存</el-button>
|
||
</div>
|
||
<el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
|
||
<el-checkbox v-for="item in columnData" :label="item" :key="item" class="check_cell">{{ item
|
||
}}</el-checkbox>
|
||
</el-checkbox-group>
|
||
</template>
|
||
</div>
|
||
<!--编辑-->
|
||
<el-dialog title="编辑订单" :visible.sync="dialogVisible" width="500px" :before-close="handleClose">
|
||
<zb-parser v-if="dialogVisible" :form-id="104" :is-create="isCreate" :edit-data="editData"
|
||
@submit="handlerSubmit" @resetForm="resetForm" />
|
||
</el-dialog>
|
||
|
||
<!--记录-->
|
||
<el-dialog title="操作记录" :visible.sync="dialogVisibleJI" width="700px">
|
||
<el-table v-loading="LogLoading" border :data="tableDataLog.data" style="width: 100%">
|
||
<el-table-column prop="oid" align="center" label="ID" min-width="80" />
|
||
<el-table-column prop="changeMessage" label="操作记录" align="center" min-width="280" />
|
||
<el-table-column prop="createTime" label="操作时间" align="center" min-width="280" />
|
||
</el-table>
|
||
<div class="block">
|
||
<el-pagination :page-sizes="[10, 20, 30, 40]" :page-size="tableFromLog.limit"
|
||
:current-page="tableFromLog.page" layout="total, sizes, prev, pager, next, jumper"
|
||
:total="tableDataLog.total" @size-change="handleSizeChangeLog" @current-change="pageChangeLog" />
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!--账单记录-->
|
||
<el-dialog title="账单记录" :visible.sync="dialogVisibleInstallment" width="1200px">
|
||
<el-table v-loading="InstallmentLoading" border :data="tableDataInstallment.data" style="width: 100%">
|
||
<el-table-column prop="id" align="center" label="ID" min-width="80" />
|
||
<el-table-column prop="uid" align="center" label="客户" min-width="80" />
|
||
<el-table-column prop="repaymentAmount" align="center" label="还款金额" min-width="80" />
|
||
<el-table-column prop="installmentNumber" align="center" label="第几期" min-width="80" />
|
||
<el-table-column prop="repaymentDeadline" align="center" label="还款时间" min-width="280" />
|
||
<el-table-column prop="repaymentStatus" align="center" label="还款状态" min-width="80" />
|
||
<el-table-column prop="paymentMethod" align="center" label="还款方式" min-width="80" />
|
||
<el-table-column prop="createTime" label="创建时间" align="center" min-width="280" />
|
||
</el-table>
|
||
<div class="block">
|
||
<el-pagination :page-sizes="[10, 20, 30, 40]" :page-size="tableFromInstall.limit"
|
||
:current-page="tableFromInstall.page" layout="total, sizes, prev, pager, next, jumper"
|
||
:total="tableDataInstallment.total" @size-change="handleSizeChangeLog"
|
||
@current-change="pageChangeLog" />
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!--详情-->
|
||
<details-from ref="orderDetail" :orderId="orderId" />
|
||
|
||
|
||
<!--审核-->
|
||
<el-dialog title="审核" v-if="AuditVisible" :visible.sync="AuditVisible" width="500px"
|
||
:before-close="AudithandleClose">
|
||
<zb-parser :form-id="145" :is-create="1" :edit-data="AuditData" @submit="AudithandlerSubmit"
|
||
@resetForm="resetFormAudithand" />
|
||
</el-dialog>
|
||
<el-dialog title="合同详情" :visible.sync="htVisible" width="1000px" :before-close="htClose">
|
||
<div class="pdfCom">
|
||
<iframe :src="pdfUrl" width="100%" height="600px" frameborder="0"
|
||
sandbox="allow-same-origin allow-scripts allow-forms"></iframe>
|
||
<!-- <canvas :id="'canvas'+item" v-for="item in pdfHTML" :key="item" /> -->
|
||
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog title="" :visible.sync="dialogVisibles" width="1388px" :before-close="handleClose">
|
||
<div class="detailbox" v-if="dialogVisibles">
|
||
<div class="titbox">
|
||
<div class="tit" v-for="(item, index) in detaillist" :key="index" v-if="index!=4&&index!=5&&index!=6&&index!=7&&index!=8" :class="detailindex == index ? 'act' : ''"
|
||
@click="changeindex(index)">{{ item.tit }}</div>
|
||
</div>
|
||
<div class="info_box" v-show="detailindex == 0">
|
||
<div class="info">
|
||
<div class="infoli">用户姓名:{{ userinfo.detailinfo.realName }}</div>
|
||
<div class="infoli">手机号:{{ userinfo.detailinfo.phoneNumber }}</div>
|
||
<div class="infoli">邮箱:{{ userinfo.detailinfo.email }}</div>
|
||
<div class="infoli">身份证号:{{ userinfo.detailinfo.idCardNumber }}</div>
|
||
</div>
|
||
<div class="tit" v-if="userinfo.detailinfo.userEmergencyContactsList">
|
||
紧急联系人:
|
||
</div>
|
||
<div class="addbox" v-if="userinfo.detailinfo.userEmergencyContactsList">
|
||
<div class="addli" style="width: 100%;" v-for="(item, index) in userinfo.detailinfo.userEmergencyContactsList" :key="index">
|
||
<div class="addtxt">
|
||
姓名:{{ item.contactName }}
|
||
</div>
|
||
<div class="addtxt">
|
||
手机号:{{ item.phoneNumber }}
|
||
</div>
|
||
<div class="addtxt" v-show="item.relationship != null">
|
||
关系:{{ getRelationship(item.relationship) }}
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="tit">
|
||
订单
|
||
</div>
|
||
|
||
<!-- <a @click="downloadAndOpenPDF" href="#">下载并打开PDF文件</a> -->
|
||
<div class="info">
|
||
|
||
<div class="infoli">总计订单:{{ userinfo.detailinfo.allOrderCount }} </div>
|
||
<div class="infoli">总金额:{{ userinfo.detailinfo.totalPendingRepayment }} </div>
|
||
<div class="infoli">待还金额:{{ userinfo.detailinfo.allConsumeCount }} </div>
|
||
</div>
|
||
<div class="tit">
|
||
身份证照片
|
||
</div>
|
||
<div class="info">
|
||
|
||
<div class="infoimg" style="justify-content: start;">
|
||
<!-- <div class="infoimg_box">
|
||
<div class="noimg">手持身份证照片</div>
|
||
<img src=""
|
||
alt=""
|
||
v-show="false">
|
||
<div class="text">手持身份证照片</div>
|
||
</div> -->
|
||
<div class="infoimg_box" style="margin-right: 100px;">
|
||
<div class="noimg" v-show="userinfo.detailinfo.idCardFrontPhoto == null">身份证正面</div>
|
||
<img :src="userinfo.detailinfo.idCardFrontPhoto" alt=""
|
||
v-show="userinfo.detailinfo.idCardFrontPhoto != ''"
|
||
@click="openImage(userinfo.detailinfo.idCardFrontPhoto)">
|
||
<div class="text">身份证正面</div>
|
||
|
||
</div>
|
||
<div class="infoimg_box" style="margin-right: 100px;">
|
||
<div class="noimg" v-show="userinfo.detailinfo.idCardBackPhoto == null">身份证反面</div>
|
||
<img :src="userinfo.detailinfo.idCardBackPhoto" alt="" v-show="userinfo.detailinfo.idCardBackPhoto != ''"
|
||
@click="openImage(userinfo.detailinfo.idCardBackPhoto)">
|
||
<div class="text">身份证反面</div>
|
||
</div>
|
||
<div class="infoimg_box">
|
||
<div class="noimg" v-show="userinfo.detailinfo.handIdCard == null">手持身份证正面</div>
|
||
<img :src="userinfo.detailinfo.handIdCard" alt="" v-show="userinfo.detailinfo.handIdCard != null"
|
||
@click="openImage(userinfo.detailinfo.handIdCard)">
|
||
<div class="text">手持身份证正面</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div v-if="isImageOpen" class="overlay" @click="closeImage">
|
||
<div class="image-container">
|
||
<img :src="openedImage" alt="" class="enlarged-image">
|
||
</div>
|
||
</div>
|
||
<div class="tit">
|
||
收货地址:
|
||
</div>
|
||
<div class="addbox">
|
||
<div class="addli" v-for="(item, index) in userinfo.detailinfo.addresses" :key="index">
|
||
<div class="addtxt">
|
||
姓名:{{ item.realName }}
|
||
</div>
|
||
<div class="addtxt">
|
||
手机号:{{ item.phone }}
|
||
</div>
|
||
<div class="addtxt">
|
||
收件地址:{{ item.city }} {{ item.district }}{{ item.detail }}
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="tit">
|
||
IP记录
|
||
</div>
|
||
<div class="info" v-for="(item, index) in userinfo.detailinfo.ips" :key="index">
|
||
|
||
<div class="infoli">{{ item.loginTime }}</div>
|
||
<div class="infoli">{{ item.ipaddr }}</div>
|
||
<!-- <div class="infoli">福建省 福鼎市</div> -->
|
||
<div class="infoli" style="color: red;">{{ item.loginLocation }}</div>
|
||
|
||
</div>
|
||
<!-- <div class="tit">
|
||
位置信息
|
||
</div>
|
||
<div ref="map" style="width: 100%; height: 400px;"></div> -->
|
||
</div>
|
||
<div class="fkbox" v-if="detailindex == 3 && userinfo.tlxinfo && userinfo.zwxinfo">
|
||
<div class="titbox" style="margin-top: 10px;">
|
||
<div class="tit" :class="fkxindex == 0 ? 'act' : ''" @click="fkxindex = 0">
|
||
天狼星报告
|
||
</div>
|
||
<div class="tit" :class="fkxindex == 1 ? 'act' : ''" @click="fkxindex = 1">
|
||
紫微星报告
|
||
</div>
|
||
</div>
|
||
<div v-show="fkxindex == 0">
|
||
<div class="noreport">
|
||
<div class="btn" v-show="userinfo.tlxinfo.url == null" @click="tlxReport()">获取报告</div>
|
||
<div class="btn" v-show="userinfo.tlxinfo.url != null" @click="tlxReport()">重新获取报告</div>
|
||
<div class="tip" v-show="userinfo.tlxinfo.url == null">暂无报告</div>
|
||
|
||
</div>
|
||
<img :src="userinfo.tlxinfo.url" alt="" v-show="userinfo.tlxinfo.url != null">
|
||
|
||
</div>
|
||
<div v-show="fkxindex == 1">
|
||
<div class="noreport">
|
||
<div class="btn" v-show="userinfo.zwxinfo.url == null" @click="zwxReport()">获取报告</div>
|
||
<div class="btn" v-show="userinfo.zwxinfo.url != null" @click="zwxReport()">重新获取报告</div>
|
||
<div class="tip" v-show="userinfo.zwxinfo.url == null">暂无报告</div>
|
||
|
||
</div>
|
||
<img :src="userinfo.zwxinfo.url" alt="" v-show="userinfo.zwxinfo.url != null">
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div class="zdbox" v-if="detailindex != 0 && userinfo && detailindex != 3 && detailindex != 9"
|
||
style="width: 1500px;">
|
||
<el-col :span="20">
|
||
<el-table :data="tableDatas.data" style="width: 1200px;" v-loading="loading" max-height="700">
|
||
<el-table-column :prop="item.key" :label="item.title" width="item.minWidth" :show-overflow-tooltip="true"
|
||
v-for="(item, index) in columns" :key="index" />
|
||
</el-table>
|
||
<div class="block">
|
||
<el-pagination :page-sizes="[6, 12, 18, 24]" :page-size="tableFroms.limit" :current-page="tableFroms.page"
|
||
layout="total, sizes, prev, pager, next, jumper" :total="tableDatas.total"
|
||
@size-change="handleSizeChanges" @current-change="pageChanges" />
|
||
</div>
|
||
</el-col>
|
||
|
||
</div>
|
||
<div class="remake" v-if="detailindex == 9">
|
||
<el-popover placement="right" width="400" trigger="manual" v-model="visibl">
|
||
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="adremake">
|
||
</el-input>
|
||
<el-button type="text" size="small" class="mr10" @click="addremark()">确认添加</el-button>
|
||
<el-button type="text" size="small" class="mr10" @click="visibl = false">取消</el-button>
|
||
<el-button type="text" size="small" slot="reference" class="mr10" @click="visibl = !visibl">添加备注</el-button>
|
||
</el-popover>
|
||
<el-table :data="remakeData.data" style="width: 100%" size="mini">
|
||
|
||
<el-table-column prop="updateTime" label="备注时间" min-width="50" align="center" />
|
||
<el-table-column prop="remark" label="备注内容" min-width="50" align="center" />
|
||
<el-table-column label="操作" min-width="120" fixed="right" align="center">
|
||
<template slot-scope="scope">
|
||
<el-button type="text" size="small" @click="delremark(scope.row)" class="mr10"
|
||
v-hasPermi="['admin:channel:update']">删除备注</el-button>
|
||
|
||
<el-popover placement="right" width="400" trigger="manual" v-model="visible">
|
||
<el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="upremake">
|
||
</el-input>
|
||
<el-button type="text" size="small" class="mr10" @click="upRemake(scope.row)">确认修改</el-button>
|
||
<el-button type="text" size="small" class="mr10" @click="visible = false">取消</el-button>
|
||
<el-button type="text" size="small" slot="reference" class="mr10"
|
||
@click="visible = !visible">修改备注</el-button>
|
||
</el-popover>
|
||
|
||
<!-- <el-switch v-model="scope.row.status" :active-value="true" :inactive-value="false" active-text="打开"
|
||
inactive-text="关闭" @change="onchangeIsShow(scope.row)" /> -->
|
||
</template>
|
||
</el-table-column>
|
||
<!-- <el-table-column prop="installmentNumber" label="期数" min-width="50" align="center"/> -->
|
||
|
||
</el-table>
|
||
</div>
|
||
</div>
|
||
|
||
</el-dialog>
|
||
|
||
<!-- 发送货 -->
|
||
<order-send ref="send" :orderId="orderId" @submitFail="getList" :expressListNormal="expressListNormal"
|
||
:expressListElec="expressListElec" :orderDetail="orderDetail"></order-send>
|
||
|
||
<!-- 发送货视频号商品 -->
|
||
<order-video-send ref="videoSend" :orderId="orderId" @submitFail="getList"></order-video-send>
|
||
|
||
<!--拒绝退款-->
|
||
<el-dialog title="拒绝退款原因" v-if="RefuseVisible" :visible.sync="RefuseVisible" width="500px"
|
||
:before-close="RefusehandleClose">
|
||
<zb-parser :form-id="106" :is-create="1" :edit-data="RefuseData" @submit="RefusehandlerSubmit"
|
||
@resetForm="resetFormRefusehand" />
|
||
</el-dialog>
|
||
|
||
<!--立即退款-->
|
||
<el-dialog title="退款处理" :visible.sync="refundVisible" width="500px" :before-close="refundhandleClose">
|
||
<zb-parser :form-id="107" :is-create="1" :edit-data="refundData" @submit="refundhandlerSubmit"
|
||
v-if="refundVisible" @resetForm="resetFormRefundhandler" />
|
||
</el-dialog>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
// const PDFJS = require("pdfjs-dist");
|
||
// PDFJS.GlobalWorkerOptions.workerSrc = require("pdfjs-dist/build/pdf.worker.min");
|
||
import {
|
||
orderListDataApi,
|
||
orderStatusNumApi,
|
||
writeUpdateApi,
|
||
orderListApi,
|
||
updatePriceApi,
|
||
orderLogApi,
|
||
orderMarkApi,
|
||
orderDeleteApi,
|
||
orderRefuseApi,
|
||
orderRefundApi,
|
||
orderPrint,
|
||
orderDetailApi, orderAuditApi,getUnclaimed,getAuditnum
|
||
} from '@/api/order'
|
||
import {
|
||
getIdentityInfos, getZwxReportCache, getTlxReportCache, infobyconditionApi, getZwxReport, getTlxReport, remarkList, remarkUpdata, addRemark, delRemark
|
||
} from '@/api/user'
|
||
import zbParser from '@/components/FormGenerator/components/parser/ZBParser';
|
||
// import detailsFrom from './orderDetail';
|
||
// import orderSend from './orderSend';
|
||
// import orderVideoSend from './orderVideoSend';
|
||
import { storeStaffListApi } from '@/api/storePoint';
|
||
import Cookies from 'js-cookie';
|
||
import { isWriteOff } from '@/utils';
|
||
import { orderExcelApi } from '@/api/store';
|
||
import { expressAllApi } from '@/api/sms';
|
||
import { checkPermi } from '@/utils/permission';
|
||
import { installmentBillList } from '@/api/installment' // 权限判断函数
|
||
import { integralListApi } from '@/api/marketing';
|
||
// import VueImageLightbox from 'vue-image-lightbox';
|
||
export default {
|
||
name: 'orderlistDetails',
|
||
components: {
|
||
zbParser,
|
||
// detailsFrom,
|
||
// orderSend,
|
||
// orderVideoSend,
|
||
|
||
|
||
},
|
||
data() {
|
||
return {
|
||
detailindex: 0,
|
||
fkxindex: 0,
|
||
userinfo: [
|
||
|
||
],
|
||
pdfDoc: null, // pdfjs 生成的对象
|
||
pdfHTML: 0, // pdfjs 生成的对象
|
||
pdfUrl: '',
|
||
detaillist: [
|
||
{ tit: '用户基础信息 ' },
|
||
{ tit: ' 订单记录 ' },
|
||
{ tit: '账单列表 ' },
|
||
{ tit: '风控报告 ' },
|
||
|
||
{ tit: '余额变动 ' },
|
||
{ tit: '好友关系 ' },
|
||
{ tit: '积分明细 ' },
|
||
{ tit: '签到记录 ' },
|
||
{ tit: '持有优惠券 ' },
|
||
{ tit: '备注' },
|
||
|
||
|
||
],
|
||
htVisible: false,
|
||
tableFroms: {
|
||
page: 1,
|
||
limit: 6,
|
||
type: '0',
|
||
userId: '',
|
||
},
|
||
upremake: '',
|
||
adremake: '',
|
||
visible: false,
|
||
visibl: false,
|
||
|
||
dialogVisibles: false,
|
||
options: [
|
||
{
|
||
value: 3,
|
||
label: '全部',
|
||
},
|
||
{
|
||
value: 0,
|
||
label: '普通订单',
|
||
},
|
||
{
|
||
value: 1,
|
||
label: '视频号订单',
|
||
},
|
||
{
|
||
value: 2,
|
||
label: '分期订单',
|
||
},
|
||
],
|
||
RefuseVisible: false,
|
||
RefuseData: {},
|
||
AuditVisible: false,//审核弹窗
|
||
AuditData: {},
|
||
orderId: '',
|
||
refundVisible: false,
|
||
refundData: {},
|
||
dialogVisibleJI: false,
|
||
dialogVisibleInstallment: false,
|
||
tableDataLog: {
|
||
data: [],
|
||
total: 0,
|
||
},
|
||
tableDataInstallment: {
|
||
data: [],
|
||
total: 0,
|
||
},
|
||
tableFromLog: {
|
||
page: 1,
|
||
limit: 10,
|
||
orderNo: 0,
|
||
},
|
||
tableFromInstall: {
|
||
page: 1,
|
||
limit: 10,
|
||
orderId: 0,
|
||
},
|
||
LogLoading: false,
|
||
InstallmentLoading: false,
|
||
isCreate: 1,
|
||
editData: null,
|
||
dialogVisible: false,
|
||
tableData: {
|
||
data: [],
|
||
total: 0,
|
||
},
|
||
listLoading: true,
|
||
//订单状态(all 总数; 未支付 unPaid; 未发货 notShipped;待收货 spike;待评价 bargain;已完成 complete;
|
||
// 待核销 toBeWrittenOff;退款中:refunding;已退款:refunded;已删除:deleted
|
||
tableFrom: {
|
||
status: 'all',
|
||
dateLimit: '',
|
||
orderNo: '',
|
||
page: 1,
|
||
limit: 20,
|
||
type: 3,
|
||
userName: '',
|
||
},
|
||
remarkFrom: {
|
||
page: 1,
|
||
limit: 6,
|
||
type: '0',
|
||
uid: ''
|
||
},
|
||
tableDatas: {
|
||
data: [],
|
||
total: 0,
|
||
},
|
||
remakeData: {
|
||
data: [],
|
||
total: 0,
|
||
},
|
||
columns: [],
|
||
Visible: false,
|
||
orderChartType: {},
|
||
timeVal: [],
|
||
fromList: this.$constants.fromList,
|
||
fromType: [
|
||
{ value: 'all', text: '全部' },
|
||
{ value: 'info', text: '普通' },
|
||
{ value: 'pintuan', text: '拼团' },
|
||
{ value: 'bragin', text: '砍价' },
|
||
{ value: 'miaosha', text: '秒杀' },
|
||
],
|
||
selectionList: [],
|
||
ids: '',
|
||
orderids: '',
|
||
cardLists: [],
|
||
isWriteOff: isWriteOff(),
|
||
proType: 0,
|
||
active: false,
|
||
card_select_show: false,
|
||
checkAll: false,
|
||
checkedCities: ['订单号', '订单类型', '收货人', '商品信息', '实际支付', '支付方式', '订单状态', '下单时间'],
|
||
columnData: ['订单号', '订单类型', '收货人', '商品信息', '实际支付', '支付方式', '订单状态', '下单时间'],
|
||
isIndeterminate: true,
|
||
expressListNormal: [], //全部物流公司 normal
|
||
expressListElec: [], //全部物流公司 elec
|
||
orderDetail: null, //订单详情\
|
||
uid: '',
|
||
isImageOpen: false,
|
||
openedImage: '',
|
||
orderNum:'10',
|
||
allOrderNum:0,
|
||
};
|
||
},
|
||
mounted() {
|
||
this.getList();
|
||
this.getOrderStatusNum();
|
||
// this.getOrderListData();
|
||
// this.getExpress();
|
||
this.getauditNum()
|
||
},
|
||
methods: {
|
||
getRelationship(value) {
|
||
console.log(value,'valuevaluevaluevalue');
|
||
switch(value) {
|
||
case '0':
|
||
return '父母';
|
||
case '1':
|
||
return '子女';
|
||
case '2':
|
||
return '兄弟';
|
||
case '3':
|
||
return '姐妹';
|
||
case '4':
|
||
return '亲戚';
|
||
case '5':
|
||
return '朋友';
|
||
case '6':
|
||
return '配偶';
|
||
case '7':
|
||
return '同事';
|
||
default:
|
||
return '未知关系';
|
||
}
|
||
},
|
||
getOrder(){
|
||
if(this.orderNum==0){
|
||
this.$message.error('请输入正确的订单数量');
|
||
}else{
|
||
getAuditnum(this.orderNum).then((res) => {
|
||
this.getList();
|
||
this.getOrderStatusNum();
|
||
this.getauditNum()
|
||
});
|
||
}
|
||
|
||
},
|
||
getauditNum(){
|
||
|
||
getUnclaimed().then((res) => {
|
||
this.allOrderNum=res
|
||
console.log(res,'resres');
|
||
});
|
||
},
|
||
openImage(image) {
|
||
this.openedImage = image;
|
||
this.isImageOpen = true;
|
||
},
|
||
closeImage() {
|
||
this.isImageOpen = false;
|
||
},
|
||
checkPermi,
|
||
// 物流公司列表
|
||
async getExpress() {
|
||
this.expressListNormal = await this.getExpressList('normal'); //全部物流公司
|
||
this.expressListElec = await this.getExpressList('elec');
|
||
},
|
||
// 物流公司列表
|
||
async getExpressList(expressType) {
|
||
return new Promise((resolve, reject) => {
|
||
expressAllApi({ type: expressType }).then((res) => {
|
||
resolve(res);
|
||
});
|
||
});
|
||
},
|
||
showht(url){
|
||
// this.pdfUrl='@/assets/222.pdf'
|
||
this.pdfUrl='http://api.yruibao.com/crmebimage/public/content/2024/02/03/0eba557ba62041e190b8d819a9f69ca3884hdh9izs.pdf'
|
||
// const CMAP_URL = "https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/cmaps/";
|
||
// let obj = {};
|
||
// obj.url = this.pdfUrl; //pdf文件地址,根据情景自行修改
|
||
// obj.cMapUrl = CMAP_URL;
|
||
// obj.cMapPacked = true;
|
||
// this.init(obj);
|
||
this.htVisible=true
|
||
},
|
||
async upRemake(row) {
|
||
console.log(this.upremake, 'idididid');
|
||
let data = {
|
||
remark: this.upremake,
|
||
|
||
}
|
||
let id = row.id
|
||
await remarkUpdata(id, data).then((res) => {
|
||
this.upremake = ''
|
||
this.visible = false
|
||
this.getremake()
|
||
});
|
||
},
|
||
delremark(row) {
|
||
delRemark(row.id).then((res) => {
|
||
|
||
this.getremake()
|
||
});
|
||
},
|
||
addremark() {
|
||
let data = {
|
||
remark: this.adremake,
|
||
uid: this.uid
|
||
|
||
}
|
||
addRemark(data).then((res) => {
|
||
this.adremake = ''
|
||
this.visibl = false
|
||
this.getremake()
|
||
});
|
||
},
|
||
htClose() {
|
||
this.htVisible = false
|
||
},
|
||
|
||
init(fileUrl) {
|
||
let _this = this;
|
||
PDFJS.getDocument(fileUrl).then(fileContent => {
|
||
_this.pdfDoc = fileContent;
|
||
_this.pdfHTML = fileContent.numPages;
|
||
setTimeout(() => {
|
||
_this.renderPage(fileContent.numPages);
|
||
}, 100)
|
||
});
|
||
},
|
||
renderPage(nums) {
|
||
for (let item = 1; item <= nums; item++) {
|
||
// 获取页面canvas节点
|
||
let canvas = document.getElementById(`canvas${item}`);
|
||
// 获取上下文
|
||
const ctx = canvas.getContext("2d");
|
||
// 获取每一页的内容
|
||
this.pdfDoc.getPage(item).then(page => {
|
||
// 文件页面的视图 1倍
|
||
const viewport = page.getViewport(1);
|
||
// 将画布宽度设置为视图宽度
|
||
canvas.width = viewport.width;
|
||
canvas.height = viewport.height;
|
||
|
||
const renderContext = {
|
||
canvasContext: ctx,
|
||
viewport: viewport
|
||
};
|
||
console.log(renderContext);
|
||
// 渲染页面内容:参数是canvas画布上下文,以及文件视图
|
||
page.render(renderContext);
|
||
});
|
||
}
|
||
},
|
||
pageChanges(page) {
|
||
this.tableFroms.page = page;
|
||
if (this.detailindex == 6) {
|
||
this.integral()
|
||
} else {
|
||
this.getInfos();
|
||
}
|
||
|
||
},
|
||
tlxReport() {
|
||
console.log("获取天狼星报告")
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
getTlxReport({ userId: this.uid }).then((res) => {
|
||
// console.log("11111111111111111---------"+JSON.stringify(res))
|
||
this.userinfo.tlxinfo = res
|
||
loading.close();
|
||
console.log(res, 'resresres');
|
||
if (res.code == 500) {
|
||
this.$message.error(res.msg);
|
||
}
|
||
this.$forceUpdate()
|
||
});
|
||
},
|
||
zwxReport() {
|
||
console.log("获取紫微星报告")
|
||
const loading = this.$loading({
|
||
lock: true,
|
||
text: 'Loading',
|
||
spinner: 'el-icon-loading',
|
||
background: 'rgba(0, 0, 0, 0.7)'
|
||
});
|
||
getZwxReport({ userId: this.uid }).then((res) => {
|
||
this.userinfo.zwxinfo = res
|
||
loading.close();
|
||
if (res.code == 500) {
|
||
this.$message.error(res.msg);
|
||
}
|
||
this.$forceUpdate()
|
||
});
|
||
},
|
||
handleSizeChanges(val) {
|
||
this.tableFroms.limit = val;
|
||
if (this.detailindex == 6) {
|
||
this.integral()
|
||
} else {
|
||
this.getInfos();
|
||
}
|
||
},
|
||
getuserinfo(id) {
|
||
this.detailindex = 0
|
||
this.uid = id
|
||
this.tableFroms.userId = id
|
||
getIdentityInfos(id)
|
||
.then((res) => {
|
||
let detailinfo = {}
|
||
detailinfo = res
|
||
this.userinfo.detailinfo = detailinfo
|
||
|
||
this.dialogVisibles = true
|
||
})
|
||
.catch((res) => {
|
||
this.loading = false;
|
||
});
|
||
getTlxReportCache(id)
|
||
.then((res) => {
|
||
this.userinfo.tlxinfo = res
|
||
})
|
||
.catch((res) => {
|
||
|
||
});
|
||
getZwxReportCache(id)
|
||
.then((res) => {
|
||
this.userinfo.zwxinfo = res
|
||
})
|
||
.catch((res) => {
|
||
|
||
});
|
||
console.log(this.userinfo, 'detailinfodetailinfodetailinfo');
|
||
},
|
||
changeindex(index) {
|
||
console.log(index, 'indexindexindex');
|
||
this.detailindex = index
|
||
if (index == 2) {
|
||
this.tableFroms.type = '6'
|
||
this.getInfos()
|
||
} else if (index == 1) {
|
||
this.tableFroms.type = '0'
|
||
this.getInfos()
|
||
} else if (index == 4) {
|
||
this.tableFroms.type = '4'
|
||
this.getInfos()
|
||
} else if (index == 5) {
|
||
this.tableFroms.type = '5'
|
||
this.getInfos()
|
||
} else if (index == 6) {
|
||
// this.tableFroms.type='2'
|
||
this.integral()
|
||
} else if (index == 7) {
|
||
this.tableFroms.type = '2'
|
||
this.getInfos()
|
||
} else if (index == 8) {
|
||
this.tableFroms.type = '3'
|
||
this.getInfos()
|
||
} else if (index == 9) {
|
||
this.getremake()
|
||
}
|
||
},
|
||
getremake() {
|
||
this.remarkFrom.uid = this.uid
|
||
remarkList(this.remarkFrom)
|
||
.then((res) => {
|
||
this.remakeData.data = res.list;
|
||
this.remakeData.total = res.total;
|
||
|
||
})
|
||
.catch(() => {
|
||
|
||
});
|
||
},
|
||
integral() {
|
||
this.loading = true;
|
||
integralListApi({ limit: this.tableFroms.limit, page: this.tableFroms.page }, { uid: this.uid })
|
||
.then((res) => {
|
||
this.tableDatas.data = res.list;
|
||
this.tableDatas.total = res.total;
|
||
this.columns = [
|
||
{
|
||
title: '来源/用途',
|
||
key: 'title',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '积分变化',
|
||
key: 'integral',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '变化后积分',
|
||
key: 'balance',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '日期',
|
||
key: 'updateTime',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '备注',
|
||
key: 'mark',
|
||
minWidth: 120,
|
||
},
|
||
];
|
||
this.loading = false;
|
||
})
|
||
.catch((res) => {
|
||
this.loading = false;
|
||
});
|
||
},
|
||
getInfos() {
|
||
infobyconditionApi(this.tableFroms)
|
||
.then((res) => {
|
||
this.tableDatas.data = res.list;
|
||
this.tableDatas.total = res.total;
|
||
console.log(this.tableDatas, ' this.tableDatas this.tableDatas');
|
||
switch (this.tableFroms.type) {
|
||
case '0':
|
||
this.columns = [
|
||
{
|
||
title: '订单ID',
|
||
key: 'orderId',
|
||
minWidth: 250,
|
||
},
|
||
{
|
||
title: '收货人',
|
||
key: 'realName',
|
||
minWidth: 90,
|
||
},
|
||
{
|
||
title: '商品数量',
|
||
key: 'totalNum',
|
||
minWidth: 80,
|
||
},
|
||
{
|
||
title: '订单状态',
|
||
key: 'statusStr.value',
|
||
minWidth: 80,
|
||
},
|
||
{
|
||
title: '商品总价',
|
||
key: 'totalPrice',
|
||
minWidth: 90,
|
||
},
|
||
{
|
||
title: '实付金额',
|
||
key: 'payPrice',
|
||
minWidth: 90,
|
||
},
|
||
{
|
||
title: '交易完成时间',
|
||
key: 'payTime',
|
||
minWidth: 160,
|
||
},
|
||
];
|
||
break;
|
||
case '2':
|
||
this.columns = [
|
||
{
|
||
title: '动作',
|
||
key: 'title',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '获得积分',
|
||
key: 'number',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '签到时间',
|
||
key: 'createTime',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '备注',
|
||
key: 'title',
|
||
minWidth: 120,
|
||
},
|
||
];
|
||
break;
|
||
case '3':
|
||
this.columns = [
|
||
{
|
||
title: '优惠券名称',
|
||
key: 'name',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '面值',
|
||
key: 'money',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '有效期',
|
||
key: 'endTime',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '最低消费额',
|
||
key: 'minPrice',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '兑换时间',
|
||
key: 'updateTime',
|
||
minWidth: 120,
|
||
},
|
||
];
|
||
break;
|
||
case '4':
|
||
this.columns = [
|
||
{
|
||
title: '变动金额',
|
||
key: 'number',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '变动后',
|
||
key: 'balance',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '类型',
|
||
key: 'title',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '创建时间',
|
||
key: 'add_time',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '备注',
|
||
key: 'mark',
|
||
minWidth: 120,
|
||
},
|
||
];
|
||
break;
|
||
case '5':
|
||
this.columns = [
|
||
{
|
||
title: 'ID',
|
||
key: 'uid',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '昵称',
|
||
key: 'nickname',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '等级',
|
||
key: 'level',
|
||
minWidth: 120,
|
||
},
|
||
{
|
||
title: '加入时间',
|
||
key: 'createTime',
|
||
minWidth: 120,
|
||
},
|
||
];
|
||
break;
|
||
default:
|
||
this.columns = [
|
||
{
|
||
title: '账单ID',
|
||
key: 'id',
|
||
minWidth: 50,
|
||
},
|
||
{
|
||
title: '订单号',
|
||
key: 'orderIdStr',
|
||
minWidth: 200,
|
||
},
|
||
{
|
||
title: '期数',
|
||
key: 'installmentNumberStr',
|
||
minWidth: 30,
|
||
},
|
||
{
|
||
title: '还款时间',
|
||
key: 'repaymentDeadlineStr',
|
||
minWidth: 180,
|
||
},
|
||
{
|
||
title: '还款金额(元)',
|
||
key: 'repaymentAmount',
|
||
minWidth: 100,
|
||
},
|
||
{
|
||
title: '还款方式',
|
||
key: 'paymentMethod',
|
||
minWidth: 80,
|
||
},
|
||
|
||
{
|
||
title: '状态',
|
||
key: 'repaymentStatus',
|
||
minWidth: 80,
|
||
},
|
||
|
||
|
||
{
|
||
title: '创建时间',
|
||
key: 'createTime',
|
||
minWidth: 180,
|
||
},
|
||
];
|
||
}
|
||
|
||
})
|
||
.catch(() => {
|
||
|
||
});
|
||
},
|
||
resetFormRefundhandler() {
|
||
this.refundVisible = false;
|
||
},
|
||
resetFormRefusehand() {
|
||
this.RefuseVisible = false;
|
||
},
|
||
resetFormAudithand() {
|
||
this.AuditVisible = false;
|
||
},
|
||
resetForm(formValue) {
|
||
this.dialogVisible = false;
|
||
},
|
||
// 核销订单
|
||
onWriteOff(row) {
|
||
this.$modalSure('核销订单吗').then(() => {
|
||
writeUpdateApi(row.verifyCode).then(() => {
|
||
this.$message.success('核销成功');
|
||
this.tableFrom.page = 1;
|
||
this.getList();
|
||
});
|
||
});
|
||
},
|
||
seachList() {
|
||
this.tableFrom.page = 1;
|
||
this.getList();
|
||
this.getOrderStatusNum();
|
||
},
|
||
// 拒绝退款
|
||
RefusehandleClose() {
|
||
this.RefuseVisible = false;
|
||
},
|
||
//关闭 审核
|
||
AudithandleClose() {
|
||
this.AuditVisible = false;
|
||
},
|
||
onOrderRefuse(row) {
|
||
this.orderids = row.orderId;
|
||
this.RefuseData = {
|
||
orderId: row.orderId,
|
||
reason: '',
|
||
};
|
||
this.RefuseVisible = true;
|
||
},
|
||
RefusehandlerSubmit(formValue) {
|
||
orderRefuseApi({ orderNo: this.orderids, reason: formValue.reason }).then((data) => {
|
||
this.$message.success('操作成功');
|
||
this.RefuseVisible = false;
|
||
this.getList();
|
||
});
|
||
},
|
||
//审核提交
|
||
AudithandlerSubmit(formValue) {
|
||
let data;
|
||
if (formValue.audit == "reject" && (formValue.reason == undefined || formValue.reason == "")) {
|
||
this.$message.error("驳回原因不能为空");
|
||
return
|
||
}
|
||
if (formValue.audit == "pass") {
|
||
data = { orderNo: this.orderids, reason: "", audit: formValue.audit };
|
||
} else {
|
||
data = { orderNo: this.orderids, reason: formValue.reason, audit: formValue.audit };
|
||
}
|
||
console.log("formValue-------" + JSON.stringify(data));
|
||
orderAuditApi(formValue.audit, data).then((res) => {
|
||
this.$message.success('操作成功');
|
||
this.AuditVisible = false;
|
||
this.getList();
|
||
});
|
||
},
|
||
// 立即退款
|
||
refundhandleClose() {
|
||
this.refundVisible = false;
|
||
},
|
||
onOrderRefund(row) {
|
||
this.refundData = {
|
||
orderId: row.orderId,
|
||
amount: row.payPrice,
|
||
type: '',
|
||
};
|
||
this.orderids = row.orderId;
|
||
this.refundVisible = true;
|
||
},
|
||
refundhandlerSubmit(formValue) {
|
||
orderRefundApi({ amount: formValue.amount, orderNo: this.orderids }).then((data) => {
|
||
this.$message.success('操作成功');
|
||
this.refundVisible = false;
|
||
this.getList();
|
||
});
|
||
},
|
||
// 详情接口
|
||
getDetail(id) {
|
||
this.loading = true;
|
||
orderDetailApi({ orderNo: id })
|
||
.then((res) => {
|
||
this.orderDetail = res;
|
||
this.editData = {
|
||
orderId: id,
|
||
totalPrice: this.orderDetail.proTotalPrice,
|
||
totalPostage: this.orderDetail.payPostage,
|
||
payPrice: this.orderDetail.payPrice,
|
||
payPostage: this.orderDetail.payPostage,
|
||
};
|
||
})
|
||
.catch(() => {
|
||
this.orderDetail = null;
|
||
this.loading = false;
|
||
});
|
||
},
|
||
//修改快递单号
|
||
handleUpdateNumber(row) {
|
||
this.orderId = row.orderId;
|
||
this.$refs.send.modals = true;
|
||
this.$refs.send.loading = true;
|
||
//默认加载Normal物流公司
|
||
this.$refs.send.express = this.expressListNormal;
|
||
this.getDetail(row.orderId);
|
||
},
|
||
// 发送
|
||
sendOrder(row) {
|
||
this.orderDetail = null;
|
||
if (row.type === 0 || row.type === 2) {
|
||
this.$refs.send.modals = true;
|
||
//默认加载Normal物流公司
|
||
this.$refs.send.express = this.expressListNormal;
|
||
this.$refs.send.sheetInfo();
|
||
} else {
|
||
this.$refs.videoSend.modals = true;
|
||
if (!JSON.parse(sessionStorage.getItem('videoExpress'))) this.$refs.videoSend.companyGetList();
|
||
}
|
||
this.orderId = row.orderId;
|
||
},
|
||
// 订单删除
|
||
handleDelete(row, idx) {
|
||
if (row.isDel) {
|
||
this.$modalSure().then(() => {
|
||
orderDeleteApi({ orderNo: row.orderId }).then(() => {
|
||
this.$message.success('删除成功');
|
||
if (this.tableData.data.length === 1 && this.tableFrom.page > 1)
|
||
this.tableFrom.page = this.tableFrom.page - 1;
|
||
this.getList();
|
||
});
|
||
});
|
||
} else {
|
||
this.$confirm('您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!', '提示', {
|
||
confirmButtonText: '确定',
|
||
type: 'error',
|
||
});
|
||
}
|
||
},
|
||
// 详情
|
||
onOrderDetails(id) {
|
||
this.orderId = id;
|
||
this.$refs.orderDetail.getDetail(id);
|
||
this.$refs.orderDetail.dialogVisible = true;
|
||
},
|
||
// 账单
|
||
onInstallmentBills(id) {
|
||
this.tableFromLog.limit = 10;
|
||
this.orderId = id;
|
||
this.dialogVisibleInstallment = true;
|
||
this.getInstallmentList(id);
|
||
},
|
||
// 审核
|
||
onAudit(row) {
|
||
this.orderids = row.orderId;
|
||
this.AuditData = {
|
||
orderId: row.orderId,
|
||
audit: "pass",
|
||
reason: ""
|
||
};
|
||
this.AuditVisible = true;
|
||
},
|
||
userDetail(row) {
|
||
console.log("----------" + JSON.stringify(row))
|
||
// this.orderids = row.orderId;
|
||
// this.AuditData = {
|
||
// orderId: row.orderId,
|
||
// audit: "pass",
|
||
// reason: ""
|
||
// };
|
||
// this.AuditVisible = true;
|
||
},
|
||
// 订单记录
|
||
onOrderLog(id) {
|
||
this.tableFromLog.limit = 10;
|
||
this.orderId = id;
|
||
this.dialogVisibleJI = true;
|
||
this.getOrderStatusList(id);
|
||
},
|
||
//订单记录请求列表
|
||
getOrderStatusList(id) {
|
||
this.LogLoading = true;
|
||
this.tableFromLog.orderNo = id;
|
||
orderLogApi(this.tableFromLog)
|
||
.then((res) => {
|
||
this.tableDataLog.data = res.list;
|
||
this.tableDataLog.total = res.total;
|
||
this.LogLoading = false;
|
||
})
|
||
.catch(() => {
|
||
this.LogLoading = false;
|
||
});
|
||
},
|
||
//账单列表
|
||
getInstallmentList(id) {
|
||
this.InstallmentLoading = true;
|
||
this.tableFromInstall.orderId = id;
|
||
installmentBillList(this.tableFromInstall)
|
||
.then((res) => {
|
||
this.tableDataInstallment.data = res.list;
|
||
this.tableDataInstallment.total = res.total;
|
||
this.InstallmentLoading = false;
|
||
})
|
||
.catch(() => {
|
||
this.InstallmentLoading = false;
|
||
});
|
||
},
|
||
pageChangeLog(page) {
|
||
this.tableFromLog.page = page;
|
||
this.getOrderStatusList(this.orderId);
|
||
},
|
||
handleSizeChangeLog(val) {
|
||
this.tableFromLog.limit = val;
|
||
this.getOrderStatusList(this.orderId);
|
||
},
|
||
handleClose() {
|
||
this.dialogVisibles = false;
|
||
},
|
||
// 备注
|
||
onOrderMark(row) {
|
||
this.$prompt('订单备注', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
inputErrorMessage: '请输入订单备注',
|
||
inputType: 'textarea',
|
||
inputValue: row.remark,
|
||
inputPlaceholder: '请输入订单备注',
|
||
inputValidator: (value) => {
|
||
if (!value) return '输入不能为空';
|
||
},
|
||
})
|
||
.then(({ value }) => {
|
||
orderMarkApi({ mark: value, orderNo: row.orderId }).then(() => {
|
||
this.$message.success('操作成功');
|
||
this.getList();
|
||
});
|
||
})
|
||
.catch(() => {
|
||
this.$message.info('取消输入');
|
||
});
|
||
},
|
||
handleSelectionChange(val) {
|
||
this.selectionList = val;
|
||
const data = [];
|
||
this.selectionList.map((item) => {
|
||
data.push(item.orderId);
|
||
});
|
||
this.ids = data.join(',');
|
||
},
|
||
// 选择时间
|
||
selectChange(tab) {
|
||
this.timeVal = [];
|
||
this.tableFrom.page = 1;
|
||
this.getList();
|
||
this.getOrderStatusNum();
|
||
// this.getOrderListData();
|
||
},
|
||
// 具体日期
|
||
onchangeTime(e) {
|
||
this.timeVal = e;
|
||
this.tableFrom.dateLimit = e ? this.timeVal.join(',') : '';
|
||
this.tableFrom.page = 1;
|
||
this.getList();
|
||
this.getOrderStatusNum();
|
||
// this.getOrderListData();
|
||
},
|
||
// 编辑
|
||
edit(row) {
|
||
//this.getDetail(row.orderId);
|
||
this.orderId = row.orderId;
|
||
|
||
this.editData = {
|
||
orderId: row.orderId,
|
||
proTotalPrice: row.proTotalPrice,
|
||
beforePayPrice: row.beforePayPrice ? row.beforePayPrice : row.payPrice,
|
||
payPrice: row.payPrice,
|
||
};
|
||
this.dialogVisible = true;
|
||
},
|
||
handlerSubmit(formValue) {
|
||
let data = {
|
||
orderNo: formValue.orderId,
|
||
payPrice: formValue.payPrice,
|
||
};
|
||
updatePriceApi(data).then((data) => {
|
||
this.$message.success('编辑成功');
|
||
this.dialogVisible = false;
|
||
this.getList();
|
||
});
|
||
},
|
||
// 列表
|
||
getList() {
|
||
this.listLoading = true;
|
||
orderListApi(this.tableFrom)
|
||
.then((res) => {
|
||
this.tableData.data = res.list || [];
|
||
this.tableData.total = res.total;
|
||
this.listLoading = false;
|
||
this.checkedCities = this.$cache.local.has('order_stroge')
|
||
? this.$cache.local.getJSON('order_stroge')
|
||
: this.checkedCities;
|
||
})
|
||
.catch(() => {
|
||
this.listLoading = false;
|
||
});
|
||
},
|
||
// 数据统计
|
||
getOrderListData() {
|
||
orderListDataApi({ dateLimit: this.tableFrom.dateLimit }).then((res) => {
|
||
this.cardLists = [
|
||
{ name: '订单数量', count: res.count, color: '#1890FF', class: 'one', icon: 'icondingdan' },
|
||
{ name: '订单金额', count: res.amount, color: '#A277FF', class: 'two', icon: 'icondingdanjine' },
|
||
{
|
||
name: '微信支付金额',
|
||
count: res.weChatAmount,
|
||
color: '#EF9C20',
|
||
class: 'three',
|
||
icon: 'iconweixinzhifujine',
|
||
},
|
||
{ name: '余额支付金额', count: res.yueAmount, color: '#1BBE6B', class: 'four', icon: 'iconyuezhifujine2' },
|
||
];
|
||
});
|
||
},
|
||
// 获取各状态数量
|
||
getOrderStatusNum() {
|
||
orderStatusNumApi({ dateLimit: this.tableFrom.dateLimit, type: this.tableFrom.type }).then((res) => {
|
||
this.orderChartType = res;
|
||
});
|
||
},
|
||
pageChange(page) {
|
||
this.tableFrom.page = page;
|
||
this.getList();
|
||
},
|
||
handleSizeChange(val) {
|
||
this.tableFrom.limit = val;
|
||
this.getList();
|
||
},
|
||
exports() {
|
||
let data = {
|
||
dateLimit: this.tableFrom.dateLimit,
|
||
orderNo: this.tableFrom.orderNo,
|
||
status: this.tableFrom.status,
|
||
type: this.tableFrom.type,
|
||
};
|
||
orderExcelApi(data).then((res) => {
|
||
window.open(res.fileName);
|
||
});
|
||
},
|
||
renderHeader(h) {
|
||
return (
|
||
<p>
|
||
<span style="padding-right:5px;">操作</span>
|
||
<i class="el-icon-setting" onClick={() => this.handleAddItem()}></i>
|
||
</p>
|
||
);
|
||
},
|
||
handleAddItem() {
|
||
if (this.card_select_show) {
|
||
this.$set(this, 'card_select_show', false);
|
||
} else if (!this.card_select_show) {
|
||
this.$set(this, 'card_select_show', true);
|
||
}
|
||
},
|
||
handleCheckAllChange(val) {
|
||
this.checkedCities = val ? this.columnData : [];
|
||
this.isIndeterminate = false;
|
||
},
|
||
handleCheckedCitiesChange(value) {
|
||
let checkedCount = value.length;
|
||
this.checkAll = checkedCount === this.columnData.length;
|
||
this.isIndeterminate = checkedCount > 0 && checkedCount < this.columnData.length;
|
||
},
|
||
checkSave() {
|
||
this.card_select_show = false;
|
||
this.$modal.loading('正在保存到本地,请稍候...');
|
||
this.$cache.local.setJSON('order_stroge', this.checkedCities);
|
||
setTimeout(this.$modal.closeLoading(), 1000);
|
||
},
|
||
//打印小票
|
||
onOrderPrint(data) {
|
||
orderPrint(data.orderId)
|
||
.then((res) => {
|
||
this.$modal.msgSuccess('打印成功');
|
||
})
|
||
.catch((error) => {
|
||
this.$modal.msgError(error.message);
|
||
});
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
<style lang="scss" scoped>
|
||
.pdfCom::-webkit-scrollbar {
|
||
width: 10px;
|
||
}
|
||
|
||
.pdfCom::-webkit-scrollbar-track {
|
||
background-color: #FFFFFF;
|
||
}
|
||
|
||
.pdfCom::-webkit-scrollbar-thumb {
|
||
background-color: #EAF4FF;
|
||
border-radius: 10px;
|
||
// height: .625rem;
|
||
}
|
||
|
||
.pdfCom::-webkit-scrollbar-thumb:hover {
|
||
background-color: #EAF4FF;
|
||
}
|
||
|
||
.pdfCom {
|
||
margin: 20px auto;
|
||
max-height: 600px;
|
||
overflow-x: hidden;
|
||
overflow-y: auto;
|
||
}
|
||
|
||
.overlay {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background-color: rgba(0, 0, 0, 0.7);
|
||
z-index: 999;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
|
||
.image-container {
|
||
max-width: 80%;
|
||
max-height: 80%;
|
||
}
|
||
|
||
.enlarged-image {
|
||
max-width: 800px;
|
||
max-height: 800px;
|
||
}
|
||
|
||
.detailbox::-webkit-scrollbar {
|
||
width: 10px;
|
||
}
|
||
|
||
.detailbox::-webkit-scrollbar-track {
|
||
background-color: #FFFFFF;
|
||
}
|
||
|
||
.detailbox::-webkit-scrollbar-thumb {
|
||
background-color: #EAF4FF;
|
||
border-radius: 10px;
|
||
// height: .625rem;
|
||
}
|
||
|
||
.detailbox::-webkit-scrollbar-thumb:hover {
|
||
background-color: #EAF4FF;
|
||
}
|
||
|
||
.detailbox {
|
||
padding: 10px 60px;
|
||
width: 100%;
|
||
max-height: 670px;
|
||
overflow-x: hidden;
|
||
overflow-y: auto;
|
||
min-height: 600px;
|
||
|
||
.titbox {
|
||
display: flex;
|
||
flex-wrap: nowrap;
|
||
align-items: center;
|
||
|
||
.tit {
|
||
margin-right: 20px;
|
||
font-size: 18px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 700;
|
||
color: #9B9B9B;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.act {
|
||
color: #3D3D3D;
|
||
font-size: 24px;
|
||
}
|
||
}
|
||
|
||
.info_box {
|
||
margin-top: 25px;
|
||
width: 100%;
|
||
|
||
.info {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
|
||
.infoli {
|
||
width: 33%;
|
||
font-size: 18px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 400;
|
||
color: #3D3D3D;
|
||
line-height: 50px;
|
||
}
|
||
|
||
.infoimg {
|
||
width: 100%;
|
||
display: flex;
|
||
flex-wrap: nowrap;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
|
||
.infoimg_box {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
justify-content: center;
|
||
width: 305px;
|
||
|
||
.noimg {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 305px;
|
||
height: 181px;
|
||
background: #D8D8D8;
|
||
border-radius: 10px 10px 10px 10px;
|
||
font-size: 18px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 400;
|
||
color: #959595;
|
||
}
|
||
|
||
img {
|
||
width: 305px;
|
||
height: 181px;
|
||
border-radius: 10px 10px 10px 10px;
|
||
}
|
||
|
||
.text {
|
||
margin-top: 10px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 400;
|
||
color: #3A3A3A;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.tit {
|
||
font-size: 18px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 700;
|
||
color: #3D3D3D;
|
||
line-height: 50px;
|
||
}
|
||
|
||
.addbox {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
|
||
.addli {
|
||
display: flex;
|
||
flex-wrap: nowrap;
|
||
|
||
.addtxt {
|
||
margin-right: 20px;
|
||
font-size: 18px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 400;
|
||
color: #3D3D3D;
|
||
line-height: 50px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.fkbox {
|
||
.titbox {
|
||
display: flex;
|
||
flex-wrap: nowrap;
|
||
align-items: center;
|
||
|
||
.tit {
|
||
margin-right: 30px;
|
||
font-size: 18px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 700;
|
||
color: #9B9B9B;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.act {
|
||
color: #3D3D3D;
|
||
font-size: 22px;
|
||
}
|
||
}
|
||
|
||
img {
|
||
width: 100%;
|
||
height: auto;
|
||
}
|
||
|
||
.noreport {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
// justify-content: center;
|
||
|
||
.tip {
|
||
margin-top: 80px;
|
||
width: 100%;
|
||
font-size: 35px;
|
||
text-align: center;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 400;
|
||
color: #CDCDCD;
|
||
}
|
||
|
||
.btn {
|
||
cursor: pointer;
|
||
margin-top: 20px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 130px;
|
||
height: 40px;
|
||
background: #468DFF;
|
||
border-radius: 10px 10px 10px 10px;
|
||
|
||
font-size: 16px;
|
||
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
|
||
font-weight: 400;
|
||
color: #FFFFFF;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.list1 {
|
||
display: flex;
|
||
flex-wrap: nowrap;
|
||
align-items: center;
|
||
|
||
.img {
|
||
width: 50px;
|
||
height: 50px;
|
||
|
||
img {
|
||
width: 50px;
|
||
height: 50px;
|
||
}
|
||
}
|
||
|
||
.info {
|
||
margin-left: 6px;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
|
||
.li {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
}
|
||
}
|
||
}
|
||
|
||
.list {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.el-table__body {
|
||
width: 100%;
|
||
table-layout: fixed !important;
|
||
}
|
||
|
||
.demo-table-expand {
|
||
::v-deeplabel {
|
||
width: 83px !important;
|
||
}
|
||
}
|
||
|
||
.refunding {
|
||
span {
|
||
display: block;
|
||
}
|
||
}
|
||
|
||
.selWidth {
|
||
width: 300px;
|
||
}
|
||
|
||
.el-dropdown-link {
|
||
cursor: pointer;
|
||
color: #409eff;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.el-icon-arrow-down {
|
||
font-size: 12px;
|
||
}
|
||
|
||
.tabBox_tit {
|
||
font-size: 12px !important;
|
||
/*margin: 0 2px 0 10px;*/
|
||
letter-spacing: 1px;
|
||
/*padding: 5px 0;*/
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.text_overflow {
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
max-width: 400px;
|
||
}
|
||
|
||
.pup_card {
|
||
width: 200px;
|
||
border-radius: 5px;
|
||
padding: 5px;
|
||
box-sizing: border-box;
|
||
font-size: 12px;
|
||
line-height: 16px;
|
||
}
|
||
|
||
.flex-column {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.mt20 {
|
||
margin-top: 20px;
|
||
}
|
||
|
||
.relative {
|
||
position: relative;
|
||
}
|
||
|
||
.card_abs {
|
||
position: absolute;
|
||
padding-bottom: 15px;
|
||
top: 520px;
|
||
right: 40px;
|
||
width: 200px;
|
||
background: #fff;
|
||
z-index: 99999;
|
||
box-shadow: 0px 0px 14px 0px rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
.cell_ht {
|
||
height: 50px;
|
||
padding: 15px 20px;
|
||
box-sizing: border-box;
|
||
border-bottom: 1px solid #eeeeee;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
|
||
.check_cell {
|
||
width: 100%;
|
||
padding: 15px 20px 0;
|
||
}
|
||
|
||
::v-deep .el-checkbox__input.is-checked+.el-checkbox__label {
|
||
color: #606266;
|
||
}
|
||
|
||
.el-form-item__content {
|
||
float: right;
|
||
}</style>
|
||
|