Merge remote-tracking branch 'origin/master'

master
zccbbg 2 years ago
commit 547c6d71c9

@ -0,0 +1,10 @@
import request from '@/utils/request'
// 查询省市区列表
export function areaSelect(query) {
return request({
url: '/common/area',
method: 'get',
params: query
})
}

@ -52,3 +52,14 @@ export function exportUmsMember(query) {
params: query params: query
}) })
} }
// 更改会员账号状态
export function changeAccountStatus(data) {
return request({
url: '/ums/member/status/change',
method: 'post',
data: data
})
}

@ -2,5 +2,5 @@ export const dict_types = ["sys_user_sex",
"sys_show_hide", "sys_normal_disable", "sys_job_status", "sys_job_group", "sys_yes_no", "sys_notice_type", "sys_notice_status", "sys_show_hide", "sys_normal_disable", "sys_job_status", "sys_job_group", "sys_yes_no", "sys_notice_type", "sys_notice_status",
"sys_oper_type", "sys_common_status", "wms_item_type", "wms_carrier_level", "wms_supplier_level", "wms_receipt_type", "wms_receipt_status", "sys_oper_type", "sys_common_status", "wms_item_type", "wms_carrier_level", "wms_supplier_level", "wms_receipt_type", "wms_receipt_status",
"wms_shipment_type", "wms_shipment_status", "wms_movement_type", "wms_movement_status", "wms_shipment_type", "wms_shipment_status", "wms_movement_type", "wms_movement_status",
"pms_publish_status", 'sku_sort_list', 'sys_show_status' "pms_publish_status", 'sku_sort_list', 'sys_show_status','oms_pay_type','oms_order_status'
]; ];

@ -19,7 +19,7 @@ import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config"; import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"; import { parseTime, resetForm, addDateRange, addDateRange2, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi";
// 分页组件 // 分页组件
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
// 自定义表格工具组件 // 自定义表格工具组件
@ -54,6 +54,8 @@ Vue.prototype.selectDictLabel = selectDictLabel
Vue.prototype.selectDictLabels = selectDictLabels Vue.prototype.selectDictLabels = selectDictLabels
Vue.prototype.download = download Vue.prototype.download = download
Vue.prototype.handleTree = handleTree Vue.prototype.handleTree = handleTree
Vue.prototype.addDateRange2 = addDateRange2
// 全局组件挂载 // 全局组件挂载
Vue.component('DictTag', DictTag) Vue.component('DictTag', DictTag)

@ -17,6 +17,7 @@ const getters = {
dictMap: state => state.dict.dictMap, dictMap: state => state.dict.dictMap,
productCategories: state => state.mall.productCategories, productCategories: state => state.mall.productCategories,
areaSelect: state => state.mall.areaSelect,
brandList: state => state.mall.brandList, brandList: state => state.mall.brandList,
} }
export default getters export default getters

