Merge branch 'dev-ryan' into ma

master
mabo 2021-05-21 10:47:12 +08:00
commit ae730cacf3
15 changed files with 674 additions and 657 deletions

View File

@ -8,13 +8,14 @@ import {
getRequestWithNoToken, getRequestWithNoToken,
putRequestWithNoForm, putRequestWithNoForm,
postRequestWithNoForm, postRequestWithNoForm,
commonUrl,
managerUrl managerUrl
} from "@/libs/axios"; } from "@/libs/axios";
import config from "@/config"; import config from "@/config";
let commonUrl = (process.env.NODE_ENV === 'development' ? config.api_dev.common : config.api_prod.common)
// 文件上传接口 // 文件上传接口
export const uploadFile = commonUrl + "/common/upload/file"; export const uploadFile = commonUrl+ "/common/upload/file";
// 验证码渲染图片接口 // 验证码渲染图片接口
export const drawCodeImage = commonUrl + "/common/captcha/draw/"; export const drawCodeImage = commonUrl + "/common/captcha/draw/";
// 获取菜单 // 获取菜单

View File

@ -17,10 +17,10 @@ export default {
* @description api请求基础路径 * @description api请求基础路径
*/ */
api_dev: { api_dev: {
common: 'https://common-api.pickmall.cn', common: 'http://192.168.0.103:8890/',
buyer: 'https://buyer-api.pickmall.cn', buyer: 'https://buyer-api.pickmall.cn',
seller: 'https://store-api.pickmall.cn', seller: 'https://store-api.pickmall.cn',
manager: 'https://admin-api.pickmall.cn' manager: 'http://192.168.0.103:8887'
}, },
api_prod: { api_prod: {
common: 'https://common-api.pickmall.cn', common: 'https://common-api.pickmall.cn',

View File

@ -53,7 +53,7 @@
<div class="right-container"> <div class="right-container">
<div class="border-b">{{ infoData.goodsName }}</div> <div class="border-b">{{ infoData.goodsName }}</div>
<div class="border-b"> <div class="border-b">
<div class="div-height"> 店铺名称{{ infoData.sellerName }}</div> <div class="div-height"> 店铺名称{{ infoData.storeName }}</div>
<div class="div-height"> 订单号{{ infoData.orderNo }}</div> <div class="div-height"> 订单号{{ infoData.orderNo }}</div>
</div> </div>

View File

@ -72,11 +72,11 @@
<div class="counts">{{$store.state.notices.refund|| 0}}</div> <div class="counts">{{$store.state.notices.refund|| 0}}</div>
<div>待审核售后</div> <div>待审核售后</div>
</div> </div>
<div class="todo-item" @click="navigateTo('distribution')"> <div class="todo-item" >
<div class="counts">{{$store.state.notices.distributionCash|| 0}}</div> <div class="counts">{{$store.state.notices.distributionCash|| 0}}</div>
<div>待审核分销提现</div> <div>待审核分销提现</div>
</div> </div>
<div class="todo-item" @click="navigateTo('billList')"> <div class="todo-item" @click="navigateTo('accountStatementBill')">
<div class="counts">{{$store.state.notices.waitPayBill|| 0}}</div> <div class="counts">{{$store.state.notices.waitPayBill|| 0}}</div>
<div>待审核分账</div> <div>待审核分账</div>
</div> </div>

View File

@ -1,127 +0,0 @@
<template>
<Modal :mask-closable="false" :value="switched" v-model="switched" title="选择地址" @on-ok="submit" @on-cancel="cancel">
<div class="flex">
<Spin size="large" fix v-if="spinShow"></Spin>
<Tree ref="tree" class="tree" :data="data" expand-node show-checkbox multiple></Tree>
</div>
</Modal>
</template>
<script>
import { getAllCity } from "@/api/index";
export default {
data() {
return {
switched: false, //
spinShow: false, //
data: [], //
selectedWay: [], //
callBackData: "", //
};
},
mounted() {
this.init();
},
methods: {
cancel() {
this.switched = false;
// this.$emit("close",true)
},
open(val) {
if (val) {
this.callBackData = val;
this.data = JSON.parse(JSON.stringify(this.data));
val.areaId.split(",").forEach((ids) => {
this.data.forEach((item) => {
if (item.id == ids) {
item.selected = true;
}
item.children &&
item.children.forEach((child) => {
if (child.id == ids) {
child.checked = true;
}
});
});
});
console.log(this.data);
}
this.switched = true;
},
submit() {
//
let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
let sort = [];
list.forEach((item) => {
item.selectedList = [];
if (item.level == "province") {
sort.push({
...item,
});
}
sort.forEach((sortItem, sortIndex) => {
if (item.level != "province" && sortItem.id == item.parentId) {
sortItem.selectedList.push({
...item,
});
}
});
});
this.$emit(
"selected",
list.filter((item) => {
return item.level == "province";
})
);
this.cancel();
},
init() {
getAllCity().then((res) => {
if (res.result) {
res.result.forEach((item) => {
item.children.forEach((child) => {
child.title = child.name;
});
let data = {
title: item.name,
...item,
};
this.data.push(data);
this.selectedWay.push({ name: data.title, id: data.id });
});
}
});
},
},
};
</script>
<style scoped lang="scss">
.flex {
display: flex;
position: relative;
}
.tree {
flex: 2;
}
.form {
flex: 8;
}
.button-list {
margin-left: 80px;
> * {
margin: 0 4px;
}
}
/deep/ .ivu-modal-body {
height: 400px !important;
overflow: auto;
}
</style>

View File

@ -9,7 +9,7 @@
@end="onEnd" @end="onEnd"
> >
<div class="upload-list" v-for="(item, index) in uploadList" :key="index"> <div class="upload-list" v-for="(item, index) in uploadList" :key="index">
<div v-if="item.status == 'finished'"> <div v-if="item.status == 'finished'" style="height:60px;">
<img :src="item.url" /> <img :src="item.url" />
<div class="upload-list-cover"> <div class="upload-list-cover">
<Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon> <Icon type="ios-eye-outline" @click="handleView(item.url)"></Icon>

View File

@ -48,10 +48,10 @@
style="width: 200px" style="width: 200px"
></DatePicker> ></DatePicker>
</Form-item> </Form-item>
<Form-item label="商家名称" prop="sellerName"> <Form-item label="商家名称" prop="storeName">
<Input <Input
type="text" type="text"
v-model="searchForm.sellerName" v-model="searchForm.storeName"
placeholder="请输入商家名称" placeholder="请输入商家名称"
clearable clearable
style="width: 200px" style="width: 200px"
@ -149,7 +149,7 @@
orderSn: "", orderSn: "",
memberName: "", memberName: "",
serviceStatus: "", serviceStatus: "",
sellerName:"", storeName:"",
sn: "", sn: "",
}, },
@ -157,7 +157,7 @@
form: { form: {
// //
sn: "", sn: "",
sellerName: "", storeName: "",
startTime: "", startTime: "",
endTime: "", endTime: "",
billPrice: "", billPrice: "",

View File

@ -2,35 +2,41 @@
<div class="search"> <div class="search">
<Row> <Row>
<Col> <Col>
<Card> <Card>
<Row @keydown.enter.native="handleSearch"> <Row @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form"> <Form ref="searchForm" :model="searchForm" inline :label-width="70" class="search-form">
<Form-item label="订单号" prop="sn"> <Form-item label="订单号" prop="sn">
<Input type="text" v-model="searchForm.sn" placeholder="订单/交易号" clearable style="width: 200px"/> <Input type="text" v-model="searchForm.sn" placeholder="订单/交易号" clearable style="width: 200px" />
</Form-item> </Form-item>
<Form-item label="付款状态" prop="orderStatus"> <Form-item label="付款状态" prop="orderStatus">
<Select v-model="searchForm.payStatus" placeholder="请选择" clearable style="width: 200px"> <Select v-model="searchForm.payStatus" placeholder="请选择" clearable style="width: 200px">
<Option value="UNPAID">未付款</Option> <Option value="UNPAID">未付款</Option>
<Option value="PAID">已付款</Option> <Option value="PAID">已付款</Option>
</Select> </Select>
</Form-item> </Form-item>
<Form-item label="支付时间"> <Form-item label="支付方式" prop="orderStatus">
<DatePicker v-model="searchForm" type="datetimerange" format="yyyy-MM-dd" clearable <Select v-model="searchForm.paymentMethod" placeholder="请选择" clearable style="width: 200px">
@on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker> <Option value="WECHAT">微信</Option>
</Form-item> <Option value="ALIPAY">支付宝</Option>
<Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button> <Option value="WALLET">余额</Option>
</Form> <Option value="BANK_TRANSFER">银行转账</Option>
</Row> <Option value="">暂未付款</Option>
<Row class="padding-row"> </Select>
<Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" </Form-item>
@on-sort-change="changeSort" @on-selection-change="changeSelect"></Table> <Form-item label="支付时间">
</Row> <DatePicker v-model="searchForm" type="datetimerange" format="yyyy-MM-dd" clearable @on-change="selectDateRange" placeholder="选择起始时间" style="width: 200px"></DatePicker>
<Row type="flex" justify="end" class="page"> </Form-item>
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" <Button @click="handleSearch" type="primary" icon="ios-search" class="search-btn">搜索</Button>
@on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" </Form>
size="small" show-total show-elevator show-sizer></Page> </Row>
</Row> <Row class="padding-row">
</Card> <Table :loading="loading" border :columns="columns" :data="data" ref="table" sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
</Row>
<Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
size="small" show-total show-elevator show-sizer></Page>
</Row>
</Card>
</Col> </Col>
</Row> </Row>
</div> </div>
@ -68,16 +74,57 @@ export default {
{ {
title: "支付方式", title: "支付方式",
key: "paymentMethod", key: "paymentMethod",
width: 100, width: 120,
align: "center",
render: (h, params) => { render: (h, params) => {
if (params.row.paymentMethod === "WECHAT") { if (params.row.paymentMethod === "WECHAT") {
return h("div", [h("span", {}, "微信")]); return h("div", [
h(
"Tag",
{
props: {
color: "green",
},
},
"微信"
),
]);
} else if (params.row.paymentMethod === "ALIPAY") { } else if (params.row.paymentMethod === "ALIPAY") {
return h("div", [h("span", {}, "支付宝")]); return h("div", [
h(
"Tag",
{
props: {
color: "blue",
},
},
"支付宝"
),
]);
} else if (params.row.paymentMethod === "WALLET") { } else if (params.row.paymentMethod === "WALLET") {
return h("div", [h("span", {}, "余额支付")]); return h("div", [
h(
"Tag",
{
props: {},
},
"余额支付"
),
]);
} else if (params.row.paymentMethod === "BANK_TRANSFER") { } else if (params.row.paymentMethod === "BANK_TRANSFER") {
return h("div", [h("span", {}, "银行转帐")]); return h("div", [
h(
"Tag",
{
props: {
color: "orange",
},
},
"银行转帐"
),
]);
} else {
return h("div", [h("Tag", {}, "暂未付款")]);
} }
}, },
}, },
@ -85,19 +132,24 @@ export default {
title: "第三方流水", title: "第三方流水",
key: "receivableNo", key: "receivableNo",
minWidth: 130, minWidth: 130,
render: (h, params) => {
return h("div", [
h("span", {}, params.row.receivableNo || "暂无流水号"),
]);
},
}, },
{ {
title: "客户端", title: "客户端",
key: "clientType", key: "clientType",
width: 130, width: 130,
render: (h, params) => { render: (h, params) => {
if (params.row.clientType === "WECHAT_MP") { if (params.row.clientType === "WECHAT_MP" || params.row.clientType === '小程序') {
return h("div", [h("span", {}, "小程序")]); return h("div", [h("span", {}, "小程序")]);
} else if (params.row.clientType === "APP") { } else if (params.row.clientType === "APP") {
return h("div", [h("span", {}, "APP")]); return h("div", [h("span", {}, "APP")]);
} else if (params.row.clientType === "PC") { } else if (params.row.clientType === "PC") {
return h("div", [h("span", {}, "PC网页")]); return h("div", [h("span", {}, "PC网页")]);
} else if (params.row.clientType === "H5") { } else if (params.row.clientType === "H5" || params.row.clientType === 'wap') {
return h("div", [h("span", {}, "移动端")]); return h("div", [h("span", {}, "移动端")]);
} }
}, },
@ -106,6 +158,11 @@ export default {
title: "支付时间", title: "支付时间",
key: "paymentTime", key: "paymentTime",
width: 200, width: 200,
render: (h, params) => {
return h("div", [
h("span", {}, params.row.paymentTime || "暂无支付时间"),
]);
},
}, },
{ {
title: "订单金额", title: "订单金额",
@ -204,7 +261,7 @@ export default {
}); });
this.total = this.data.length; this.total = this.data.length;
this.loading = false; this.loading = false;
} },
}, },
mounted() { mounted() {
this.init(); this.init();

View File

@ -99,6 +99,15 @@
key: "storeAddressPath", key: "storeAddressPath",
width: 300, width: 300,
sortable: false, sortable: false,
render: (h, params) => {
return h(
"Tag",
{
},
params.row.storeAddressPath || "暂未填写"
);
},
}, },
{ {
title: "是否自营", title: "是否自营",

View File

@ -111,7 +111,16 @@ export default {
title: "店铺地址", title: "店铺地址",
key: "storeAddressPath", key: "storeAddressPath",
width: 300, width: 300,
tooltip: true tooltip: true,
render: (h, params) => {
return h(
"Tag",
{
},
params.row.storeAddressPath || "暂未填写"
);
},
}, },
{ {
title: "是否自营", title: "是否自营",

View File

@ -710,7 +710,7 @@ export default {
// //
sendSms() { sendSms() {
this.$refs.smsForm.validate((valid) => { this.$refs.smsForm.validate((valid) => {
const mobile = JSON.stringify(this.alreadyCheck); const mobile = this.alreadyCheck;
this.smsForm.mobile = mobile; this.smsForm.mobile = mobile;
if (valid) { if (valid) {
API_Setting.sendSms(this.smsForm).then((res) => { API_Setting.sendSms(this.smsForm).then((res) => {

View File

@ -162,8 +162,12 @@
}; };
</script> </script>
<style lang="scss">
.sign-name { <style lang="scss" scoped>
//
@import "@/styles/table-common.scss";
.sign-name {
margin-top: 5px; margin-top: 5px;
margin-left: 20px; margin-left: 20px;
font-size: 16px; font-size: 16px;
@ -189,7 +193,3 @@
margin-left: 100px; margin-left: 100px;
} }
</style> </style>
<style lang="scss">
//
@import "@/styles/table-common.scss";
</style>

View File

@ -6,6 +6,7 @@ import Vue from 'vue';
const app = { const app = {
state: { state: {
shipTemplates:"",
styleStore:"", //移动端楼层装修中选择风格存储 styleStore:"", //移动端楼层装修中选择风格存储
loading: false, // 全局加载动画 loading: false, // 全局加载动画
added: false, // 加载路由标识 added: false, // 加载路由标识
@ -30,7 +31,7 @@ const app = {
path: '', path: '',
name: 'home_index' name: 'home_index'
} }
], ],
// 面包屑数组 左侧菜单 // 面包屑数组 左侧菜单
menuList: [], menuList: [],
routers: [ routers: [

View File

@ -7,7 +7,7 @@
</Modal> </Modal>
</template> </template>
<script> <script>
import { getChildRegion, getAllCity } from "@/api/index"; import { getAllCity } from "@/api/index";
export default { export default {
data() { data() {
return { return {
@ -22,46 +22,84 @@ export default {
this.init(); this.init();
}, },
methods: { methods: {
/**
* 关闭
*/
cancel() { cancel() {
this.switched = false; this.switched = false;
// this.$emit("close",true)
},
open(val) {
if (val) {
this.callBackData = val;
this.data = JSON.parse(JSON.stringify(this.data));
val.areaId.split(",").forEach((ids) => {
this.data.forEach((item) => {
if (item.id == ids) {
item.selected = true;
} // disabledtrue
item.children && this.data.forEach((item) => {
item.children.forEach((child) => { this.$set(item, "disabled", false);
item.children.forEach((child) => {
this.$set(child, "disabled", false);
});
});
},
/**
* 打开地图选择器
* @param {val} 回调的数据
* @param {index} 当前操作的运费模板的索引
*/
open(val, index) {
if (val) {
//
let checkedData = this.$store.state.shipTemplate;
//
let disabledData = checkedData.filter((item, i) => {
return i != index;
});
disabledData.forEach((dis) => {
// id
dis.areaId.split(",").forEach((ids) => {
//
this.data.forEach((item) => {
//
if (dis.selectedAll) {
dis.area.split(",").forEach((area) => {
if (area == item.name) {
this.$set(item, "disabled", true);
}
});
}
//
item.children.forEach((child, childIndex) => {
//
if (child.id == ids) { if (child.id == ids) {
child.checked = true; this.$set(child, "disabled", true);
} }
}); });
});
}); });
}); });
} }
this.switched ? (this.switched = true) : (this.switched = true);
this.switched = true;
}, },
/**
* 提交并筛选出省市
*/
submit() { submit() {
// //
let list = this.$refs.tree.getCheckedAndIndeterminateNodes(); let list = this.$refs.tree.getCheckedAndIndeterminateNodes();
let sort = []; let sort = [];
list.forEach((item) => { list.forEach((item, i) => {
item.selectedList = []; item.selectedList = [];
if (item.level == "province") { item.selectedAll = false;
//
if (item.level == "province" && !item.disabled) {
sort.push({ sort.push({
...item, ...item,
}); });
} }
//
sort.forEach((sortItem, sortIndex) => { sort.forEach((sortItem, sortIndex) => {
if (item.level != "province" && sortItem.id == item.parentId) { if (item.level != "province" && sortItem.id == item.parentId && !item.disabled) {
sortItem.selectedList.push({ sortItem.selectedList.push({
...item, ...item,
}); });
@ -69,12 +107,24 @@ export default {
}); });
}); });
this.$emit( //
"selected", this.data.forEach((whether) => {
list.filter((item) => { sort.forEach((item) => {
return item.level == "province"; //
}) if (
); item.id == whether.id &&
item.selectedList.length == whether.children.length
) {
//
item.selectedList.forEach((child) => {
this.$set(child, "selectedAll", true);
});
this.$set(item, "selectedAll", true);
}
});
});
this.$emit("selected", sort);
this.cancel(); this.cancel();
}, },
@ -93,8 +143,10 @@ export default {
...item, ...item,
}; };
this.data.push(data); this.data.push(data);
this.selectedWay.push({ name: data.title, id: data.id }); this.selectedWay.push({ name: data.title, id: data.id });
}); });
console.log(this.data);
} }
}); });
}, },

File diff suppressed because it is too large Load Diff