parent
b06e6fe0de
commit
d62bba89c1
@ -0,0 +1,54 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询快递管理列表
|
||||
export function listPmsExpress(query, pageReq) {
|
||||
return request({
|
||||
url: '/pms/express/list',
|
||||
method: 'post',
|
||||
data: query,
|
||||
params: pageReq
|
||||
})
|
||||
}
|
||||
export function allExpress(query, pageReq) {
|
||||
return request({
|
||||
url: '/pms/express/all',
|
||||
method: 'post',
|
||||
data: query,
|
||||
params: pageReq
|
||||
})
|
||||
}
|
||||
|
||||
// 查询快递管理详细
|
||||
export function getPmsExpress(id) {
|
||||
return request({
|
||||
url: '/pms/express/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增快递管理
|
||||
export function addPmsExpress(data) {
|
||||
return request({
|
||||
url: '/pms/express',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改快递管理
|
||||
export function updatePmsExpress(data) {
|
||||
return request({
|
||||
url: '/pms/express',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除快递管理
|
||||
export function delPmsExpress(id) {
|
||||
return request({
|
||||
url: '/pms/express/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<el-select
|
||||
v-model="plansId"
|
||||
v-select-load-more="loadStaff"
|
||||
filterable
|
||||
:clearable="clearable"
|
||||
:placeholder="placeholder"
|
||||
default-first-option
|
||||
size="small"
|
||||
@change="handleSelect"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in staffList"
|
||||
:key="item.id"
|
||||
:label="item.planName"
|
||||
:value="item.id"
|
||||
>
|
||||
<div>
|
||||
<div class="inline-block item">
|
||||
<!-- <span class="title">名称:</span>-->
|
||||
<span class="option">{{ item.planName }}</span>
|
||||
</div>
|
||||
<!-- <div class="inline-block item">-->
|
||||
<!-- <span class="title">联系电话:</span>-->
|
||||
<!-- <span class="option">{{ item.phonenumber }}</span>-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<script>
|
||||
import { listAll } from '@/api/school/salary/commissionPlans'
|
||||
export default {
|
||||
props: {
|
||||
clearable: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
teacher: {
|
||||
type: String,
|
||||
default: undefined
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '选择方案'
|
||||
},
|
||||
value: {
|
||||
type: Number,
|
||||
default: undefined
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
plansId: this.value,
|
||||
staffList: [],
|
||||
pageNum: 1,
|
||||
hasMoreData: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value: {
|
||||
handler(newValue, oldValue) {
|
||||
this.plansId = newValue
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadStaff()
|
||||
},
|
||||
methods: {
|
||||
loadStaff: function() {
|
||||
|
||||
listAll().then(response => {
|
||||
if (response.code === 200) {
|
||||
this.staffList = response.data
|
||||
} else {
|
||||
this.msgError(response.msg)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
handleSelect: function(val) {
|
||||
this.$emit('input', val)
|
||||
this.$emit('change', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style ref="stylesheet/scss" lang="scss" scoped>
|
||||
.option{
|
||||
padding-right: 15px;
|
||||
color: #333;
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,113 @@
|
||||
<template>
|
||||
<el-select
|
||||
v-model="userId"
|
||||
v-select-load-more="loadStaff"
|
||||
filterable
|
||||
:clearable="clearable"
|
||||
:placeholder="placeholder"
|
||||
default-first-option
|
||||
size="small"
|
||||
@change="handleSelect"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in staffList"
|
||||
:key="item.userId"
|
||||
:label="item.nickName"
|
||||
:value="item.userId"
|
||||
>
|
||||
<div>
|
||||
<div class="inline-block item">
|
||||
<span class="title">姓名:</span>
|
||||
<span class="option">{{ item.nickName }}</span>
|
||||
</div>
|
||||
<div class="inline-block item">
|
||||
<span class="title">联系电话:</span>
|
||||
<span class="option">{{ item.phonenumber }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<script>
|
||||
import { listAll } from '@/api/system/user'
|
||||
export default {
|
||||
props: {
|
||||
clearable: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
teacher: {
|
||||
type: String,
|
||||
default: undefined
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '选择员工'
|
||||
},
|
||||
value: {
|
||||
type: String,
|
||||
default: undefined
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
userId: this.value,
|
||||
staffList: [],
|
||||
pageNum: 1,
|
||||
hasMoreData: false
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value: {
|
||||
handler(newValue, oldValue) {
|
||||
this.userId = newValue
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadStaff()
|
||||
},
|
||||
methods: {
|
||||
loadStaff: function() {
|
||||
if (this.pageNum === 1) {
|
||||
listAll({
|
||||
pageNum: this.pageNum
|
||||
}).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.staffList = response.rows
|
||||
console.log(this.staffList)
|
||||
this.hasMoreData = response.rows.length > 0
|
||||
this.pageNum = this.pageNum + 1
|
||||
} else {
|
||||
this.msgError(response.msg)
|
||||
}
|
||||
})
|
||||
} else if (this.hasMoreData) {
|
||||
listAll({
|
||||
pageNum: this.pageNum
|
||||
}).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.staffList = this.staffList.concat(response.rows)
|
||||
this.hasMoreData = response.rows.length > 0
|
||||
this.pageNum = this.pageNum + 1
|
||||
} else {
|
||||
this.msgError(response.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
handleSelect: function(val) {
|
||||
this.$emit('input', val)
|
||||
this.$emit('change', val)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style ref="stylesheet/scss" lang="scss" scoped>
|
||||
.option{
|
||||
padding-right: 15px;
|
||||
color: #333;
|
||||
font-weight: normal;
|
||||
}
|
||||
</style>
|
||||
@ -0,0 +1,14 @@
|
||||
export default {
|
||||
inserted(el, binding, vnode) {
|
||||
// 获取element-ui定义好的scroll盒子
|
||||
const SELECTWRAP_DOM = el.querySelector('.el-table__body-wrapper')
|
||||
|
||||
SELECTWRAP_DOM.addEventListener('scroll', function() {
|
||||
const sign = 100
|
||||
const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight
|
||||
if (scrollDistance <= sign) {
|
||||
binding.value()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,309 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
|
||||
<el-form-item label="订单类型" prop="orderType">
|
||||
<el-select v-model="queryParams.orderType" placeholder="请选择订单类型" clearable size="small">
|
||||
<el-option
|
||||
v-for="dict in dict.type.course_order_type"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="校区:" prop="deptId">
|
||||
<dept-select v-model="queryParams.deptId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="课程:" prop="courseId">
|
||||
<course-select v-model="queryParams.courseId" :dept-id="queryParams.deptId" clearable mounted-load-all />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="orderStatus">
|
||||
<el-select v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable size="small">
|
||||
<el-option
|
||||
v-for="dict in dict.type.course_order_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="经办日期" prop="handleDateArray">
|
||||
<el-date-picker
|
||||
v-model="handleDateArray"
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 230px"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd"
|
||||
placeholder="选择经办日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-dropdown>
|
||||
<el-button type="primary" size="mini">
|
||||
业务办理 <i class="el-icon-arrow-down el-icon--right" />
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item v-has-permi="['sc:order:handleSignUp']" icon="el-icon-plus" @click.native="signUp">报名</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
v-hasPermi="['sc:order:batchInvalid']"
|
||||
v-loading="loadingChange"
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click="batchInvalidOrder"
|
||||
>批量作废订单
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column prop="orderId" width="170" align="center" label="订单编号" fixed="left">
|
||||
<template slot-scope="scope">
|
||||
<span style="text-decoration: underline;cursor: pointer;" @click="handleOrderDetail(scope.row)">{{ scope.row.orderId }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="orderType" align="center" label="订单类型" :formatter="orderTypeFormat" fixed="left" />
|
||||
<el-table-column prop="orderStatus" align="center" label="订单状态" fixed="left">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.orderStatus === '1'" size="medium" type="info">未支付</el-tag>
|
||||
<el-tag v-if="scope.row.orderStatus === '2'" size="medium">已支付</el-tag>
|
||||
<el-tag v-if="scope.row.orderStatus === '3'" size="medium" type="danger">已作废</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="studentName" align="center" label="学生" />
|
||||
<el-table-column prop="phone" width="110" align="center" label="联系电话" />
|
||||
<el-table-column prop="orderDetail" width="200" align="center" label="销售内容">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip effect="dark" placement="left">
|
||||
<template slot="content">
|
||||
<div v-for="item in scope.row.orderDetail.split(';')" :key="item">
|
||||
<span>{{ item }}</span>
|
||||
</div>
|
||||
</template>
|
||||
<span style="display:inline-block;width: 180px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"> {{ scope.row.orderDetail }} </span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="actualTotalFee" align="center" label="应付(元)" />
|
||||
<el-table-column prop="receiptFee" align="center" label="实收(元)" />
|
||||
<el-table-column prop="balanceFee" width="120" align="center" label="余额支付(元)" />
|
||||
<el-table-column prop="saleStaffName" align="center" label="销售员" />
|
||||
<el-table-column prop="orderTag" align="center" label="订单标签" show-overflow-tooltip />
|
||||
<el-table-column prop="handleDeptName" align="center" label="经办校区" show-overflow-tooltip />
|
||||
<el-table-column prop="handleDate" width="100" align="center" label="经办日期" />
|
||||
<el-table-column prop="createUserName" width="100" align="center" label="经办人" />
|
||||
<el-table-column prop="memo" align="center" label="办理备注" show-overflow-tooltip />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-dropdown trigger="click">
|
||||
<span style="cursor: pointer;color: #409EFF;outline: none;">
|
||||
操作<i class="el-icon-arrow-down el-icon--right" style="font-size: 12px;" />
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item icon="el-icon-document" @click.native="handleOrderDetail(scope.row)">详情</el-dropdown-item>
|
||||
<el-dropdown-item icon="el-icon-delete" @click.native="invalidOrder(scope.row)">作废</el-dropdown-item>
|
||||
<!-- <el-dropdown-item v-has-permi="['sc:order:print']" icon="el-icon-printer" @click.native="handlePrintOrder(scope.row)">打印</el-dropdown-item>-->
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<order-detail ref="orderDetail" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listOrder, invalidById } from '@/api/school/sc/order'
|
||||
import orderDetail from '@/components/sc/order/orderDetail'
|
||||
import deptSelect from '@/components/system/dept/deptSelect'
|
||||
import courseSelect from '@/components/sc/course/courseSelect'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
name: 'courseOrder',
|
||||
dicts: ['course_order_type', 'course_order_status'],
|
||||
components: {
|
||||
orderDetail,
|
||||
deptSelect,
|
||||
courseSelect
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
loadingChange: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 表格树数据
|
||||
dataList: [],
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 学员编号数据字典
|
||||
studentIdOptions: [],
|
||||
// 订单类型 1报名数据字典
|
||||
orderTypeOptions: [],
|
||||
// 订单状态
|
||||
orderStatusOptions: [],
|
||||
handleDateArray: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
studentId: undefined,
|
||||
orderType: undefined,
|
||||
handleDate: undefined
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
const handleDate = this.$route.query.handleDate
|
||||
if (handleDate !== undefined && handleDate === 'thisMonth') {
|
||||
// 查询本月订单
|
||||
const startDate = moment().month(moment().month()).startOf('month').format('YYYY-MM-DD')
|
||||
const endDate = moment().month(moment().month()).endOf('month').format('YYYY-MM-DD')
|
||||
this.handleDateArray = [startDate, endDate]
|
||||
}
|
||||
this.getList()
|
||||
this.getDictListByDictType('order_type').then(response => {
|
||||
this.orderTypeOptions = response.data
|
||||
})
|
||||
this.getDictListByDictType('order_status').then(response => {
|
||||
this.orderStatusOptions = response.data
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.loading = true
|
||||
listOrder(this.queryParams).then(response => {
|
||||
this.dataList = response.data.rows
|
||||
this.total = response.data.total
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false
|
||||
this.reset()
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
}
|
||||
this.resetForm('form')
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1
|
||||
if (this.handleDateArray !== undefined && this.handleDateArray !== null && this.handleDateArray.length === 2) {
|
||||
this.queryParams.handleDate = this.handleDateArray.toString()
|
||||
} else {
|
||||
this.queryParams.handleDate = undefined
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm('queryForm')
|
||||
this.handleQuery()
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.orderId)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
// 报名
|
||||
signUp() {
|
||||
this.$router.push({
|
||||
path: '/courseOrder/signUp/signUp'
|
||||
})
|
||||
},
|
||||
orderTypeFormat(row, column) {
|
||||
return this.selectDictLabel(this.orderTypeOptions, row.orderType)
|
||||
},
|
||||
// 作废订单
|
||||
invalidOrder(row) {
|
||||
const that = this
|
||||
this.$confirm('确定作废本订单?', '提示').then(() => {
|
||||
that.loading = true
|
||||
invalidById(row.orderId).then(response => {
|
||||
that.loading = false
|
||||
if (response.respCode === '0000') {
|
||||
that.msgSuccess('作废成功')
|
||||
that.getList()
|
||||
} else {
|
||||
that.msgError(response.respMsg)
|
||||
}
|
||||
}).catch(() => {
|
||||
that.loading = false
|
||||
})
|
||||
})
|
||||
},
|
||||
// 批量作废订单
|
||||
batchInvalidOrder(row) {
|
||||
const that = this
|
||||
const id = this.ids
|
||||
this.$confirm('确定作废已选择订单?', '提示').then(() => {
|
||||
that.loading = true
|
||||
invalidById(id).then(response => {
|
||||
that.loading = false
|
||||
if (response.respCode === '0000') {
|
||||
that.msgSuccess('作废成功')
|
||||
that.getList()
|
||||
} else {
|
||||
that.msgError(response.respMsg)
|
||||
}
|
||||
}).catch(() => {
|
||||
that.loading = false
|
||||
that.getList()
|
||||
})
|
||||
})
|
||||
},
|
||||
// 订单详情
|
||||
handleOrderDetail(row) {
|
||||
this.$refs.orderDetail.loadOrderDetail(row.orderId)
|
||||
},
|
||||
// 打印
|
||||
handlePrintOrder(row) {
|
||||
this.$router.push({
|
||||
path: '/courseOrder/signUp/orderPrint/' + row.orderId
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
</style>
|
||||
@ -0,0 +1,280 @@
|
||||
<template>
|
||||
<div ref="print" class="print-container">
|
||||
<div class="print-title">
|
||||
<span>{{ tenantInfo.tenantName }}</span>
|
||||
<span>业务凭证</span>
|
||||
</div>
|
||||
<div class="header-info">
|
||||
<div class="left-info">
|
||||
<div class="header-item">学员姓名: {{ orderInfo.studentName }}</div>
|
||||
<div class="header-item">经办日期: {{ orderInfo.handleDate }}</div>
|
||||
<div v-if="orderInfo.orderType === '1'" class="header-item">类型: 新办</div>
|
||||
<div v-else class="header-item">类型: {{ orderInfo.orderType }}</div>
|
||||
</div>
|
||||
<div class="right-info">订单: {{ orderInfo.orderId }}</div>
|
||||
</div>
|
||||
<div class="print-content">
|
||||
<div v-for="item in orderDetailArray" :key="item.orderDetailId">
|
||||
<div class="header">
|
||||
<div class="top-title w150">课程信息</div>
|
||||
<div class="top-title w150">班级</div>
|
||||
<div class="top-title w150">收费方式</div>
|
||||
<div class="top-title w50">数量</div>
|
||||
<div class="top-title w80">原价</div>
|
||||
<div class="top-title w150">折扣/减免</div>
|
||||
<div class="top-title w80">实际价格</div>
|
||||
<div class="top-title flex1">备注</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="value w150">{{ item.courseName }}({{ item.deptName }})</div>
|
||||
<div class="value w150">{{ item.claName||'' }}</div>
|
||||
<div class="value w150">{{ item.chargeName }}</div>
|
||||
<div class="value w50">{{ item.buyCount }}</div>
|
||||
<div class="value w80">¥{{ item.originalFee }}</div>
|
||||
<div class="value w150">
|
||||
<span v-if="item.directDiscount && item.directDiscount !== 10">{{ item.directDiscount }}折 </span>
|
||||
<span v-if="item.directReduceFee && item.directReduceFee !== 0"> 减免:¥{{ item.directReduceFee }}</span>
|
||||
</div>
|
||||
<div class="value w80">¥{{ item.actualFee }}</div>
|
||||
<div class="value flex1">{{ item.outsideMemo }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="value flex1">备注: {{ orderInfo.memo||'' }}</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="value flex1">
|
||||
<span class="span-title">原价总计:</span>
|
||||
<span>¥{{ orderInfo.originalTotalFee }}</span>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<span class="span-title">实际价格:</span>
|
||||
<span>¥{{ orderInfo.actualTotalFee }}</span>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<span class="span-title">实收:</span>
|
||||
<span>¥{{ orderInfo.receiptFee }}</span>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<span class="span-title">余额支付:</span>
|
||||
<span>¥{{ orderInfo.balanceFee }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="value flex1">
|
||||
<span class="span-title">收款方式:</span>
|
||||
<span v-for="(item, index) in orderAccountArray" :key="index">
|
||||
<span style="margin-right: 15px;">{{ item.accountName }}: {{ item.fee }}元</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="value flex1">
|
||||
<div>地址:</div>
|
||||
<div>{{ tenantInfo.contactAddress }}</div>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<div>联系电话:</div>
|
||||
<div>{{ tenantInfo.contactPhone }}</div>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<div>经办人:</div>
|
||||
<div>{{ orderInfo.handleStaffName }}</div>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<div>打印时间:</div>
|
||||
<div>{{ now }}</div>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<div>经办签名:</div>
|
||||
<div> </div>
|
||||
</div>
|
||||
<div class="value flex1">
|
||||
<div>客户签名:</div>
|
||||
<div> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-memo">开课后不予办理退费。请妥善保管您的收据,丢失不予补办。</div>
|
||||
|
||||
<div class="no-print bottom-btn-container">
|
||||
<el-button v-if="canPrint" type="primary" @click="handlePrint">打 印</el-button>
|
||||
<el-button v-else type="info">订单已作废,无法打印</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { getOrder } from '@/api/school/sc/order'
|
||||
import { nowTenantInfo } from '@/api/system/tenant'
|
||||
import moment from 'moment'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
orderId: undefined,
|
||||
loading: false,
|
||||
orderInfo: {},
|
||||
orderDetailArray: [],
|
||||
orderAccountArray: [],
|
||||
tenantInfo: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
now() {
|
||||
return moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
|
||||
},
|
||||
// 是否可打印
|
||||
canPrint() {
|
||||
// 非作废
|
||||
return this.orderInfo.orderStatus && this.orderInfo.orderStatus !== '3'
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
orderId: {
|
||||
handler(newValue) {
|
||||
if (newValue) {
|
||||
this.loadOrderDetail(newValue)
|
||||
this.loadTenantInfo()
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created(param) {
|
||||
const orderId = this.$route.params && this.$route.params.orderId
|
||||
if (orderId) {
|
||||
this.orderId = orderId
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadOrderDetail(orderId) {
|
||||
this.loading = true
|
||||
getOrder(orderId).then(response => {
|
||||
this.loading = false
|
||||
this.orderInfo = response.data.orderInfo
|
||||
this.orderDetailArray = response.data.orderDetail
|
||||
this.orderAccountArray = response.data.orderAccountList
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
loadTenantInfo() {
|
||||
nowTenantInfo().then(response => {
|
||||
this.tenantInfo = response.data
|
||||
}).catch(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
handlePrint() {
|
||||
this.$print(this.$refs.print)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.main-container.print {
|
||||
.print-container {
|
||||
zoom: 0.7;
|
||||
}
|
||||
}
|
||||
.print-container {
|
||||
width: 900px;
|
||||
margin: auto;
|
||||
|
||||
.print-title {
|
||||
margin-top: 25px;
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
font-weight: 800;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.header-info {
|
||||
padding: 10px 0;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.left-info {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
||||
.header-item {
|
||||
margin-right: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.print-content {
|
||||
border-top: 1px solid #737373;
|
||||
border-left: 1px solid #737373;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
|
||||
.flex1 {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.w150 {
|
||||
width: 150px;
|
||||
}
|
||||
.w180 {
|
||||
width: 180px;
|
||||
}
|
||||
.w50 {
|
||||
width: 50px;
|
||||
}
|
||||
.w100 {
|
||||
width: 100px;
|
||||
}
|
||||
.w80 {
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: inherit;
|
||||
|
||||
.top-title {
|
||||
border-right: 1px solid #737373;
|
||||
border-bottom: 1px solid #737373;
|
||||
font-weight: 600;
|
||||
color: #000;
|
||||
padding: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: inherit;
|
||||
|
||||
.value {
|
||||
border-right: 1px solid #737373;
|
||||
border-bottom: 1px solid #737373;
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
padding: 5px;
|
||||
|
||||
.span-title {
|
||||
font-weight: 600;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-memo {
|
||||
margin-top: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/*底部按钮*/
|
||||
.bottom-btn-container {
|
||||
padding: 15px 20px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,246 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
|
||||
<el-form-item label="状态" prop="status">
|
||||
<DictRadio v-model="queryParams.status" @change="handleQuery" size="small"
|
||||
:radioData="dict.type.sys_normal_disable" :showAll="'all'"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.expressName"
|
||||
placeholder="名称"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item class="flex_one tr">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="pmsExpressList" @selection-change="handleSelectionChange" border>
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column label="品牌logo" prop="logo">
|
||||
<template slot-scope="{ row }">
|
||||
<el-image v-if="row.logo" :src="row.logo" :preview-src-list="[row.logo]" class="small-img circle-img"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="名称" prop="name"/>
|
||||
<el-table-column label="排序" prop="sort"/>
|
||||
<el-table-column label="状态" prop="showStatus">
|
||||
<template slot-scope="{ row }">
|
||||
<dict-tag :value="row.showStatus" prop-name="sys_normal_disable"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<InBody v-show="total>0">
|
||||
<pagination
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</InBody>
|
||||
|
||||
<!-- 添加或修改品牌管理对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-one">
|
||||
<el-form-item label="状态">
|
||||
<DictRadio v-model="form.showStatus" size="small"
|
||||
:radioData="dict.type.sys_normal_disable"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input v-model="form.sort" placeholder="请输入排序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="logo" prop="logo">
|
||||
<oss-image-upload v-model="form.logo" :limit="1" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {listPmsExpress,allExpress,getPmsExpress,addPmsExpress,updatePmsExpress,delPmsExpress} from "@/api/pms/express";
|
||||
|
||||
export default {
|
||||
name: "PmsExpress",
|
||||
dicts: ['sys_normal_disable'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 品牌管理表格数据
|
||||
pmsExpressList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
nameLike: null,
|
||||
sort: null,
|
||||
showStatus: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询品牌管理列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const {pageNum, pageSize} = this.queryParams;
|
||||
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
|
||||
const pageReq = {page: pageNum - 1, size: pageSize};
|
||||
listPmsExpress(query, pageReq).then(response => {
|
||||
const { content, totalElements } = response
|
||||
this.pmsExpressList = content;
|
||||
this.total = totalElements;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
expressName: null,
|
||||
expressCode: null,
|
||||
status: 0,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加快递品牌";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getPmsExpress(id).then(response => {
|
||||
this.form = response;
|
||||
this.open = true;
|
||||
this.title = "修改快递品牌";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updatePmsExpress(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addPmsExpress(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除快递编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delPmsExpress(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -0,0 +1,291 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
|
||||
<el-form-item label="MEMBER_ID" prop="memberId">
|
||||
<el-input
|
||||
v-model="queryParams.memberId"
|
||||
placeholder="请输入MEMBER_ID"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单id" prop="orderId">
|
||||
<el-input
|
||||
v-model="queryParams.orderId"
|
||||
placeholder="请输入订单id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="子订单id" prop="orderItemId">
|
||||
<el-input
|
||||
v-model="queryParams.orderItemId"
|
||||
placeholder="请输入子订单id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="退款金额" prop="returnAmount">
|
||||
<el-input
|
||||
v-model="queryParams.returnAmount"
|
||||
placeholder="请输入退款金额"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="退货数量" prop="quantity">
|
||||
<el-input
|
||||
v-model="queryParams.quantity"
|
||||
placeholder="请输入退货数量"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item class="flex_one tr">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['oms:aftersaleItem:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="omsAftersaleItemList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="MEMBER_ID" align="center" prop="memberId" />
|
||||
<el-table-column label="订单id" align="center" prop="orderId" />
|
||||
<el-table-column label="子订单id" align="center" prop="orderItemId" />
|
||||
<el-table-column label="退款金额" align="center" prop="returnAmount" />
|
||||
<el-table-column label="退货数量" align="center" prop="quantity" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['oms:aftersaleItem:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['oms:aftersaleItem:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改订单售后对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
|
||||
<el-form-item label="MEMBER_ID" prop="memberId">
|
||||
<el-input v-model="form.memberId" placeholder="请输入MEMBER_ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单id" prop="orderId">
|
||||
<el-input v-model="form.orderId" placeholder="请输入订单id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="子订单id" prop="orderItemId">
|
||||
<el-input v-model="form.orderItemId" placeholder="请输入子订单id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="退款金额" prop="returnAmount">
|
||||
<el-input v-model="form.returnAmount" placeholder="请输入退款金额" />
|
||||
</el-form-item>
|
||||
<el-form-item label="退货数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入退货数量" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listOmsAftersaleItem, getOmsAftersaleItem, delOmsAftersaleItem, addOmsAftersaleItem, updateOmsAftersaleItem, exportOmsAftersaleItem } from "@/api/oms/aftersaleItem";
|
||||
|
||||
export default {
|
||||
name: "OmsAftersaleItem",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 订单售后表格数据
|
||||
omsAftersaleItemList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
memberId: null,
|
||||
orderId: null,
|
||||
orderItemId: null,
|
||||
returnAmount: null,
|
||||
quantity: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
memberId: [
|
||||
{ required: true, message: "MEMBER_ID不能为空", trigger: "blur" }
|
||||
],
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询订单售后列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const {pageNum, pageSize} = this.queryParams;
|
||||
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
|
||||
const pageReq = {page: pageNum - 1, size: pageSize};
|
||||
listOmsAftersaleItem(query, pageReq).then(response => {
|
||||
const { content, totalElements } = response
|
||||
this.omsAftersaleItemList = content;
|
||||
this.total = totalElements;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
memberId: null,
|
||||
orderId: null,
|
||||
orderItemId: null,
|
||||
returnAmount: null,
|
||||
quantity: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加订单售后";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getOmsAftersaleItem(id).then(response => {
|
||||
this.form = response;
|
||||
this.open = true;
|
||||
this.title = "修改订单售后";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateOmsAftersaleItem(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addOmsAftersaleItem(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除订单售后编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delOmsAftersaleItem(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
this.$modal.confirm('是否确认导出所有订单售后数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportOmsAftersaleItem(queryParams);
|
||||
}).then(response => {
|
||||
this.$download.download(response);
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -0,0 +1,258 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
|
||||
<el-form-item label="订单id" prop="orderId">
|
||||
<el-input
|
||||
v-model="queryParams.orderId"
|
||||
placeholder="请输入订单id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物流公司(配送方式)" prop="deliveryCompany">
|
||||
<el-input
|
||||
v-model="queryParams.deliveryCompany"
|
||||
placeholder="请输入物流公司(配送方式)"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="物流单号" prop="deliverySn">
|
||||
<el-input
|
||||
v-model="queryParams.deliverySn"
|
||||
placeholder="请输入物流单号"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item class="flex_one tr">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['oms:orderDeliveryHistory:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="omsOrderDeliveryHistoryList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="订单id" align="center" prop="orderId" />
|
||||
<el-table-column label="物流公司(配送方式)" align="center" prop="deliveryCompany" />
|
||||
<el-table-column label="物流单号" align="center" prop="deliverySn" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['oms:orderDeliveryHistory:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['oms:orderDeliveryHistory:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改订单发货记录对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
|
||||
<el-form-item label="订单id" prop="orderId">
|
||||
<el-input v-model="form.orderId" placeholder="请输入订单id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物流公司(配送方式)" prop="deliveryCompany">
|
||||
<el-input v-model="form.deliveryCompany" placeholder="请输入物流公司(配送方式)" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物流单号" prop="deliverySn">
|
||||
<el-input v-model="form.deliverySn" placeholder="请输入物流单号" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listOmsOrderDeliveryHistory, getOmsOrderDeliveryHistory, delOmsOrderDeliveryHistory, addOmsOrderDeliveryHistory, updateOmsOrderDeliveryHistory, exportOmsOrderDeliveryHistory } from "@/api/oms/orderDeliveryHistory";
|
||||
|
||||
export default {
|
||||
name: "OmsOrderDeliveryHistory",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 订单发货记录表格数据
|
||||
omsOrderDeliveryHistoryList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
orderId: null,
|
||||
deliveryCompany: null,
|
||||
deliverySn: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询订单发货记录列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const {pageNum, pageSize} = this.queryParams;
|
||||
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
|
||||
const pageReq = {page: pageNum - 1, size: pageSize};
|
||||
listOmsOrderDeliveryHistory(query, pageReq).then(response => {
|
||||
const { content, totalElements } = response
|
||||
this.omsOrderDeliveryHistoryList = content;
|
||||
this.total = totalElements;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
orderId: null,
|
||||
deliveryCompany: null,
|
||||
deliverySn: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加订单发货记录";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getOmsOrderDeliveryHistory(id).then(response => {
|
||||
this.form = response;
|
||||
this.open = true;
|
||||
this.title = "修改订单发货记录";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateOmsOrderDeliveryHistory(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addOmsOrderDeliveryHistory(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除订单发货记录编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delOmsOrderDeliveryHistory(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
this.$modal.confirm('是否确认导出所有订单发货记录数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportOmsOrderDeliveryHistory(queryParams);
|
||||
}).then(response => {
|
||||
this.$download.download(response);
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -0,0 +1,424 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
|
||||
<el-form-item label="订单id" prop="orderId">
|
||||
<el-input
|
||||
v-model="queryParams.orderId"
|
||||
placeholder="请输入订单id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="PRODUCT_ID" prop="productId">
|
||||
<el-input
|
||||
v-model="queryParams.productId"
|
||||
placeholder="请输入PRODUCT_ID"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品编码" prop="outProductId">
|
||||
<el-input
|
||||
v-model="queryParams.outProductId"
|
||||
placeholder="请输入商品编码"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品sku id" prop="skuId">
|
||||
<el-input
|
||||
v-model="queryParams.skuId"
|
||||
placeholder="请输入商品sku id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="sku编码" prop="outSkuId">
|
||||
<el-input
|
||||
v-model="queryParams.outSkuId"
|
||||
placeholder="请输入sku编码"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品快照id" prop="productSnapshotId">
|
||||
<el-input
|
||||
v-model="queryParams.productSnapshotId"
|
||||
placeholder="请输入商品快照id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="sku快照id" prop="skuSnapshotId">
|
||||
<el-input
|
||||
v-model="queryParams.skuSnapshotId"
|
||||
placeholder="请输入sku快照id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<template v-if="showMoreCondition">
|
||||
<el-form-item label="展示图片" prop="pic">
|
||||
<el-input
|
||||
v-model="queryParams.pic"
|
||||
placeholder="请输入展示图片"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="PRODUCT_NAME" prop="productName">
|
||||
<el-input
|
||||
v-model="queryParams.productName"
|
||||
placeholder="请输入PRODUCT_NAME"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="销售价格" prop="salePrice">
|
||||
<el-input
|
||||
v-model="queryParams.salePrice"
|
||||
placeholder="请输入销售价格"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="采购价" prop="purchasePrice">
|
||||
<el-input
|
||||
v-model="queryParams.purchasePrice"
|
||||
placeholder="请输入采购价"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="购买数量" prop="quantity">
|
||||
<el-input
|
||||
v-model="queryParams.quantity"
|
||||
placeholder="请输入购买数量"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品分类id" prop="productCategoryId">
|
||||
<el-input
|
||||
v-model="queryParams.productCategoryId"
|
||||
placeholder="请输入商品分类id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item class="flex_one tr">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button :icon="showMoreCondition ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" size="mini" @click="showMoreCondition = !showMoreCondition">{{showMoreCondition ? '收起条件' : '展开条件'}}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['oms:orderItem:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="omsOrderItemList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="订单id" align="center" prop="orderId" />
|
||||
<el-table-column label="PRODUCT_ID" align="center" prop="productId" />
|
||||
<el-table-column label="商品编码" align="center" prop="outProductId" />
|
||||
<el-table-column label="商品sku id" align="center" prop="skuId" />
|
||||
<el-table-column label="sku编码" align="center" prop="outSkuId" />
|
||||
<el-table-column label="商品快照id" align="center" prop="productSnapshotId" />
|
||||
<el-table-column label="sku快照id" align="center" prop="skuSnapshotId" />
|
||||
<el-table-column label="展示图片" align="center" prop="pic" />
|
||||
<el-table-column label="PRODUCT_NAME" align="center" prop="productName" />
|
||||
<el-table-column label="销售价格" align="center" prop="salePrice" />
|
||||
<el-table-column label="采购价" align="center" prop="purchasePrice" />
|
||||
<el-table-column label="购买数量" align="center" prop="quantity" />
|
||||
<el-table-column label="商品分类id" align="center" prop="productCategoryId" />
|
||||
<el-table-column label="商品sku属性:[{"key":"颜色","value":"颜色"},{"key":"容量","value":"4G"}]" align="center" prop="spData" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['oms:orderItem:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['oms:orderItem:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改订单中所包含的商品对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
|
||||
<el-form-item label="订单id" prop="orderId">
|
||||
<el-input v-model="form.orderId" placeholder="请输入订单id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="PRODUCT_ID" prop="productId">
|
||||
<el-input v-model="form.productId" placeholder="请输入PRODUCT_ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品编码" prop="outProductId">
|
||||
<el-input v-model="form.outProductId" placeholder="请输入商品编码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品sku id" prop="skuId">
|
||||
<el-input v-model="form.skuId" placeholder="请输入商品sku id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="sku编码" prop="outSkuId">
|
||||
<el-input v-model="form.outSkuId" placeholder="请输入sku编码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品快照id" prop="productSnapshotId">
|
||||
<el-input v-model="form.productSnapshotId" placeholder="请输入商品快照id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="sku快照id" prop="skuSnapshotId">
|
||||
<el-input v-model="form.skuSnapshotId" placeholder="请输入sku快照id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="展示图片" prop="pic">
|
||||
<el-input v-model="form.pic" placeholder="请输入展示图片" />
|
||||
</el-form-item>
|
||||
<el-form-item label="PRODUCT_NAME" prop="productName">
|
||||
<el-input v-model="form.productName" placeholder="请输入PRODUCT_NAME" />
|
||||
</el-form-item>
|
||||
<el-form-item label="销售价格" prop="salePrice">
|
||||
<el-input v-model="form.salePrice" placeholder="请输入销售价格" />
|
||||
</el-form-item>
|
||||
<el-form-item label="采购价" prop="purchasePrice">
|
||||
<el-input v-model="form.purchasePrice" placeholder="请输入采购价" />
|
||||
</el-form-item>
|
||||
<el-form-item label="购买数量" prop="quantity">
|
||||
<el-input v-model="form.quantity" placeholder="请输入购买数量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品分类id" prop="productCategoryId">
|
||||
<el-input v-model="form.productCategoryId" placeholder="请输入商品分类id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品sku属性:[{"key":"颜色","value":"颜色"},{"key":"容量","value":"4G"}]" prop="spData">
|
||||
<el-input v-model="form.spData" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listOmsOrderItem, getOmsOrderItem, delOmsOrderItem, addOmsOrderItem, updateOmsOrderItem, exportOmsOrderItem } from "@/api/oms/orderItem";
|
||||
|
||||
export default {
|
||||
name: "OmsOrderItem",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 订单中所包含的商品表格数据
|
||||
omsOrderItemList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
orderId: null,
|
||||
productId: null,
|
||||
outProductId: null,
|
||||
skuId: null,
|
||||
outSkuId: null,
|
||||
productSnapshotId: null,
|
||||
skuSnapshotId: null,
|
||||
pic: null,
|
||||
productName: null,
|
||||
salePrice: null,
|
||||
purchasePrice: null,
|
||||
quantity: null,
|
||||
productCategoryId: null,
|
||||
spData: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
outProductId: [
|
||||
{ required: true, message: "商品编码不能为空", trigger: "blur" }
|
||||
],
|
||||
outSkuId: [
|
||||
{ required: true, message: "sku编码不能为空", trigger: "blur" }
|
||||
],
|
||||
},
|
||||
showMoreCondition: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询订单中所包含的商品列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const {pageNum, pageSize} = this.queryParams;
|
||||
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
|
||||
const pageReq = {page: pageNum - 1, size: pageSize};
|
||||
listOmsOrderItem(query, pageReq).then(response => {
|
||||
const { content, totalElements } = response
|
||||
this.omsOrderItemList = content;
|
||||
this.total = totalElements;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
orderId: null,
|
||||
productId: null,
|
||||
outProductId: null,
|
||||
skuId: null,
|
||||
outSkuId: null,
|
||||
productSnapshotId: null,
|
||||
skuSnapshotId: null,
|
||||
pic: null,
|
||||
productName: null,
|
||||
salePrice: null,
|
||||
purchasePrice: null,
|
||||
quantity: null,
|
||||
productCategoryId: null,
|
||||
spData: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加订单中所包含的商品";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getOmsOrderItem(id).then(response => {
|
||||
this.form = response;
|
||||
this.open = true;
|
||||
this.title = "修改订单中所包含的商品";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateOmsOrderItem(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addOmsOrderItem(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除订单中所包含的商品编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delOmsOrderItem(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
this.$modal.confirm('是否确认导出所有订单中所包含的商品数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportOmsOrderItem(queryParams);
|
||||
}).then(response => {
|
||||
this.$download.download(response);
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
@ -0,0 +1,395 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
|
||||
<el-form-item label="payment_id" prop="paymentId">
|
||||
<el-input
|
||||
v-model="queryParams.paymentId"
|
||||
placeholder="请输入payment_id"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="用户 ID" prop="memberId">
|
||||
<el-input
|
||||
v-model="queryParams.memberId"
|
||||
placeholder="请输入用户 ID"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="OPENID" prop="openid">
|
||||
<el-input
|
||||
v-model="queryParams.openid"
|
||||
placeholder="请输入OPENID"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="真实姓名,提现需要" prop="realName">
|
||||
<el-input
|
||||
v-model="queryParams.realName"
|
||||
placeholder="请输入真实姓名,提现需要"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="标题|商品名称" prop="title">
|
||||
<el-input
|
||||
v-model="queryParams.title"
|
||||
placeholder="请输入标题|商品名称"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号 支付时是payId 其他为orderId" prop="orderId">
|
||||
<el-input
|
||||
v-model="queryParams.orderId"
|
||||
placeholder="请输入订单号 支付时是payId 其他为orderId"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="金额,单位分" prop="money">
|
||||
<el-input
|
||||
v-model="queryParams.money"
|
||||
placeholder="请输入金额,单位分"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<template v-if="showMoreCondition">
|
||||
<el-form-item label="交易类型" prop="opType">
|
||||
<el-select v-model="queryParams.opType" placeholder="请选择交易类型" clearable size="small">
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="paymentStatus">
|
||||
<el-select v-model="queryParams.paymentStatus" placeholder="请选择状态" clearable size="small">
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="附加数据" prop="attach">
|
||||
<el-input
|
||||
v-model="queryParams.attach"
|
||||
placeholder="请输入附加数据"
|
||||
clearable
|
||||
size="small"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item class="flex_one tr">
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button :icon="showMoreCondition ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" size="mini" @click="showMoreCondition = !showMoreCondition">{{showMoreCondition ? '收起条件' : '展开条件'}}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['pms:wechatPaymentHistory:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="omsWechatPaymentHistoryList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="payment_id" align="center" prop="paymentId" />
|
||||
<el-table-column label="用户 ID" align="center" prop="memberId" />
|
||||
<el-table-column label="OPENID" align="center" prop="openid" />
|
||||
<el-table-column label="真实姓名,提现需要" align="center" prop="realName" />
|
||||
<el-table-column label="标题|商品名称" align="center" prop="title" />
|
||||
<el-table-column label="订单号 支付时是payId 其他为orderId" align="center" prop="orderId" />
|
||||
<el-table-column label="金额,单位分" align="center" prop="money" />
|
||||
<el-table-column label="交易类型" align="center" prop="opType" />
|
||||
<el-table-column label="状态" align="center" prop="paymentStatus" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="附加数据" align="center" prop="attach" />
|
||||
<el-table-column label="响应内容" align="center" prop="responseBody" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['pms:wechatPaymentHistory:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['pms:wechatPaymentHistory:remove']"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改微信订单表对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="108px" inline class="dialog-form-two">
|
||||
<el-form-item label="payment_id" prop="paymentId">
|
||||
<el-input v-model="form.paymentId" placeholder="请输入payment_id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户 ID" prop="memberId">
|
||||
<el-input v-model="form.memberId" placeholder="请输入用户 ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="OPENID" prop="openid">
|
||||
<el-input v-model="form.openid" placeholder="请输入OPENID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="真实姓名,提现需要" prop="realName">
|
||||
<el-input v-model="form.realName" placeholder="请输入真实姓名,提现需要" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标题|商品名称" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入标题|商品名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号 支付时是payId 其他为orderId" prop="orderId">
|
||||
<el-input v-model="form.orderId" placeholder="请输入订单号 支付时是payId 其他为orderId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="金额,单位分" prop="money">
|
||||
<el-input v-model="form.money" placeholder="请输入金额,单位分" />
|
||||
</el-form-item>
|
||||
<el-form-item label="交易类型" prop="opType">
|
||||
<el-select v-model="form.opType" placeholder="请选择交易类型">
|
||||
<el-option label="请选择字典生成" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-radio-group v-model="form.paymentStatus">
|
||||
<el-radio label="1">请选择字典生成</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="附加数据" prop="attach">
|
||||
<el-input v-model="form.attach" placeholder="请输入附加数据" />
|
||||
</el-form-item>
|
||||
<el-form-item label="响应内容" prop="responseBody">
|
||||
<el-input v-model="form.responseBody" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listOmsWechatPaymentHistory, getOmsWechatPaymentHistory, delOmsWechatPaymentHistory, addOmsWechatPaymentHistory, updateOmsWechatPaymentHistory, exportOmsWechatPaymentHistory } from "@/api/oms/wechatPaymentHistory";
|
||||
|
||||
export default {
|
||||
name: "OmsWechatPaymentHistory",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 导出遮罩层
|
||||
exportLoading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 微信订单表表格数据
|
||||
omsWechatPaymentHistoryList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
paymentId: null,
|
||||
memberId: null,
|
||||
openid: null,
|
||||
realName: null,
|
||||
title: null,
|
||||
orderId: null,
|
||||
money: null,
|
||||
opType: null,
|
||||
paymentStatus: null,
|
||||
attach: null,
|
||||
responseBody: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
memberId: [
|
||||
{ required: true, message: "用户 ID不能为空", trigger: "blur" }
|
||||
],
|
||||
openid: [
|
||||
{ required: true, message: "OPENID不能为空", trigger: "blur" }
|
||||
],
|
||||
title: [
|
||||
{ required: true, message: "标题|商品名称不能为空", trigger: "blur" }
|
||||
],
|
||||
orderId: [
|
||||
{ required: true, message: "订单号 支付时是payId 其他为orderId不能为空", trigger: "blur" }
|
||||
],
|
||||
money: [
|
||||
{ required: true, message: "金额,单位分不能为空", trigger: "blur" }
|
||||
],
|
||||
opType: [
|
||||
{ required: true, message: "交易类型不能为空", trigger: "change" }
|
||||
],
|
||||
paymentStatus: [
|
||||
{ required: true, message: "状态不能为空", trigger: "blur" }
|
||||
],
|
||||
},
|
||||
showMoreCondition: false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询微信订单表列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
const {pageNum, pageSize} = this.queryParams;
|
||||
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
|
||||
const pageReq = {page: pageNum - 1, size: pageSize};
|
||||
listOmsWechatPaymentHistory(query, pageReq).then(response => {
|
||||
const { content, totalElements } = response
|
||||
this.omsWechatPaymentHistoryList = content;
|
||||
this.total = totalElements;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
paymentId: null,
|
||||
memberId: null,
|
||||
openid: null,
|
||||
realName: null,
|
||||
title: null,
|
||||
orderId: null,
|
||||
money: null,
|
||||
opType: null,
|
||||
paymentStatus: 0,
|
||||
remark: null,
|
||||
attach: null,
|
||||
responseBody: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加微信订单表";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getOmsWechatPaymentHistory(id).then(response => {
|
||||
this.form = response;
|
||||
this.open = true;
|
||||
this.title = "修改微信订单表";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateOmsWechatPaymentHistory(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addOmsWechatPaymentHistory(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除微信订单表编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delOmsWechatPaymentHistory(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
this.$modal.confirm('是否确认导出所有微信订单表数据项?').then(() => {
|
||||
this.exportLoading = true;
|
||||
return exportOmsWechatPaymentHistory(queryParams);
|
||||
}).then(response => {
|
||||
this.$download.download(response);
|
||||
this.exportLoading = false;
|
||||
}).catch(() => {});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
Loading…
Reference in new issue