-
-
-
-
+
+
+
+
+
+
-
+
-
+
-
-
-
- 刷新
- 批量删除
-
-
-
+
@@ -126,20 +133,33 @@
-
+
-
![]()
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{item.name}}
+ {{ item.name }}
@@ -147,173 +167,172 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -416,7 +435,7 @@ import {
updateFileDirectory,
} from "@/api/index";
import DPlayer from "dplayer";
-import { commonUrl } from "@/libs/axios";
+import {commonUrl} from "@/libs/axios";
const config = require("@/config/index");
@@ -478,12 +497,13 @@ export default {
picTitle: "", // 图片title
videoTitle: "", // 视频title
modalTitle: "", // 添加或编辑标题
+ activeRoleTab: "MANAGER",
searchForm: {
// 搜索框对应data对象
name: "",
fileKey: "",
fileType: "",
- ownerName: "",
+ userEnums: "MANAGER",
pageNumber: 1, // 当前页数
pageSize: 20, // 页面大小
sort: "createTime", // 默认排序字段
@@ -618,9 +638,11 @@ export default {
if (params.row.userEnums == "MANAGER") {
m = "[管理员]";
} else if (params.row.userEnums == "STORE") {
- m = "[店铺]";
+ m = "[商家]";
+ } else if (params.row.userEnums == "CUSTOMER") {
+ m = "[客服]";
} else {
- m = "[会员]";
+ m = "[用户]";
}
m += params.row.createBy;
return h("span", m);
@@ -635,16 +657,14 @@ export default {
render: (h, params) => {
return h("div", [
h(
- "Button",
+ "a",
{
- props: {
- type: "default",
- size: "small",
- },
style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
marginRight: "5px",
- display:
- this.selectImage === true ? "inline-block" : "none",
+ display: this.selectImage === true ? "inline-block" : "none",
},
on: {
click: () => {
@@ -655,13 +675,23 @@ export default {
"选择"
),
h(
- "Button",
+ "span",
{
- props: {
- type: "info",
- size: "small",
- },
style: {
+ margin: "0 8px",
+ color: "#dcdee2",
+ display: this.selectImage === true ? "inline-block" : "none",
+ },
+ },
+ "|"
+ ),
+ h(
+ "a",
+ {
+ style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
marginRight: "5px",
display: this.selectImage == true ? "none" : "inline-block",
},
@@ -674,13 +704,23 @@ export default {
"下载"
),
h(
- "Button",
+ "span",
{
- props: {
- type: "error",
- size: "small",
- },
style: {
+ margin: "0 8px",
+ color: "#dcdee2",
+ display: this.selectImage == true ? "none" : "inline-block",
+ },
+ },
+ "|"
+ ),
+ h(
+ "a",
+ {
+ style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
display: this.selectImage == true ? "none" : "inline-block",
},
on: {
@@ -782,9 +822,11 @@ export default {
if (params.row.userEnums == "MANAGER") {
m = "[管理员]";
} else if (params.row.userEnums == "STORE") {
- m = "[店铺]";
+ m = "[商家]";
+ } else if (params.row.userEnums == "CUSTOMER") {
+ m = "[客服]";
} else {
- m = "[会员]";
+ m = "[用户]";
}
m += params.row.createBy;
return h("span", m);
@@ -838,17 +880,33 @@ export default {
{
title: 'parent 1',
expand: true,
- render: (h, { root, node, data }) => {
+ render: (h, {root, node, data}) => {
return h('span', {style: {display: 'inline-block', width: '100%'}}, [
h('span', [h("Icon", {type: 'ios-folder-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
h('span', {style: {display: 'inline-block', float: 'right', marginRight: '32px'}},
- [h("Button", {...this.buttonProps, icon: 'ios-add', type: 'primary', style: {width: '64px'}, onClick: () => { this.append(data) }})
- ])
+ [h("Button", {
+ ...this.buttonProps,
+ icon: 'ios-add',
+ type: 'primary',
+ style: {width: '64px'},
+ onClick: () => {
+ this.append(data)
+ }
+ })
+ ])
]);
},
children: [
- {title: 'child 1-1', expand: true, children: [{title: 'leaf 1-1-1', expand: true}, {title: 'leaf 1-1-2', expand: true}]},
- {title: 'child 1-2', expand: true, children: [{title: 'leaf 1-2-1', expand: true}, {title: 'leaf 1-2-1', expand: true}]}
+ {
+ title: 'child 1-1',
+ expand: true,
+ children: [{title: 'leaf 1-1-1', expand: true}, {title: 'leaf 1-1-2', expand: true}]
+ },
+ {
+ title: 'child 1-2',
+ expand: true,
+ children: [{title: 'leaf 1-2-1', expand: true}, {title: 'leaf 1-2-1', expand: true}]
+ }
]
}
],
@@ -864,7 +922,7 @@ export default {
},
selectedOss(val) {
if (val && val.length) {
- this.$emit("callback", {url: val[val.length-1].split(',')[1]});
+ this.$emit("callback", {url: val[val.length - 1].split(',')[1]});
}
},
// 初始化监听 是否清空所选图片
@@ -879,8 +937,30 @@ export default {
}
},
},
+ computed: {
+ canShowGroups() {
+ return this.activeRoleTab === "MANAGER";
+ },
+ canUploadImages() {
+ return this.activeRoleTab === "MANAGER";
+ },
+ uploadData() {
+ return {
+ directoryPath: this.searchForm.fileDirectoryId,
+ userEnums: this.activeRoleTab,
+ directoryType: this.activeRoleTab,
+ };
+ },
+ },
methods: {
+ beforeUpload() {
+ if (!this.canUploadImages) {
+ this.$Message.warning("仅管理员模块支持上传图片");
+ return false;
+ }
+ return true;
+ },
onMouseOver(item, index) {
this.$set(this.data[index], 'isShowPreview', true);
this.$forceUpdate();
@@ -888,10 +968,53 @@ export default {
onMouseOut(item, index) {
this.$set(this.data[index], 'isShowPreview', false);
},
+ handleRoleTabChange(name) {
+ this.activeRoleTab = name;
+ this.searchForm.pageNumber = 1;
+ this.searchForm.userEnums = name;
+ delete this.searchForm.fileDirectoryId;
+ this.selectedGroupData = "";
+ this.defaultValue = [];
+ this.groupFormValidate.id = [];
+ this.groupFormValidate.level = 0;
+ this.$set(this, "selectedOss", []);
+ this.updateTreeDataByRole();
+ this.getDataList();
+ },
+ updateTreeDataByRole() {
+ const currentTree = this.filterTreeByRole(this.treeDataDefault, this.activeRoleTab);
+ this.treeData = [
+ {
+ title: "全部图片",
+ label: "全部分类",
+ value: "0",
+ type: this.activeRoleTab,
+ level: 0,
+ children: currentTree,
+ id: "0",
+ categoryId: 0,
+ },
+ ];
+ },
+ filterTreeByRole(tree = [], role) {
+ if (!tree || !tree.length) return [];
+ return tree.reduce((arr, item) => {
+ const children = this.filterTreeByRole(item.children || [], role);
+ if (item.type === role || children.length) {
+ arr.push({
+ ...item,
+ children,
+ });
+ }
+ return arr;
+ }, []);
+ },
// 复选框值改变时触发
selectOssChange(e) {
if (e) {
- this.selectList = e.map(item => {return { id: item.split(',')[0]}});
+ this.selectList = e.map(item => {
+ return {id: item.split(',')[0]}
+ });
this.selectCount = e.length;
// let size = 0;
// e.forEach((item) => {size += item.fileSize * 1.0;});
@@ -906,7 +1029,7 @@ export default {
this.getDataList();
},
// 自定义tree节点显示内容和交互
- renderContent (h, { root, node, data }) {
+ renderContent(h, {root, node, data}) {
if (data.value === '0') {
return h('span', {style: {display: 'inline-block', width: '100%'}},
[
@@ -922,11 +1045,31 @@ export default {
[
h("Dropdown", {style: {marginLeft: "4px"}},
[
- h("Icon", {props: {type: 'ios-more', size: "20",}, style: {display: 'inline-block'}, on:{click: () => {}}}),
- h("DropdownMenu", {slot: "list"
+ h("Icon", {
+ props: {type: 'ios-more', size: "20",},
+ style: {display: 'inline-block'},
+ on: {
+ click: () => {
+ }
+ }
+ }),
+ h("DropdownMenu", {
+ slot: "list"
}, [
- h("DropdownItem", { nativeOn:{click: () => {this.handleContextMenuEdit(root, node, data)}} }, "编辑"),
- h("DropdownItem", { nativeOn:{click: () => {this.handleContextMenuDelete()}} }, "删除"),
+ h("DropdownItem", {
+ nativeOn: {
+ click: () => {
+ this.handleContextMenuEdit(root, node, data)
+ }
+ }
+ }, "编辑"),
+ h("DropdownItem", {
+ nativeOn: {
+ click: () => {
+ this.handleContextMenuDelete()
+ }
+ }
+ }, "删除"),
])
]),
])
@@ -937,8 +1080,6 @@ export default {
},
-
-
handleContextMenu(val) {
console.log('handleContextMenu', val);
this.selectedGroupData = val;
@@ -970,10 +1111,10 @@ export default {
},
treeDataChange(value, selectedData) {
if (value && value.length) {
- if (value[value.length -1] == '0') {
+ if (value[value.length - 1] == '0') {
this.groupFormValidate.level = 0;
} else {
- this.groupFormValidate.level = Number(selectedData[selectedData.length -1].level) + 1;
+ this.groupFormValidate.level = Number(selectedData[selectedData.length - 1].level) + 1;
}
}
},
@@ -982,7 +1123,8 @@ export default {
this.$refs["formValidate"].validate(async (valid) => {
if (valid) {
let res
- const params = { ...this.groupFormValidate };
+ const params = {...this.groupFormValidate};
+ params.directoryType = (this.selectedGroupData && this.selectedGroupData.type) || this.activeRoleTab;
if (this.insertOrUpdate === "insert") {
params.parentId = params.id[params.id.length - 1];
delete params.id;
@@ -1036,17 +1178,8 @@ export default {
getFileDirectory(parent_id).then((res) => {
this.loading = false;
if (res.success) {
- this.treeData = this.getTree(res.result);
this.treeDataDefault = this.getTree(res.result);
- this.treeData.unshift({
- title: "全部图片",
- label: "全部分类",
- value: "0",
- level: 0,
- children: [],
- id: "0",
- categoryId: 0,
- });
+ this.updateTreeDataByRole();
}
});
},
@@ -1085,7 +1218,7 @@ export default {
} else {
this.groupFormValidate.level = Number(level) + 1;
}
- this.searchForm.userEnums = type;
+ this.searchForm.userEnums = type || this.activeRoleTab;
this.getDataList();
this.$set(this, 'selectedOss', []);
}
@@ -1096,19 +1229,12 @@ export default {
selectedParams(val) {
this.$emit("callback", val);
},
- // 更多操作
- handleDropdown(name) {
- if (name === "refresh") {
- this.getDataList('refresh');
- } else if (name === "removeAll") {
- this.removeAll();
- }
- },
// 初始化数据
init() {
this.accessToken = {
accessToken: this.getStore("accessToken"),
};
+ this.searchForm.userEnums = this.activeRoleTab;
this.getDataList();
this.getAllList();
},
@@ -1189,9 +1315,6 @@ export default {
this.data = res.result.records;
this.total = res.result.total;
- if (type === 'refresh') {
- this.$Message.success('刷新成功!');
- }
});
},
// 搜索
@@ -1226,6 +1349,10 @@ export default {
},
// 上传成功回调
handleSuccess(res, file) {
+ if (!this.canUploadImages) {
+ this.$Message.warning("仅管理员模块支持上传图片");
+ return;
+ }
if (res.success) {
this.$Message.success("上传文件 " + file.name + " 成功");
this.getDataList();
@@ -1263,7 +1390,9 @@ export default {
loading: true,
onOk: () => {
let ids = "";
- this.selectList.forEach(function (e) {ids += e.id + ",";});
+ this.selectList.forEach(function (e) {
+ ids += e.id + ",";
+ });
ids = ids.substring(0, ids.length - 1);
deleteFile(ids).then((res) => {
this.$Modal.remove();
@@ -1356,7 +1485,7 @@ export default {
// 是组件的话,初始化不调用接口
this.init();
} else {
- this.searchForm.pageSize =18; // 页面大小
+ this.searchForm.pageSize = 18; // 页面大小
}
},
};
diff --git a/manager/src/views/sys/role-manage/roleManage.vue b/manager/src/views/sys/role-manage/roleManage.vue
index 2209e248..47e049b0 100644
--- a/manager/src/views/sys/role-manage/roleManage.vue
+++ b/manager/src/views/sys/role-manage/roleManage.vue
@@ -7,7 +7,7 @@
-
@@ -165,13 +165,12 @@ export default {
render: (h, params) => {
return h("div", [
h(
- "Button",
+ "a",
{
- props: {
- type: "warning",
- size: "small",
- },
style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
marginRight: "5px",
},
on: {
@@ -183,13 +182,17 @@ export default {
"菜单权限"
),
h(
- "Button",
+ "span",
+ { style: { margin: "0 8px", color: "#dcdee2" } },
+ "|"
+ ),
+ h(
+ "a",
{
- props: {
- size: "small",
- type: "info",
- },
style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
marginRight: "5px",
},
on: {
@@ -201,11 +204,17 @@ export default {
"编辑"
),
h(
- "Button",
+ "span",
+ { style: { margin: "0 8px", color: "#dcdee2" } },
+ "|"
+ ),
+ h(
+ "a",
{
- props: {
- type: "error",
- size: "small",
+ style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
},
on: {
click: () => {
@@ -221,7 +230,7 @@ export default {
],
data: [], // 角色数据
pageNumber: 1, // 页数
- pageSize: 10, // 每页数量
+ pageSize: 20, // 每页数量
total: 0, // 总数
permData: [], // 菜单权限数据
editRolePermId: "", // 编辑权限id
diff --git a/manager/src/views/sys/setting-manage/authLogin/CONNECT_SETTING.vue b/manager/src/views/sys/setting-manage/authLogin/CONNECT_SETTING.vue
index 5ae65111..eb143e9a 100644
--- a/manager/src/views/sys/setting-manage/authLogin/CONNECT_SETTING.vue
+++ b/manager/src/views/sys/setting-manage/authLogin/CONNECT_SETTING.vue
@@ -123,7 +123,7 @@ export default {
margin-right: 10px;
display: flex;
margin-bottom: 20px;
- /deep/ .ivu-card-body {
+ ::v-deep .ivu-card-body {
padding: 0 16px !important;
}
}
diff --git a/manager/src/views/sys/setting-manage/authLogin/QQ_CONNECT.vue b/manager/src/views/sys/setting-manage/authLogin/QQ_CONNECT.vue
index 09115ab2..234584c8 100644
--- a/manager/src/views/sys/setting-manage/authLogin/QQ_CONNECT.vue
+++ b/manager/src/views/sys/setting-manage/authLogin/QQ_CONNECT.vue
@@ -133,7 +133,7 @@ export default {
margin-right: 20px;
display: flex;
margin-bottom: 20px;
- /deep/ .ivu-card-body {
+ ::v-deep .ivu-card-body {
padding: 0 16px !important;
}
}
@@ -151,7 +151,7 @@ export default {
padding-bottom: 10px;
flex-direction: column;
align-items: center;
- /deep/ .ivu-btn {
+ ::v-deep .ivu-btn {
width: 100px;
}
}
diff --git a/manager/src/views/sys/setting-manage/authLogin/WECHAT_CONNECT.vue b/manager/src/views/sys/setting-manage/authLogin/WECHAT_CONNECT.vue
index f952bffb..329c85ee 100644
--- a/manager/src/views/sys/setting-manage/authLogin/WECHAT_CONNECT.vue
+++ b/manager/src/views/sys/setting-manage/authLogin/WECHAT_CONNECT.vue
@@ -55,10 +55,10 @@ export default {
return {
ruleValidate: {}, // 验证规则
way: { // 类型
- APP: "移动应用端",
- H5: "移动端",
- WECHAT_MP: "小程序端",
- PC: "PC端",
+ APP: "APP",
+ H5: "手机网页(微商城)",
+ WECHAT_MP: "微信小程序",
+ PC: "WEB网页",
},
formValidate: {} // 表单数据
};
@@ -132,7 +132,7 @@ export default {
margin-right: 20px;
display: flex;
margin-bottom: 20px;
- /deep/ .ivu-card-body {
+ ::v-deep .ivu-card-body {
padding: 0 16px !important;
}
}
@@ -150,7 +150,7 @@ export default {
padding-bottom: 10px;
flex-direction: column;
align-items: center;
- /deep/ .ivu-btn {
+ ::v-deep .ivu-btn {
width: 100px;
}
}
diff --git a/manager/src/views/sys/setting-manage/pay/ALIPAY_PAYMENT.vue b/manager/src/views/sys/setting-manage/pay/ALIPAY_PAYMENT.vue
index 1b9c5b6a..d882f6d6 100644
--- a/manager/src/views/sys/setting-manage/pay/ALIPAY_PAYMENT.vue
+++ b/manager/src/views/sys/setting-manage/pay/ALIPAY_PAYMENT.vue
@@ -90,12 +90,12 @@ export default {
display: flex;
}
.w200 {
- /deep/ .ivu-input {
+ ::v-deep .ivu-input {
width: 250px !important;
margin: 0 10px;
}
}
-/deep/ .ivu-input {
+::v-deep .ivu-input {
width: 450px !important;
margin: 0 10px;
}
diff --git a/manager/src/views/sys/setting-manage/pay/PAYMENT_SUPPORT.vue b/manager/src/views/sys/setting-manage/pay/PAYMENT_SUPPORT.vue
index 31e8bc3f..f2975208 100644
--- a/manager/src/views/sys/setting-manage/pay/PAYMENT_SUPPORT.vue
+++ b/manager/src/views/sys/setting-manage/pay/PAYMENT_SUPPORT.vue
@@ -151,7 +151,7 @@ export default {
margin-right: 20px;
display: flex;
margin-bottom: 20px;
- /deep/ .ivu-card-body {
+ ::v-deep .ivu-card-body {
padding: 0 16px !important;
}
}
diff --git a/manager/src/views/sys/setting-manage/pay/WECHAT_PAYMENT.vue b/manager/src/views/sys/setting-manage/pay/WECHAT_PAYMENT.vue
index 392db0cf..49359073 100644
--- a/manager/src/views/sys/setting-manage/pay/WECHAT_PAYMENT.vue
+++ b/manager/src/views/sys/setting-manage/pay/WECHAT_PAYMENT.vue
@@ -118,13 +118,13 @@ export default {
}
.w200 {
- /deep/ .ivu-input {
+ ::v-deep .ivu-input {
width: 250px !important;
margin: 0 10px;
}
}
-/deep/ .ivu-input {
+::v-deep .ivu-input {
width: 450px !important;
margin: 0 10px;
}
diff --git a/manager/src/views/sys/setting-manage/setting/GOODS_SETTING.vue b/manager/src/views/sys/setting-manage/setting/GOODS_SETTING.vue
index d2a5ea9f..5f0ad9d6 100644
--- a/manager/src/views/sys/setting-manage/setting/GOODS_SETTING.vue
+++ b/manager/src/views/sys/setting-manage/setting/GOODS_SETTING.vue
@@ -54,9 +54,14 @@
-
+
-
+
+
+
+
+
+
@@ -65,7 +70,7 @@
+
+
diff --git a/manager/src/views/wx-channel/components/WxChannelsGoodsTab.vue b/manager/src/views/wx-channel/components/WxChannelsGoodsTab.vue
new file mode 100644
index 00000000..55a238a7
--- /dev/null
+++ b/manager/src/views/wx-channel/components/WxChannelsGoodsTab.vue
@@ -0,0 +1,143 @@
+
+
+
+
+
diff --git a/manager/src/views/wx-channel/components/WxChannelsOrderTab.vue b/manager/src/views/wx-channel/components/WxChannelsOrderTab.vue
new file mode 100644
index 00000000..2cb61089
--- /dev/null
+++ b/manager/src/views/wx-channel/components/WxChannelsOrderTab.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
diff --git a/manager/src/views/wx-channel/components/WxChannelsOverviewTab.vue b/manager/src/views/wx-channel/components/WxChannelsOverviewTab.vue
new file mode 100644
index 00000000..6f20a658
--- /dev/null
+++ b/manager/src/views/wx-channel/components/WxChannelsOverviewTab.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
视频号总销售额
+
{{ summary.totalSales || 0 }}
+
+
+
+
+
+
+
直播间销售额
+
{{ summary.liveSales || 0 }}
+
+
+
+
+
+
+
橱窗销售额
+
{{ summary.windowSales || 0 }}
+
+
+
+
+
+
+
+
+
视频号退款总金额
+
{{ summary.totalRefund || 0 }}
+
+
+
+
+
+
+
直播间退款金额
+
{{ summary.liveRefund || 0 }}
+
+
+
+
+
+
+
橱窗退款金额
+
{{ summary.windowRefund || 0 }}
+
+
+
+
+
+
+
+
+
+
diff --git a/manager/src/views/wx-channel/components/WxChannelsRefundTab.vue b/manager/src/views/wx-channel/components/WxChannelsRefundTab.vue
new file mode 100644
index 00000000..5d7d9c9a
--- /dev/null
+++ b/manager/src/views/wx-channel/components/WxChannelsRefundTab.vue
@@ -0,0 +1,180 @@
+
+
+
+
+
diff --git a/manager/src/views/wx-channel/components/WxChannelsSettingTab.vue b/manager/src/views/wx-channel/components/WxChannelsSettingTab.vue
new file mode 100644
index 00000000..55c048b5
--- /dev/null
+++ b/manager/src/views/wx-channel/components/WxChannelsSettingTab.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
diff --git a/manager/src/views/wx-channel/wxChannel.vue b/manager/src/views/wx-channel/wxChannel.vue
new file mode 100644
index 00000000..0db97fec
--- /dev/null
+++ b/manager/src/views/wx-channel/wxChannel.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/seller/.npmrc b/seller/.npmrc
new file mode 100644
index 00000000..c0c80ba4
--- /dev/null
+++ b/seller/.npmrc
@@ -0,0 +1 @@
+engine-strict=false
diff --git a/seller/.yarnrc b/seller/.yarnrc
new file mode 100644
index 00000000..4f14322d
--- /dev/null
+++ b/seller/.yarnrc
@@ -0,0 +1 @@
+--ignore-engines true
diff --git a/seller/README.md b/seller/README.md
index 7532f2c9..267fcc4d 100644
--- a/seller/README.md
+++ b/seller/README.md
@@ -1,29 +1,9 @@
# LILISHOP-UI
-## Project setup
-```
-npm install
-```
+# LiliShop UI Seller 的 Node.js 版本兼容性
-### Compiles and hot-reloads for development
-```
-npm run serve
-```
+本文档概述了 LiliShop UI seller 项目的 Node.js 版本兼容性。
-### Compiles and minifies for production
-```
-npm run build
-```
-
-### Run your tests
-```
-npm run test
-```
-
-### Lints and fixes files
-```
-npm run lint
-```
### Customize configuration
详情点击 [https://cli.vuejs.org/zn/config/](https://cli.vuejs.org/zn/config/).
diff --git a/seller/package.json b/seller/package.json
index 23f4baf7..ab3cf288 100644
--- a/seller/package.json
+++ b/seller/package.json
@@ -4,10 +4,13 @@
"private": true,
"description": "lilishop-ui",
"author": "lili-platform",
+ "engines": {
+ "node": ">=14"
+ },
"scripts": {
"serve": "vue-cli-service serve",
- "build": "vue-cli-service build",
- "dev": "vue-cli-service serve"
+ "dev": "vue-cli-service serve",
+ "build": "vue-cli-service build"
},
"dependencies": {
"@amap/amap-jsapi-loader": "0.0.7",
@@ -15,10 +18,10 @@
"axios": "^0.21.1",
"dplayer": "^1.27.1",
"js-cookie": "^2.2.1",
- "node-sass": "^4.14.1",
+ "sass": "^1.63.6",
"price-color": "^1.0.2",
"s": "^1.0.0",
- "sass-loader": "^8.0.2",
+ "sass-loader": "^10.4.1",
"sockjs-client": "^1.4.0",
"swiper": "^6.3.5",
"uuid": "^8.3.2",
@@ -49,5 +52,10 @@
"view-design": "^4.6.1",
"vue-cli-plugin-style-resources-loader": "^0.1.4",
"vue-template-compiler": "^2.6.10"
+ },
+ "resolutions": {
+ "minimatch": "^3.1.2",
+ "node-sass": "npm:sass@^1.63.6",
+ "@achrinza/node-ipc": "9.2.2"
}
}
diff --git a/seller/src/api/goods.js b/seller/src/api/goods.js
index 9b976ebf..24970318 100644
--- a/seller/src/api/goods.js
+++ b/seller/src/api/goods.js
@@ -147,6 +147,10 @@ export const getGoodsSkuData = params => {
export const getGoodsListData = params => {
return getRequest("/goods/goods/list", params);
};
+// 获取商品数量
+export const getGoodsNumerData = (params) => {
+ return getRequest('/goods/goods/goodsNumber', params)
+}
// 获取待审核商品分页列表
export const getAuthGoodsListData = params => {
return getRequest("/goods/auth/list", params);
@@ -264,6 +268,13 @@ export const lowGoods = params => {
return putRequest(`/goods/goods/under`, params);
};
+// 定时上下架商品
+export const scheduleGoodsMarket = params => {
+ return postRequest(`/goods/goods/schedule/market`, params, {
+ "Content-Type": "application/json"
+ });
+};
+
// 获取商品单位列表
export const getGoodsUnitList = params => {
return getRequest(`/goods/goodsUnit`,params);
@@ -367,7 +378,7 @@ export const refundPriceStatistics = params => {
//下载结算单
export const downLoadGoods = () => {
- return getRequest(`/goods/import/downLoad/`, {}, 'blob')
+ return getRequest(`/goods/import/downLoad`, {}, 'blob')
}
// 上传待发货的订单列表
diff --git a/seller/src/api/order.js b/seller/src/api/order.js
index a5fbd578..601e18c4 100644
--- a/seller/src/api/order.js
+++ b/seller/src/api/order.js
@@ -147,9 +147,14 @@ export const getReceiptPage = params => {
return getRequest(`/trade/receipt`, params);
};
-//获取发票列表
-export const invoicing = id => {
- return postRequest(`/trade/receipt/${id}/invoicing`);
+//获取发票详情
+export const getReceiptDetail = id => {
+ return getRequest(`/trade/receipt/get/${id}`);
+};
+
+//开发票
+export const invoicing = (id, params) => {
+ return postRequest(`/trade/receipt/${id}/invoicing`, params);
};
//查询包裹列表
@@ -168,3 +173,13 @@ export const partDelivery = (orderSn,params) => {
export const getTracesList = (sn) => {
return getRequest(`/order/order/getTracesList/${sn}`);
}
+
+// 获取订单数量统计
+export const getOrderNum = (params) => {
+ return getRequest(`/order/order/orderNum`, params);
+}
+
+// 获取售后数量统计
+export const getAfterSaleNumVO = (params) => {
+ return getRequest(`/order/afterSale/afterSaleNumVO`, params);
+}
diff --git a/seller/src/styles/table-common.scss b/seller/src/styles/table-common.scss
index 2c61e440..efaf5984 100644
--- a/seller/src/styles/table-common.scss
+++ b/seller/src/styles/table-common.scss
@@ -16,10 +16,8 @@
width: 100% !important;
display: flex;
align-items: center;
- background-color: #f0f0f0;
+ // background-color: #f0f0f0;
border-radius: 0.4em;
- padding: 10px;
- margin: 0;
flex-wrap: wrap;
> .ivu-form-item {
margin: 8px 10px !important;
@@ -39,3 +37,8 @@
-webkit-line-clamp: 4;
overflow: hidden;
}
+
+// 为Card组件之间增加间距
+.ivu-card + .ivu-card {
+ margin-top: 10px;
+}
\ No newline at end of file
diff --git a/seller/src/views/Main.vue b/seller/src/views/Main.vue
index cfba04fa..13d42126 100644
--- a/seller/src/views/Main.vue
+++ b/seller/src/views/Main.vue
@@ -29,6 +29,11 @@
class="user-dropdown-innercon"
>
+ -
+
+
+
+
-
@@ -88,6 +93,8 @@ import configDrawer from "@/views/main-components/config-drawer.vue";
import Cookies from "js-cookie";
import util from "@/libs/util.js";
import { logout } from "@/api/index";
+import { getIMDetail } from "@/api/common";
+import { userMsg } from "@/api/index";
const config = require("@/config/index.js");
export default {
components: {
@@ -103,6 +110,8 @@ export default {
userInfo: {}, // 用户信息
storeSideLogo: "", //logo图片
+ IMLink: "", // IM链接
+ load: false, // 加载IM状态
};
},
computed: {
@@ -131,6 +140,34 @@ export default {
handleClickSetting() {
this.$refs.config.open();
},
+
+ /**
+ * 点击登录im的时候需要去判断一下当前店铺信息是否失效
+ * 失效的话重新请求刷新token保证最新的token去访问im
+ */
+ async im () {
+ // 获取访问Token
+ let accessToken = this.getStore("accessToken");
+ this.load = true
+ await this.getIMDetailMethods();
+ const userInfo = await userMsg();
+ this.load = false
+ if (userInfo.success && this.IMLink) {
+ window.open(`${this.IMLink}?token=` + accessToken);
+ }
+ else{
+ this.$Message.error("请登录后再联系客服");
+ }
+ },
+
+ // 获取im信息
+ async getIMDetailMethods () {
+ let res = await getIMDetail();
+ if (res.success) {
+ this.IMLink = res.result;
+ }
+ },
+
// 初始化方法
init() {
// 菜单
diff --git a/seller/src/views/distribution/distributionGoods.vue b/seller/src/views/distribution/distributionGoods.vue
index fa234bfb..f4990787 100644
--- a/seller/src/views/distribution/distributionGoods.vue
+++ b/seller/src/views/distribution/distributionGoods.vue
@@ -4,11 +4,13 @@
+
+
@@ -151,20 +153,21 @@ export default {
render: (h, params) => {
return h("div", [
h(
- "Button",
+ "a",
{
- props: {
- type: "error",
- size: "small"
+ style: {
+ color: "#2d8cf0",
+ cursor: "pointer",
+ textDecoration: "none",
},
on: {
click: () => {
this.remove(params.row);
- }
- }
+ },
+ },
},
"删除"
- )
+ ),
]);
}
}
diff --git a/seller/src/views/distribution/distributionOrder.vue b/seller/src/views/distribution/distributionOrder.vue
index 90a8bd88..934c924f 100644
--- a/seller/src/views/distribution/distributionOrder.vue
+++ b/seller/src/views/distribution/distributionOrder.vue
@@ -3,14 +3,15 @@
-
+
+
{
- if (params.row.distributionOrderStatus == "COMPLETE_CASH") {
- return h("Tag", { props: { color: "green" } },"提现完成");
- } else if (params.row.distributionOrderStatus == "WAIT_BILL") {
- return h("Tag", { props: { color: "blue" } } ,"待结算");
- } else if (params.row.distributionOrderStatus == "WAIT_CASH") {
- return h("Tag", { props: { color: "orange" } }, "待提现");
- } else if (params.row.distributionOrderStatus == "CANCEL") {
- return h("Tag", { props: { color: "red" } }, "订单已取消");
- }else if (params.row.distributionOrderStatus == "REFUND") {
- return h("Tag", { props: { color: "magenta" } }, "退款");
+ if (params.row.distributionOrderStatus == "NO_COMPLETED") {
+ return h("Tag", { props: { color: "orange" } }, "未完成");
+ } else if (params.row.distributionOrderStatus == "COMPLETE") {
+ return h("Tag", { props: { color: "green" } }, "完成");
+ } else if (params.row.distributionOrderStatus == "REFUND") {
+ return h("Tag", { props: { color: "red" } }, "退款");
+ } else {
+ return h("Tag", { props: { color: "orange" } }, "未完成");
}
},
diff --git a/seller/src/views/goods/goods-manage/category.vue b/seller/src/views/goods/goods-manage/category.vue
index 62c3699b..323c66de 100644
--- a/seller/src/views/goods/goods-manage/category.vue
+++ b/seller/src/views/goods/goods-manage/category.vue
@@ -7,7 +7,7 @@