提交 2b40edcb 编写于 作者: huangwensu's avatar huangwensu

订单接口联调

上级 fcb087a4
...@@ -21,17 +21,23 @@ export default new Router({ ...@@ -21,17 +21,23 @@ export default new Router({
redirect: '/doctor-black', redirect: '/doctor-black',
},{ },{
path: '/doctor-black', path: '/doctor-black', // 医生黑名单
component: resolve => require(['../views/black-list/doctor-black.vue'], resolve), component: resolve => require(['../views/black-list/doctor-black.vue'], resolve),
},{ },{
path: '/empty-phone', path: '/empty-phone', // 居民假空号
component: resolve => require(['../views/black-list/empty-phone.vue'], resolve), component: resolve => require(['../views/black-list/empty-phone.vue'], resolve),
},{ },{
path: '/strategy-list', path: '/strategy-list', // 策略管理
component: resolve => require(['../views/strategy-data/strategy-list.vue'], resolve), component: resolve => require(['../views/strategy-data/strategy-list.vue'], resolve),
},{ },{
path: '/strategy-edit', path: '/strategy-edit',
component: resolve => require(['../views/strategy-data/strategy-edit.vue'], resolve), component: resolve => require(['../views/strategy-data/strategy-edit.vue'], resolve),
},{
path: '/order-list',
component: resolve => require(['../views/order-list/order-list.vue'], resolve),
},{
path: '/order-detail',
component: resolve => require(['../views/order-list/order-detail.vue'], resolve),
}, },
] ]
}, },
......
...@@ -120,7 +120,8 @@ export default { ...@@ -120,7 +120,8 @@ export default {
removeId: '', removeId: '',
removeTel: '', removeTel: '',
acceptValue: '*/*', acceptValue: '*/*',
importFileName: '' importFileName: '',
base64Str: ''
} }
}, },
mounted() { mounted() {
...@@ -161,11 +162,17 @@ export default { ...@@ -161,11 +162,17 @@ export default {
this.importDialogVisible = true; this.importDialogVisible = true;
}, },
confirmImport() { confirmImport() {
this.getData(
"post", `/riskcontrol/blacklist/import`, {base64Str: this.base64.file},
data => {
if(data.code == '000000') {
}
}
);
}, },
// 上传文件 // 上传文件
uploadImportFile(file) { uploadImportFile(file) {
console.log(file)
let self = this; let self = this;
this.importFileName = file.name; this.importFileName = file.name;
let arr = file.type.split('/'); let arr = file.type.split('/');
...@@ -178,22 +185,13 @@ export default { ...@@ -178,22 +185,13 @@ export default {
ext: ext ext: ext
}; };
self.base64 = fileJson; self.base64 = fileJson;
console.log('fileJson',self.base64);
}; };
reader.readAsDataURL(file); reader.readAsDataURL(file);
this.getData(
"post", `/riskcontrol/blacklist/import`, {base64Str: self.base64.file},
data => {
if(data.code == '000000') {
}
}
);
}, },
// 下载导入模板 // 下载导入模板
download() { download() {
console.log('下载模板'); console.log('下载模板');
setTimeout(() => { setTimeout(() => {
window.open(''); // 后台给的导入Excel地址 window.open(''); // 后台给的导入Excel地址
}, 500); }, 500);
}, },
......
<template>
<div class="order-detail-container">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/order-list' }">订单列表</el-breadcrumb-item>
<el-breadcrumb-item>订单详情</el-breadcrumb-item>
</el-breadcrumb>
<div class="order">
<p>订单信息</p>
<div>
<span class="label">订单ID:</span><span>{{rowId}}</span>
<span class="label">下单时间:</span><span>{{detailData.orderTime}}</span>
<span class="label">订单金额:</span><span>{{detailData.totalPrice}}</span>
<span class="label">支付方式:</span><span>{{payTypeText}}</span>
</div>
<div class="info">
<span v-for="(item, index) in detailData.goodsRespList" :key="index">
<span class="label">商品{{index + 1}}</span>{{item.goodsName}}*{{item.purchaseNum}}__{{item.purchasingPrice}}
</span>
</div>
</div>
<div class="order">
<p>开单店铺信息</p>
<span class="label">店铺名称:</span><span>{{detailData.storeName}}</span>
<span class="label">店铺所在区:</span><span>{{detailData.storeAddress}}</span>
</div>
<div class="order">
<p>下单人信息</p>
<span class="label">下单人姓名:</span><span>{{detailData.placeOrderName}}</span>
<span class="label">手机号:</span><span>{{detailData.placeOrderMobile}}</span>
<span class="label">地区归属:</span><span>{{detailData.placeOrderAddress}}</span>
</div>
<div class="order">
<p>处方信息</p>
<span class="label">暂无处方信息/处方图片:</span><span><img :src="detailData.recipeUrl"/></span>
</div>
<div class="order">
<p>收货人信息</p>
<span class="label">姓名:</span><span>{{detailData.receiverName}}</span>
<span class="label">手机号:</span><span>{{detailData.receiverMobile}}</span>
<span class="label">详细地址:</span><span>{{detailData.receiverAddress}}</span>
</div>
</div>
</template>
<script>
import { openLoading, closeLoading } from "../../common/utils";
export default {
data() {
return {
rowId: '',
detailData: {},
payTypeText: ''
}
},
created() {
this.rowId = this.$route.query.id;
},
mounted() {
this.getDetailData();
},
methods: {
// 封装一下请求通用的方法
getData(type, url, req, callback) {
openLoading(this);
this.$axios[type](localStorage.getItem("lectureUrl") + url, req)
.then(res => {
closeLoading(this);
let data = res.data;
if (data.code == "000000") {
if (callback) callback(data);
} else {
this.$message.error(data.message);
}
})
.catch(error => {
closeLoading(this);
this.$message.error("网络出现点问题");
});
},
getDetailData() {
this.getData(
"get", `/riskcontrol/tradeOrder/info/${this.rowId}`, {},
data => {
this.detailData = data.data;
this.payTypeText = this.detailData.payType == 1 ? "医生支付" : "医生代付"
}
);
}
}
}
</script>
<style lang="less" scoped>
.order-detail-container {
.order {
border-bottom: 1px solid #efefef;
padding-bottom: 20px;
p {
padding: 20px 0px 20px;
font-size: 18px;
font-weight: 700;
}
span.label {
// padding-right: 50px;
display: inline-block;
width: 100px;
text-align: right;
}
.info {
margin-top: 20px;
}
}
}
</style>
\ No newline at end of file
<template>
<div class="order-container">
<el-row :gutter="30" class="row search" type="flex" style="margin-bottom:0;">
<el-form ref="form" :model="searchParam" label-suffix=":" label-width="80px" style="width: 100%;">
<el-col :span="5">
<el-form-item label="订单信息">
<el-input v-model="searchParam.searchName" placeholder="请输入订单信息"></el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="时间">
<el-date-picker
v-model="searchParam.date"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="风险定级">
<el-select
v-model="searchParam.riskLevel"
size="small"
placeholder="请选择风险等级">
<el-option
v-for="item in riskSelectData"
:key="item.level"
:label="item.level"
:value="item.level"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" style="padding:0;text-align:right;padding-right:15px;">
<el-button type="primary" size="small" @click="search(1)">查询</el-button>
</el-col>
</el-form>
</el-row>
<el-table
class="search-table"
:data="tableData"
style="width: 100%">
<el-table-column prop="strOrderId" label="订单ID" min-width="140" align="center"></el-table-column>
<el-table-column prop="storeName" label="店铺名称" min-width="140" align="center"></el-table-column>
<el-table-column prop="prescriberName" label="开单人" min-width="150" align="center"></el-table-column>
<el-table-column prop="placeOrderName" label="下单人" min-width="150" align="center"></el-table-column>
<el-table-column prop="orderTime" label="下单时间" min-width="150" align="center"></el-table-column>
<el-table-column prop="riskLevel" label="风险定级" min-width="150" align="center"></el-table-column>
<el-table-column prop="riskStrategy" label="命中策略" min-width="150" align="center"></el-table-column>
<el-table-column label="操作" fixed="right" align="center" min-width="200">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="reviewDetail(scope.row)">查看详情</el-button>
<el-button :disabled="scope.row.orderTimetype != 1" type="primary" size="small" @click="changeRisk(scope.row)">变更风险等级</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="searchParam.pageNo"
:page-sizes="[15, 30, 50, 100, 200, 500, 700, 1000, 1500, 2000]"
:page-size="searchParam.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalRows">
</el-pagination>
</div>
<!-- 调整风险定级 -->
<el-dialog
title="提示"
:visible.sync="changeDialogVisible"
width="30%"
center>
<el-form ref="importForm" :model="addParam" label-suffix=":" label-width="80px">
<el-form-item label="风险定级">
<el-select v-model="addParam.riskLevel" placeholder="请选择风险等级">
<el-option
v-for="item in riskSelectData"
:key="item.level"
:label="item.level"
:value="item.level"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="变更理由">
<el-input v-model="addParam.riskLevelRemark" style="width: 300px;"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="changeDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="confirmChange">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { openLoading, closeLoading } from "../../common/utils";
export default {
data() {
return {
changeDialogVisible: false,
searchParam: {
searchName: '',
date: '',
riskLevel: '',
pageNo: 1,
pageSize: 15
},
addParam: {
riskLevel: '',
riskLevelRemark: ''
},
riskSelectData: [],
tableData: [],
totalRows: 0,
base64: '',
orderId: ''
}
},
mounted() {
this.search();
this.getRiskLeverData();
},
methods: {
// 封装一下请求通用的方法
getData(type, url, req, callback) {
openLoading(this);
this.$axios[type](localStorage.getItem("lectureUrl") + url, req)
.then(res => {
closeLoading(this);
let data = res.data;
if (data.code == "000000") {
if (callback) callback(data);
} else {
this.$message.error(data.message);
}
})
.catch(error => {
closeLoading(this);
this.$message.error("网络出现点问题");
});
},
// 获取风险等级数据
getRiskLeverData() {
this.getData(
"get", `/riskcontrol/tradeOrder/riskLevel`, {},
data => {
let arr = data.data;
arr.forEach((element, index) => {
this.riskSelectData.push({
level: element
})
});
}
);
},
search(param) {
if(param) this.searchParam.pageNo = 1;
this.getData(
"get", `/riskcontrol/tradeOrder/list?searchName=${this.searchParam.searchName}&pageNo=${this.searchParam.pageNo}&pageSize=${this.searchParam.pageSize}&date=${this.searchParam.date}&riskLevel=${this.searchParam.riskLevel}`, {},
data => {
this.tableData = data.data.tradeOrders;
this.totalRows = data.data.total;
}
);
},
// 查看详情
reviewDetail(row) {
this.$router.push({path: 'order-detail',query: {id: row.strOrderId}})
},
// 调整定级
changeRisk(row) {
this.changeDialogVisible = true;
this.orderId = row.strOrderId;
},
confirmChange() {
let req = {
orderId: this.orderId,
riskLevel: this.addParam.riskLevel,
riskLevelRemark: this.addParam.riskLevelRemark
};
this.getData(
"post", `/riskcontrol/tradeOrder/changeRiskLevel`, req,
data => {
if(data.code == '000000') {
this.changeDialogVisible = false;
}
}
);
},
handleSizeChange(value) {
this.searchParam.pageSize = value;
this.search();
},
handleCurrentChange(value) {
this.searchParam.pageNo = value;
this.search();
}
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册