Compare commits
217 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
2432c53a73 | |
|
|
1a4a8515c3 | |
|
|
c2b84eae75 | |
|
|
6467e7767f | |
|
|
421fad369c | |
|
|
c1d61ad05b | |
|
|
da0ec82aa0 | |
|
|
e463ca4802 | |
|
|
fc9c395526 | |
|
|
64fc3f133c | |
|
|
7b0678ad4e | |
|
|
2d35ab3b7d | |
|
|
0cafd8651b | |
|
|
1e85fd06c8 | |
|
|
f518d3d76a | |
|
|
99881f4d97 | |
|
|
dae7ced23c | |
|
|
71c852fcaa | |
|
|
695898484e | |
|
|
d99c6bf261 | |
|
|
1721203610 | |
|
|
a2e1300626 | |
|
|
dc0cd2076c | |
|
|
696a1735db | |
|
|
865b7f0d1f | |
|
|
6fc5bd013c | |
|
|
44482d9dc9 | |
|
|
1329891ded | |
|
|
46270cf7cc | |
|
|
36e14ed434 | |
|
|
056992c8a0 | |
|
|
64b13d543f | |
|
|
bb47531a2b | |
|
|
6f64dafab7 | |
|
|
8b1cb63651 | |
|
|
1c6739532a | |
|
|
0405a0fb99 | |
|
|
31f89109e6 | |
|
|
93e290fbaf | |
|
|
cd351be6d0 | |
|
|
b4b87218d1 | |
|
|
b65955f2cc | |
|
|
e308e6ff4b | |
|
|
8087d9844b | |
|
|
7ceca3b917 | |
|
|
6be93661f4 | |
|
|
d6cc5a00cc | |
|
|
b474b73d28 | |
|
|
8454381755 | |
|
|
1ce95f8dd7 | |
|
|
89a23613b0 | |
|
|
4b9fc0ad3f | |
|
|
e69e0e7aa0 | |
|
|
5cd5265ffb | |
|
|
fc3c0ef932 | |
|
|
3174d24e30 | |
|
|
610410afa6 | |
|
|
37a61e5c79 | |
|
|
312fd8d1bc | |
|
|
b5635f70ae | |
|
|
0df2d7198f | |
|
|
205aeb1320 | |
|
|
d3636be742 | |
|
|
a82f116918 | |
|
|
64f8dd45e7 | |
|
|
e5e692bcc3 | |
|
|
2eae21d962 | |
|
|
6635a6374c | |
|
|
4934f20446 | |
|
|
f76dff67d4 | |
|
|
9eb3b8e306 | |
|
|
37f1079b1f | |
|
|
350a314feb | |
|
|
c11eb1a0a1 | |
|
|
20927c459b | |
|
|
171c81eea6 | |
|
|
a66de31f1b | |
|
|
573d46b50d | |
|
|
a62d4af819 | |
|
|
01b415ecdf | |
|
|
93475151a1 | |
|
|
c5dc871d9c | |
|
|
07146b89c1 | |
|
|
82dcba273e | |
|
|
7942f76dc7 | |
|
|
8714b04565 | |
|
|
642e0a552e | |
|
|
794c0ec25b | |
|
|
9d3ae6272d | |
|
|
23f0e549fa | |
|
|
9bdd9188be | |
|
|
2dbc4620f2 | |
|
|
6cc879f066 | |
|
|
d950aef4e5 | |
|
|
ea4230a9e8 | |
|
|
1004defd02 | |
|
|
2710f276e3 | |
|
|
106d0cb1e7 | |
|
|
723902ac09 | |
|
|
83eaf368ca | |
|
|
0499e36a5b | |
|
|
075c39d2b7 | |
|
|
06cd932eda | |
|
|
2ddddeed3c | |
|
|
557ca477d9 | |
|
|
4d5e53f0d3 | |
|
|
30faee9dac | |
|
|
8e84185962 | |
|
|
316b7fe059 | |
|
|
f602a7778d | |
|
|
ceaf5fd2d5 | |
|
|
863bab3eba | |
|
|
352795d52f | |
|
|
9f2322889c | |
|
|
2cde04720d | |
|
|
73e20ad617 | |
|
|
21eda68ab0 | |
|
|
f5ff208fd6 | |
|
|
cfc925e55c | |
|
|
593f5693ef | |
|
|
2993c1375f | |
|
|
ddf7045346 | |
|
|
a6bca24c1a | |
|
|
e9a606c71e | |
|
|
2602916201 | |
|
|
beade81a68 | |
|
|
9b6dd9f0da | |
|
|
f4b939433d | |
|
|
0a73635b78 | |
|
|
4f987ae3d2 | |
|
|
0d495c20ef | |
|
|
c093c618b2 | |
|
|
7fb9f30c45 | |
|
|
901d56b648 | |
|
|
05aaa2fd64 | |
|
|
2fe5e38e85 | |
|
|
1d848b7227 | |
|
|
ce3b817e42 | |
|
|
b92f39fe89 | |
|
|
cc13161f16 | |
|
|
688f30635b | |
|
|
85eba13919 | |
|
|
c956972cb3 | |
|
|
583b79bc8f | |
|
|
6df2050d2b | |
|
|
331f438f99 | |
|
|
ef600c9e3c | |
|
|
9a0170471a | |
|
|
8fd3565bac | |
|
|
04ae1c342b | |
|
|
273684678b | |
|
|
299c6327b7 | |
|
|
cf626cb862 | |
|
|
bfca8f4013 | |
|
|
682fe03165 | |
|
|
8290462eda | |
|
|
6c72027a86 | |
|
|
462f75ce3e | |
|
|
6cb1968b80 | |
|
|
c3c9437939 | |
|
|
61bd37de32 | |
|
|
8126907093 | |
|
|
34ab5a9643 | |
|
|
dbf8f8f05d | |
|
|
2922de551a | |
|
|
5b30b23ad3 | |
|
|
dedaaac375 | |
|
|
eb6dffb3d2 | |
|
|
7df5163ee0 | |
|
|
dce9fa7cdb | |
|
|
787f6606e4 | |
|
|
49d43dc22c | |
|
|
29ab771472 | |
|
|
d4c4989b26 | |
|
|
d3e18f3a8c | |
|
|
f1e85eeb27 | |
|
|
fd3167d325 | |
|
|
78806f627e | |
|
|
448261e7b2 | |
|
|
2b09e4df2c | |
|
|
3dc62a6802 | |
|
|
c5f75a20af | |
|
|
0b81b8355e | |
|
|
cb1f4b3a8c | |
|
|
2546bdbd2d | |
|
|
f8c3c41247 | |
|
|
373fd88226 | |
|
|
1cc9949cd8 | |
|
|
7ccd96a775 | |
|
|
d6a576f729 | |
|
|
86f68a5cdf | |
|
|
250f42ec01 | |
|
|
684a83b0db | |
|
|
6b5290d355 | |
|
|
acc76c2faf | |
|
|
920f686897 | |
|
|
2de1576f76 | |
|
|
6fb991ff32 | |
|
|
367efae393 | |
|
|
5809e0ec0b | |
|
|
143de9fa21 | |
|
|
a2361b39c4 | |
|
|
d34a8c71e9 | |
|
|
8b84eee933 | |
|
|
62076b4472 | |
|
|
7b46671373 | |
|
|
035aa6bc21 | |
|
|
95f22ede1d | |
|
|
4be210727c | |
|
|
b1d175b108 | |
|
|
b74adf2010 | |
|
|
20462cca44 | |
|
|
98c6f5175f | |
|
|
164dd52afa | |
|
|
11b297baa5 | |
|
|
d0a757957d | |
|
|
13a39e1b13 |
|
|
@ -8,13 +8,13 @@ VITE_APP_BASE_API=/dev-api
|
|||
|
||||
# VITE_APP_API_URL=https://tapi.cashier.sxczgkj.cn/ # 测试
|
||||
# VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式
|
||||
VITE_APP_API_URL=http://192.168.1.31/ # 本地
|
||||
VITE_APP_API_URL=http://192.168.1.42/ # 本地
|
||||
|
||||
|
||||
# WebSocket 端点(不配置则关闭),线上 ws://api.youlai.tech/ws ,本地 ws://localhost:8989/ws
|
||||
# VITE_APP_WS_ENDPOINT=wss://sockets.sxczgkj.com/wss
|
||||
# VITE_APP_WS_ENDPOINT=wss://czgeatws.sxczgkj.com/wss # 正式
|
||||
VITE_APP_WS_ENDPOINT=ws://192.168.1.31:2348 # 本地
|
||||
VITE_APP_WS_ENDPOINT=ws://192.168.1.42:2348 # 本地
|
||||
|
||||
|
||||
# 启用 Mock 服务
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@ VITE_APP_PORT=3000
|
|||
|
||||
# VITE_APP_API_URL=https://tapi.cashier.sxczgkj.cn/ # 测试
|
||||
# VITE_APP_API_URL=https://cashier.sxczgkj.com/ # 正式
|
||||
VITE_APP_API_URL=http://192.168.1.31/ # 本地
|
||||
VITE_APP_API_URL=http://192.168.1.42/ # 本地
|
||||
|
||||
|
||||
# WebSocket 端点(不配置则关闭),线上 ws://api.youlai.tech/ws ,本地 ws://localhost:8989/ws
|
||||
# VITE_APP_WS_ENDPOINT=wss://sockets.sxczgkj.com/wss
|
||||
# VITE_APP_WS_ENDPOINT=wss://czgeatws.sxczgkj.com/wss # 正式
|
||||
VITE_APP_WS_ENDPOINT=ws://192.168.1.31:2348 # 本地
|
||||
VITE_APP_WS_ENDPOINT=ws://192.168.1.42:2348 # 本地
|
||||
|
||||
|
||||
# 启用 Mock 服务
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
npx --no-install commitlint --edit $1
|
||||
# npx --no-install commitlint --edit $1
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
"typescript.tsdk": "./node_modules/typescript/lib",
|
||||
"npm.packageManager": "pnpm",
|
||||
"editor.tabSize": 2,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.quickSuggestions": {
|
||||
"other": true,
|
||||
"comments": true,
|
||||
"strings": true
|
||||
},
|
||||
"editor.codeActionsOnSave": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit",
|
||||
"source.fixAll.eslint": "explicit",
|
||||
"source.fixAll.stylelint": "explicit"
|
||||
|
|
@ -67,7 +67,9 @@
|
|||
"i18n-ally.sortKeys": true,
|
||||
"i18n-ally.namespace": false,
|
||||
"i18n-ally.pathMatcher": "{namespaces}/{locale}.{ext}",
|
||||
"i18n-ally.enabledParsers": ["ts"],
|
||||
"i18n-ally.enabledParsers": [
|
||||
"ts"
|
||||
],
|
||||
"i18n-ally.sourceLanguage": "en",
|
||||
"i18n-ally.displayLanguage": "zh-CN",
|
||||
"i18n-ally.enabledFrameworks": [
|
||||
|
|
@ -89,5 +91,12 @@
|
|||
},
|
||||
"[jsonc]": {
|
||||
"editor.defaultFormatter": "vscode.json-language-features"
|
||||
},
|
||||
"files.associations": {
|
||||
"*.ttml": "xml",
|
||||
"*.ttss": "css"
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
}
|
||||
}
|
||||
}
|
||||
36
README.md
|
|
@ -2,20 +2,42 @@
|
|||
|
||||
基于 Vue3 + Vite5+ TypeScript5 + Element-Plus + Pinia 等主流技术栈构建
|
||||
|
||||
## ysk-utils 工具类包
|
||||
|
||||
安装
|
||||
|
||||
```
|
||||
pnpm install ysk-utils
|
||||
```
|
||||
|
||||
更新
|
||||
|
||||
```
|
||||
pnpm update ysk-utils
|
||||
```
|
||||
|
||||
vscode如果无代码提示
|
||||
重启 VS Code 的 TypeScript 服务器
|
||||
输入
|
||||
```TypeScript: Restart TS Server```
|
||||
|
||||
## 正式宝塔
|
||||
|
||||
<https://121.40.128.145:38279/>
|
||||
chaozg
|
||||
chaozg123
|
||||
[正式宝塔](https://121.40.128.145:38279/mianban/)
|
||||
|
||||
账号 ***chaozg***
|
||||
|
||||
密码 ***chaozg123***
|
||||
|
||||
## 本地测试服务器(192.168.1.31)linux部署
|
||||
|
||||
映射地址
|
||||
<https://fv901fw8033.vicp.fun/>
|
||||
上传.zip文件解压到服务器的 /home/web下
|
||||
cd到/home/web下
|
||||
执行命令
|
||||
unzip -o dist.zip
|
||||
|
||||
1. ***cd /usr/share/nginx/html***
|
||||
2. 上传.zip文件服务器的 /usr/share/nginx/html下
|
||||
3. 执行命令
|
||||
```unzip -o dist.zip```
|
||||
|
||||
数据库
|
||||
url: jdbc:mysql://192.168.1.31:3306/czg_cashier?useUnicode=true&characterEncoding=utf-8
|
||||
|
|
|
|||
|
|
@ -39,8 +39,10 @@
|
|||
"@vueuse/core": "^12.5.0",
|
||||
"@wangeditor-next/editor": "^5.6.31",
|
||||
"@wangeditor-next/editor-for-vue": "^5.1.14",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"ali-oss": "^6.22.0",
|
||||
"axios": "^1.7.9",
|
||||
"bignumber.js": "^9.3.1",
|
||||
"bwip-js": "^4.5.1",
|
||||
"codemirror": "^5.65.18",
|
||||
"codemirror-editor-vue3": "^2.8.0",
|
||||
|
|
@ -66,7 +68,8 @@
|
|||
"vue": "^3.5.13",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-i18n": "^11.1.0",
|
||||
"vue-router": "^4.5.0"
|
||||
"vue-router": "^4.5.0",
|
||||
"ysk-utils": "^1.0.35"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^19.7.1",
|
||||
|
|
@ -112,6 +115,7 @@
|
|||
"unplugin-vue-components": "^28.0.0",
|
||||
"vite": "^6.1.0",
|
||||
"vite-plugin-mock-dev-server": "^1.8.3",
|
||||
"vite-plugin-strip-code": "^1.1.0",
|
||||
"vite-plugin-svg-icons": "^2.0.1",
|
||||
"vue-eslint-parser": "^9.4.3",
|
||||
"vue-tsc": "^2.2.0"
|
||||
|
|
|
|||
|
|
@ -1,18 +1,15 @@
|
|||
<template>
|
||||
<el-config-provider :locale="locale" :size="size">
|
||||
<!-- 开启水印 -->
|
||||
<el-watermark
|
||||
:font="{ color: fontColor }"
|
||||
:content="watermarkEnabled ? defaultSettings.watermarkContent : ''"
|
||||
:z-index="9999"
|
||||
class="wh-full"
|
||||
>
|
||||
<el-watermark :font="{ color: fontColor }" :content="watermarkEnabled ? defaultSettings.watermarkContent : ''"
|
||||
:z-index="9999" class="wh-full">
|
||||
<router-view />
|
||||
</el-watermark>
|
||||
</el-config-provider>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
// test
|
||||
import { useAppStore, useSettingsStore } from "@/store";
|
||||
import defaultSettings from "@/settings";
|
||||
import { ThemeEnum } from "@/enums/ThemeEnum";
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import request from "@/utils/request";
|
||||
import { Account_BaseUrl } from "@/api/config";
|
||||
const baseURL = Account_BaseUrl + "/admin/coupon";
|
||||
import { Market_BaseUrl } from "@/api/config";
|
||||
const baseURL = Market_BaseUrl + "/admin/coupon";
|
||||
const API = {
|
||||
getList(params: getListRequest) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
url: `${baseURL}/page`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import request from "@/utils/request";
|
||||
const baseURL = "account/admin/";
|
||||
const baseURL = "/account/admin/";
|
||||
|
||||
const AuthAPI = {
|
||||
/** 登录接口*/
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@ const MenuApi = {
|
|||
method: "get",
|
||||
});
|
||||
},
|
||||
getCashMenus() {
|
||||
return request<any, CashMenu[]>({
|
||||
url: `${baseURL}/list/cash`,
|
||||
method: "get",
|
||||
});
|
||||
},
|
||||
/**获取所有菜单 */
|
||||
getList(data: getListRequest) {
|
||||
return request<any, MenuVO[]>({
|
||||
|
|
@ -48,6 +54,13 @@ const MenuApi = {
|
|||
};
|
||||
|
||||
export default MenuApi;
|
||||
export interface CashMenu {
|
||||
component?: null | string;
|
||||
menuId: number;
|
||||
name: null | string;
|
||||
path?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
/** RouteVO,路由对象 */
|
||||
export interface RouteVO {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import request from "@/utils/request";
|
||||
const baseURL = "account/admin/";
|
||||
const baseURL = "/account/admin/";
|
||||
|
||||
const RegisterApi = {
|
||||
/** 获取当前用户菜单列表*/
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import request from "@/utils/request";
|
||||
const baseURL = "account/admin/role";
|
||||
const baseURL = "/account/admin/role";
|
||||
|
||||
const RoleApi = {
|
||||
/** 获取当前用户菜单列表*/
|
||||
|
|
@ -33,11 +33,11 @@ const RoleApi = {
|
|||
});
|
||||
},
|
||||
// 获取角色对应的菜单id
|
||||
getMenu(id: number) {
|
||||
getMenu(id: number, type: number = 0) {
|
||||
return request<any, any[]>({
|
||||
url: `${baseURL}/menu`,
|
||||
method: "get",
|
||||
params: { id },
|
||||
params: { id, type },
|
||||
});
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,83 +1,104 @@
|
|||
import request from "@/utils/request";
|
||||
const baseURL = "account/admin/shopInfo";
|
||||
const baseURL = "/account/admin/shopInfo";
|
||||
|
||||
const ShopApi = {
|
||||
/** 获取店铺列表*/
|
||||
getList(params: PageQuery) {
|
||||
return request<any, ShopInfoEditDTO[]>({
|
||||
url: `${baseURL}`,
|
||||
method: "get",
|
||||
params: params,
|
||||
});
|
||||
},
|
||||
add(data: ShopInfoEditDTO) {
|
||||
return request<any, ShopInfoEditDTO>({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
},
|
||||
edit(data: ShopInfoEditDTO) {
|
||||
return request<any, ShopInfoEditDTO>({
|
||||
url: `${baseURL}`,
|
||||
method: "put",
|
||||
data,
|
||||
});
|
||||
},
|
||||
get(params: getRequest) {
|
||||
return request<any, ShopInfo>({
|
||||
url: `${baseURL}/detail`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
delete(params: any) {
|
||||
return request({
|
||||
url: `${baseURL}`,
|
||||
method: "delete",
|
||||
params,
|
||||
});
|
||||
},
|
||||
/** 获取店铺列表*/
|
||||
getList(params: PageQuery) {
|
||||
return request<any, ShopInfoEditDTO[]>({
|
||||
url: `${baseURL}`,
|
||||
method: "get",
|
||||
params: params,
|
||||
});
|
||||
},
|
||||
/** 获取店铺分店列表*/
|
||||
getOtherShopList(params: PageQuery) {
|
||||
return request<any, ShopInfoEditDTO[]>({
|
||||
url: `${baseURL}/otherShop`,
|
||||
method: "get",
|
||||
params: params,
|
||||
});
|
||||
},
|
||||
getBranchList(params: PageQuery) {
|
||||
return request<any, ShopInfoEditDTO[]>({
|
||||
url: `${baseURL}/branchList`,
|
||||
method: "get",
|
||||
params: params,
|
||||
});
|
||||
},
|
||||
getBranchChange(id: PageQuery) {
|
||||
return request<any, ShopInfoEditDTO[]>({
|
||||
url: `${baseURL}/change/${id}`,
|
||||
method: "post",
|
||||
});
|
||||
},
|
||||
add(data: ShopInfoEditDTO) {
|
||||
return request<any, ShopInfoEditDTO>({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
},
|
||||
edit(data: ShopInfoEditDTO) {
|
||||
return request<any, ShopInfoEditDTO>({
|
||||
url: `${baseURL}`,
|
||||
method: "put",
|
||||
data,
|
||||
});
|
||||
},
|
||||
get(params: getRequest) {
|
||||
return request<any, ShopInfo>({
|
||||
url: `${baseURL}/detail`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
delete(params: any) {
|
||||
return request({
|
||||
url: `${baseURL}`,
|
||||
method: "delete",
|
||||
params,
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default ShopApi;
|
||||
export interface getRequest {
|
||||
/**
|
||||
* 店铺id,可不传,不传递则为获取当前用户店铺
|
||||
*/
|
||||
id?: string | number;
|
||||
[property: string]: any;
|
||||
/**
|
||||
* 店铺id,可不传,不传递则为获取当前用户店铺
|
||||
*/
|
||||
id?: string | number;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* ShopInfoEditDTO
|
||||
*/
|
||||
export interface ShopInfoEditDTO {
|
||||
accountName?: null | string;
|
||||
accountPwd?: null | string;
|
||||
activateCode?: null | string;
|
||||
address?: null | string;
|
||||
chainName?: null | string;
|
||||
detail?: null | string;
|
||||
frontImg?: null | string;
|
||||
id: number | null;
|
||||
lat?: null | string;
|
||||
lng?: null | string;
|
||||
logo?: null | string;
|
||||
phone?: null | string;
|
||||
profiles?: null | string;
|
||||
roleId?: number | null;
|
||||
shopName?: null | string;
|
||||
shopType?: null | string;
|
||||
[property: string]: any;
|
||||
accountName?: null | string;
|
||||
accountPwd?: null | string;
|
||||
activateCode?: null | string;
|
||||
address?: null | string;
|
||||
chainName?: null | string;
|
||||
detail?: null | string;
|
||||
frontImg?: null | string;
|
||||
id: number | null;
|
||||
lat?: null | string;
|
||||
lng?: null | string;
|
||||
logo?: null | string;
|
||||
phone?: null | string;
|
||||
profiles?: null | string;
|
||||
roleId?: number | null;
|
||||
shopName?: null | string;
|
||||
shopType?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
export interface PageQuery {
|
||||
page: number;
|
||||
shopName?: string;
|
||||
size: number;
|
||||
status?: number;
|
||||
[property: string]: any;
|
||||
page: number;
|
||||
shopName?: string;
|
||||
size: number;
|
||||
status?: number;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -85,196 +106,196 @@ export interface PageQuery {
|
|||
* ShopInfo
|
||||
*/
|
||||
export interface ShopInfo {
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
address?: null | string;
|
||||
/**
|
||||
* 项目分类
|
||||
*/
|
||||
article?: null | string;
|
||||
/**
|
||||
* 背景图
|
||||
*/
|
||||
backImg?: null | string;
|
||||
/**
|
||||
* 开票系统账号
|
||||
*/
|
||||
bindAccount?: null | string;
|
||||
/**
|
||||
* 台桌预订短信
|
||||
*/
|
||||
bookingSms?: null | string;
|
||||
/**
|
||||
* 营业时间(周结束)
|
||||
*/
|
||||
businessEndDay?: null | string;
|
||||
/**
|
||||
* 营业时间(周开始)
|
||||
*/
|
||||
businessStartDay?: null | string;
|
||||
/**
|
||||
* 营业时间
|
||||
*/
|
||||
businessTime?: null | string;
|
||||
/**
|
||||
* 连锁店扩展店名
|
||||
*/
|
||||
chainName?: null | string;
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
cities?: null | string;
|
||||
/**
|
||||
* 积分群体 all-所有 vip-仅针对会员
|
||||
*/
|
||||
consumeColony?: null | string;
|
||||
/**
|
||||
* 联系人姓名
|
||||
*/
|
||||
contactName?: null | string;
|
||||
/**
|
||||
* 封面图
|
||||
*/
|
||||
coverImg?: null | string;
|
||||
createTime?: null | string;
|
||||
/**
|
||||
* 店铺简介
|
||||
*/
|
||||
detail?: null | string;
|
||||
/**
|
||||
* 区/县
|
||||
*/
|
||||
districts?: null | string;
|
||||
/**
|
||||
* 就餐模式 堂食 dine-in 外带 take-out
|
||||
*/
|
||||
eatModel?: null | string;
|
||||
/**
|
||||
* 到期时间
|
||||
*/
|
||||
expireTime?: null | string;
|
||||
/**
|
||||
* 门头照
|
||||
*/
|
||||
frontImg?: null | string;
|
||||
/**
|
||||
* 使用系统用户 sys_user id
|
||||
*/
|
||||
id?: number | null;
|
||||
/**
|
||||
* 是否开启会员余额支付
|
||||
*/
|
||||
isAccountPay?: number | null;
|
||||
/**
|
||||
* 是否允许会员自定义金额 1 允许 0 不允许
|
||||
*/
|
||||
isCustomAmount?: number | null;
|
||||
/**
|
||||
* 是否开启会员充值密码 1 启用 0 禁用
|
||||
*/
|
||||
isMemberInPwd?: number | null;
|
||||
/**
|
||||
* 是否启用会员价 0否1是
|
||||
*/
|
||||
isMemberPrice?: number | null;
|
||||
/**
|
||||
* 是否开启会员退款密码 1 启用 0 禁用
|
||||
*/
|
||||
isMemberReturnPwd?: number | null;
|
||||
/**
|
||||
* 是否开启退款密码 1 启用 0 禁用
|
||||
*/
|
||||
isReturnPwd?: number | null;
|
||||
/**
|
||||
* 是否免除桌位费 0否1是
|
||||
*/
|
||||
isTableFee?: number | null;
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
lat?: null | string;
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
lng?: null | string;
|
||||
/**
|
||||
* 店铺logo
|
||||
*/
|
||||
logo?: null | string;
|
||||
/**
|
||||
* 主店id
|
||||
*/
|
||||
mainId?: number | null;
|
||||
/**
|
||||
* 0停业 1,正常营业 2,网上售卖
|
||||
*/
|
||||
onSale?: number | null;
|
||||
/**
|
||||
* 操作密码
|
||||
*/
|
||||
operationPwd?: null | string;
|
||||
/**
|
||||
* 店铺收款码
|
||||
*/
|
||||
paymentQrcode?: null | string;
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
phone?: null | string;
|
||||
/**
|
||||
* trial试用版,release正式
|
||||
*/
|
||||
profiles?: null | string;
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
provinces?: null | string;
|
||||
registerType?: null | string;
|
||||
/**
|
||||
* 数电发票类型
|
||||
*/
|
||||
sdType?: null | string;
|
||||
/**
|
||||
* 店铺名称
|
||||
*/
|
||||
shopName?: null | string;
|
||||
/**
|
||||
* 商家二维码
|
||||
*/
|
||||
shopQrcode?: null | string;
|
||||
/**
|
||||
* 店铺类型 单店--only 连锁店--chain--加盟店join (对应原来 type)
|
||||
*/
|
||||
shopType?: null | string;
|
||||
/**
|
||||
* 小程序码(零点八零首页)
|
||||
*/
|
||||
smallQrcode?: null | string;
|
||||
/**
|
||||
* -1 平台禁用 0-过期,1正式营业,
|
||||
*/
|
||||
status?: number | null;
|
||||
/**
|
||||
* 店铺口号
|
||||
*/
|
||||
subTitle?: null | string;
|
||||
/**
|
||||
* 桌位费
|
||||
*/
|
||||
tableFee?: number | null;
|
||||
/**
|
||||
* 商家标签
|
||||
*/
|
||||
tag?: null | string;
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
taxAmount?: null | string;
|
||||
/**
|
||||
* 管理 0否 1是, 1 为直接管理 可切换店铺 0 不可以切换
|
||||
*/
|
||||
tubeType?: number | null;
|
||||
updateTime?: null | string;
|
||||
[property: string]: any;
|
||||
/**
|
||||
* 详细地址
|
||||
*/
|
||||
address?: null | string;
|
||||
/**
|
||||
* 项目分类
|
||||
*/
|
||||
article?: null | string;
|
||||
/**
|
||||
* 背景图
|
||||
*/
|
||||
backImg?: null | string;
|
||||
/**
|
||||
* 开票系统账号
|
||||
*/
|
||||
bindAccount?: null | string;
|
||||
/**
|
||||
* 台桌预订短信
|
||||
*/
|
||||
bookingSms?: null | string;
|
||||
/**
|
||||
* 营业时间(周结束)
|
||||
*/
|
||||
businessEndDay?: null | string;
|
||||
/**
|
||||
* 营业时间(周开始)
|
||||
*/
|
||||
businessStartDay?: null | string;
|
||||
/**
|
||||
* 营业时间
|
||||
*/
|
||||
businessTime?: null | string;
|
||||
/**
|
||||
* 连锁店扩展店名
|
||||
*/
|
||||
chainName?: null | string;
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
cities?: null | string;
|
||||
/**
|
||||
* 积分群体 all-所有 vip-仅针对会员
|
||||
*/
|
||||
consumeColony?: null | string;
|
||||
/**
|
||||
* 联系人姓名
|
||||
*/
|
||||
contactName?: null | string;
|
||||
/**
|
||||
* 封面图
|
||||
*/
|
||||
coverImg?: null | string;
|
||||
createTime?: null | string;
|
||||
/**
|
||||
* 店铺简介
|
||||
*/
|
||||
detail?: null | string;
|
||||
/**
|
||||
* 区/县
|
||||
*/
|
||||
districts?: null | string;
|
||||
/**
|
||||
* 就餐模式 堂食 dine-in 外带 take-out
|
||||
*/
|
||||
eatModel?: null | string;
|
||||
/**
|
||||
* 到期时间
|
||||
*/
|
||||
expireTime?: null | string;
|
||||
/**
|
||||
* 门头照
|
||||
*/
|
||||
frontImg?: null | string;
|
||||
/**
|
||||
* 使用系统用户 sys_user id
|
||||
*/
|
||||
id?: number | null;
|
||||
/**
|
||||
* 是否开启会员余额支付
|
||||
*/
|
||||
isAccountPay?: number | null;
|
||||
/**
|
||||
* 是否允许会员自定义金额 1 允许 0 不允许
|
||||
*/
|
||||
isCustomAmount?: number | null;
|
||||
/**
|
||||
* 是否开启会员充值密码 1 启用 0 禁用
|
||||
*/
|
||||
isMemberInPwd?: number | null;
|
||||
/**
|
||||
* 是否启用会员价 0否1是
|
||||
*/
|
||||
isMemberPrice?: number | null;
|
||||
/**
|
||||
* 是否开启会员退款密码 1 启用 0 禁用
|
||||
*/
|
||||
isMemberReturnPwd?: number | null;
|
||||
/**
|
||||
* 是否开启退款密码 1 启用 0 禁用
|
||||
*/
|
||||
isReturnPwd?: number | null;
|
||||
/**
|
||||
* 是否免除桌位费 0否1是
|
||||
*/
|
||||
isTableFee?: number | null;
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
lat?: null | string;
|
||||
/**
|
||||
* 经纬度
|
||||
*/
|
||||
lng?: null | string;
|
||||
/**
|
||||
* 店铺logo
|
||||
*/
|
||||
logo?: null | string;
|
||||
/**
|
||||
* 主店id
|
||||
*/
|
||||
mainId?: number | null;
|
||||
/**
|
||||
* 0停业 1,正常营业 2,网上售卖
|
||||
*/
|
||||
onSale?: number | null;
|
||||
/**
|
||||
* 操作密码
|
||||
*/
|
||||
operationPwd?: null | string;
|
||||
/**
|
||||
* 店铺收款码
|
||||
*/
|
||||
paymentQrcode?: null | string;
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
phone?: null | string;
|
||||
/**
|
||||
* trial试用版,release正式
|
||||
*/
|
||||
profiles?: null | string;
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
provinces?: null | string;
|
||||
registerType?: null | string;
|
||||
/**
|
||||
* 数电发票类型
|
||||
*/
|
||||
sdType?: null | string;
|
||||
/**
|
||||
* 店铺名称
|
||||
*/
|
||||
shopName?: null | string;
|
||||
/**
|
||||
* 商家二维码
|
||||
*/
|
||||
shopQrcode?: null | string;
|
||||
/**
|
||||
* 店铺类型 单店--only 连锁店--chain--加盟店join (对应原来 type)
|
||||
*/
|
||||
shopType?: null | string;
|
||||
/**
|
||||
* 小程序码(零点八零首页)
|
||||
*/
|
||||
smallQrcode?: null | string;
|
||||
/**
|
||||
* -1 平台禁用 0-过期,1正式营业,
|
||||
*/
|
||||
status?: number | null;
|
||||
/**
|
||||
* 店铺口号
|
||||
*/
|
||||
subTitle?: null | string;
|
||||
/**
|
||||
* 桌位费
|
||||
*/
|
||||
tableFee?: number | null;
|
||||
/**
|
||||
* 商家标签
|
||||
*/
|
||||
tag?: null | string;
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
taxAmount?: null | string;
|
||||
/**
|
||||
* 管理 0否 1是, 1 为直接管理 可切换店铺 0 不可以切换
|
||||
*/
|
||||
tubeType?: number | null;
|
||||
updateTime?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
import request from "@/utils/request";
|
||||
import { Account_BaseUrl } from "@/api/config";
|
||||
const baseURL = Account_BaseUrl + "/admin/shop/branch";
|
||||
|
||||
const ShopBranchApi = {
|
||||
getList(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/page`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
getDataSync(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/get/dataSyncMethod`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
setDataSync(id: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/setting/dataSyncMethod?dataSyncMethod=${id}`,
|
||||
method: "post",
|
||||
});
|
||||
},
|
||||
dataSync(id: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/data/sync/enable?branchShopId=${id}`,
|
||||
method: "post",
|
||||
});
|
||||
},
|
||||
enable(id: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/account/enable?branchShopId=${id}`,
|
||||
method: "post",
|
||||
});
|
||||
},
|
||||
disable(id: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/account/disable?branchShopId=${id}`,
|
||||
method: "post",
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
export interface Responseres {
|
||||
code?: number | null;
|
||||
data?: any;
|
||||
msg?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
export default ShopBranchApi;
|
||||
|
|
@ -63,6 +63,14 @@ const API = {
|
|||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
//获取店铺用户详情
|
||||
vipInfo(params: getRequest) {
|
||||
return request({
|
||||
url: `${baseURL}/detail`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
}
|
||||
}
|
||||
export default API;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@
|
|||
// 商品,耗材相关:<https://tapi.cashier.sxczgkj.cn/product/>
|
||||
// 系统相关:<https://tapi.cashier.sxczgkj.cn/system/>
|
||||
|
||||
export const Account_BaseUrl = "account";
|
||||
export const Order_BaseUrl = "order";
|
||||
export const Product_BaseUrl = "product";
|
||||
export const System_BaseUrl = "system";
|
||||
export const Account_BaseUrl = "/account";
|
||||
export const Order_BaseUrl = "/order";
|
||||
export const Product_BaseUrl = "/product";
|
||||
export const System_BaseUrl = "/system";
|
||||
export const Market_BaseUrl = "/market";
|
||||
|
|
|
|||
|
|
@ -0,0 +1,786 @@
|
|||
import request from "@/utils/request";
|
||||
import {
|
||||
Account_BaseUrl,
|
||||
Product_BaseUrl,
|
||||
Market_BaseUrl,
|
||||
System_BaseUrl
|
||||
} from "@/api/config";
|
||||
|
||||
// 获取分店列表
|
||||
export function getBranchPage() {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shop/branch/page"}`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 店铺分店列表(下拉展示主店和分店使用,默认第一个是主店,其余是分店)
|
||||
export function getBranchList() {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shopInfo/branchList"}`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 获取商品-列表
|
||||
export function getProductList() {
|
||||
return request({
|
||||
url: `${Product_BaseUrl + "/admin/product/list"}`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 获取商品分类
|
||||
export function getCategoryList() {
|
||||
return request({
|
||||
url: `${Product_BaseUrl + "/admin/prod/category/list"}`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 新增优惠券
|
||||
export function addCoupon(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon"}`,
|
||||
method: data.id ? 'put' : 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 优惠券分页
|
||||
export function couponPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon/page"}`,
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 删除优惠券
|
||||
export function delCoupon(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon"}`,
|
||||
method: 'DELETE',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 新增消费赠券
|
||||
export function addConsumerCoupon(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumerCoupon/addConsumerCoupon"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 消费赠券分页
|
||||
export function getConsumerCouponPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumerCoupon/getConsumerCouponPage"}`,
|
||||
method: "GET",
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 更新消费赠券
|
||||
export function updateConsumerCouponById(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumerCoupon/updateConsumerCouponById"}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 删除消费赠券
|
||||
export function deleteConsumerCoupon(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumerCoupon/deleteConsumerCoupon"}`,
|
||||
method: 'DELETE',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 获取该券关联的功能列表
|
||||
export function relevanceCoupon(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon/gifts"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 通过关联Id取消该券的关联
|
||||
export function delRelevanceCoupon(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon/cancelGift"}`,
|
||||
method: 'DELETE',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 优惠券列表/已领取详情
|
||||
export function couponRecord(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon/record"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 消费赠券已领取详情
|
||||
export function xfCouponRecord(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon/consumerRecord"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 删除用户优惠券
|
||||
export function deleteRecord(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/coupon/deleteRecord"}`,
|
||||
method: 'DELETE',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 智慧充值 配置信息修改
|
||||
export function shopRecharge(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/shopRecharge"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 智慧充值 配置信息获取
|
||||
export function shopRechargeGet() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/shopRecharge"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取店铺用户列表
|
||||
export function getShopUserList(params) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shopUser"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 消费返现 配置信息获取
|
||||
export function consumeCashback() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumeCashback"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 消费返现 配置信息修改
|
||||
export function consumeCashbackPost(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumeCashback"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 消费返现 记录获取
|
||||
export function consumeCashbackRecord(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/consumeCashback/record"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 满减活动 配置信息获取
|
||||
export function discountActivityPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/discountActivity/page"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 满减活动 新增
|
||||
export function discountActivity(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/discountActivity"}`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 满减活动 删除
|
||||
export function discountActivityDelete(id) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/discountActivity"}?id=${id}`,
|
||||
method: 'DELETE'
|
||||
});
|
||||
}
|
||||
|
||||
// 店铺详情
|
||||
export function shopInfoGet() {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shopInfo/detail"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 店铺编辑
|
||||
export function shopInfoPut(data) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shopInfo"}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 私域引流 配置信息获取
|
||||
export function drainageConfigGet() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/drainageConfig"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 私域引流 配置信息修改
|
||||
export function drainageConfigPost(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/drainageConfig"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 短信模板 新增
|
||||
export function smsTemplate(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsTemplate"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 短信模板 重新提交
|
||||
export function smsTemplateResubmit(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsTemplate/resubmit"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 短信模板 列表
|
||||
export function smsTemplateGet() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsTemplate"}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 短信模板 列表 管理员专用
|
||||
export function smsTemplatePage(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsTemplate/query"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 获取短信发送用户
|
||||
export function getPushEventUser(data) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shopUser/getPushEventUser"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 短信推送任务 新增
|
||||
export function pushEventPost(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/pushEvent"}`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 短信推送任务 列表
|
||||
export function pushEventGet(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/pushEvent"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 短信推送任务 删除任务
|
||||
export function pushEventDel(id) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/pushEvent/${id}`,
|
||||
method: 'DELETE'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取店铺短信余额明细
|
||||
export function smsMoneyDetail(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsMoneyDetail"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 霸王餐 配置信息获取
|
||||
export function freeDingGet(params) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/freeDing"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 霸王餐 修改霸王餐配置信息
|
||||
export function freeDingPut(data) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/freeDing"}`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 平台 模板状态/删除
|
||||
export function shopUseDelStatus(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsTemplate/shopUse"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 配置信息获取
|
||||
export function adminSmsMoneyPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsMoney/page"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 变更店铺短信余额
|
||||
export function smsMoneyChange(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsMoney/change"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 平台 获取店铺短信余额明细
|
||||
export function smsMoneyDetailQuery(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsMoneyDetail/query"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 获取店铺短信余额
|
||||
export function smsMoneyGet() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/smsMoney"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取发送短信单价
|
||||
export function smsMoneyGetFee() {
|
||||
return request({
|
||||
url: `${System_BaseUrl + "/admin/sysParams/code/sms_fee"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 微信公众号 商家每日可创建次数
|
||||
export function acDayCount() {
|
||||
return request({
|
||||
url: `${System_BaseUrl + "/admin/sysParams/code/ac_day_count"}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 公众号推送:列表
|
||||
export function acPushEventGet(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl + "/admin/acPushEvent"}`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 公众号推送:删除任务
|
||||
export function acPushEventDel(id) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/acPushEvent/${id}`,
|
||||
method: 'DELETE'
|
||||
});
|
||||
}
|
||||
|
||||
// 公众号推送:新增/更新
|
||||
export function acPushEventPost(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/acPushEvent`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 公众号任务获取用户
|
||||
export function getAcPushEventUser(data) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl + "/admin/shopUser/getAcPushEventUser"}`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 配置开关
|
||||
export function rechargeRedemptionPut(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption/enable`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 开关状态
|
||||
export function rechargeRedemptionEnableStatus() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption/enable/status`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 配置信息获取 列表
|
||||
export function rechargeRedemptionList(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 配置信息添加/编辑
|
||||
export function rechargeRedemption(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 充值兑换码列表
|
||||
export function rechargeRedemptionCodeList(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption/code/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 配置信息详情
|
||||
export function rechargeRedemptionDetail(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 充值兑换 配置信息详情
|
||||
export function rechargeRedemptionExport(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/rechargeRedemption/code/export`,
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: "blob",
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 开关。可用门店修改
|
||||
export function couponRedemptionEnable(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption/enable`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 开关状态,可用门店详情
|
||||
export function couponRedemptionEnableStatus() {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption/enable/status`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 配置信息获取 列表
|
||||
export function couponRedemptionList(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 配置信息添加/编辑
|
||||
export function couponRedemption(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 券兑换码码列表
|
||||
export function couponRedemptionCodeList(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption/code/list`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 配置信息详情
|
||||
export function couponRedemptionDetail(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 券兑换码 配置信息详情
|
||||
export function couponRedemptionCodeExport(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/couponRedemption/code/export`,
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: "blob",
|
||||
});
|
||||
}
|
||||
|
||||
// 限时折扣-分页
|
||||
export function limitTimeDiscountPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/limitTimeDiscount/page`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 限时折扣-新增
|
||||
export function limitTimeDiscount(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/limitTimeDiscount`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 限时折扣-删除
|
||||
export function limitTimeDiscountDel(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/limitTimeDiscount`,
|
||||
method: 'DELETE',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 点单智能推荐-分页
|
||||
export function suggestPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/suggest/page`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 点单智能推荐-添加/修改
|
||||
export function suggestPostPut(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/suggest`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 点单智能推荐-删除
|
||||
export function suggestDel(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/suggest`,
|
||||
method: 'DELETE',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销-配置信息详情
|
||||
export function distributionGet(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销-配置信息修改
|
||||
export function distributionPut(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution`,
|
||||
method: 'put',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 分销-金额记录
|
||||
export function distributionFlow(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/flow`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销-现金充值
|
||||
export function distributionCashPay(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/cashPay`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 分销-分销员:添加分销员
|
||||
export function distributionUser(data, method = 'post') {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/user`,
|
||||
method: method,
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:分销员列表 下级用户列表
|
||||
export function distributionUserPage(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/user`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:开通记录
|
||||
export function distributionOpenFlow(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/openFlow`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:分销明细
|
||||
export function distributionFlowGet(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/distributionFlow`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:用户提现列表
|
||||
export function distributionWithdrawFlow(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/withdrawFlow`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:充值二维码获取
|
||||
export function distributionRechargeQrCode(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/rechargeQrCode`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 店铺列表, 只允许管理员调用
|
||||
export function shopInfoList(params) {
|
||||
return request({
|
||||
url: `${Account_BaseUrl}/admin/shopInfo`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销, 金额记录
|
||||
export function distributionShopFlow(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/flow`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:获取邀请人分页列表
|
||||
export function distributionUserInviteUser(params) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/user/inviteUser`,
|
||||
method: 'get',
|
||||
params
|
||||
});
|
||||
}
|
||||
|
||||
// 分销员:重置分销员等级
|
||||
export function distributionUserResetLevel(data) {
|
||||
return request({
|
||||
url: `${Market_BaseUrl}/admin/distribution/user/resetLevel`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -8,7 +8,7 @@ const FileAPI = {
|
|||
*/
|
||||
upload(formData: FormData) {
|
||||
return request<any, FileInfo>({
|
||||
url: "/api/v1/files",
|
||||
url: "/account/admin/common/upload",
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
|
|
@ -24,7 +24,7 @@ const FileAPI = {
|
|||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
return request<any, FileInfo>({
|
||||
url: "/api/v1/files",
|
||||
url: "/account/admin/common/upload",
|
||||
method: "post",
|
||||
data: formData,
|
||||
headers: {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
import request from "@/utils/request";
|
||||
import { Market_BaseUrl } from "@/api/config";
|
||||
const baseURL = Market_BaseUrl + "/admin/birthdayGift";
|
||||
const API = {
|
||||
getConfig(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
editConfig(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
},
|
||||
getRecord(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/record`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
getSummary(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/summary`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
}
|
||||
export default API;
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
import request from "@/utils/request";
|
||||
import { Market_BaseUrl } from "@/api/config";
|
||||
const baseURL = Market_BaseUrl + "/admin/consumeDiscount";
|
||||
const API = {
|
||||
getConfig(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
editConfig(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
},
|
||||
}
|
||||
export default API;
|
||||
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
import request from "@/utils/request";
|
||||
import { Market_BaseUrl } from "@/api/config";
|
||||
const baseURL = Market_BaseUrl + "/admin/coupon";
|
||||
const API = {
|
||||
getList(params : any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/page`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
//优惠券列表/已领取详情
|
||||
getDetail(params : any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/record`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
// 删除用户优惠券
|
||||
delete(params : any) {
|
||||
return request({
|
||||
url: `${baseURL}/deleteRecord`,
|
||||
method: "delete",
|
||||
params,
|
||||
});
|
||||
},
|
||||
//优惠券发放
|
||||
giveCoupon(data : any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/grant`,
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
},
|
||||
//优惠券发放
|
||||
getRecordByUser(params : any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/getRecordByUser`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
}
|
||||
export default API;
|
||||
|
|
@ -0,0 +1,240 @@
|
|||
import request from "@/utils/request";
|
||||
import { Market_BaseUrl } from "@/api/config";
|
||||
const baseURL = Market_BaseUrl + "/admin/member";
|
||||
const API = {
|
||||
getConfig(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
editConfig(data: editRequest) {
|
||||
return request({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
levelAdd(data: levelAddRequest) {
|
||||
return request({
|
||||
url: `${baseURL}/level`,
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
levelEdit(data: levelEditRequest) {
|
||||
return request({
|
||||
url: `${baseURL}/level`,
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
},
|
||||
levelDel(data: levelDelRequest) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/level/${data.id}`,
|
||||
method: "delete",
|
||||
// data
|
||||
});
|
||||
},
|
||||
levelList(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/level/list`,
|
||||
method: "get",
|
||||
params
|
||||
});
|
||||
},
|
||||
}
|
||||
export default API;
|
||||
|
||||
/**
|
||||
* MemberConfigDTO
|
||||
*/
|
||||
export interface editRequest {
|
||||
/**
|
||||
* 条件开通条件项
|
||||
*/
|
||||
conditionList?: Condition[] | null;
|
||||
/**
|
||||
* 金额购买方案列表
|
||||
*/
|
||||
configList?: ConfigList[] | null;
|
||||
/**
|
||||
* 每消费一元经验值
|
||||
*/
|
||||
costReward?: number | null;
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
id: number | null;
|
||||
/**
|
||||
* 是否享受会员价
|
||||
*/
|
||||
isMemberPrice: number | null;
|
||||
/**
|
||||
* 是否开启
|
||||
*/
|
||||
isOpen: string;
|
||||
/**
|
||||
* 提交生日/姓名
|
||||
*/
|
||||
isSubmitInfo: number | null;
|
||||
/**
|
||||
* 参与会员价门店
|
||||
*/
|
||||
memberPriceShopIdList?: number[] | null;
|
||||
/**
|
||||
* 每充值一元经验值
|
||||
*/
|
||||
rechargeReward?: number | null;
|
||||
/**
|
||||
* 规则说明
|
||||
*/
|
||||
remark: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* com.czg.account.dto.MemberConfigDTO.condition
|
||||
*
|
||||
* condition
|
||||
*/
|
||||
export interface Condition {
|
||||
code?: null | string;
|
||||
value?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* com.czg.account.dto.MemberConfigDTO.ConfigList
|
||||
*
|
||||
* ConfigList
|
||||
*/
|
||||
export interface ConfigList {
|
||||
/**
|
||||
* 会员周期 1月 1日
|
||||
*/
|
||||
circleTime: null | string;
|
||||
/**
|
||||
* 赠送优惠券
|
||||
*/
|
||||
couponIdList?: number[] | null;
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
name: null | string;
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
price: number | null;
|
||||
/**
|
||||
* 赠送成长值
|
||||
*/
|
||||
reward?: number | null;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* MemberLevelDTO
|
||||
*/
|
||||
export interface levelAddRequest {
|
||||
/**
|
||||
* 消费送积分,消费n元送1积分, 0为禁用
|
||||
*/
|
||||
costRewardPoints?: number | null;
|
||||
/**
|
||||
* 优惠券列表
|
||||
*/
|
||||
cycleRewardCouponList?: number[] | null;
|
||||
/**
|
||||
* 赠送积分
|
||||
*/
|
||||
cycleRewardPoints?: number | null;
|
||||
/**
|
||||
* 周期时间包含周 月 年 日
|
||||
*/
|
||||
cycleTime?: null | string;
|
||||
/**
|
||||
* 会员折扣
|
||||
*/
|
||||
discount: number | null;
|
||||
/**
|
||||
* 所需成长值
|
||||
*/
|
||||
experienceValue: number | null;
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
id?: number | null;
|
||||
/**
|
||||
* 周期奖励状态 0禁用 1启用
|
||||
*/
|
||||
isCycleReward: number | null;
|
||||
/**
|
||||
* logo
|
||||
*/
|
||||
logo?: null | string;
|
||||
/**
|
||||
* 会员名称
|
||||
*/
|
||||
name: null | string;
|
||||
/**
|
||||
* 描述说明
|
||||
*/
|
||||
remark: string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* MemberLevelDTOUpdateGroup
|
||||
*/
|
||||
export interface levelEditRequest {
|
||||
/**
|
||||
* 消费送积分,消费n元送1积分, 0为禁用
|
||||
*/
|
||||
costRewardPoints?: number | null;
|
||||
/**
|
||||
* 优惠券列表
|
||||
*/
|
||||
cycleRewardCouponList?: number[] | null;
|
||||
/**
|
||||
* 赠送积分
|
||||
*/
|
||||
cycleRewardPoints?: number | null;
|
||||
/**
|
||||
* 周期时间包含周 月 年 日
|
||||
*/
|
||||
cycleTime?: null | string;
|
||||
/**
|
||||
* 会员折扣
|
||||
*/
|
||||
discount?: number | null;
|
||||
/**
|
||||
* 所需成长值
|
||||
*/
|
||||
experienceValue?: number | null;
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
id: number | null;
|
||||
/**
|
||||
* 周期奖励状态 0禁用 1启用
|
||||
*/
|
||||
isCycleReward?: number | null;
|
||||
/**
|
||||
* logo
|
||||
*/
|
||||
logo?: null | string;
|
||||
/**
|
||||
* 会员名称
|
||||
*/
|
||||
name?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
export interface levelDelRequest {
|
||||
id: number;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
import request from "@/utils/request";
|
||||
import { Account_BaseUrl } from "@/api/config";
|
||||
const baseURL = Account_BaseUrl + "/admin";
|
||||
// 供应商
|
||||
const Api = {
|
||||
/** 通知消息列表*/
|
||||
getList(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/syncNotice`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
/** 全部*/
|
||||
getAllList(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/list`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
get(id: string | number) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/` + id,
|
||||
method: "get",
|
||||
});
|
||||
},
|
||||
add(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
},
|
||||
edit(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/syncNotice/read`,
|
||||
method: "put",
|
||||
data,
|
||||
});
|
||||
},
|
||||
|
||||
delete(id: string | number) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/syncNotice?id=` + id,
|
||||
method: "delete",
|
||||
});
|
||||
},
|
||||
// 清空已读
|
||||
syncNoticeclear() {
|
||||
return request<any>({
|
||||
url: `${baseURL}/syncNotice/clear`,
|
||||
method: "delete",
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default Api;
|
||||
|
|
@ -55,7 +55,7 @@ const AuthAPI = {
|
|||
method: "delete",
|
||||
});
|
||||
},
|
||||
// 退款退回
|
||||
// 同步
|
||||
refundToStock(data: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/refundToStock`,
|
||||
|
|
@ -63,6 +63,14 @@ const AuthAPI = {
|
|||
data,
|
||||
});
|
||||
},
|
||||
// 退款退回
|
||||
sync(data: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/sync`,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
},
|
||||
|
||||
// 耗材列表
|
||||
productcons(params: any) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
import request from "@/utils/request";
|
||||
import { Product_BaseUrl } from "@/api/config";
|
||||
const baseURL = Product_BaseUrl + "/admin/product";
|
||||
// 供应商
|
||||
const Api = {
|
||||
/** 耗材库存变动记录*/
|
||||
getList(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/stock/flow`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
/** 全部*/
|
||||
getAllList(params: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/list`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
get(id: string | number) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/` + id,
|
||||
method: "get",
|
||||
});
|
||||
},
|
||||
add(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
},
|
||||
edit(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}`,
|
||||
method: "put",
|
||||
data,
|
||||
});
|
||||
},
|
||||
|
||||
delete(id: string | number) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/` + id,
|
||||
method: "delete",
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default Api;
|
||||
|
|
@ -8,7 +8,7 @@ const Api = {
|
|||
return request<any>({
|
||||
url: `${baseURL}/in`,
|
||||
method: "post",
|
||||
data
|
||||
data,
|
||||
});
|
||||
},
|
||||
//出库
|
||||
|
|
@ -16,7 +16,7 @@ const Api = {
|
|||
return request<any>({
|
||||
url: `${baseURL}/out`,
|
||||
method: "post",
|
||||
data
|
||||
data,
|
||||
});
|
||||
},
|
||||
// 库存盘点记录
|
||||
|
|
@ -24,7 +24,7 @@ const Api = {
|
|||
return request<any>({
|
||||
url: `${baseURL}/checkRecord`,
|
||||
method: "get",
|
||||
params
|
||||
params,
|
||||
});
|
||||
},
|
||||
//库存盘点
|
||||
|
|
@ -32,7 +32,7 @@ const Api = {
|
|||
return request<any>({
|
||||
url: `${baseURL}/check`,
|
||||
method: "post",
|
||||
data
|
||||
data,
|
||||
});
|
||||
},
|
||||
//耗材报损
|
||||
|
|
@ -41,7 +41,7 @@ const Api = {
|
|||
return request<any>({
|
||||
url: `${baseURL}/reportDamage`,
|
||||
method: "post",
|
||||
data
|
||||
data,
|
||||
});
|
||||
},
|
||||
//耗材库存变动记录
|
||||
|
|
@ -49,11 +49,17 @@ const Api = {
|
|||
return request<any>({
|
||||
url: `${baseURL}/flow`,
|
||||
method: "get",
|
||||
params
|
||||
params,
|
||||
});
|
||||
},
|
||||
//耗材库存变动记录
|
||||
reportinglosses(data: any) {
|
||||
return request<any>({
|
||||
url: `${baseURL}/reportDamage`,
|
||||
method: "POST",
|
||||
data,
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
|
||||
export default Api;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,60 @@
|
|||
import request from "@/utils/request";
|
||||
const baseURL = "/product/admin/product/vendor";
|
||||
|
||||
// 供应商账单
|
||||
|
||||
const AuthAPI = {
|
||||
/** 供应商账单统计*/
|
||||
getSummary(params: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/summary`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
/** 分页*/
|
||||
getPage(params: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/bill`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
// 账单记录
|
||||
getRecordList(params: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/bill/record`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
// 账单付款记录
|
||||
getPayRecordList(params: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/bill/pay/record`,
|
||||
method: "get",
|
||||
params,
|
||||
});
|
||||
},
|
||||
// 账单付款
|
||||
billPay(data: any) {
|
||||
return request<any, Responseres>({
|
||||
url: `${baseURL}/bill/pay`,
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
export interface Responseres {
|
||||
code?: number | null;
|
||||
data?: any;
|
||||
msg?: null | string;
|
||||
[property: string]: any;
|
||||
}
|
||||
|
||||
export default AuthAPI;
|
||||
|
|
@ -246,6 +246,7 @@ export interface UserInfo {
|
|||
* 用户分页查询对象
|
||||
*/
|
||||
export interface UserPageQuery extends PageQuery {
|
||||
times: any;
|
||||
/** 搜索关键字 */
|
||||
keywords?: string;
|
||||
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 900 B |
|
After Width: | Height: | Size: 957 B |
|
After Width: | Height: | Size: 805 B |
|
After Width: | Height: | Size: 943 B |
|
After Width: | Height: | Size: 895 B |
|
After Width: | Height: | Size: 947 B |
|
After Width: | Height: | Size: 945 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 813 B |
|
After Width: | Height: | Size: 1018 B |
|
After Width: | Height: | Size: 857 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 962 B |
|
After Width: | Height: | Size: 930 B |
|
After Width: | Height: | Size: 930 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 792 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 777 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 857 B |
|
After Width: | Height: | Size: 896 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 857 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 774 B |
|
After Width: | Height: | Size: 935 B |
|
After Width: | Height: | Size: 918 B |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
|
@ -0,0 +1,10 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.9166 11.6667H2.08331V17.5H17.9166V11.6667Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M17.9166 2.5H2.08331V8.33333H17.9166V2.5Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.24998 5.41665C6.24998 4.95641 5.87688 4.58331 5.41665 4.58331C4.95641 4.58331 4.58331 4.95641 4.58331 5.41665C4.58331 5.87688 4.95641 6.24998 5.41665 6.24998C5.87688 6.24998 6.24998 5.87688 6.24998 5.41665Z" fill="white"/>
|
||||
<path d="M6.24998 14.5833C6.24998 14.1231 5.87688 13.75 5.41665 13.75C4.95641 13.75 4.58331 14.1231 4.58331 14.5833C4.58331 15.0436 4.95641 15.4167 5.41665 15.4167C5.87688 15.4167 6.24998 15.0436 6.24998 14.5833Z" fill="white"/>
|
||||
<path d="M9.58335 5.41665C9.58335 4.95641 9.21026 4.58331 8.75002 4.58331C8.28978 4.58331 7.91669 4.95641 7.91669 5.41665C7.91669 5.87688 8.28978 6.24998 8.75002 6.24998C9.21026 6.24998 9.58335 5.87688 9.58335 5.41665Z" fill="white"/>
|
||||
<path d="M9.58335 14.5833C9.58335 14.1231 9.21026 13.75 8.75002 13.75C8.28978 13.75 7.91669 14.1231 7.91669 14.5833C7.91669 15.0436 8.28978 15.4167 8.75002 15.4167C9.21026 15.4167 9.58335 15.0436 9.58335 14.5833Z" fill="white"/>
|
||||
<path d="M12.9167 5.41669H14.5834" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12.9167 14.5833H14.5834" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.667 4.583V3.328C1.667 2.871 2.047 2.5 2.493 2.5H17.507C17.963 2.5 18.333 2.87 18.333 3.328V16.672C18.333 17.129 17.953 17.5 17.507 17.5H2.493C2.3844 17.4999 2.27688 17.4783 2.1766 17.4367C2.07631 17.395 1.98522 17.334 1.90852 17.2571C1.83181 17.1802 1.77101 17.0889 1.72957 16.9886C1.68813 16.8882 1.66687 16.7806 1.667 16.672V15.833H16.667V6.083L10 12.083L1.667 4.583ZM0 8.333H4.167V10H0V8.333ZM0 12.5H6.667V14.167H0V12.5Z" fill="#999999"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 557 B |
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M9.615 18.1062H1.9775C1.89214 18.1081 1.80725 18.0931 1.72769 18.0621C1.64813 18.0311 1.57545 17.9847 1.51381 17.9256C1.45217 17.8666 1.40278 17.7959 1.36845 17.7177C1.33412 17.6395 1.31554 17.5554 1.31375 17.47V12.2475C1.31736 12.0753 1.38916 11.9116 1.51337 11.7923C1.63758 11.673 1.80406 11.6079 1.97625 11.6112C2.06172 11.6094 2.1467 11.6245 2.22635 11.6555C2.30599 11.6866 2.37872 11.7331 2.44037 11.7923C2.50203 11.8515 2.5514 11.9223 2.58565 12.0006C2.61991 12.079 2.63838 12.1633 2.64 12.2487V16.8338H9.02C9.16625 17.2838 9.3675 17.71 9.615 18.1062ZM19.2463 6.0475C19.3963 6.35125 19.4888 6.6875 19.4875 7.0475C19.4875 8.3375 18.3962 9.3825 17.0512 9.3825C15.705 9.3825 14.6137 8.3375 14.6137 7.04625C14.6137 8.3375 13.5238 9.38375 12.1788 9.38375C10.835 9.38375 9.74375 8.33875 9.7425 7.04875C9.7425 8.33875 8.65125 9.3825 7.3075 9.3825C5.9625 9.3825 4.87125 8.3375 4.87125 7.04625C4.87125 8.3375 3.78125 9.38375 2.43625 9.38375C1.09 9.3825 0 8.3375 0 7.045C0.00230884 6.69793 0.0848782 6.3561 0.24125 6.04625L1.59125 2.72875H17.895L19.245 6.04625L19.2463 6.0475ZM1.52875 1.74375C1.53036 1.61352 1.58273 1.48905 1.67471 1.39684C1.76669 1.30463 1.89102 1.25194 2.02125 1.25H17.4875C17.7587 1.25 17.98 1.47875 17.98 1.74375C17.9781 1.87377 17.9256 1.99791 17.8336 2.08986C17.7417 2.1818 17.6175 2.23431 17.4875 2.23625H2.02125C1.89103 2.23495 1.76652 2.18264 1.67444 2.09056C1.58236 1.99848 1.53005 1.87397 1.52875 1.74375ZM15 20C13.6739 20 12.4021 19.4732 11.4645 18.5355C10.5268 17.5979 10 16.3261 10 15C10 13.6739 10.5268 12.4021 11.4645 11.4645C12.4021 10.5268 13.6739 10 15 10C16.3261 10 17.5979 10.5268 18.5355 11.4645C19.4732 12.4021 20 13.6739 20 15C20 16.3261 19.4732 17.5979 18.5355 18.5355C17.5979 19.4732 16.3261 20 15 20ZM17.2938 14.9325C17.349 14.9335 17.4039 14.9236 17.4553 14.9033C17.5068 14.883 17.5537 14.8528 17.5934 14.8144C17.6331 14.7759 17.6648 14.73 17.6868 14.6793C17.7087 14.6286 17.7204 14.574 17.7213 14.5187C17.7204 14.4634 17.7087 14.4088 17.6868 14.358C17.6649 14.3072 17.6332 14.2612 17.5935 14.2227C17.5538 14.1842 17.5069 14.1538 17.4554 14.1334C17.404 14.113 17.3491 14.1029 17.2938 14.1037H16.1875L17.2913 13.0325C17.331 12.9946 17.3626 12.949 17.3842 12.8985C17.4057 12.848 17.4169 12.7937 17.4169 12.7387C17.4169 12.6838 17.4057 12.6295 17.3842 12.579C17.3626 12.5285 17.331 12.4829 17.2913 12.445C17.2099 12.3674 17.1018 12.3242 16.9894 12.3242C16.877 12.3242 16.7689 12.3674 16.6875 12.445L15.1213 13.9675L13.5538 12.445C13.4724 12.3674 13.3643 12.3242 13.2519 12.3242C13.1395 12.3242 13.0314 12.3674 12.95 12.445C12.9103 12.4829 12.8787 12.5285 12.8571 12.579C12.8355 12.6295 12.8244 12.6838 12.8244 12.7387C12.8244 12.7937 12.8355 12.848 12.8571 12.8985C12.8787 12.949 12.9103 12.9946 12.95 13.0325L14.0538 14.1037H13.02C12.9647 14.1029 12.9097 14.113 12.8583 14.1334C12.8069 14.1538 12.76 14.1842 12.7203 14.2227C12.6806 14.2612 12.6489 14.3072 12.6269 14.358C12.605 14.4088 12.5933 14.4634 12.5925 14.5187C12.5925 14.7475 12.785 14.9325 13.02 14.9325H14.7287V15.7613H13.02C12.9647 15.7604 12.9097 15.7705 12.8583 15.7909C12.8069 15.8113 12.76 15.8417 12.7203 15.8802C12.6806 15.9187 12.6489 15.9647 12.6269 16.0155C12.605 16.0663 12.5933 16.1209 12.5925 16.1762C12.5925 16.405 12.7838 16.5912 13.02 16.5912H14.7287V17.5587C14.7287 17.7875 14.92 17.9725 15.1562 17.9725C15.2116 17.9735 15.2665 17.9636 15.318 17.9433C15.3695 17.9231 15.4165 17.8929 15.4563 17.8544C15.4961 17.816 15.528 17.7701 15.5501 17.7194C15.5722 17.6687 15.584 17.6141 15.585 17.5587V16.5912H17.2938C17.3491 16.5921 17.404 16.582 17.4554 16.5616C17.5069 16.5412 17.5538 16.5108 17.5935 16.4723C17.6332 16.4338 17.6649 16.3878 17.6868 16.337C17.7087 16.2862 17.7204 16.2316 17.7213 16.1762C17.7206 16.1209 17.709 16.0662 17.6871 16.0153C17.6653 15.9644 17.6336 15.9184 17.5938 15.8798C17.5541 15.8413 17.5071 15.8109 17.4556 15.7906C17.4041 15.7702 17.3491 15.7603 17.2938 15.7613H15.585V14.9325H17.2938Z" fill="#999999"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.50002 1.66675H2.50002C2.03978 1.66675 1.66669 2.03984 1.66669 2.50008V7.50008C1.66669 7.96033 2.03978 8.33341 2.50002 8.33341H7.50002C7.96027 8.33341 8.33335 7.96033 8.33335 7.50008V2.50008C8.33335 2.03984 7.96027 1.66675 7.50002 1.66675Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
<path d="M7.50002 11.6667H2.50002C2.03978 11.6667 1.66669 12.0398 1.66669 12.5001V17.5001C1.66669 17.9603 2.03978 18.3334 2.50002 18.3334H7.50002C7.96027 18.3334 8.33335 17.9603 8.33335 17.5001V12.5001C8.33335 12.0398 7.96027 11.6667 7.50002 11.6667Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
<path d="M17.5 1.66675H12.5C12.0398 1.66675 11.6667 2.03984 11.6667 2.50008V7.50008C11.6667 7.96033 12.0398 8.33341 12.5 8.33341H17.5C17.9603 8.33341 18.3334 7.96033 18.3334 7.50008V2.50008C18.3334 2.03984 17.9603 1.66675 17.5 1.66675Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
<path d="M11.6667 11.6667H18.3334" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M15 15H18.3333" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M11.6667 18.3333H18.3334" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
|
@ -0,0 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M7.24623 1.85525C7.58117 1.85525 7.8678 1.97119 8.10612 2.20307C8.34444 2.43495 8.4636 2.71836 8.4636 3.0533V7.88413C8.4636 8.21907 8.34444 8.5057 8.10612 8.74402C7.8678 8.98234 7.58117 9.1015 7.24623 9.1015H2.41539C2.08046 9.1015 1.79705 8.98234 1.56517 8.74402C1.33329 8.5057 1.21735 8.21907 1.21735 7.88413V3.0533C1.21735 2.71836 1.33329 2.43495 1.56517 2.20307C1.79705 1.97119 2.08046 1.85525 2.41539 1.85525H7.24623ZM7.24623 11.5169C7.58117 11.5169 7.8678 11.6329 8.10612 11.8647C8.34444 12.0966 8.4636 12.38 8.4636 12.715V17.5651C8.4636 17.9001 8.34444 18.1835 8.10612 18.4154C7.8678 18.6472 7.58117 18.7632 7.24623 18.7632H2.41539C2.08046 18.7632 1.79705 18.6472 1.56517 18.4154C1.33329 18.1835 1.21735 17.9001 1.21735 17.5651V12.715C1.21735 12.38 1.33329 12.0966 1.56517 11.8647C1.79705 11.6329 2.08046 11.5169 2.41539 11.5169H7.24623ZM16.9272 11.5169C17.2622 11.5169 17.5456 11.6329 17.7775 11.8647C18.0093 12.0966 18.1253 12.38 18.1253 12.715V17.5651C18.1253 17.9001 18.0093 18.1835 17.7775 18.4154C17.5456 18.6472 17.2622 18.7632 16.9272 18.7632H12.0964C11.7615 18.7632 11.4748 18.6472 11.2365 18.4154C10.9982 18.1835 10.879 17.9001 10.879 17.5651V12.715C10.879 12.38 10.9982 12.0966 11.2365 11.8647C11.4748 11.6329 11.7615 11.5169 12.0964 11.5169H16.9272ZM19.6132 3.98082C19.8708 4.23846 19.9996 4.54119 19.9996 4.88901C19.9996 5.23683 19.8708 5.53313 19.6132 5.77789L16.019 9.37203C15.7614 9.62967 15.4619 9.7585 15.1205 9.7585C14.7791 9.7585 14.4796 9.62967 14.222 9.37203L10.6278 5.77789C10.3831 5.53313 10.2607 5.23683 10.2607 4.88901C10.2607 4.54119 10.3831 4.23846 10.6278 3.98082L14.222 0.386675C14.4796 0.141912 14.7791 0.0195312 15.1205 0.0195312C15.4619 0.0195312 15.7614 0.141912 16.019 0.386675L19.6132 3.98082Z" fill="#999999"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M16.683 9.16663V17.5H3.34961V9.16663" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M2.43428 5.74025C1.79697 7.39071 3.02626 9.16667 4.79548 9.16667C6.17619 9.16667 7.30315 8.04737 7.30315 6.66667C7.30315 8.04737 8.42244 9.16667 9.80315 9.16667H10.2275C11.6082 9.16667 12.7275 8.04737 12.7275 6.66667C12.7275 8.04737 13.8549 9.16667 15.2356 9.16667C17.0058 9.16667 18.2362 7.38967 17.5984 5.73846L16.3474 2.5H3.68549L2.43428 5.74025Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 674 B |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M5.66718 15.3125H14.3328V16.1719H5.66718V15.3125ZM12.7246 5.09766H7.27538C7.11998 5.09766 6.97094 5.15939 6.86106 5.26927C6.75117 5.37916 6.68944 5.52819 6.68944 5.68359C6.68944 5.83899 6.75117 5.98803 6.86106 6.09791C6.97094 6.2078 7.11998 6.26953 7.27538 6.26953H12.7246C12.88 6.26953 13.029 6.2078 13.1389 6.09791C13.2488 5.98803 13.3105 5.83899 13.3105 5.68359C13.3105 5.52819 13.2488 5.37916 13.1389 5.26927C13.029 5.15939 12.88 5.09766 12.7246 5.09766ZM12.7246 6.95312H7.27538C7.11998 6.95312 6.97094 7.01486 6.86106 7.12474C6.75117 7.23463 6.68944 7.38366 6.68944 7.53906C6.68944 7.69446 6.75117 7.8435 6.86106 7.95338C6.97094 8.06327 7.11998 8.125 7.27538 8.125H12.7246C12.88 8.125 13.029 8.06327 13.1389 7.95338C13.2488 7.8435 13.3105 7.69446 13.3105 7.53906C13.3105 7.38366 13.2488 7.23463 13.1389 7.12474C13.029 7.01486 12.88 6.95312 12.7246 6.95312Z" fill="#999999"/>
|
||||
<path d="M16.8652 9.01797H14.9219V4.80469C14.9214 4.34901 14.7401 3.91213 14.4179 3.58992C14.0957 3.2677 13.6588 3.08645 13.2031 3.08594H6.79688C6.34119 3.08645 5.90432 3.2677 5.58211 3.58992C5.25989 3.91213 5.07864 4.34901 5.07812 4.80469V9.01797H3.13477C2.39902 9.01797 1.79688 9.66523 1.79688 10.4564V15.476C1.79688 16.2668 2.39902 16.9141 3.13477 16.9141H4.95352V15.6436C4.95352 15.2566 5.3377 14.9404 5.80742 14.9404H14.1926C14.6613 14.9404 15.0465 15.257 15.0465 15.6436V16.9141H16.8652C17.601 16.9141 18.2031 16.2668 18.2031 15.4756V10.4561C18.2031 9.66523 17.601 9.01797 16.8652 9.01797ZM6.25 4.80469C6.25 4.65965 6.30762 4.52055 6.41018 4.41799C6.51274 4.31543 6.65183 4.25781 6.79688 4.25781H13.2031C13.3482 4.25781 13.4873 4.31543 13.5898 4.41799C13.6924 4.52055 13.75 4.65965 13.75 4.80469V9.01797H6.25V4.80469ZM16.3574 12.6953C16.2087 12.6953 16.0633 12.6512 15.9397 12.5686C15.816 12.486 15.7196 12.3685 15.6627 12.2311C15.6058 12.0937 15.5909 11.9425 15.6199 11.7967C15.6489 11.6508 15.7205 11.5168 15.8257 11.4116C15.9309 11.3065 16.0649 11.2349 16.2107 11.2059C16.3566 11.1768 16.5078 11.1917 16.6452 11.2486C16.7826 11.3056 16.9 11.4019 16.9826 11.5256C17.0653 11.6493 17.1094 11.7946 17.1094 11.9434C17.1094 12.1428 17.0302 12.3341 16.8891 12.4751C16.7481 12.6161 16.5569 12.6953 16.3574 12.6953Z" fill="#999999"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
|
|
@ -0,0 +1,11 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.5 2.5H13.3333V6.66667H17.5V2.5Z" fill="#999999" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M17.5 13.3334H13.3333V17.5H17.5V13.3334Z" fill="#999999" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.66667 13.3334H2.5V17.5H6.66667V13.3334Z" fill="#999999" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.66667 2.5H2.5V6.66667H6.66667V2.5Z" fill="#999999" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M3.33331 10H12.5" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M15.8333 10H16.6666" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10 15.4166V16.25" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10 7.08337V12.9167" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M10 3.33337V4.16671" stroke="#999999" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
|
|
@ -0,0 +1,8 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.66669 17.5H18.3334" stroke="#999999" stroke-width="0.416667"/>
|
||||
<path d="M1.66669 17.5H18.3334Z" fill="#999999"/>
|
||||
<path d="M1.66669 17.5H18.3334" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M5.83331 11.6666H3.33331V17.5H5.83331V11.6666Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
<path d="M11.25 7.5H8.75V17.5H11.25V7.5Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
<path d="M16.6667 2.5H14.1667V17.5H16.6667V2.5Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 728 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M6.24998 5.83333C7.17045 5.83333 7.91665 5.08714 7.91665 4.16667C7.91665 3.24619 7.17045 2.5 6.24998 2.5C5.32951 2.5 4.58331 3.24619 4.58331 4.16667C4.58331 5.08714 5.32951 5.83333 6.24998 5.83333Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M13.75 5.83333C14.6705 5.83333 15.4166 5.08714 15.4166 4.16667C15.4166 3.24619 14.6705 2.5 13.75 2.5C12.8295 2.5 12.0833 3.24619 12.0833 4.16667C12.0833 5.08714 12.8295 5.83333 13.75 5.83333Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M4.16669 8.33325H8.33335L7.50002 17.4999H5.00002L4.16669 8.33325Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M11.6666 8.33325H15.8333L16.6666 12.9166H15.4166L15 17.4999H12.5L12.0833 12.9166H10.8333L11.6666 8.33325Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
|
@ -0,0 +1,12 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_317_13091)">
|
||||
<path d="M4.16197 13.8286C3.83088 13.8286 3.56146 13.5215 3.56146 13.144C3.56146 12.7664 3.83088 12.4591 4.16197 12.4591H8.0765C8.40759 12.4591 8.67676 12.7662 8.67676 13.144C8.67676 13.5217 8.40759 13.8286 8.0765 13.8286H4.16197ZM4.16197 9.43211C3.83088 9.43211 3.56146 9.12496 3.56146 8.74744C3.56146 8.36992 3.83088 8.06277 4.16197 8.06277H11.991C12.3221 8.06277 12.5913 8.36992 12.5913 8.74744C12.5913 9.12496 12.3212 9.43211 11.9896 9.43211H4.16197ZM4.16197 5.0334C3.83088 5.0334 3.56146 4.72625 3.56146 4.34873C3.56146 3.97121 3.83088 3.66406 4.16197 3.66406H11.991C12.3221 3.66406 12.5913 3.97121 12.5913 4.34873C12.5913 4.72625 12.3212 5.0334 11.9891 5.0334H4.16197Z" fill="#999999"/>
|
||||
<path d="M17.7037 19.9724C17.6231 19.9717 17.5436 19.9536 17.4705 19.9195C17.3975 19.8855 17.3326 19.8361 17.2802 19.7748L16.3713 18.7552C16.1321 18.487 16.1321 18.0505 16.3713 17.7823C16.4231 17.7204 16.4879 17.6707 16.561 17.6365C16.6341 17.6024 16.7139 17.5847 16.7946 17.5847C16.8753 17.5847 16.955 17.6024 17.0281 17.6365C17.1012 17.6707 17.166 17.7204 17.2178 17.7823L18.1266 18.8016C18.3658 19.0701 18.3658 19.5066 18.1266 19.7748C18.0743 19.836 18.0095 19.8853 17.9365 19.9194C17.8636 19.9534 17.7842 19.9715 17.7037 19.9724ZM2.16476 18.9608C1.47453 18.9608 0.912964 18.3242 0.912964 17.5424V1.41843C0.912964 0.636541 1.47453 0 2.16476 0H13.9555C14.6457 0 15.2073 0.636057 15.2073 1.41795V8.01432C15.2073 8.39184 14.9379 8.69899 14.6068 8.69899C14.2757 8.69899 14.0065 8.39208 14.0065 8.01432V2.15244C14.0065 1.72171 13.6921 1.37103 13.3052 1.37103H2.81606C2.4291 1.37103 2.1147 1.72171 2.1147 2.15244V16.8083C2.1147 17.2393 2.4291 17.5898 2.81606 17.5898H9.3834C9.71425 17.5898 9.98367 17.8971 9.98367 18.2747C9.98367 18.6522 9.71425 18.9608 9.3834 18.9608H2.16476ZM17.1982 16.0279C16.8659 16.0279 16.5958 15.7208 16.5958 15.3432C16.5958 14.9657 16.8659 14.6583 17.1982 14.6583H18.4846C18.8169 14.6583 19.087 14.9655 19.087 15.3432C19.087 15.721 18.8169 16.0279 18.4846 16.0279H17.1982ZM16.7948 13.1016C16.7142 13.1008 16.6347 13.0827 16.5617 13.0486C16.4886 13.0146 16.4237 12.9652 16.3713 12.904C16.1321 12.6358 16.1321 12.1992 16.3713 11.931L17.2802 10.9116C17.332 10.8498 17.3968 10.8001 17.4699 10.766C17.543 10.7319 17.6227 10.7142 17.7034 10.7142C17.7841 10.7142 17.8638 10.7319 17.9369 10.766C18.01 10.8001 18.0748 10.8498 18.1266 10.9116C18.3668 11.1791 18.3668 11.6154 18.1266 11.8848L17.2183 12.904C17.1659 12.9652 17.101 13.0146 17.028 13.0487C16.9549 13.0828 16.8754 13.1008 16.7948 13.1016Z" fill="#999999"/>
|
||||
<path d="M14.5718 18.0017C14.4408 18.0002 14.3147 17.9521 14.216 17.866L12.6331 16.5342H11.6336C11.4841 16.5342 11.3578 16.3891 11.3578 16.2183V14.019C11.3578 13.8436 11.4817 13.7007 11.6336 13.7007H12.6331L14.216 12.3691C14.3147 12.283 14.4408 12.2348 14.5718 12.2334C14.862 12.2334 15.1764 12.4956 15.1764 12.9193V17.3163C15.1795 17.5 15.1123 17.678 14.9885 17.8138C14.9354 17.8717 14.8711 17.9183 14.7994 17.9506C14.7278 17.9829 14.6503 18.0003 14.5718 18.0017Z" fill="#999999"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_317_13091">
|
||||
<rect width="20" height="20" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
|
|
@ -0,0 +1,4 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1.43164 16.3242V1.64062H0V18.1133H20V16.3242H1.43164Z" fill="#999999"/>
|
||||
<path d="M3.07031 9.45508H6.29102V15.1797H3.07031V9.45508ZM7.06641 4.51953H10.2871V15.1797H7.06641V4.51953ZM11.0332 7.23437H14.2539V15.1816H11.0332V7.23437ZM14.998 3.05859H18.2187V15.1797H14.998V3.05859Z" fill="#999999"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 407 B |
|
|
@ -0,0 +1,6 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15.8333 11.6667H4.16667C3.24619 11.6667 2.5 12.4129 2.5 13.3334V15.8334C2.5 16.7539 3.24619 17.5001 4.16667 17.5001H15.8333C16.7538 17.5001 17.5 16.7539 17.5 15.8334V13.3334C17.5 12.4129 16.7538 11.6667 15.8333 11.6667Z" stroke="#999999" stroke-width="1.25"/>
|
||||
<path d="M8.33333 2.91675H4.16667C3.24619 2.91675 2.5 3.66294 2.5 4.58341V7.08341C2.5 8.00387 3.24619 8.75008 4.16667 8.75008H8.33333" stroke="#999999" stroke-width="1.25" stroke-linecap="round"/>
|
||||
<path d="M14.1666 9.16667C16.0076 9.16667 17.5 7.67428 17.5 5.83333C17.5 3.99238 16.0076 2.5 14.1666 2.5C12.3257 2.5 10.8333 3.99238 10.8333 5.83333C10.8333 7.67428 12.3257 9.16667 14.1666 9.16667Z" fill="#999999" stroke="#999999" stroke-width="1.25"/>
|
||||
<path d="M14.1667 7.08325C14.857 7.08325 15.4167 6.52361 15.4167 5.83325C15.4167 5.1429 14.857 4.58325 14.1667 4.58325C13.4763 4.58325 12.9167 5.1429 12.9167 5.83325C12.9167 6.52361 13.4763 7.08325 14.1667 7.08325Z" fill="#999999"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
|
|
@ -0,0 +1,6 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.16669 2.50008C4.16669 2.03984 4.53977 1.66675 5.00002 1.66675H15C15.4603 1.66675 15.8334 2.03984 15.8334 2.50008V18.3334L12.9167 16.2501L10 18.3334L7.08335 16.2501L4.16669 18.3334V2.50008Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.5 9.16675H12.5" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.5 12.5H12.5" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M7.5 5.83325H12.5" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 739 B |
|
|
@ -0,0 +1,10 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M17.9166 11.6667H2.08331V17.5001H17.9166V11.6667Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M17.9166 2.5H2.08331V8.33333H17.9166V2.5Z" fill="#999999" stroke="#999999" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M6.24998 5.41659C6.24998 4.95635 5.87688 4.58325 5.41665 4.58325C4.95641 4.58325 4.58331 4.95635 4.58331 5.41659C4.58331 5.87682 4.95641 6.24992 5.41665 6.24992C5.87688 6.24992 6.24998 5.87682 6.24998 5.41659Z" fill="white"/>
|
||||
<path d="M6.24998 14.5833C6.24998 14.1231 5.87688 13.75 5.41665 13.75C4.95641 13.75 4.58331 14.1231 4.58331 14.5833C4.58331 15.0436 4.95641 15.4167 5.41665 15.4167C5.87688 15.4167 6.24998 15.0436 6.24998 14.5833Z" fill="white"/>
|
||||
<path d="M9.58335 5.41659C9.58335 4.95635 9.21026 4.58325 8.75002 4.58325C8.28978 4.58325 7.91669 4.95635 7.91669 5.41659C7.91669 5.87682 8.28978 6.24992 8.75002 6.24992C9.21026 6.24992 9.58335 5.87682 9.58335 5.41659Z" fill="white"/>
|
||||
<path d="M9.58335 14.5833C9.58335 14.1231 9.21026 13.75 8.75002 13.75C8.28978 13.75 7.91669 14.1231 7.91669 14.5833C7.91669 15.0436 8.28978 15.4167 8.75002 15.4167C9.21026 15.4167 9.58335 15.0436 9.58335 14.5833Z" fill="white"/>
|
||||
<path d="M12.9167 5.41675H14.5834" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12.9167 14.5833H14.5834" stroke="white" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,7 +1,10 @@
|
|||
<template>
|
||||
<el-breadcrumb class="flex-y-center">
|
||||
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.path">
|
||||
<span v-if="item.redirect === 'noredirect' || index === breadcrumbs.length - 1" class="color-gray-400">
|
||||
<span
|
||||
v-if="item.redirect === 'noredirect' || index === breadcrumbs.length - 1"
|
||||
class="color-gray-400"
|
||||
>
|
||||
{{ translateRouteTitle(item.meta.title) }}
|
||||
</span>
|
||||
<a v-else @click.prevent="handleLink(item)">
|
||||
|
|
|
|||
|
|
@ -515,6 +515,7 @@ import {
|
|||
import ExcelJS from "exceljs";
|
||||
import { reactive, ref } from "vue";
|
||||
import type { IContentConfig, IObject, IOperatData } from "./types";
|
||||
import { el } from "element-plus/es/locale";
|
||||
|
||||
// 定义接收的属性
|
||||
const props = defineProps<{
|
||||
|
|
@ -592,6 +593,45 @@ const selectionData = ref<IObject[]>([]);
|
|||
// 删除ID集合 用于批量删除
|
||||
const removeIds = ref<(number | string)[]>([]);
|
||||
function handleSelectionChange(selection: any[]) {
|
||||
console.log("selectionData.value", selectionData.value);
|
||||
|
||||
// if(selection.length==0){
|
||||
// selectionData.value=selectionData.value.filter((item) => {
|
||||
// return pageData.value.find(v=>v[pk]===item[pk])!=undefined
|
||||
// });
|
||||
// }else{
|
||||
// selectionData.value=selectionData.value.filter((item) => {
|
||||
// return pageData.value.find(v=>v[pk]===item[pk])==undefined
|
||||
// });
|
||||
// }
|
||||
|
||||
//之前有选中,现在置空
|
||||
if (selection.length == 0 && selectionData.value.length > 0) {
|
||||
defaultSelData.value = defaultSelData.value.filter((item) => {
|
||||
return pageData.value.find((v) => v[pk] === item[pk]) != undefined;
|
||||
});
|
||||
}
|
||||
//之前没有选中,现在有
|
||||
if (selection.length > 0 && selectionData.value.length == 0) {
|
||||
defaultSelData.value = selection;
|
||||
}
|
||||
//之前有选中,现在有
|
||||
if (selection.length > 0 && selectionData.value.length > 0) {
|
||||
defaultSelData.value = defaultSelData.value.filter((item) => {
|
||||
const isNowPageData = pageData.value.find((v) => v[pk] === item[pk]);
|
||||
if (isNowPageData) {
|
||||
return selection.find((v) => v[pk] === item[pk]) != undefined;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
for (let i of selection) {
|
||||
if (defaultSelData.value.find((v) => v[pk] === i[pk]) == undefined) {
|
||||
defaultSelData.value.push(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("defaultSelData.value", defaultSelData.value);
|
||||
selectionData.value = selection;
|
||||
removeIds.value = selection.map((item) => item[pk]);
|
||||
}
|
||||
|
|
@ -990,6 +1030,9 @@ function fetchPageData(formData: IObject = {}, isRestart = false) {
|
|||
} else {
|
||||
pageData.value = data;
|
||||
}
|
||||
nextTick(() => {
|
||||
setSelectTable(defaultSelData.value);
|
||||
});
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
|
|
@ -1030,14 +1073,42 @@ function saveXlsx(fileData: BlobPart, fileName: string) {
|
|||
document.body.removeChild(downloadLink);
|
||||
window.URL.revokeObjectURL(downloadUrl);
|
||||
}
|
||||
function test(rows: any[]) {
|
||||
console.log(tableRef, "tioshi222222222222222222222");
|
||||
// rows.forEach((row) => {
|
||||
// tableRef.value!.toggleRowSelection(row, undefined)
|
||||
// })
|
||||
function test(rows: any[]) {}
|
||||
|
||||
const defaultSelData = ref<IObject[]>([]);
|
||||
// 设置默认选择
|
||||
function setSelectTable(rows: any[]) {
|
||||
selectionData.value = rows;
|
||||
defaultSelData.value = rows;
|
||||
pageData.value.forEach((element: IObject) => {
|
||||
rows.forEach((row) => {
|
||||
if (element.id == row.id) {
|
||||
console.log("selected", element);
|
||||
tableRef.value!.toggleRowSelection(element, true);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
//清除选中
|
||||
function clearSelectTable() {
|
||||
selectionData.value = [];
|
||||
defaultSelData.value = [];
|
||||
pageData.value.forEach((element: IObject) => {
|
||||
tableRef.value!.toggleRowSelection(element, false);
|
||||
});
|
||||
}
|
||||
|
||||
// 暴露的属性和方法
|
||||
defineExpose({ fetchPageData, exportPageData, getFilterParams, getselectTable, pagination, test });
|
||||
defineExpose({
|
||||
clearSelectTable,
|
||||
fetchPageData,
|
||||
exportPageData,
|
||||
getFilterParams,
|
||||
getselectTable,
|
||||
pagination,
|
||||
test,
|
||||
setSelectTable,
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
|||
|
|
@ -11,24 +11,15 @@
|
|||
<template>
|
||||
<div style="z-index: 999; border: 1px solid #ccc">
|
||||
<!-- 工具栏 -->
|
||||
<Toolbar
|
||||
:editor="editorRef"
|
||||
mode="simple"
|
||||
:default-config="toolbarConfig"
|
||||
style="border-bottom: 1px solid #ccc"
|
||||
/>
|
||||
<Toolbar :editor="editorRef" mode="simple" :default-config="toolbarConfig" style="border-bottom: 1px solid #ccc" />
|
||||
<!-- 编辑器 -->
|
||||
<Editor
|
||||
v-model="modelValue"
|
||||
:style="{ height: height, overflowY: 'hidden' }"
|
||||
:default-config="editorConfig"
|
||||
mode="simple"
|
||||
@on-created="handleCreated"
|
||||
/>
|
||||
<Editor v-model="modelValue" :style="{ height: height, overflowY: 'hidden' }" :default-config="editorConfig"
|
||||
mode="simple" @on-created="handleCreated" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import dayjs from "dayjs";
|
||||
import "@wangeditor-next/editor/dist/css/style.css";
|
||||
import { Toolbar, Editor } from "@wangeditor-next/editor-for-vue";
|
||||
import { IToolbarConfig, IEditorConfig } from "@wangeditor-next/editor";
|
||||
|
|
@ -37,7 +28,7 @@ import { IToolbarConfig, IEditorConfig } from "@wangeditor-next/editor";
|
|||
import FileAPI from "@/api/file";
|
||||
|
||||
// 上传图片回调函数类型
|
||||
type InsertFnType = (url: string, alt: string, href: string) => void;
|
||||
type InsertFnType = (url: any, alt: any, href: any) => void;
|
||||
|
||||
defineProps({
|
||||
height: {
|
||||
|
|
@ -68,8 +59,11 @@ const editorConfig = ref<Partial<IEditorConfig>>({
|
|||
customUpload(file: File, insertFn: InsertFnType) {
|
||||
// 上传图片
|
||||
FileAPI.uploadFile(file).then((res) => {
|
||||
|
||||
console.log('上传图', res);
|
||||
|
||||
// 插入图片
|
||||
insertFn(res.url, res.name, res.url);
|
||||
insertFn(res, dayjs().valueOf(), res);
|
||||
});
|
||||
},
|
||||
} as any,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,85 @@
|
|||
<template>
|
||||
<div>
|
||||
<div v-for="(item, index) in modelValue" :key="index" class="flex gap-4 mb-2">
|
||||
<el-select
|
||||
v-model="item.coupon.id"
|
||||
placeholder="请选择优惠券"
|
||||
@change="changeCoupon($event, index)"
|
||||
>
|
||||
<el-option
|
||||
v-for="coupon in couponList"
|
||||
:key="coupon.id"
|
||||
:label="coupon.title"
|
||||
:value="coupon.id"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input v-model="item.num" placeholder="请输入数量">
|
||||
<template #append>数量</template>
|
||||
</el-input>
|
||||
<div>
|
||||
<el-link
|
||||
:underline="false"
|
||||
type="danger"
|
||||
class="no-wrap"
|
||||
@click="modelValue.splice(index, 1)"
|
||||
>
|
||||
删除
|
||||
</el-link>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex">
|
||||
<div class="flex gap-1 cursor-pointer" @click="addCoupon()">
|
||||
<el-icon color="#3F9EFF">
|
||||
<CirclePlus />
|
||||
</el-icon>
|
||||
<el-link :underline="false" type="primary" class="no-wrap">新增券</el-link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import couponApi from "@/api/market/coupon";
|
||||
|
||||
import { ref, reactive, onMounted } from "vue";
|
||||
const modelValue = defineModel({
|
||||
type: Array,
|
||||
default: () => [],
|
||||
});
|
||||
|
||||
// 优惠券列表
|
||||
const couponList = ref([]);
|
||||
function addCoupon() {
|
||||
if (!modelValue.value) {
|
||||
modelValue.value = [
|
||||
{
|
||||
num: 1,
|
||||
coupon: {
|
||||
id: null,
|
||||
},
|
||||
},
|
||||
];
|
||||
return;
|
||||
}
|
||||
modelValue.value.push({
|
||||
num: 1,
|
||||
coupon: {
|
||||
id: null,
|
||||
},
|
||||
});
|
||||
console.log(modelValue.value);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
couponApi.getList({ size: 999 }).then((res) => {
|
||||
if (res) {
|
||||
couponList.value = res.records || [];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function changeCoupon(e, index) {
|
||||
const coupon = couponList.value.find((item) => item.id === e);
|
||||
console.log(coupon);
|
||||
modelValue.value[index].coupon = coupon;
|
||||
}
|
||||
</script>
|
||||
|
|
@ -1,45 +1,44 @@
|
|||
<template>
|
||||
<el-dialog v-model="dialogVisible" :title="props.title" :width="props.width">
|
||||
<el-dialog v-model="dialogVisible" :title="props.title" :width="props.width" @close="close">
|
||||
<slot></slot>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="Confirm">
|
||||
确定
|
||||
</el-button>
|
||||
<el-button @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="Confirm">确定</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
import { ref } from "vue";
|
||||
import { ElMessageBox } from "element-plus";
|
||||
|
||||
let props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: 'Dialog'
|
||||
default: "Dialog",
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
default: '30%'
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['confirm'])
|
||||
const dialogVisible = ref(false)
|
||||
|
||||
default: "30%",
|
||||
},
|
||||
});
|
||||
const emit = defineEmits(["confirm", "close"]);
|
||||
const dialogVisible = ref(false);
|
||||
|
||||
function open() {
|
||||
dialogVisible.value = true
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
|
||||
function Confirm() {
|
||||
emit('confirm')
|
||||
emit("confirm");
|
||||
}
|
||||
function close() {
|
||||
dialogVisible.value = false
|
||||
dialogVisible.value = false;
|
||||
emit("close");
|
||||
}
|
||||
defineExpose({ open, close })
|
||||
defineExpose({ open, close });
|
||||
</script>
|
||||
<style scoped>
|
||||
.dialog-footer button:first-child {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
//收银机菜单列表
|
||||
export const casher_windows_menus = [
|
||||
{
|
||||
title: '销售汇总',
|
||||
icon: '/static/indexImg/PAGE_SALES_SUMMARY.svg',
|
||||
pageUrl: 'PAGES_SALES_SUMMARY'
|
||||
},
|
||||
{
|
||||
title: '代客下单',
|
||||
icon: '/static/indexImg/icon-substitute-ordering.svg',
|
||||
pageUrl: 'PAGES_CREATE_ORDER',
|
||||
},
|
||||
{
|
||||
title: '桌台',
|
||||
icon: '/static/indexImg/icon-table.svg',
|
||||
pageUrl: 'PAGES_TABLE'
|
||||
},
|
||||
{
|
||||
title: '商品管理',
|
||||
icon: '/static/indexImg/icon-product-control.svg',
|
||||
pageUrl: 'PAGES_PRODUCT'
|
||||
},
|
||||
{
|
||||
title: '分组管理',
|
||||
icon: '/static/indexImg/goods-group.svg',
|
||||
pageUrl: 'PAGES_GOODS_GROUP'
|
||||
},
|
||||
{
|
||||
title: '分类管理',
|
||||
icon: '/static/indexImg/icon-category.svg',
|
||||
pageUrl: 'PAGES_CATEGORY'
|
||||
},
|
||||
{
|
||||
title: '会员管理',
|
||||
icon: '/static/indexImg/icon-user.svg',
|
||||
pageUrl: 'PAGES_USER_CONTROL'
|
||||
},
|
||||
{
|
||||
title: '员工管理',
|
||||
icon: '/static/indexImg/icon-staff.svg',
|
||||
pageUrl: 'PAGES_STAFF'
|
||||
},
|
||||
{
|
||||
title: '耗材管理',
|
||||
icon: '/static/indexImg/PAGE_SALES_SUMMARY.svg',
|
||||
pageUrl: 'PAGES_SALES_CONSUMABLES'
|
||||
},
|
||||
{
|
||||
title: '订单管理',
|
||||
icon: '/static/indexImg/icon-order.svg',
|
||||
pageUrl: 'PAGES_ORDER_INDEX'
|
||||
},
|
||||
{
|
||||
title: '设备管理',
|
||||
icon: '/static/indexImg/icon-printer.svg',
|
||||
pageUrl: 'PAGES_PRINTER_INDEX'
|
||||
},
|
||||
{
|
||||
title: '交班',
|
||||
icon: '/static/indexImg/icon-work.svg',
|
||||
pageUrl: 'PAGES_WORK_INDEX'
|
||||
},
|
||||
{
|
||||
title: '排队',
|
||||
icon: '/static/indexImg/icon-line-up.svg',
|
||||
pageUrl: 'PAGES_LINE_UP'
|
||||
},
|
||||
{
|
||||
title: '霸王餐',
|
||||
icon: '/static/indexImg/icon-bwc.svg',
|
||||
pageUrl: 'PAGES_BWC'
|
||||
},
|
||||
{
|
||||
title: '优惠券',
|
||||
icon: '/static/coupon/icon_coupon.svg',
|
||||
pageUrl: 'PAGES_COUPON_INDEX'
|
||||
},
|
||||
{
|
||||
title: '订阅通知',
|
||||
icon: '/static/indexImg/icon-notification.svg',
|
||||
pageUrl: 'PAGES_NOTIFICATION_INDEX'
|
||||
},
|
||||
{
|
||||
title: '挂账管理',
|
||||
icon: '/static/indexImg/icon_credit.svg',
|
||||
pageUrl: 'PAGES_CREDIT_BUYER_INDEX'
|
||||
},
|
||||
{
|
||||
title: '核销管理',
|
||||
icon: '/static/indexImg/pagewriteoff.svg',
|
||||
pageUrl: 'PAGES_WEITEOFF'
|
||||
},
|
||||
{
|
||||
title: '退出登录',
|
||||
icon: '/static/indexImg/icon-login-out.svg',
|
||||
pageUrl: 'PAGES_LOGIN',
|
||||
}
|
||||
]
|
||||
|
|
@ -1,19 +1,70 @@
|
|||
<template>
|
||||
<div class="logo">
|
||||
<transition name="el-fade-in-linear" mode="out-in">
|
||||
<router-link :key="+collapse" class="wh-full flex-center" to="/">
|
||||
<img :src="userStore.userInfo.logo" class="w20px h20px" />
|
||||
<span v-if="!collapse" class="title">{{ userStore.userInfo.shopName }}</span>
|
||||
</router-link>
|
||||
</transition>
|
||||
<div class="logo wh-full flex-center">
|
||||
<!-- <transition name="el-fade-in-linear" mode="out-in"> -->
|
||||
<!-- <router-link :key="+collapse" class="wh-full flex-center" to="/"> -->
|
||||
<img :src="state.userInfo.logo" class="w20px h20px" />
|
||||
<!-- <span v-if="!collapse" class="title">{{ userStore.userInfo.shopName }}</span> -->
|
||||
<el-dropdown trigger="click" @command="handleCommand">
|
||||
<div class="el-dropdown-link" style="display: flex;">
|
||||
<div v-if="!collapse" class="title">{{ state.shopName }}</div>
|
||||
<el-icon class="el-icon--right" v-if="loginType == 0">
|
||||
<arrow-down />
|
||||
</el-icon>
|
||||
</div>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu v-if="loginType == 0">
|
||||
<el-dropdown-item :command="item.shopId" v-for="(item, index) in state.branchList" :key="index"> {{
|
||||
item.shopName }}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<!-- </router-link> -->
|
||||
<!-- </transition> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
<script setup>
|
||||
import defaultSettings from "@/settings";
|
||||
import { useUserStore } from "@/store";
|
||||
import ShopApi from "@/api/account/shop";
|
||||
|
||||
const userStore = useUserStore();
|
||||
const state = reactive({
|
||||
branchList: [],
|
||||
userInfo: useUserStore().userInfo,
|
||||
shopName: useUserStore().userInfo.shopName
|
||||
});
|
||||
const loginType = ref(localStorage.getItem("loginType"))
|
||||
onMounted(() => {
|
||||
geiShopList()
|
||||
});
|
||||
async function geiShopList() {
|
||||
let res = await ShopApi.getBranchList()
|
||||
state.branchList = res;
|
||||
if (!localStorage.getItem("shopName")) {
|
||||
state.shopName = state.branchList[0].shopName
|
||||
localStorage.setItem("branch_shopId", state.branchList[0].id)
|
||||
localStorage.setItem("shopName", state.branchList[0].shopName)
|
||||
} else {
|
||||
state.shopName = localStorage.getItem("shopName")
|
||||
}
|
||||
|
||||
}
|
||||
async function handleCommand(command) {
|
||||
console.log(command)
|
||||
let res = state.branchList.filter(v => v.shopId == command)[0]
|
||||
// localStorage.getItem("shopId")
|
||||
if (localStorage.getItem("shopId") == command) {
|
||||
return
|
||||
}
|
||||
await ShopApi.getBranchChange(res.shopId)
|
||||
// localStorage.setItem("branch_shopId", res.shopId)
|
||||
localStorage.setItem("shopName", res.shopName)
|
||||
state.shopName = res.shopName
|
||||
location.reload()
|
||||
console.log(res)
|
||||
console.log(command)
|
||||
}
|
||||
|
||||
defineProps({
|
||||
collapse: {
|
||||
|
|
@ -28,16 +79,18 @@ defineProps({
|
|||
width: 100%;
|
||||
height: $navbar-height;
|
||||
background-color: $sidebar-logo-background;
|
||||
cursor: pointer;
|
||||
|
||||
.title {
|
||||
flex-shrink: 0; /* 防止容器在空间不足时缩小 */
|
||||
flex-shrink: 0;
|
||||
/* 防止容器在空间不足时缩小 */
|
||||
margin-left: 10px;
|
||||
font-size: 16px;
|
||||
color: #5a5e66;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 150px;
|
||||
max-width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,13 +29,31 @@
|
|||
</el-menu-item>
|
||||
</AppLink>
|
||||
</template>
|
||||
<template v-else-if="item.children && hasOneShowingChild(item.children, item)">
|
||||
<AppLink
|
||||
v-if="onlyOneChild.meta"
|
||||
:to="{
|
||||
path: resolvePath(onlyOneChild.path),
|
||||
query: onlyOneChild.meta.params,
|
||||
}"
|
||||
>
|
||||
<el-menu-item
|
||||
:index="resolvePath(onlyOneChild.path)"
|
||||
:class="{ 'one-menu submenu-title-noDropdown': !isNest }"
|
||||
>
|
||||
<SidebarMenuItemTitle
|
||||
:icon="onlyOneChild.meta.icon || item.meta?.icon"
|
||||
:title="onlyOneChild.meta.title"
|
||||
/>
|
||||
</el-menu-item>
|
||||
</AppLink>
|
||||
</template>
|
||||
|
||||
<!--【非叶子节点】显示含多个子节点的父菜单,或始终显示的单子节点 -->
|
||||
<el-sub-menu v-else :index="resolvePath(item.path)" teleported>
|
||||
<template #title>
|
||||
<SidebarMenuItemTitle v-if="item.meta" :icon="item.meta.icon" :title="item.meta.title" />
|
||||
</template>
|
||||
|
||||
<SidebarMenuItem
|
||||
v-for="child in item.children"
|
||||
:key="child.path"
|
||||
|
|
@ -95,6 +113,10 @@ const onlyOneChild = ref();
|
|||
* @returns 是否仅有一个可见子节点
|
||||
*/
|
||||
function hasOneShowingChild(children: RouteRecordRaw[] = [], parent: RouteRecordRaw) {
|
||||
if (parent.name == "marketing_center") {
|
||||
console.log(children);
|
||||
console.log(parent);
|
||||
}
|
||||
// 过滤出可见子节点
|
||||
const showingChildren = children.filter((route: RouteRecordRaw) => {
|
||||
if (!route.meta?.hidden) {
|
||||
|
|
@ -201,4 +223,7 @@ function resolvePath(routePath: string) {
|
|||
.el-menu-item {
|
||||
color: rgb(153, 153, 153);
|
||||
}
|
||||
.one-menu {
|
||||
color: #555;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ import NavbarRight from "../NavBar/components/NavbarRight.vue";
|
|||
const appStore = useAppStore();
|
||||
const settingsStore = useSettingsStore();
|
||||
const permissionStore = usePermissionStore();
|
||||
console.log(permissionStore.routes);
|
||||
const sidebarLogo = computed(() => settingsStore.sidebarLogo);
|
||||
const layout = computed(() => settingsStore.layout);
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export const constantRoutes: RouteRecordRaw[] = [
|
|||
redirect: "/index",
|
||||
meta: {
|
||||
title: "数据统计",
|
||||
icon: "index",
|
||||
icon: "数据统计",
|
||||
alwaysShow: true,
|
||||
},
|
||||
children: [
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export const constantRoutes: RouteRecordRaw[] = [
|
|||
redirect: "/index",
|
||||
meta: {
|
||||
title: "数据统计",
|
||||
icon: "index",
|
||||
icon: "数据统计",
|
||||
alwaysShow: true,
|
||||
},
|
||||
children: [
|
||||
|
|
|
|||