@ -1,14 +1,19 @@
import {listPmsProductCategory} from "@/api/pms/productCategory"; import {listPmsProductCategory} from "@/api/pms/productCategory";
import {allBrand} from "@/api/pms/brand"; import {allBrand} from "@/api/pms/brand";
import {areaSelect} from "@/api/system/common";
const state = { const state = {
productCategories: [], productCategories: [],
brandList: [] brandList: [],
areaSelect: []
} }
const mutations = { const mutations = {
SET_PRODUCT_CATEGORIES: (state, value) => { SET_PRODUCT_CATEGORIES: (state, value) => {
state.productCategories = value state.productCategories = value
}, },
SET_areaSelect: (state, value) => {
state.areaSelect = value
},
SET_BRAND_LIST: (state, value) => { SET_BRAND_LIST: (state, value) => {
state.brandList = value state.brandList = value
}, },
@ -22,6 +27,14 @@ const actions = {
commit('SET_PRODUCT_CATEGORIES', res); commit('SET_PRODUCT_CATEGORIES', res);
}) })
}, },
loadAreaSelect({ commit, state }, force = false) {
if (!force && state.areaSelect.length > 0) {
return Promise.resolve();
}
return areaSelect({},{}).then(res => {
commit('SET_areaSelect', res.data);
})
},
loadBrandList({ commit, state }, force = false) { loadBrandList({ commit, state }, force = false) {
if (!force && state.brandList.length > 0) { if (!force && state.brandList.length > 0) {
return Promise.resolve(); return Promise.resolve();

@ -0,0 +1,221 @@
/**
* Created by lcx47996 on 2017/12/25.
*/
export function dateFormat(date, format) {
if (!date || date === 0) {
return ''
}
if (!(date instanceof Date)) {
date = new Date(date)
if (date.toString() === 'Invalid Date') {
return '无效时间戳'
}
}
format = format || 'yyyy-MM-dd hh:mm:ss'
const o = {
'M+': date.getMonth() + 1, // 月份
'd+': date.getDate(), // 日
'h+': date.getHours(), // 小时
'm+': date.getMinutes(), // 分
's+': date.getSeconds(), // 秒
'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
'S': date.getMilliseconds() // 毫秒
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (const k in o) {
if (new RegExp('(' + k + ')').test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
}
}
return format;
}
function getAfterDate(after) {
var dd = new Date();
dd.setDate(dd.getDate() + after);// 获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth() + 1;// 获取当前月份的日期
var d = dd.getDate();
return y + '-' + m + '-' + d;
}
function getAfterDateReturnDate(datetime, after) {
if (!(datetime.type instanceof Date)) {
return datetime
}
var r = new Date(datetime.getTime())
r.setDate(datetime.getDate() + after);// 获取AddDayCount天后的日期
return r;
}
function getAfterHourReturnDate(datetime, after) {
if (!(datetime.type instanceof Date)) {
return datetime
}
var r = new Date(datetime.getTime() + after * 60 * 60 * 1000)
return r;
}
function getAfterMounth(date, after) {
var dd = new Date();
dd.setMonth(dd.getMonth() + after);// 获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth() + 1;// 获取当前月份的日期
var d = dd.getDate();
return y + '-' + m + '-' + d;
}
/**
* 计算2个日期相差的天数不包含今天2016-12-13到2016-12-15相差2天
*/
function dateDiff(startDate, endDate) {
return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24);// 把相差的毫秒数转换为天数
}
/**
* 计算2个日期相差的天数包含今天2016-12-13到2016-12-15相差3天
*/
function dateDiffIncludeToday(startDate, endDate) {
return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24) + 1;// 把相差的毫秒数转换为天数
}
/**
* 获取凌晨时间
* @param day
*/
export function getMorningTime(day = 0) {
if (day == null) {
return null;
}
const timeStamp = new Date(new Date().setHours(0, 0, 0, 0)).getTime();
return new Date(timeStamp + day * 86400000);
}
export function getStartEnd(length) {
const end = getMorningTime(0);
const start = getMorningTime(0);
start.setTime(start.getTime() - 3600 * 1000 * 24 * length);
return {end, start};
}
function getTimeShort() {
const timeShort = [
{
text: '今天',
onClick(picker) {
const {end, start} = getStartEnd(0);
picker.$emit('pick', [start, end]);
}
},
{
text: '昨天',
onClick(picker) {
const time = getMorningTime(0);
time.setTime(time.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', [time, time]);
}
},
{
text: '最近一周',
onClick(picker) {
const {end, start} = getStartEnd(7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const {end, start} = getStartEnd(30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const {end, start} = getStartEnd(90);
picker.$emit('pick', [start, end]);
}
}
];
return timeShort;
}
function getTimeShort2(){
const timeShort = [
{
text: '今天',
onClick(picker) {
const temp = new Date();
picker.$emit('pick', [new Date(temp.setHours(0, 0, 0, 0)), new Date(temp.setHours(23, 59, 59, 0))]);
}
},
{
text: '昨天',
onClick(picker) {
const temp = new Date();
temp.setTime(temp.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', [new Date(temp.setHours(0, 0, 0, 0)), new Date(temp.setHours(23, 59, 59, 0))]);
}
},
{
text: '前一周',
onClick(picker) {
const start = new Date();
const end = new Date();
start.setTime(end.getTime() - 3600 * 1000 * 24 * 6);
picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]);
}
},
{
text: '这个月',
onClick(picker) {
const end = getCurrentMonthLast();
const start = getCurrentMonthFirst();
picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]);
function getCurrentMonthFirst() {
let date = new Date();
date.setDate(1);
return date;
}
// 获取当前月的最后一天
function getCurrentMonthLast() {
let date = new Date();
let currentMonth = date.getMonth();
let nextMonth = ++currentMonth;
let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
let oneDay = 1000 * 60 * 60 * 24;
return new Date(nextMonthFirstDay - oneDay);
}
}
},
{
text: '前一个月',
onClick(picker) {
const start = new Date();
const end = new Date();
start.setTime(end.getTime() - 3600 * 1000 * 24 * 29);
picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]);
}
}
]
return timeShort
}
export default {
'getAfterDate': getAfterDate,
'getAfterMounth': getAfterMounth,
'dateDiff': dateDiff,
'dateDiffIncludeToday': dateDiffIncludeToday,
'getAfterDateReturnDate': getAfterDateReturnDate,
'getAfterHourReturnDate': getAfterHourReturnDate,
getTimeShort,
getTimeShort2,
dateFormat,
getStartEnd,
getMorningTime
}

@ -1,4 +1,4 @@
import moment from "moment/moment";
/** /**
* 通用js方法封装处理 * 通用js方法封装处理
@ -68,6 +68,19 @@ export function addDateRange(params, dateRange, propName) {
return search; return search;
} }
export function addDateRange2(params, dateRange, addDay=true) {
let search = params;
dateRange = Array.isArray(dateRange) ? dateRange : [];
if (addDay) {
search['beginTime'] = dateRange[0];
search['endTime'] = moment(dateRange[1]).add(1,"days").format('yyyy-MM-DD');
} else {
search['beginTime'] = dateRange[0];
search['endTime'] = dateRange[1];
}
return search;
}
// 回显数据字典 // 回显数据字典
export function selectDictLabel(datas, value) { export function selectDictLabel(datas, value) {
if (value === undefined) { if (value === undefined) {

@ -0,0 +1,62 @@
<template>
<div class="w200">
<el-cascader
:props="{ checkStrictly: true }"
ref="AddressSelector"
v-model="tempValue"
:options="menuOptions"
v-bind="$props"
clearable
placeholder="请选择..."
size="small"
/>
</div>
</template>
<script>
import {mapGetters} from "vuex";
export default {
name: 'AddressSelector',
// register the component
props: ['value', 'props'],
computed: {
...mapGetters(['areaSelect']),
tempValue: {
get() {
return this.value;
},
set(v) {
this.$emit('input', v);
}
},
menuOptions() {
if (!this.areaSelect || this.areaSelect.length === 0) {
return [];
}
this.recurs(this.areaSelect)
return this.areaSelect
}
},
created() {
this.$store.dispatch('mall/loadAreaSelect')
},
methods: {
recurs(list) {
list.forEach(it => {
it.label = it.name
it.value = it.id
if (it.children) {
this.recurs(it.children)
}
})
}
}
}
</script>
<style>
</style>

@ -1,285 +1,89 @@
<template> <template>
<div class="app-container"> <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 :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-form-item label="订单状态" prop="status">
<el-input <el-select v-model="queryParams.status" placeholder="请选择订单状态" clearable size="small">
v-model="queryParams.memberId" <el-option v-for="(item, index) in dict.type.oms_order_status" :label="item.label" :value="item.value"/>
placeholder="请输入MEMBER_ID"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户帐号" prop="memberUsername">
<el-input
v-model="queryParams.memberUsername"
placeholder="请输入用户帐号"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="订单总金额" prop="totalAmount">
<el-input
v-model="queryParams.totalAmount"
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="payAmount">
<el-input
v-model="queryParams.payAmount"
placeholder="请输入应付金额"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="运费金额" prop="freightAmount">
<el-input
v-model="queryParams.freightAmount"
placeholder="请输入运费金额"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="支付方式0->未支付1->支付宝2->微信" prop="payType">
<el-select v-model="queryParams.payType" placeholder="请选择支付方式0->未支付1->支付宝2->微信" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<template v-if="showMoreCondition">
<el-form-item label="订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="退款状态枚举值1无售后或售后关闭2售后处理中3退款中4 退款成功" prop="aftersaleStatus">
<el-select v-model="queryParams.aftersaleStatus" placeholder="请选择退款状态枚举值1无售后或售后关闭2售后处理中3退款中4 退款成功" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="物流公司(配送方式)" prop="deliveryCompany"> <el-form-item label="订单编号" prop="orderId">
<el-input <el-input v-model.trim="queryParams.orderId" placeholder="请输入订单编号" clearable size="small"
v-model="queryParams.deliveryCompany" @keyup.enter.native="handleQuery"/>
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 label="自动确认时间" prop="autoConfirmDay">
<el-input
v-model="queryParams.autoConfirmDay"
placeholder="请输入自动确认时间"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收货人姓名" prop="receiverName">
<el-input
v-model="queryParams.receiverName"
placeholder="请输入收货人姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收货人电话" prop="receiverPhone">
<el-input
v-model="queryParams.receiverPhone"
placeholder="请输入收货人电话"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收货人邮编" prop="receiverPostCode">
<el-input
v-model="queryParams.receiverPostCode"
placeholder="请输入收货人邮编"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="省份/直辖市" prop="receiverProvince">
<el-input
v-model="queryParams.receiverProvince"
placeholder="请输入省份/直辖市"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="城市" prop="receiverCity">
<el-input
v-model="queryParams.receiverCity"
placeholder="请输入城市"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="区" prop="receiverDistrict">
<el-input
v-model="queryParams.receiverDistrict"
placeholder="请输入区"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="省份/直辖市id" prop="receiverProvinceId"> <el-form-item label="支付方式" prop="payType">
<el-input <el-select v-model="queryParams.payType" placeholder="请选择支付方式" clearable size="small">
v-model="queryParams.receiverProvinceId" <el-option v-for="(item, index) in dict.type.oms_pay_type" :label="item.label" :value="item.value"/>
placeholder="请输入省份/直辖市id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="城市id" prop="receiverCityId">
<el-input
v-model="queryParams.receiverCityId"
placeholder="请输入城市id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="区id" prop="receiverDistrictId">
<el-input
v-model="queryParams.receiverDistrictId"
placeholder="请输入区id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="详细地址" prop="receiverDetailAddress">
<el-input
v-model="queryParams.receiverDetailAddress"
placeholder="请输入详细地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="确认收货状态0->未确认1->已确认" prop="confirmStatus">
<el-select v-model="queryParams.confirmStatus" placeholder="请选择确认收货状态0->未确认1->已确认" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="删除状态0->未删除1->已删除" prop="deleteStatus"> <!-- <el-form-item label="商品名称" prop="productName">-->
<el-select v-model="queryParams.deleteStatus" placeholder="请选择删除状态0->未删除1->已删除" clearable size="small"> <!-- <el-input v-model.trim="queryParams.productName" placeholder="请输入商品名称" clearable size="small"-->
<el-option label="请选择字典生成" value="" /> <!-- @keyup.enter.native="handleQuery"/>-->
</el-select> <!-- </el-form-item>-->
<el-form-item label="会员手机号" prop="userPhone">
<el-input v-model.trim="queryParams.userPhone" placeholder="请输入会员手机号" clearable size="small"
@keyup.enter.native="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="支付时间" prop="paymentTime"> <el-form-item label="省市区" prop="provinces">
<el-date-picker <address-selector v-model="queryParams.provinces"></address-selector>
clearable
size="small"
v-model="queryParams.paymentTime"
type="datetime"
value-format="yyyy-MM-ddTHH:mm:ss"
placeholder="选择支付时间">
</el-date-picker>
</el-form-item>
<el-form-item label="发货时间" prop="deliveryTime">
<el-date-picker
clearable
size="small"
v-model="queryParams.deliveryTime"
type="datetime"
value-format="yyyy-MM-ddTHH:mm:ss"
placeholder="选择发货时间">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="确认收货时间" prop="receiveTime"> <el-form-item label="下单时间" prop="Time">
<el-date-picker <el-date-picker v-model="queryParams.Time" type="datetimerange" :picker-options="pickerOptions"
clearable range-separator="至" size="small" format="yyyy-MM-dd HH:mm:ss"
size="small" value-format="yyyy-MM-dd HH:mm:ss"
v-model="queryParams.receiveTime" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']"
type="datetime" align="right"
value-format="yyyy-MM-ddTHH:mm:ss" @change="handleChange">
placeholder="选择确认收货时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</template>
<el-form-item class="flex_one tr"> <el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <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="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-button :icon="showMoreCondition ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" size="mini" @click="showMoreCondition = !showMoreCondition">{{showMoreCondition ? '收起条件' : '展开条件'}}</el-button>-->
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-table v-loading="loading" :data="omsOrderList">
<el-col :span="1.5"> <!-- <el-table-column type="selection" width="55" align="center" />-->
<el-button <el-table-column label="订单号" align="center" prop="id" width="180"/>
type="primary" <el-table-column label="订单状态" align="center" prop="status">
plain <template v-slot="scope">
icon="el-icon-plus" <el-tag :type="getOrderTypeTag(scope.row.status)">
size="mini" {{ getOrderTypeText(scope.row.status) }}
@click="handleAdd" </el-tag>
v-hasPermi="['oms:order:add']" </template>
>新增</el-button> </el-table-column>
</el-col> <el-table-column label="订单金额" align="center" prop="totalAmount">
</el-col> <template v-slot="scope">
</el-row> <div>{{ scope.row.totalAmount }}</div>
</template>
<el-table v-loading="loading" :data="omsOrderList" @selection-change="handleSelectionChange"> </el-table-column>
<el-table-column type="selection" width="55" align="center" /> <el-table-column label="应付金额" align="center" prop="payAmount">
<el-table-column label="MEMBER_ID" align="center" prop="memberId" /> <template v-slot="scope">
<el-table-column label="用户帐号" align="center" prop="memberUsername" /> <div>{{ scope.row.payAmount }}</div>
<el-table-column label="订单总金额" align="center" prop="totalAmount" /> </template>
<el-table-column label="采购价" align="center" prop="purchasePrice" /> </el-table-column>
<el-table-column label="应付金额" align="center" prop="payAmount" /> <el-table-column label="支付方式" align="center" prop="payType">
<el-table-column label="运费金额" align="center" prop="freightAmount" /> <template v-slot="scope">
<el-table-column label="支付方式0->未支付1->支付宝2->微信" align="center" prop="payType" /> <el-tag :type="getPayTypeTag(scope.row.payType)">
<el-table-column label="订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单" align="center" prop="status" /> {{ getPayTypeText(scope.row.payType) }}
<el-table-column label="退款状态枚举值1无售后或售后关闭2售后处理中3退款中4 退款成功" align="center" prop="aftersaleStatus" /> </el-tag>
<el-table-column label="物流公司(配送方式)" align="center" prop="deliveryCompany" /> </template>
<el-table-column label="物流单号" align="center" prop="deliverySn" /> </el-table-column>
<el-table-column label="自动确认时间" align="center" prop="autoConfirmDay" /> <el-table-column label="收件信息" align="center" prop="receiverName" width="180">
<el-table-column label="收货人姓名" align="center" prop="receiverName" /> <template v-slot="scope">
<el-table-column label="收货人电话" align="center" prop="receiverPhone" /> <div>{{ scope.row.receiverName }} {{ scope.row.receiverPhone }}</div>
<el-table-column label="收货人邮编" align="center" prop="receiverPostCode" /> <div>{{ scope.row.receiverDetailAddress }}</div>
<el-table-column label="省份/直辖市" align="center" prop="receiverProvince" /> </template>
<el-table-column label="城市" align="center" prop="receiverCity" /> </el-table-column>
<el-table-column label="区" align="center" prop="receiverDistrict" /> <!-- <el-table-column label="省份/直辖市" align="center" prop="receiverProvince" />-->
<el-table-column label="省份/直辖市id" align="center" prop="receiverProvinceId" /> <!-- <el-table-column label="城市" align="center" prop="receiverCity" />-->
<el-table-column label="城市id" align="center" prop="receiverCityId" /> <!-- <el-table-column label="区" align="center" prop="receiverDistrict" />-->
<el-table-column label="区id" align="center" prop="receiverDistrictId" /> <!-- <el-table-column label="省份/直辖市id" align="center" prop="receiverProvinceId" />-->
<el-table-column label="详细地址" align="center" prop="receiverDetailAddress" /> <!-- <el-table-column label="城市id" align="center" prop="receiverCityId" />-->
<el-table-column label="订单备注" align="center" prop="note" /> <!-- <el-table-column label="区id" align="center" prop="receiverDistrictId" />-->
<el-table-column label="确认收货状态0->未确认1->已确认" align="center" prop="confirmStatus" /> <el-table-column label="支付时间" align="center" prop="payTime" width="180" >
<el-table-column label="删除状态0->未删除1->已删除" align="center" prop="deleteStatus" />
<el-table-column label="支付时间" align="center" prop="paymentTime" width="180" >
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.paymentTime, '')}}</span> <span>{{ parseTime(scope.row.payTime, '')}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="发货时间" align="center" prop="deliveryTime" width="180" > <el-table-column label="发货时间" align="center" prop="deliveryTime" width="180" >
@ -292,22 +96,20 @@
<span>{{ parseTime(scope.row.receiveTime, '')}}</span> <span>{{ parseTime(scope.row.receiveTime, '')}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="下单时间" align="center" prop="createTime" width="180" >
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '')}}</span>
</template>
</el-table-column>
<el-table-column label="订单备注" align="center" prop="note" width="180"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" @click="goDetail(scope.row)"
@click="handleUpdate(scope.row)" v-hasPermi="['oms:order:detail']"
v-hasPermi="['oms:order:edit']" >详情</el-button>
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['oms:order:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -319,137 +121,27 @@
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @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="用户帐号" prop="memberUsername">
<el-input v-model="form.memberUsername" placeholder="请输入用户帐号" />
</el-form-item>
<el-form-item label="订单总金额" prop="totalAmount">
<el-input v-model="form.totalAmount" 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="payAmount">
<el-input v-model="form.payAmount" placeholder="请输入应付金额" />
</el-form-item>
<el-form-item label="运费金额" prop="freightAmount">
<el-input v-model="form.freightAmount" placeholder="请输入运费金额" />
</el-form-item>
<el-form-item label="支付方式0->未支付1->支付宝2->微信" prop="payType">
<el-select v-model="form.payType" placeholder="请选择支付方式0->未支付1->支付宝2->微信">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单">
<el-radio-group v-model="form.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="退款状态枚举值1无售后或售后关闭2售后处理中3退款中4 退款成功">
<el-radio-group v-model="form.aftersaleStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</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-item label="自动确认时间" prop="autoConfirmDay">
<el-input v-model="form.autoConfirmDay" placeholder="请输入自动确认时间" />
</el-form-item>
<el-form-item label="收货人姓名" prop="receiverName">
<el-input v-model="form.receiverName" placeholder="请输入收货人姓名" />
</el-form-item>
<el-form-item label="收货人电话" prop="receiverPhone">
<el-input v-model="form.receiverPhone" placeholder="请输入收货人电话" />
</el-form-item>
<el-form-item label="收货人邮编" prop="receiverPostCode">
<el-input v-model="form.receiverPostCode" placeholder="请输入收货人邮编" />
</el-form-item>
<el-form-item label="省份/直辖市" prop="receiverProvince">
<el-input v-model="form.receiverProvince" placeholder="请输入省份/直辖市" />
</el-form-item>
<el-form-item label="城市" prop="receiverCity">
<el-input v-model="form.receiverCity" placeholder="请输入城市" />
</el-form-item>
<el-form-item label="区" prop="receiverDistrict">
<el-input v-model="form.receiverDistrict" placeholder="请输入区" />
</el-form-item>
<el-form-item label="省份/直辖市id" prop="receiverProvinceId">
<el-input v-model="form.receiverProvinceId" placeholder="请输入省份/直辖市id" />
</el-form-item>
<el-form-item label="城市id" prop="receiverCityId">
<el-input v-model="form.receiverCityId" placeholder="请输入城市id" />
</el-form-item>
<el-form-item label="区id" prop="receiverDistrictId">
<el-input v-model="form.receiverDistrictId" placeholder="请输入区id" />
</el-form-item>
<el-form-item label="详细地址" prop="receiverDetailAddress">
<el-input v-model="form.receiverDetailAddress" placeholder="请输入详细地址" />
</el-form-item>
<el-form-item label="订单备注" prop="note">
<el-input v-model="form.note" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="确认收货状态0->未确认1->已确认">
<el-radio-group v-model="form.confirmStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="删除状态0->未删除1->已删除">
<el-radio-group v-model="form.deleteStatus">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="支付时间" prop="paymentTime">
<el-date-picker clearable size="small"
v-model="form.paymentTime"
type="datetime"
value-format="yyyy-MM-ddTHH:mm:ss"
placeholder="选择支付时间">
</el-date-picker>
</el-form-item>
<el-form-item label="发货时间" prop="deliveryTime">
<el-date-picker clearable size="small"
v-model="form.deliveryTime"
type="datetime"
value-format="yyyy-MM-ddTHH:mm:ss"
placeholder="选择发货时间">
</el-date-picker>
</el-form-item>
<el-form-item label="确认收货时间" prop="receiveTime">
<el-date-picker clearable size="small"
v-model="form.receiveTime"
type="datetime"
value-format="yyyy-MM-ddTHH:mm:ss"
placeholder="选择确认收货时间">
</el-date-picker>
</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> </div>
</template> </template>
<script> <script>
import { listOmsOrder, getOmsOrder, delOmsOrder, addOmsOrder, updateOmsOrder, exportOmsOrder } from "@/api/oms/order"; import { listOmsOrder, getOmsOrder, delOmsOrder, addOmsOrder, updateOmsOrder, exportOmsOrder } from "@/api/oms/order";
import AddressSelector from "@/views/components/AddressSelector/index.vue";
import dateUtil from '@/utils/DateUtil';
export default { export default {
name: "OmsOrder", name: "OmsOrder",
dicts: ["oms_order_status","oms_pay_type"],
components: {
AddressSelector
},
data() { data() {
return { return {
// //
loading: true, loading: true,
pickerOptions: {
shortcuts: dateUtil.getTimeShort2()
},
// //
exportLoading: false, exportLoading: false,
// //
@ -472,34 +164,18 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
memberId: null,
memberUsername: null,
totalAmount: null,
purchasePrice: null,
payAmount: null,
freightAmount: null,
payType: null, payType: null,
status: null, status: null,
aftersaleStatus: null, Time:[],
deliveryCompany: null, provinces: [],
deliverySn: null,
autoConfirmDay: null,
receiverName: null,
receiverPhone: null,
receiverPostCode: null,
receiverProvince: null,
receiverCity: null,
receiverDistrict: null,
receiverProvinceId: null, receiverProvinceId: null,
receiverCityId: null, receiverCityId: null,
receiverDistrictId: null, receiverDistrictId: null,
receiverDetailAddress: null, orderId: null,
note: null, productName: null,
confirmStatus: null, userPhone: null,
deleteStatus: null, startTime: null,
paymentTime: null, endTime: null
deliveryTime: null,
receiveTime: null,
}, },
// //
form: {}, form: {},
@ -524,9 +200,23 @@ export default {
methods: { methods: {
/** 查询订单表列表 */ /** 查询订单表列表 */
getList() { getList() {
if (this.queryParams.Time) {
this.queryParams.startTime = this.queryParams.Time[0]
this.queryParams.endTime = this.queryParams.Time[1]
}
this.loading = true; this.loading = true;
const {pageNum, pageSize} = this.queryParams; const {pageNum, pageSize} = this.queryParams;
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined}; const query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
if (query.provinces) {
const [receiverProvinceId,receiverCityId,receiverDistrictId] =query.provinces
query.receiverProvinceId = receiverProvinceId
query.receiverCityId = receiverCityId
query.receiverDistrictId = receiverDistrictId
} else {
query.receiverProvinceId = null
query.receiverCityId = null
query.receiverDistrictId = null
}
const pageReq = {page: pageNum - 1, size: pageSize}; const pageReq = {page: pageNum - 1, size: pageSize};
listOmsOrder(query, pageReq).then(response => { listOmsOrder(query, pageReq).then(response => {
const { content, totalElements } = response const { content, totalElements } = response
@ -651,6 +341,67 @@ export default {
this.$download.download(response); this.$download.download(response);
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
},
//change
handleChange(value) {
if (!value) {
this.queryParams.startTime = null;
this.queryParams.endTime = null;
}
},
getOrderTypeTag(status){
switch (status){
case 0:
case 1:
return 'info';
case 2:
return 'primary';
case 3:
return 'success';
case 4:
return 'warning';
case 5:
return 'danger';
}
},
getOrderTypeText(status){
switch (status){
case 0:
return '待付款';
case 1:
return '待发货';
case 2:
return '待发货';
case 3:
return '已发货';
case 4:
return '已关闭';
case 5:
return '无效订单';
}
},
getPayTypeTag(type){
switch (type){
case 0:
return 'info';
case 1:
return 'primary';
case 2:
return 'success';
}
},
getPayTypeText(type){
switch (type){
case 0:
return '未支付';
case 1:
return '支付宝';
case 2:
return '微信';
}
},
goDetail(row){
// this.$router.push()
} }
} }
}; };

@ -1,206 +1,98 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" size="medium" class="ry_form">
<el-form-item label="昵称" prop="nickname"> <el-form-item label="创建时间">
<el-input
v-model="queryParams.nickname"
placeholder="请输入昵称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input
v-model="queryParams.password"
placeholder="请输入密码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入手机号码"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户备注" prop="mark">
<el-input
v-model="queryParams.mark"
placeholder="请输入用户备注"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="帐号启用状态:0->禁用1->启用" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择帐号启用状态:0->禁用1->启用" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="头像" prop="avatar">
<el-input
v-model="queryParams.avatar"
placeholder="请输入头像"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="性别0->未知1->男2->女" prop="gender">
<el-input
v-model="queryParams.gender"
placeholder="请输入性别0->未知1->男2->女"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<template v-if="showMoreCondition">
<el-form-item label="用户所在城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入用户所在城市"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户所在省份" prop="province">
<el-input
v-model="queryParams.province"
placeholder="请输入用户所在省份"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户所在国家" prop="country">
<el-input
v-model="queryParams.country"
placeholder="请输入用户所在国家"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker <el-date-picker
clearable
size="small"
v-model="queryParams.birthday"
type="datetime"
value-format="yyyy-MM-dd"
placeholder="选择生日">
</el-date-picker>
</el-form-item>
<el-form-item label="推广员id" prop="spreadUid">
<el-input
v-model="queryParams.spreadUid"
placeholder="请输入推广员id"
clearable
size="small" size="small"
@keyup.enter.native="handleQuery" v-model="dateRange"
/> style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
:clearable="true"
:picker-options='pickerOptions'
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="推广员关联时间" prop="spreadTime"> <el-form-item label="账号启用状态">
<el-date-picker <el-select v-model="queryParams.status" placeholder="请选择" :clearable="true" size="small">
clearable <el-option label="禁用" value="0">
size="small" </el-option>
v-model="queryParams.spreadTime" <el-option label="启用" value="1">
type="datetime" </el-option>
value-format="yyyy-MM-ddTHH:mm:ss" </el-select>
placeholder="选择推广员关联时间">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="等级" prop="level"> <el-form-item label="昵称" prop="nickname">
<el-input <el-input
v-model="queryParams.level" v-model.trim="queryParams.nickname"
placeholder="请输入等级" placeholder="请输入昵称"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="用户剩余积分" prop="integral"> <el-form-item label="手机号码" prop="phone">
<el-input <el-input
v-model="queryParams.integral" v-model.trim="queryParams.phone"
placeholder="请输入用户剩余积分" placeholder="请输入手机号码"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
</template>
<el-form-item class="flex_one tr"> <el-form-item class="flex_one tr">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <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="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-button :icon="showMoreCondition ? 'el-icon-arrow-up' : 'el-icon-arrow-down'" size="mini" @click="showMoreCondition = !showMoreCondition">{{showMoreCondition ? '收起条件' : '展开条件'}}</el-button>-->
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-table v-loading="loading" :data="umsMemberList">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['ums:member:add']"
>新增</el-button>
</el-col>
</el-col>
</el-row>
<el-table v-loading="loading" :data="umsMemberList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="昵称" align="center" prop="nickname" /> <el-table-column label="昵称" align="center" prop="nickname" />
<el-table-column label="密码" align="center" prop="password" /> <el-table-column label="手机号码" align="center" prop="phoneHidden" />
<el-table-column label="手机号码" align="center" prop="phone" /> <el-table-column label="性别" align="center" prop="gender" >
<el-table-column label="用户备注" align="center" prop="mark" /> <template v-slot="scope">
<el-table-column label="帐号启用状态:0->禁用1->启用" align="center" prop="status" /> <div>{{ scope.row.gender === 0 ? '未知' : (scope.row.gender === 1 ? '男' : '女') }}</div>
<el-table-column label="头像" align="center" prop="avatar" /> </template>
<el-table-column label="性别0->未知1->男2->女" align="center" prop="gender" /> </el-table-column>
<el-table-column label="用户所在城市" align="center" prop="city" /> <el-table-column label="用户所在城市" align="center" prop="city" />
<el-table-column label="用户所在省份" align="center" prop="province" /> <el-table-column label="用户所在省份" align="center" prop="province" />
<el-table-column label="用户所在国家" align="center" prop="country" /> <el-table-column label="用户所在国家" align="center" prop="country" />
<el-table-column label="公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注" align="center" prop="remark" /> <el-table-column label="等级" align="center" prop="level" />
<el-table-column label="生日" align="center" prop="birthday" width="180" > <el-table-column label="账号启用状态" align="center" prop="status">
<template slot-scope="scope"> <template v-slot="scope">
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}')}}</span> <el-switch
</template> style="display: block"
</el-table-column> v-model="scope.row.status"
<el-table-column label="推广员id" align="center" prop="spreadUid" /> :active-value="1"
<el-table-column label="推广员关联时间" align="center" prop="spreadTime" width="180" > :inactive-value="0"
<template slot-scope="scope"> active-color="#13ce66"
<span>{{ parseTime(scope.row.spreadTime, '')}}</span> @change="changeStatus(scope.row)">
</el-switch>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="等级" align="center" prop="level" /> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<el-table-column label="用户剩余积分" align="center" prop="integral" /> <template v-slot="scope">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <div>{{ parseTime(scope.row.createTime) }}</div>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['ums:member:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['ums:member:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
<!-- <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="['ums:member:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['ums:member:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table> </el-table>
<pagination <pagination
@ -211,85 +103,21 @@
@pagination="getList" @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="昵称" prop="nickname">
<el-input v-model="form.nickname" placeholder="请输入昵称" />
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="form.password" placeholder="请输入密码" />
</el-form-item>
<el-form-item label="手机号码" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号码" />
</el-form-item>
<el-form-item label="用户备注" prop="mark">
<el-input v-model="form.mark" placeholder="请输入用户备注" />
</el-form-item>
<el-form-item label="帐号启用状态:0->禁用1->启用">
<el-radio-group v-model="form.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="头像" prop="avatar">
<el-input v-model="form.avatar" placeholder="请输入头像" />
</el-form-item>
<el-form-item label="性别0->未知1->男2->女" prop="gender">
<el-input v-model="form.gender" placeholder="请输入性别0->未知1->男2->女" />
</el-form-item>
<el-form-item label="用户所在城市" prop="city">
<el-input v-model="form.city" placeholder="请输入用户所在城市" />
</el-form-item>
<el-form-item label="用户所在省份" prop="province">
<el-input v-model="form.province" placeholder="请输入用户所在省份" />
</el-form-item>
<el-form-item label="用户所在国家" prop="country">
<el-input v-model="form.country" placeholder="请输入用户所在国家" />
</el-form-item>
<el-form-item label="公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注" />
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker clearable size="small"
v-model="form.birthday"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择生日">
</el-date-picker>
</el-form-item>
<el-form-item label="推广员id" prop="spreadUid">
<el-input v-model="form.spreadUid" placeholder="请输入推广员id" />
</el-form-item>
<el-form-item label="推广员关联时间" prop="spreadTime">
<el-date-picker clearable size="small"
v-model="form.spreadTime"
type="datetime"
value-format="yyyy-MM-ddTHH:mm:ss"
placeholder="选择推广员关联时间">
</el-date-picker>
</el-form-item>
<el-form-item label="等级" prop="level">
<el-input v-model="form.level" placeholder="请输入等级" />
</el-form-item>
<el-form-item label="用户剩余积分" prop="integral">
<el-input v-model="form.integral" 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> </div>
</template> </template>
<script> <script>
import { listUmsMember, getUmsMember, delUmsMember, addUmsMember, updateUmsMember, exportUmsMember } from "@/api/ums/member"; import { listUmsMember, getUmsMember, delUmsMember, addUmsMember, updateUmsMember, exportUmsMember, changeAccountStatus } from "@/api/ums/member";
import dateUtil from '@/utils/DateUtil';
import moment from "moment";
export default { export default {
name: "UmsMember", name: "UmsMember",
data() { data() {
return { return {
pickerOptions: {
shortcuts: dateUtil.getTimeShort()
},
// //
loading: true, loading: true,
// //
@ -315,21 +143,10 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
nickname: null, nickname: null,
password: null,
phone: null, phone: null,
mark: null, status: undefined
status: null,
avatar: null,
gender: null,
city: null,
province: null,
country: null,
birthday: null,
spreadUid: null,
spreadTime: null,
level: null,
integral: null,
}, },
dateRange:[],
// //
form: {}, form: {},
// //
@ -352,8 +169,11 @@ export default {
getList() { getList() {
this.loading = true; this.loading = true;
const {pageNum, pageSize} = this.queryParams; const {pageNum, pageSize} = this.queryParams;
const query = {...this.queryParams, pageNum: undefined, pageSize: undefined}; let query = {...this.queryParams, pageNum: undefined, pageSize: undefined};
const pageReq = {page: pageNum - 1, size: pageSize}; const pageReq = {page: pageNum - 1, size: pageSize};
if (!this.dateRange || this.dateRange.length > 0){
query = { ...this.addDateRange2(query, this.dateRange) }
}
listUmsMember(query, pageReq).then(response => { listUmsMember(query, pageReq).then(response => {
const { content, totalElements } = response const { content, totalElements } = response
this.umsMemberList = content; this.umsMemberList = content;
@ -465,6 +285,19 @@ export default {
this.$download.download(response); this.$download.download(response);
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
},
//
changeStatus(row){
const data = {
memberId: row.id,
status: row.status
}
changeAccountStatus(data).then(response => {
if (response < 1){
this.$modal.msgError('操作失败')
this.getList()
}
})
} }
} }
}; };

@ -1,38 +1,24 @@
<template> <template>
<div class="app-container"> <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 :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-form-item label="收货人姓名" prop="name">
<el-input
v-model="queryParams.memberId"
placeholder="请输入MEMBER_ID"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收货人名称" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
placeholder="请输入收货人" placeholder="请输入收货人姓名"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="PHONE" prop="phone"> <el-form-item label="手机号" prop="phone">
<el-input <el-input
v-model="queryParams.phone" v-model="queryParams.phone"
placeholder="请输入PHONE" placeholder="请输入手机号"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="是否为默认" prop="defaultStatus">
<el-select v-model="queryParams.defaultStatus" placeholder="请选择是否为默认" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="邮政编码" prop="postCode"> <el-form-item label="邮政编码" prop="postCode">
<el-input <el-input
v-model="queryParams.postCode" v-model="queryParams.postCode"
@ -70,19 +56,10 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="详细地址(街道)" prop="detailAddress"> <el-form-item label="详细地址" prop="detailAddress">
<el-input <el-input
v-model="queryParams.detailAddress" v-model="queryParams.detailAddress"
placeholder="请输入详细地址(街道)" placeholder="请输入详细地址"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否默认" prop="isDefault">
<el-input
v-model="queryParams.isDefault"
placeholder="请输入是否默认"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
@ -96,50 +73,55 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <!-- <el-row :gutter="10" class="mb8">-->
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button <!-- <el-button-->
type="primary" <!-- type="primary"-->
plain <!-- plain-->
icon="el-icon-plus" <!-- icon="el-icon-plus"-->
size="mini" <!-- size="mini"-->
@click="handleAdd" <!-- @click="handleAdd"-->
v-hasPermi="['ums:memberAddress:add']" <!-- v-hasPermi="['ums:memberAddress:add']"-->
>新增</el-button> <!-- >新增</el-button>-->
</el-col> <!-- </el-col>-->
</el-col> <!-- </el-col>-->
</el-row> <!-- </el-row>-->
<el-table v-loading="loading" :data="umsMemberAddressList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="umsMemberAddressList">
<el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="MEMBER_ID" align="center" prop="memberId" /> <el-table-column label="收货人姓名" align="center" prop="name" >
<el-table-column label="收货人名称" align="center" prop="name" /> <template v-slot="scope">
<el-table-column label="PHONE" align="center" prop="phone" /> <div>{{ getHiddenName(scope.row.name) }}</div>
<el-table-column label="是否为默认" align="center" prop="defaultStatus" /> </template>
</el-table-column>
<el-table-column label="手机号" align="center" prop="phoneHidden" />
<el-table-column label="邮政编码" align="center" prop="postCode" /> <el-table-column label="邮政编码" align="center" prop="postCode" />
<el-table-column label="省份/直辖市" align="center" prop="province" /> <el-table-column label="省份/直辖市" align="center" prop="province" />
<el-table-column label="城市" align="center" prop="city" /> <el-table-column label="城市" align="center" prop="city" />
<el-table-column label="区" align="center" prop="district" /> <el-table-column label="区" align="center" prop="district" />
<el-table-column label="详细地址(街道)" align="center" prop="detailAddress" /> <el-table-column label="详细地址" align="center" prop="detailAddress" width="250">
<el-table-column label="是否默认" align="center" prop="isDefault" /> <template v-slot="scope">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <div>{{ replaceDetailAddress(scope.row.detailAddress.replaceAll((/[\d]+/g),'*')) }}</div>
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['ums:memberAddress:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['ums:memberAddress:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
<!-- <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="['ums:memberAddress:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['ums:memberAddress:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table> </el-table>
<pagination <pagination
@ -244,7 +226,8 @@ export default {
{ required: true, message: "是否默认不能为空", trigger: "blur" } { required: true, message: "是否默认不能为空", trigger: "blur" }
], ],
}, },
showMoreCondition: false showMoreCondition: false,
chineseNumbers: ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
}; };
}, },
created() { created() {
@ -362,6 +345,26 @@ export default {
this.$download.download(response); this.$download.download(response);
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
},
replaceDetailAddress(data){
if (!data || data.length === 0){
return ''
}
let result = ''
for(let i=0;i<data.length;i++){
if (this.chineseNumbers.includes(data[i])){
result += '*'
}else {
result += data[i]
}
}
return result
},
getHiddenName(name){
if (!name) return
const surname = name.substr(0, 1)
const star = '*'.repeat(name.length - 1)
return surname + star
} }
} }
}; };

Loading…
Cancel
Save