Merge pull request #7 from FJ-OMS/feature-wusc-20230224-structural

代码结构调整
This commit is contained in:
popJun 2023-02-24 13:53:28 +08:00 committed by GitHub
commit b320efac05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2164 changed files with 191564 additions and 0 deletions

14
front-end/.editorconfig Normal file
View file

@ -0,0 +1,14 @@
# https://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

View file

@ -0,0 +1,11 @@
# just a flag
VUE_APP_ENV = 'development'
# 以下路径变量必须得用VUE_APP开头
# ACCESS_TOKEN default value
VUE_APP_ACCESS_TOKEN = ''
# base api 本地环境执行npm run dev ,取此 api 前缀; 不是线上(生产)环境使用的
VUE_APP_BASE_API = 'http://api.ebc.com'
# client id
VUE_APP_CLIENT_ID = 'localhost'
# 默认的图片上传分组
VUE_APP_UPLOAD_BUCKET_NAME = 'test'

11
front-end/.env.production Normal file
View file

@ -0,0 +1,11 @@
# just a flag
VUE_APP_ENV = 'production'
# 以下路径变量必须得用VUE_APP开头
# ACCESS_TOKEN default value
VUE_APP_ACCESS_TOKEN = ''
# base api 生产环境执行npm run build; 从src\utils\index.js 的 VUE_APP_BASE_API() 动态获取
VUE_APP_BASE_API = 'http://api.test.org'
# client id
VUE_APP_CLIENT_ID = 'localhost'
# 默认的图片上传分组
VUE_APP_UPLOAD_BUCKET_NAME = 'test'

11
front-end/.env.qa Normal file
View file

@ -0,0 +1,11 @@
# 连接测试的api数据
VUE_APP_ENV = 'qa'
# 以下路径变量必须得用VUE_APP开头
# ACCESS_TOKEN default value
VUE_APP_ACCESS_TOKEN = ''
# base api 本地环境执行npm run qa ,取此 api 前缀; 不是线上(生产)环境使用的
VUE_APP_BASE_API = 'http://api.ebc1.com'
# client id
VUE_APP_CLIENT_ID = 'localhost'
# 默认的图片上传分组
VUE_APP_UPLOAD_BUCKET_NAME = 'test'

8
front-end/.env.staging Normal file
View file

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = '/stage-api'

11
front-end/.env.test Normal file
View file

@ -0,0 +1,11 @@
# test 环境,默认了 VUE_APP_ACCESS_TOKEN 的值将不经过Api
VUE_APP_ENV = 'test'
# 以下路径变量必须得用VUE_APP开头
# ACCESS_TOKEN default value
VUE_APP_ACCESS_TOKEN = 'test'
# base api
VUE_APP_BASE_API = 'http://api.skyer.org'
# client id
VUE_APP_CLIENT_ID = 'localhost'
# 默认的图片上传分组
VUE_APP_UPLOAD_BUCKET_NAME = 'test'

11
front-end/.env.uat Normal file
View file

@ -0,0 +1,11 @@
# 连接测试的api数据
VUE_APP_ENV = 'uat'
# 以下路径变量必须得用VUE_APP开头
# ACCESS_TOKEN default value
VUE_APP_ACCESS_TOKEN = ''
# base api 本地环境执行npm run uat ,取此 api 前缀; 不是线上(生产)环境使用的
VUE_APP_BASE_API = 'https://omniapi.k8s9.com'
# client id
VUE_APP_CLIENT_ID = 'localhost'
# 默认的图片上传分组
VUE_APP_UPLOAD_BUCKET_NAME = 'test'

5
front-end/.eslintignore Normal file
View file

@ -0,0 +1,5 @@
build/*.js
src/assets
public
dist
src/components/BjTreeSelect/vue-treeselect.cjs.js

293
front-end/.eslintrc.js Normal file
View file

@ -0,0 +1,293 @@
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module',
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
'vue/max-attributes-per-line': [
0,
{
singleline: 3,
multiline: {
max: 3,
allowFirstLine: false,
},
},
],
'vue/html-self-closing': [
'error',
{
html: {
void: 'always',
normal: 'any',
component: 'any',
},
svg: 'always',
math: 'always',
},
],
'vue/no-side-effects-in-computed-properties': 'off',
'vue/singleline-html-element-content-newline': 'off',
'vue/multiline-html-element-content-newline': 'off',
'vue/name-property-casing': ['error', 'PascalCase'],
'vue/no-v-html': 'off',
'vue/html-closing-bracket-newline': [
'off',
{
singleline: 'never',
multiline: 'always',
},
],
'vue/html-indent': [
'off',
{
attribute: 1,
baseIndent: 1,
closeBracket: 0,
alignAttributesVertically: true,
ignores: [],
},
],
'accessor-pairs': 2,
'arrow-spacing': [
2,
{
before: true,
after: true,
},
],
'block-spacing': [2, 'always'],
'brace-style': [
2,
'1tbs',
{
allowSingleLine: true,
},
],
camelcase: [
0,
{
properties: 'always',
},
],
'comma-dangle': [2, 'only-multiline'],
'comma-spacing': [
2,
{
before: false,
after: true,
},
],
'comma-style': [2, 'last'],
'constructor-super': 2,
curly: [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
eqeqeq: [0, 'always', { null: 'ignore' }],
'generator-star-spacing': [
2,
{
before: true,
after: true,
},
],
'handle-callback-err': [2, '^(err|error)$'],
// 'indent': [2, 2, {
// 'SwitchCase': 1
// }],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [
2,
{
beforeColon: false,
afterColon: true,
},
],
'keyword-spacing': [
2,
{
before: true,
after: true,
},
],
'new-cap': [
2,
{
newIsCap: true,
capIsNew: false,
},
],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [
2,
{
allowLoop: false,
allowSwitch: false,
},
],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [
2,
{
max: 1,
},
],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [
2,
{
defaultAssignment: false,
},
],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [
2,
{
vars: 'all',
args: 'none',
},
],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [
2,
{
initialized: 'never',
},
],
'operator-linebreak': [
2,
'after',
{
overrides: {
'?': 'before',
':': 'before',
},
},
],
'padded-blocks': [2, 'never'],
quotes: [
2,
'single',
{
avoidEscape: true,
allowTemplateLiterals: true,
},
],
semi: [2, 'always'],
'semi-spacing': [
2,
{
before: false,
after: true,
},
],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [0, 'always'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [
2,
{
words: true,
nonwords: false,
},
],
'spaced-comment': [
2,
'always',
{
markers: ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','],
},
],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
yoda: [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [
0,
'always',
{
objectsInObjects: false,
},
],
'array-bracket-spacing': [2, 'never'],
},
};

23
front-end/.gitignore vendored Normal file
View file

@ -0,0 +1,23 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
**/*.log
tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
package-lock.json
yarn.lock

5
front-end/.gitlab-ci.yml Normal file
View file

@ -0,0 +1,5 @@
include: http://api.k8s9.com/devops/v1/projects/285085540595404800/ci_contents/pipelines/afb0fc82-1964-4557-bf7d-954d8a380b47/content.yaml
#include: http://api.baogicloud.com/devops/v1/projects/204888765897510912/ci_contents/pipelines/0ce800a5-e58a-4953-9636-f506efb3ff85/content.yaml
#
##include: http://api.baogicloud.com/devops/v1/projects/187577360164982784/ci_contents/pipelines/84c3efc1-6c6e-4e3c-b5c4-7237b03c9413/content.yaml

13
front-end/.prettierrc.js Normal file
View file

@ -0,0 +1,13 @@
module.exports = {
endOfLine: 'auto', //换行 自动
printWidth: 100, // 每行代码长度默认80
singleQuote: true, // 使用单引号默认false
tabWidth: 2, //缩进
useTabs: false, // 是否使用tab进行缩进默认false
trailingComma: 'all', // 多行使用拖尾逗号默认none
semi: true, // 声明结尾使用分号(默认true)
bracketSpacing: true, // 对象字面量的大括号间使用空格默认true
jsxBracketSameLine: false, // 多行JSX中的>放置在最后一行的结尾而不是另起一行默认false
jsxSingleQuote: true, // 在jsx中使用单引号代替双引号
arrowParens: 'avoid', // 只有一个参数的箭头函数的参数是否带圆括号默认avoid
};

5
front-end/.travis.yml Normal file
View file

@ -0,0 +1,5 @@
language: node_js
node_js: 10
script: npm run test
notifications:
email: false

21
front-end/LICENSE Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017-present PanJiaChen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

156
front-end/README.md Normal file
View file

@ -0,0 +1,156 @@
# 规范
多行查询 /this\.cancel\(\{\n._\n._\)/
- 全局 element 组件已经默认 size="mini"
- 组件名称/文件 大写开头
- 声明变量必须加上 let 关键字.不要再使用 var
- const 常量 ,大写 如:`PAGE_LIST`
- 禁用、启用、删除等操作,需要弹窗确认
```js
/** 禁用 */
onStatus(flag, row) {
const TEXT = STATUS_ENABLED_NUM.bjGet(flag);
this.$confirm(`您正在 ${TEXT} ${row.brandName},是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
this.operationApi({
ids: [row.id],
status: flag,
});
})
.catch(() => {});
},
/** 删除操作 */
onDelete(row) {
this.$confirm(`您正在删除 ${row.brandName},是否继续?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
this.batchDeleteApi({ ids: [row.id] });
})
.catch(() => {});
},
```
- 列表的状态列,用`el-tag`展示
```html
<el-tag v-else-if="col.prop === 'status'" :type="scope.row.status ? 'success' : 'info'"
>{{ STATUS_ENABLED_NUM.bjGet(scope.row.status) }}</el-tag
>
```
- 新增/编辑的内容较少,使用`BjDrawerForm`弹窗展示,较多内容使用新页面
- (新增/编辑等)页面的保存确认等按钮,放在右上角,可吸顶
```html
<BjDivider right-fixed
>基本信息
<!--空标题使用<span></span>-->
<template #right>
<el-button @click="handleClose">返 回</el-button>
<el-button type="primary" @click="onPass">确 认</el-button>
</template>
</BjDivider>
```
- 路由命名
以父级路由为前缀,依次向后增长
当前路由名称应与文件路径基本一致
列表页面路由以 Index 结尾
新增页面路由以 Add 结尾
编辑页面路由以 Edit 结尾
详情页面路由以 View 结尾
配置页面路由以 Config 结尾
路由长度默认为四级,前三级为模块菜单,第四级为页面和功能
# 通用样式
- `bj-label-colon` 表单 label 文字加冒号
- `full-width` 宽度 100%
- `tips` 提示文字,小号,灰色
- `link` 模拟链接,蓝色,可点击
# 组件
## 列表页面的公共混入
`import pageMiXin from '@/utils/page-mixin.js';`
## BjPage
路径 src\components\BjPage\index.vue
路径 src\components\BjPage\mixin.js
## 详情页面的公共混入
`import viewMiXin from '@/utils/view-mixin.js';`
## BjDialogList
## ScrollLoad
列表滚动加载 packages\ScrollLoad\README.md
## ScrollSelect
##
- BjImportFile 导入
- BjDialogList 通用弹窗选择:弹出一个列表,可以搜索
- BjDivider 分割线
- BjDrawerForm 右侧弹窗 【新建、编辑】类使用
- BjSelectLov 下拉选择
- BjCheckboxLov 复选
- BjRadioLov 单选
- BjRouteTabs tab 页的路由跳转头部
- BjInputMoney 金额 input
- ScrollSelect 支持 滚动加载、api 搜索 的下拉选择框,
- BjPagingTable 带分页的表格
- BjSelectProvinces dialog 弹窗选择中国的省/市
- BjInputNumber 数量 input 正整数
- BjSelectChinaArea 下拉选择中国的省/市/区 单独 all type="city" type="area"
- BjUpload 带缩略图的上传组件
- BjDialogTable
## 其它组件
1. 日期组件 `el-date-picker` 需要设置
- class="full-width => 宽度 100%
- value-format="yyyy-MM-dd"
2. 下拉选择 尽量使用 `BjSelectLov` 组件
单选 尽量使用 `BjRadioLov` 组件
复选 尽量使用 `BjCheckboxLov` 组件
3. `input` 需要设置
- :maxlength="MAX_LENGTH.DEFAULT"
- clearable
4. `el-dialog` 需要设置
- :close-on-click-modal="false"
- :close-on-press-escape="false"
# 依赖 Node-sass 安装
不使用 Node-sass 会出现图标乱码
Node-sass 版本高于 5.0.0,与会构建失败
使用 原镜像 https://registry.npmjs.org/ 无法下载 5.0.0 以下的 Node-sass 版本
[来源知乎](https://zhuanlan.zhihu.com/p/147005226)
```npm
npm config set registry http://registry.npm.taobao.org/
npm config set disturl https://npm.taobao.org/mirrors/node/
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm cache clean -f
npm install node-sass@1.14.1
```

23
front-end/babel.config.js Normal file
View file

@ -0,0 +1,23 @@
module.exports = {
presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
'@vue/cli-plugin-babel/preset',
],
env: {
development: {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
plugins: ['dynamic-import-node'],
},
},
plugins: [
[
'import',
{
libraryName: 'vxe-table',
style: true,
},
],
],
};

View file

@ -0,0 +1,5 @@
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: ebc-front
version: 0.1.0

View file

@ -0,0 +1,56 @@
# Quick start
部署文件的渲染模板我们下文将定义一些变量helm执行时会将变量渲染进模板文件中。
## _helpers.tpl
这个文件我们用来进行标签模板的定义,以便在上文提到的位置进行标签渲染。
此项目标签总共分为两个部分: 平台、日志。
### 平台标签
#### deployment 级:
```
{{- define "service.labels.standard" -}}
choerodon.io/release: {{ .Release.Name | quote }}
{{- end -}}
```
平台管理实例需要的实例ID。
### 日志标签
#### deployment 级:
```
{{- define "service.logging.deployment.label" -}}
choerodon.io/logs-parser: {{ .Values.logs.parser | quote }}
{{- end -}}
```
日志管理所需要的应用标签。该标签指定应用程序的日志格式,内置格式有`nginx`,`spring-boot`,`docker`对于前端服务请使用`nginx`,如果不需要收集日志请移除此段代码,并删除模板文件关于`service.logging.deployment.label`的引用。
## values.yaml
这个文件中的键值对,即为我们上文中所引用的变量。
将所以有变量集中在一个文件中,方便部署的时候进行归档以及灵活替换。
同时helm命令支持使用 `--set FOO_BAR=FOOBAR` 参数对values 文件中的变量进行赋值,可以进一步简化部署流程。
## 参数对照表
参数名 | 含义
--- | ---
preJob.preConfig.mysql{}|初始化配置所需manager_service数据库信息
env.open.PRO_API_HOST|api地址
env.open.PRO_DEVOPS_HOST|devops service地址
env.open.PRO_CLIENT_ID|client id
env.open.PRO_TITLE_NAME|页面显示标题
env.open.PRO_HEADER_TITLE_NAME|页面header标题
env.open.PRO_HTTP|使用协议
service.enable|创建service对象
ingress.enable|创建ingress对象
ingress.host|域名地址此处不能带http://

View file

@ -0,0 +1,28 @@
{{/* vim: set filetype=mustache: */}}
{{- /*
service.labels.standard prints the standard service Helm labels.
The standard labels are frequently used in metadata.
*/ -}}
{{- define "service.image" -}}
{{- printf "%s:%s" .Values.image.repository (default (.Chart.Version) .Values.image.tag) -}}
{{- end -}}
{{/*
Return the appropriate apiVersion for deployment.
*/}}
{{- define "app.deployment.apiVersion" -}}
{{- if semverCompare "<1.9-0" .Capabilities.KubeVersion.GitVersion -}}
{{- print "apps/v1beta2" -}}
{{- else -}}
{{- print "apps/v1" -}}
{{- end -}}
{{- end -}}
{{- define "service.labels.kubesphere" -}}
app: {{ .Release.Name | quote }}
app.kubernetes.io/name: {{ .Values.kubesphere.app.name | quote }}
app.kubernetes.io/version: {{ .Values.kubesphere.app.version | quote }}
version: {{ .Values.kubesphere.app.version | quote }}
{{- end -}}

View file

@ -0,0 +1,95 @@
apiVersion: {{ include "app.deployment.apiVersion" . }}
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
{{ include "service.labels.kubesphere" . | indent 4 }}
annotations:
deployment.kubernetes.io/revision: '1'
kubesphere.io/creator: {{ .Values.kubesphere.app.creator | quote }}
servicemesh.kubesphere.io/enabled: '{{ .Values.kubesphere.app.servicemesh }}'
spec:
strategy:
type: {{ .Values.deploymentUpdate.type }}
{{- if eq .Values.deploymentUpdate.type "RollingUpdate" }}
rollingUpdate:
maxSurge: {{ .Values.deploymentUpdate.maxSurge }}
maxUnavailable: {{ .Values.deploymentUpdate.maxUnavailable }}
{{- else }}
rollingUpdate: null
{{- end}}
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{ include "service.labels.kubesphere" . | indent 6 }}
template:
metadata:
annotations:
sidecar.istio.io/inject: '{{ .Values.kubesphere.app.servicemesh }}'
labels:
{{ include "service.labels.kubesphere" . | indent 8 }}
spec:
volumes:
- name: host-time
hostPath:
path: /etc/localtime
type: ''
- name: data
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.existingClaim | default ( .Release.Name ) }}
{{- else }}
emptyDir: {}
{{- end }}
containers:
- name: {{ .Release.Name }}
image: {{ include "service.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
{{- range $name, $value := .Values.env.open }}
{{- if ne (len ($value | quote)) 0 }}
- name: {{ $name | quote }}
value: {{ $value | quote }}
{{- end }}
{{- end }}
ports:
- name: http-{{ .Values.service.port }}
containerPort: {{ .Values.service.port }}
protocol: TCP
{{- if not (empty .Values.deployment.managementPort) }}
- name: http-{{ .Values.deployment.managementPort }}
containerPort: {{ .Values.deployment.managementPort }}
protocol: TCP
{{- end }}
resources:
{{ toYaml .Values.resources | indent 12 }}
volumeMounts:
- name: host-time
readOnly: true
mountPath: /etc/localtime
- mountPath: /Charts
name: data
{{- if not (empty .Values.persistence.subPath) }}
subPath: {{ .Values.persistence.subPath }}
{{- end }}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
serviceAccountName: default
serviceAccount: default
securityContext: {}
schedulerName: default-scheduler
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}

View file

@ -0,0 +1,41 @@
{{- if .Values.service.enabled }}
kind: Service
apiVersion: v1
metadata:
name: {{ .Release.Name }}
labels:
{{ include "service.labels.kubesphere" . | indent 4 }}
annotations:
kubesphere.io/creator: {{ .Values.kubesphere.app.creator }}
kubesphere.io/serviceType: {{ .Values.kubesphere.app.serviceType | quote }}
{{- if .Values.kubesphere.app.ingress }}
service.beta.kubernetes.io/qingcloud-load-balancer-eip-ids: ''
service.beta.kubernetes.io/qingcloud-load-balancer-type: '0'
{{- end }}
servicemesh.kubesphere.io/enabled: '{{ .Values.kubesphere.app.servicemesh }}'
spec:
ports:
- name: http-{{ .Values.service.port }}
protocol: TCP
port: {{ .Values.service.port }}
targetPort: {{ .Values.service.port }}
{{- if not (empty .Values.service.nodePort) }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}
{{- if not (empty .Values.deployment.managementPort) }}
- name: http-{{ .Values.deployment.managementPort }}
protocol: TCP
port: {{ .Values.deployment.managementPort }}
targetPort: {{ .Values.deployment.managementPort }}
{{- if not (empty .Values.deployment.nodePort) }}
nodePort: {{ .Values.deployment.nodePort }}
{{- end }}
{{- end }}
selector:
{{ include "service.labels.kubesphere" . | indent 4 }}
type: {{ .Values.service.type | quote }}
sessionAffinity: None
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
{{- end }}

View file

@ -0,0 +1,72 @@
## 实例运行数量
replicaCount: 1
## 设置默认的 image、imageTag 和 imagePullPolicy。
image:
# 需设置镜像地址 repository: xxxxxx
pullPolicy: IfNotPresent
deployment:
managementPort:
nodePort:
kubesphere:
app:
name: ebc
version: v1
creator: admin
servicemesh: true
# statelessservice statefulservice
serviceType: statelessservice
ingress: true
## Deployment 更新策略
deploymentUpdate:
type: RollingUpdate
maxUnavailable: 25%
maxSurge: 25%
## Pod 节点分配
## ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
tolerations: []
affinity: {}
## 资源请求和限制相关配置
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
limits:
cpu: 900m
memory: 2Gi
requests:
cpu: 100m
memory: 512Mi
## service 相关设置
## ref: http://kubernetes.io/docs/user-guide/services/
##
service:
enabled: true
# LoadBalancer ClusterIP
type: LoadBalancer
port: 8080
nodePort:
persistence:
enabled: false
## A manually managed Persistent Volume and Claim
## Requires persistence.enabled: true
## If defined, PVC must be created manually before volume will be bound
# existingClaim:
# subPath:
env:
open:
SERVER_PORT: 8080
BUILD_BASE_PATH: /
BUILD_WEBSOCKET_HOST: ws://192.168.16.173:8120
BUILD_CLIENT_ID: ebc-front-uat
BUILD_API_HOST: http://192.168.12.101:8080/
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true
BUILD_PLATFORM_VERSION: SAAS
BUILD_MULTIPLE_SKIN_ENABLE: false
BUILD_TOP_MENU_LABELS: HZERO_MENU
BUILD_TOP_MENU_UNION_LABEL: false
BUILD_TRACE_LOG_ENABLE: true
BUILD_IM_ENABLE: true
BUILD_IM_WEBSOCKET_HOST: ws://172.23.16.46:9876
BUILD_INVALID_TIME: 120
BUILD_CUSTOMIZE_ICON_NAME: customize-icon

View file

@ -0,0 +1,6 @@
FROM registry.cn-shanghai.aliyuncs.com/c7n/frontbase:0.9.0
RUN echo "Asia/shanghai" > /etc/timezone;
RUN chown -R nginx:nginx /usr/share/nginx/html
COPY --chown=nginx:nginx ./dist /usr/share/nginx/html
USER 101
CMD ["nginx", "-g", "daemon off;"]

BIN
front-end/fj.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
front-end/fjxx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

131
front-end/getRouter.js Normal file
View file

@ -0,0 +1,131 @@
// import { asyncRoutes } from './src/router/index';
const asyncRoutes = require('./src/router/index');
console.log(asyncRoutes);
// console.log(
// '权限表 permission.json 用于初始化菜单权限数据',
// [asyncRoutes[0], asyncRoutes[1]].map((e1, n1) => {
// return {
// permissionType: e1.permissionType || 'api',
// title: e1.meta.title,
// icon: e1.meta.icon || null,
// code: e1.name,
// hiddenFlag: false,
// sort: n1,
// children: !e1.children
// ? []
// : e1.children.map((e2, n2) => {
// if (!e2.children || e2.children.length == 0) {
// console.log('只有二级:' + e1.meta.title + '-' + e2.meta.title);
// }
// return {
// permissionType: e2.permissionType || 'api',
// title: e2.meta.title,
// icon: e2.meta.icon || null,
// code: e2.name,
// hiddenFlag: false,
// sort: n2,
// children: !e2.children
// ? []
// : e2.children.map((e3, n3) => {
// if (!e3.children || e3.children.length == 0) {
// console.log(
// '只有三级:' + e1.meta.title + '-' + e2.meta.title + '-' + e3.meta.title,
// );
// }
// return {
// permissionType: e3.permissionType || 'api',
// title: e3.meta.title,
// icon: e3.meta.icon || null,
// code: e3.name,
// hiddenFlag: false,
// sort: n3,
// children: !e3.children
// ? []
// : e3.children.map((e4, n4) => {
// // 有下划线的 默认为按钮没有下划线的为页面如果是tab页则对应路由表permissionType=tab
// const DEFAULT_TYPE = e4.name.includes('_') ? 'btn' : 'page';
// return {
// permissionType: e4.permissionType || DEFAULT_TYPE,
// title: e4.meta.title,
// icon: e4.meta.icon || null,
// code: e4.name,
// hiddenFlag: true,
// sort: n4,
// };
// }),
// };
// }),
// };
// }),
// };
// }),
// );
const routes = [asyncRoutes[0], asyncRoutes[1]].map((e1, n1) => {
return {
permissionType: e1.permissionType || 'api',
title: e1.meta.title,
icon: e1.meta.icon || null,
code: e1.name,
hiddenFlag: false,
sort: n1,
children: !e1.children
? []
: e1.children.map((e2, n2) => {
if (!e2.children || e2.children.length == 0) {
console.log('只有二级:' + e1.meta.title + '-' + e2.meta.title);
}
return {
permissionType: e2.permissionType || 'api',
title: e2.meta.title,
icon: e2.meta.icon || null,
code: e2.name,
hiddenFlag: false,
sort: n2,
children: !e2.children
? []
: e2.children.map((e3, n3) => {
if (!e3.children || e3.children.length == 0) {
console.log(
'只有三级:' + e1.meta.title + '-' + e2.meta.title + '-' + e3.meta.title,
);
}
return {
permissionType: e3.permissionType || 'api',
title: e3.meta.title,
icon: e3.meta.icon || null,
code: e3.name,
hiddenFlag: false,
sort: n3,
children: !e3.children
? []
: e3.children.map((e4, n4) => {
// 有下划线的 默认为按钮没有下划线的为页面如果是tab页则对应路由表permissionType=tab
const DEFAULT_TYPE = e4.name.includes('_') ? 'btn' : 'page';
return {
permissionType: e4.permissionType || DEFAULT_TYPE,
title: e4.meta.title,
icon: e4.meta.icon || null,
code: e4.name,
hiddenFlag: true,
sort: n4,
};
}),
};
}),
};
}),
};
});
const fs = require('fs');
const content = JSON.stringify(routes, null, '\t');
// 写入文件
fs.writeFile('111.json', content, function(err) {
if (err) {
return console.log(err);
}
console.log('路由文件已经生成');
});
// export default routes;

BIN
front-end/gzh.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

24
front-end/jest.config.js Normal file
View file

@ -0,0 +1,24 @@
module.exports = {
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
coverageDirectory: '<rootDir>/tests/unit/coverage',
// 'collectCoverage': true,
'coverageReporters': [
'lcov',
'text-summary'
],
testURL: 'http://localhost/'
}

9
front-end/jsconfig.json Normal file
View file

@ -0,0 +1,9 @@
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}

153
front-end/package.json Normal file
View file

@ -0,0 +1,153 @@
{
"name": "bj-admin",
"version": "4.4.0",
"description": "飞骥管理系统",
"author": "飞骥管理系统",
"scripts": {
"dev": "vue-cli-service serve --host 0.0.0.0",
"test": "vue-cli-service serve --host 0.0.0.0 --mode test",
"qa": "vue-cli-service serve --host 0.0.0.0 --mode qa",
"uat": "vue-cli-service serve --host 0.0.0.0 --mode uat",
"lint": "eslint --ext .js,.vue src",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"new": "plop",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit"
},
"dependencies": {
"@antv/g6": "^3.1.1",
"@antv/x6": "^1.28.1",
"@antv/x6-vue-shape": "^1.2.10",
"@bpmn-io/add-exporter": "^0.2.0",
"@bpmn-io/align-to-origin": "^0.7.0",
"@bpmn-io/properties-panel": "^0.10.0",
"@riophae/vue-treeselect": "^0.4.0",
"@vue/composition-api": "^1.4.1",
"axios": "^0.21.1",
"babel-loader": "^7.1.5",
"bin-code-editor": "^0.9.0",
"bpmn-js": "^8.7.3",
"bpmn-js-properties-panel": "^0.45.0",
"bpmn-js-signavio-compat": "^1.2.3",
"bpmn-moddle": "^7.1.2",
"browserslist": "^4.20.2",
"camunda-bpmn-moddle": "^6.1.0",
"clipboard": "2.0.4",
"codemirror": "^5.62.3",
"core-js": "3.6.5",
"diagram-js-minimap": "^2.0.4",
"diagram-js-origin": "^1.3.2",
"driver.js": "0.9.5",
"dropzone": "5.5.1",
"echarts": "4.2.1",
"element-china-area-data": "^5.0.2",
"element-ui": "2.15.6",
"file-saver": "2.0.1",
"flowchart-vue": "^0.19.2",
"fuse.js": "3.4.4",
"highlight.js": "^11.0.1",
"html2pdf.js": "^0.10.1",
"install": "^0.13.0",
"js-cookie": "2.2.0",
"jsonlint": "1.6.3",
"jsplumb": "^2.15.6",
"jszip": "^3.7.1",
"lodash": "^4.17.21",
"node-sass": "^4.14.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"screenfull": "4.2.0",
"script-loader": "0.7.2",
"sortablejs": "1.8.4",
"sql-formatter": "^4.0.2",
"vant": "^2.12.18",
"vue": "2.6.12",
"vue-axios": "^3.2.4",
"vue-clipboard2": "^0.3.1",
"vue-count-to": "1.0.13",
"vue-drag-resize": "^1.5.4",
"vue-draggable-resizable": "^2.3.0",
"vue-json-editor": "^1.4.3",
"vue-pdf": "^4.3.0",
"vue-router": "3.0.2",
"vue-scroll": "^2.1.13",
"vue-scrollto": "^2.20.0",
"vue-splitpane": "1.0.4",
"vue-super-flow": "^1.3.6",
"vuedraggable": "^2.24.3",
"vuescroll": "^4.17.3",
"vuex": "3.1.0",
"vxe-table": "^3.5.6",
"xe-utils": "^3.5.4"
},
"devDependencies": {
"@babel/core": "^7.17.2",
"@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4",
"@vue/cli-service": "4.4.4",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-plugin-import": "^1.13.3",
"chalk": "2.4.2",
"chokidar": "2.1.5",
"connect": "3.6.6",
"eslint": "6.7.2",
"eslint-plugin-vue": "6.2.2",
"html-webpack-plugin": "3.2.0",
"husky": "1.3.1",
"lint-staged": "8.1.5",
"mockjs": "1.0.1-beta3",
"plop": "^2.7.4",
"runjs": "4.3.2",
"sass-loader": "8.0.2",
"script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.0",
"vue-template-compiler": "2.6.12"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"bugs": {
"url": "https://github.com/PanJiaChen/vue-element-admin/issues"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"keywords": [
"vue",
"admin",
"dashboard",
"element-ui",
"boilerplate",
"admin-template",
"management-system"
],
"license": "MIT",
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/PanJiaChen/vue-element-admin.git"
}
}

9
front-end/plopfile.js Normal file
View file

@ -0,0 +1,9 @@
const viewGenerator = require('./plop-templates/view/prompt')
const componentGenerator = require('./plop-templates/component/prompt')
const storeGenerator = require('./plop-templates/store/prompt.js')
module.exports = function(plop) {
plop.setGenerator('view', viewGenerator)
plop.setGenerator('component', componentGenerator)
plop.setGenerator('store', storeGenerator)
}

View file

@ -0,0 +1,5 @@
module.exports = {
plugins: {
autoprefixer: {}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<title>加载中……</title>
</head>
<body>
<h1>加载中……</h1>
</body>
</html>

52
front-end/src/App.vue Normal file
View file

@ -0,0 +1,52 @@
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
import { Loading } from 'element-ui';
export default {
name: 'App',
data() {
return {
loadingInstance: null,
loadingTimer: null,
};
},
computed: {
loadingCount() {
return this.$store.getters.loadingCount;
},
loadingDelayed() {
return this.$store.getters.loadingDelayed;
},
},
watch: {
loadingCount(n) {
if (n > 0) {
//
if (this.loadingTimer) {
clearTimeout(this.loadingTimer);
this.loadingTimer = null;
}
this.loadingInstance = Loading.service({ fullscreen: true });
} else {
// Loading
this.$nextTick(() => {
//
this.loadingTimer = setTimeout(() => {
this.loadingInstance.close();
}, this.loadingDelayed);
});
}
},
$route() {
console.log('%c当前路由' + this.$route.name + '', 'color:red');
},
},
created() {
// console.log('%c \nbiu~~ \nbiu~~ biu~~ \nbiu~~ biu~~ biu~~ \n\n', 'color:#f00');
// console.log(process.env.NODE_ENV);
},
};
</script>

View file

@ -0,0 +1,15 @@
/*
* @Author: 订单模块
* @Date: 2021-10-19 10:27:31
* @LastEditTime: 2021-11-03 20:08:48
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\index.js
*/
import internalRefundApi from './internalRefundApi';
import thirdRefundApi from './thirdRefundApi';
export default {
...internalRefundApi,
...thirdRefundApi,
};

View file

@ -0,0 +1,138 @@
/*
* @Author: your name
* @Date: 2021-11-03 17:08:17
* @LastEditTime: 2022-02-24 13:28:45
* @LastEditors: LAPTOP-JM4BAR46
* @Description: 内部售后订单
* @FilePath: \newBj-admin\src\api\orderApi\audit.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1',
items: [
// 创建退货退款单
{
key: 'addRefundGoodsOrder',
url: '/after-sale-headers/create-refund-goods',
method: 'POST',
loadingMore: 999,
},
// 创建仅退款单
{
key: 'addRefundOnlyOrder',
url: '/after-sale-headers/create-refund-only',
method: 'POST',
loadingMore: 999,
},
// 退货退款单审核
{ key: 'auditRefundOrder', url: '/after-sale-headers/audit-refund', method: 'PUT' },
// 退货退款单修改/打标
{ key: 'updateRefundOrder', url: '/after-sale-headers/refund-goods-edit', method: 'PUT' },
// 退款单详情
{
key: 'detailRefundOrder',
url: '/after-sale-headers/refund-goods-detail/{orderId}',
method: 'GET',
},
// 内部售后单详情订单基本信息通过code和Id
{
key: 'detailRefundOrderByIdCode',
url: '/after-sale-headers/order-base-detail-by-id-code',
method: 'POST',
},
// 退货退款单列表
{ key: 'pageRefundGoodsOrder', url: '/after-sale-headers/refund-goods-page', method: 'POST' },
// 仅退款单列表
{ key: 'pageRefundOnlyOrder', url: '/after-sale-headers/refund-only-page', method: 'POST' },
// 详情 新增加退货退款商品
{
key: 'addSkuToRefundGoodsOrder',
url: '/after-sale-headers/add-refund-goods',
method: 'POST',
},
// 详情 新增加仅退款商品
{ key: 'addSkuToRefundOnlyOrder', url: '/after-sale-headers/add-refund-only', method: 'POST' },
// 根据innerNo查询可退款/退货商品
{
key: 'getRefundPageByInnerNo',
url: '/after-sale-items/refund-page-by-innerNo',
method: 'POST',
},
// 查询可退货商品行 itemId
{
key: 'getRefundGoodsItemListByItemId',
url: '/after-sale-item-lines/refund-goods-item-list/',
method: 'GET',
loadingHide: true,
},
// 查询可退款商品行 itemId
{
key: 'getRefundOnlyItemListByItemId',
url: '/after-sale-item-lines/refund-only-item-list/',
method: 'GET',
loadingHide: true,
},
// 详情页 查询商品行 itemId
{
key: 'getRefundDetailItemListByItemId',
url: '/after-sale-item-lines/item-line-details',
method: 'POST',
loadingHide: true,
},
// 详情里的退货物流LIST
{
key: 'getAfterSaleLogistics',
url: '/after-sale-headers/refund-logistics/{orderId}',
method: 'GET',
},
// 详情页 删除 商品行 itemId
{
key: 'deleteRefundDetailItemListByItemId',
url: '/after-sale-headers/refund-delete-item',
method: 'DELETE',
},
// 退货退款单审核
{
key: 'auditRefundOrder',
url: '/after-sale-headers/audit-refund',
method: 'PUT',
},
// 批量 退货退款单审核
{
key: 'batchAuditRefundOrder',
url: '/after-sale-headers/batch-audit-refund',
method: 'PUT',
loadingMore: 999,
},
// 退货退款单审核列表
{
key: 'getAuditRefundOrderPage',
url: '/after-sale-headers/refund-audit-page',
method: 'POST',
},
// 退货退款单 已全部入库
{
key: 'confirmRefundOrderWare',
url: '/after-sale-headers/confirm-ware/{orderId}',
method: 'PATCH',
},
// 退货退款单 修改退货仓库
{
key: 'updateRefundOrderWarehouse',
url: '/after-sale-headers/update-warehouse',
method: 'PUT',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,49 @@
/*
* @Author: your name
* @Date: 2021-11-03 17:08:17
* @LastEditTime: 2022-02-24 13:28:45
* @LastEditors: LAPTOP-JM4BAR46
* @Description: 三方售后订单
* @FilePath: \newBj-admin\src\api\orderApi\audit.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1',
items: [
// 创建第三方售后单头
{
key: 'addThirdRefundOrder',
url: '/third-party-after-sale-headers/create-thirdParty-refund',
method: 'POST',
loadingMore: 0,
},
// 第三方售后单头列表
{
key: 'getThirdRefundOrder',
url: '/third-party-after-sale-headers/order-page',
method: 'POST',
loadingMore: 0,
},
// 第三方售后单明细-退货/退款
{
key: 'detailThirdRefundOrder',
url: '/third-party-after-sale-headers/{id}',
method: 'GET',
loadingMore: 0,
},
// 第三方售后单明细-退货/退款
{
key: 'detailThirdRefundOrder',
url: '/third-party-after-sale-headers/order-base-detail-by-id-code',
method: 'POST',
loadingMore: 0,
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,73 @@
/**
* 示例
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/iam',
items: [
/** *********** 字段权限 ********************* */
/**
* 字段权限 - 分页查询接口列表
* @organizationId : 0
*/
{
key: 'xxx',
url: '/v1/{organizationId}/apis',
method: 'GET',
},
/**
* 字段权限 - 接口字段维护列表
* @organizationId : 0
*/
{
key: 'xxx',
url: '/v1/{organizationId}/apis/{permissionId}/fields',
method: 'GET',
},
/**
* 权限维护 - 权限数据角色新建 or 更新
* @organizationId : 0
*/
{
key: 'xxx',
url: '/v1/{organizationId}/data-auth-manager/role/data/assign-role',
method: 'POST',
},
/** *********** 一个角色对应的 数据权限 ********************* */
/**
* 角色数据权限定义 - 数据权限定义列表
* @organizationId : 0
*/
{
key: 'getAuthorizationsByRoleId',
url: '/v1/{organizationId}/roles/{roleId}/role-auths/{organizationId}',
method: 'GET',
},
/**
* 角色数据权限定义 - 批量新增或保存角色数据权限定义明细
* @organizationId : 0
*/
{
key: 'addAuthorizationsByRoleId',
url: '/v1/{organizationId}/roles/{roleId}/role-auths',
method: 'POST',
},
/**
* 角色数据权限定义 - 删除角色数据权限定义
* @organizationId : 0
*/
{
key: 'delAuthorizationsByRoleId',
url: '/v1/{organizationId}/roles/{roleId}/role-auths',
method: 'DELETE',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,41 @@
/**
*
* after-sales-reason-controller
*
*
POST /v1/after-sales-reasons/create
创建售后原因
DELETE /v1/after-sales-reasons/delete
删除售后原因
GET /v1/after-sales-reasons/detail/{id}
售后原因明细
GET /v1/after-sales-reasons/list
售后原因列表
GET /v1/after-sales-reasons/page
售后原因分页
PUT /v1/after-sales-reasons/update
修改售后原因
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1/after-sales-reasons',
items: [
{ key: 'getAfterSalesReasonsList', url: '/list', method: 'GET' },
{ key: 'getAfterSalesReasons', url: '/page', method: 'GET' },
{ key: 'addAfterSalesReasons', url: '/create', method: 'POST' },
{ key: 'deleteAfterSalesReasons', url: '/delete', method: 'DELETE' },
{ key: 'detailAfterSalesReasons', url: '/detail/{id}', method: 'GET' },
{ key: 'updateAfterSalesReasons', url: '/update', method: 'PUT' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,41 @@
/**
*
*Code Rule Manager : 编码规则管理
DELETE /v1/{organizationId}/code-rule-dist
租户级删除编码规则分配
POST /v1/{organizationId}/code-rule-dist
租户级新增和更新编码规则分配
GET /v1/{organizationId}/code-rule/one
查询获取编码规则编码规则分配编码规则明细
GET /v1/{organizationId}/code-rule/rule-code
查询获取编码规则编码规则分配编码规则明细
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/spfm/v1',
items: [
{ key: 'getCodeRule', url: '/{organizationId}/code-rule', method: 'GET' },
{ key: 'addCodeRule', url: '/{organizationId}/code-rule', method: 'POST' },
{ key: 'deleteCodeRule', url: '/{organizationId}/code-rule', method: 'DELETE' },
{ key: 'detailCodeRule', url: '/{organizationId}/code-rule/{ruleId}', method: 'GET' },
{
key: 'detailCodeRuleDistId',
url: '/{organizationId}/code-rule-detail/{ruleDistId}',
method: 'GET',
},
// 租户级新增和更新编码规则明细
{ key: 'addCodeRuleDetail', url: '/{organizationId}/code-rule-detail', method: 'POST' },
{ key: 'deleteCodeRuleDetail', url: '/{organizationId}/code-rule-detail', method: 'DELETE' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,76 @@
/**
*Country : 国家信息管理
PATCH /v1/{organizationId}/countries
批量禁用国家定义
GET /v1/{organizationId}/countries/all
获取所有国家
POST /v1/{organizationId}/countries/regions
listCountryRegion
POST /v1/{organizationId}/countries/regions/address
查询国家地区
GET /v1/{organizationId}/country/region
queryCountryRegion
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/spfm/v1',
items: [
{ key: 'getCountry', url: '/{organizationId}/countries', method: 'GET' },
{ key: 'listCountry', url: '/{organizationId}/countries/all', method: 'GET' },
{ key: 'addCountry', url: '/{organizationId}/country', method: 'POST' },
{ key: 'updateCountry', url: '/{organizationId}/countries/{countryId}', method: 'PUT' },
// { key: 'deleteCountry', url: '/{organizationId}/countries', method: 'DELETE' },
{ key: 'detailCountry', url: '/v1/{organizationId}/countries/{countryId}', method: 'GET' },
/**
* Country Region : 地区信息管理Show/HideList OperationsExpand Operations
GET /v1/{organizationId}/countries/regions
查询国家/地区下的地区列表
GET /v1/{organizationId}/countries/regions/{regionId}
查询指定地区
PUT /v1/{organizationId}/countries/regions/{regionId}
禁用/启用地区定义影响下级
POST /v1/{organizationId}/countries/{countryId}/region
新增地区定义
GET /v1/{organizationId}/countries/{countryId}/regions
查询国家下地区定义使用树状结构返回
POST /v1/{organizationId}/countries/{countryId}/regions
批量新增地区定义
GET /v1/{organizationId}/countries/{countryId}/regions/lazy-tree
查询国家下地区定义使用树状懒加载结构返回
GET /v1/{organizationId}/countries/{countryId}/regions/list
分页查询国家下地区定义
PUT /v1/{organizationId}/countries/{countryId}/regions/{regionId}
更新地区定义
*/
{ key: 'getCountryRegions', url: '/{organizationId}/countries', method: 'GET' },
{ key: 'addCountryRegions', url: '/{organizationId}/country', method: 'POST' },
{ key: 'updateCountryRegions', url: '/{organizationId}/countries/{countryId}', method: 'PUT' },
// { key: 'deleteCountry', url: '/{organizationId}/countries', method: 'DELETE' },
{
key: 'detailCountryRegions',
url: '/v1/{organizationId}/countries/{countryId}',
method: 'GET',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,16 @@
/*
*/
/**
* 模块接口
*/
import codeRuleApi from './codeRuleApi';
import countryApi from './countryApi';
import afterSaleApi from './afterSaleApi';
import lovApi from './lovApi';
export default {
...codeRuleApi,
...countryApi,
...afterSaleApi,
...lovApi,
};

View file

@ -0,0 +1,45 @@
/**
* Dealer Manage : 经销商管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/spfm/v1',
items: [
/**
* 根据lovCode查询单个值集头
*/
{
key: 'getLovHeadersByLovCode',
url: '/{organizationId}/lov-headers-code/{lovCode}',
method: 'GET',
},
/**
* 根据值集头ID分页查询值集值
*/
{
key: 'getLovValuesByLovId',
url: '/{organizationId}/lov-headers/{lovId}/values',
method: 'GET',
},
/**
* 批量删除值集值
*/
{ key: 'deleteLovValues', url: '/{organizationId}/lov-values', method: 'DELETE' },
/**
* 插入值集值
*/
{ key: 'addLovValues', url: '/{organizationId}/lov-values', method: 'POST' },
/**
* 更新值集值
*/
{ key: 'updateLovValues', url: '/{organizationId}/lov-values', method: 'PUT' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,13 @@
import { generate } from '@/utils/request';
const config = {
prefix: '/schl',
items: [
/** 获取默认集团 */
{ key: 'getDefaultCompany', url: '/v1/groups/default', method: 'GET' },
/** 修改默认集团信息 */
{ key: 'updateCompanyInfo', url: '/v1/groups/update', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,42 @@
/**
* Dealer Manage : 经销商管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/schl/v1/channel/dealer',
items: [
/**
* 新增经销商
*/
{ key: 'addDealer', url: '/add', method: 'POST' },
/**
* 删除经销商信息
*/
{ key: 'deleteDealer', url: '/delete', method: 'POST', type: 'query' },
/**
* 根据Id获取经销商信息信息
*/
{ key: 'getDealerDetails', url: '/details', method: 'GET' },
/**
* 分页获取信息
*/
{ key: 'getDealerPage', url: '/list', method: 'GET' },
/**
* 修改经销商信息
*/
{ key: 'updateDealer', url: '/update', method: 'POST' },
/**
* 禁用 OR 启用
*/
{ key: 'operationDealer', url: '/operation', method: 'POST', type: 'query' },
/**
* 批量删除数据
*/
{ key: 'batchDeleteDealer', url: '/deletes', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,21 @@
/**
* 渠道模块接口
*/
import shopOnlineApi from './shopOnlineApi';
import shopPhysicalApi from './shopPhysicalApi';
import dealerApi from './dealerApi';
import warehouseApi from './warehouseApi';
import salesOrganizationApi from './salesOrganizationApi';
import shopManageApi from './shopManageApi';
import companyApi from './companyApi';
export default {
...shopOnlineApi,
...shopPhysicalApi,
...dealerApi,
...warehouseApi,
...salesOrganizationApi,
...shopManageApi,
...companyApi,
};

View file

@ -0,0 +1,54 @@
/**
* SalesOrganization Manage : 销售组织管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/schl/v1/channel/salesOrganization',
items: [
/**
* 新增经销商
*/
{ key: 'addSalesOrganization', url: '/add', method: 'POST' },
/**
* 删除经销商信息
*/
{ key: 'deleteSalesOrganization', url: '/delete', method: 'POST' },
/**
* 根据Id获取经销商信息信息
*/
{
key: 'getSalesOrganizationDetails',
url: '/details',
method: 'GET',
},
/**
* 分页获取信息
*/
{ key: 'getSalesOrganizationPage', url: '/list', method: 'GET' },
/**
* 修改销售组织
*/
{ key: 'updateSalesOrganization', url: '/update', method: 'POST' },
/**
* 禁用 OR 启用
*/
{ key: 'operationSalesOrganization', url: '/operation', method: 'POST', type: 'query' },
/**
* 根据租户Id获取销售组织信息
*/
{ key: 'getSalesOrganizationByTenantId', url: '/getByTenantId', method: 'GET' },
/**
* 批量删除数据
*/
{ key: 'batchDeleteSalesOrganization', url: '/deletes', method: 'POST' },
/**
* 公司列表树
*/
{ key: 'getSalesOrganizationTree', url: '/listOfTree', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,25 @@
/*
* @Author: your name
* @Date: 2021-08-06 13:46:48
* @LastEditTime: 2021-10-19 13:46:07
* @LastEditors: your name
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\channelApi\shopManageApi.js
*/
/**
* Physical Shop Manage : 门店管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/schl/v1',
items: [
/**
* 查询列表
*/
{ key: 'getAllShopPage', url: '/shop/page', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,48 @@
/**
* Online Shop Manage : 网店管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/schl/v1/online/shop',
items: [
/**
* 查询列表
*/
{ key: 'getOnlineShopPage', url: '/page', method: 'get' },
/**
* 网店设置
*/
{ key: 'setOnlineShop', url: '/setting', method: 'POST' },
/**
* 查询网店设置
*/
{ key: 'getOnlineShopSetting', url: '/get/setting', method: 'GET' },
/**
* 新增与修改
*/
{ key: 'saveOnlineShop', url: '/save', method: 'POST' },
/**
* 禁用 OR 启用
*/
{ key: 'operationOnlineShop', url: '/operation', method: 'POST', type: 'query' },
/**
* 查询详情
*/
{ key: 'getOnlineShopDetails', url: '/details', method: 'GET' },
/**
* 删除数据
*/
{ key: 'deleteOnlineShop', url: '/delete', method: 'POST', type: 'query' },
/**
* 批量删除数据
*/
{ key: 'batchDeleteOnlineShop', url: '/deletes', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,41 @@
/**
* Physical Shop Manage : 门店管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/schl/v1/physical/shop',
items: [
/**
* 查询列表
*/
{ key: 'getPhysicalShopPage', url: '/page', method: 'get' },
/**
* 网店设置
*/
{ key: 'setPhysicalShop', url: '/setting', method: 'POST' },
/**
* 新增与修改
*/
{ key: 'addPhysicalShop', url: '/save', method: 'POST' },
/**
* 禁用 OR 启用
*/
{ key: 'operationPhysicalShop', url: '/operation', method: 'POST', type: 'query' },
/**
* 查询详情
*/
{ key: 'getPhysicalShopDetails', url: '/details', method: 'GET' },
/**
* 删除数据
*/
{ key: 'deletePhysicalShop', url: '/delete', method: 'POST', type: 'query' },
/**
* 批量删除数据
*/
{ key: 'batchDeletePhysicalShop', url: '/deletes', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,46 @@
/*
* @Author: your name
* @Date: 2021-06-29 09:18:37
* @LastEditTime: 2021-10-12 11:41:39
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\channelApi\warehouseApi.js
*/
/**
* Warehouse Manage : 渠道仓库管理
*/
import { generate } from '@/utils/request';
const config = {
// prefix: '/schl/v1/channel/warehouse',
prefix: 'stock/v1/storage/area',
items: [
/**
* 新增渠道仓库
*/
{ key: 'addWarehouse', url: '', method: 'POST' },
/**
* 根据Id获取渠道仓库信息
*/
{ key: 'getWarehouseDetails', url: '/{id}', method: 'GET' },
/**
* 分页获取渠道仓库信息
*/
{ key: 'getWarehousePage', url: '', method: 'GET' },
/**
* 修改渠道仓库
*/
{ key: 'updateWarehouse', url: '', method: 'PUT' },
/**
* 禁用 OR 启用
*/
{ key: 'operationWarehouse', url: '/operation', method: 'POST', type: 'query' },
/**
* 批量删除数据
*/
{ key: 'batchDeleteWarehouse', url: '/batchDelete', method: 'PATCH' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,64 @@
/*
* @Author: your name
* @Date: 2021-06-29 09:18:37
* @LastEditTime: 2021-09-10 17:52:10
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\commonApi\areaApi.js
*/
/**
* CnareaAdministrativeDivision Manage : 中国行政区划分管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/spfm/v1',
items: [
/**
* 获取省市
*/
{ key: 'getDistrictTree', url: '/cnareaAdministrativeDivision/getDistrictTree', method: 'GET' },
/**
* 获得省级行政区信息
*/
{ key: 'getProvince', url: '/cnareaAdministrativeDivision/getProvince', method: 'GET' },
/**
* 获得市级及以下行政区信息
*/
{ key: 'getCity', url: '/cnareaAdministrativeDivision/getCity', method: 'GET' },
/**
* 根据Id获取中国行政地区表信息
*/
{
key: 'getAreaDetails',
url: '/cnareaAdministrativeDivision/details',
method: 'GET',
},
/**
* 修改中国行政地区表
*/
{ key: 'updateArea', url: '/cnareaAdministrativeDivision/update', method: 'POST' },
/**
* 删除中国行政地区表
*/
{
key: 'deleteArea',
url: '/cnareaAdministrativeDivision/delete',
method: 'POST',
type: 'query',
},
/**
* 新增中国行政地区表
*/
{ key: 'addArea', url: '/cnareaAdministrativeDivision/add', method: 'POST' },
// 语言列表
{ key: 'getLanguages', url: '/languages/list', method: 'GET' },
/** 数据源 */
{ key: 'getDatasource', url: '/{organizationId}/datasources', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,15 @@
/**
* 渠道模块接口
*/
import areaApi from './areaApi';
import optionApi from './optionApi';
import settingApi from './settingApi';
import loginApi from './loginApi';
export default {
...areaApi,
...optionApi,
...settingApi,
...loginApi,
};

View file

@ -0,0 +1,20 @@
/**
* CnareaAdministrativeDivision Manage : 中国行政区划分管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/oauth',
items: [
/**
*
* @access_token // http://api.skyer.org/oauth/logout?access_token=bf4411f3-95db-45f4-87c1-c179ab39e7ed
*/
{ key: 'logout', url: '/logout', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,100 @@
/**
* CnareaAdministrativeDivision Manage : 中国行政区划分管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '',
items: [
/**
* 获取值集值
* @lovCode
* SCHL.CHANNEL_TYPE 渠道类型
* SCHL.SHOP_TYPE 店铺类型
* SCHL.INVOICE_TYPE 发票种类
*/
{ key: 'getLovsValue', url: '/spfm/v1/lovs/value', method: 'GET', loadingHide: true },
/**
* 商品分类管理-获取全部分类
*/
{
key: 'getAllCategory',
url: '/sgoo/v1/categorys/tree',
method: 'POST',
loadingHide: true,
},
/**
* 商品分页
*/
{ key: 'getPageGoods', url: '/sgoo/v1/goods/manager/page', method: 'post' },
/**
* 品牌分页
*/
{ key: 'getPageBrand', url: '/sgoo/v1/goods/brand/page', method: 'post', loadingHide: true },
/**
* 仓库
*/
{
key: 'getListWarehouses',
url: '/stock/v1/warehouses/list-warehouse',
method: 'POST',
loadingHide: true,
},
{
key: 'getListStorage',
url: '/stock/v1/storage/area',
method: 'GET',
loadingHide: true,
},
/**
* 素材分页获取
*/
{
key: 'getPageMaterial',
url: '/sgoo/v1/goods/material/list',
method: 'GET',
loadingHide: true,
},
/**
* 查询全部属性
*/
{ key: 'getListAttribute', url: '/sgoo/v1/goods/attribute/list', method: 'POST' },
/**
* 执行器分页
*/
{ key: 'getExecutorList', url: '/ssdr/v1/executors', method: 'GET' },
/**
* 登录用户 - 查询可访问的租户列表
*/
{
key: 'getTenants',
url: '/iam/skyer/v1/users/self-tenants',
method: 'GET',
},
/**
* 并发可执行列表
*/
{ key: 'getExecutableList', url: '/ssdr/v1/executables', method: 'GET' },
/**
* 并发可执行列表
*/
{ key: 'getInstallServices', url: '/sgoo/v1/install-services', method: 'GET' },
/**
* 标签列表 ?systemLabelFlag=true
*/
{ key: 'getTags', url: '/tags/v1/labels/labelList', method: 'GET', loadingHide: true },
/**
* 售后原因列表 type 0 仅退款1 退货退款
*/
{ key: 'getAfterSalesReasons', url: '/sord/v1/after-sales-reasons/list', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,23 @@
/**
* CnareaAdministrativeDivision Manage : 中国行政区划分管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/iam',
items: [
/**
* 保存列表动态标题
*/
{ key: 'saveTabulation', url: '/v1/tabulation/save', method: 'POST', loadingHide: true },
/**
* 获取用户动态标题
*/
{ key: 'getTabulation', url: '/v1/tabulation/list', method: 'GET', loadingHide: true },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,22 @@
/**
* Account Checking Manage : 对账管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sfin/v1',
items: [
// 对账列表
{ key: 'getAccountCheckingList', url: '/account/checking/list', method: 'POST' },
// 确认对账
{ key: 'notarizeAccountChecking', url: '/account/checking/notarize', method: 'POST' },
// 已对账列表
{ key: 'getAccountCheckingFinish', url: '/account/checking/finish', method: 'POST' },
// 已对账详情
{ key: 'detailAccountCheckingFinish', url: '/account/checking/detail/{id}', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,7 @@
import parseStrategyApi from './parseStrategyApi';
import checkingApi from './checkingApi';
export default {
...parseStrategyApi,
...checkingApi,
};

View file

@ -0,0 +1,64 @@
/**
* Brand Manage : 渠道仓库管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sfin/v1',
items: [
// 平台账单(原始)-天猫
{ key: 'getOriginalBillTmallsPage', url: '/original/bill/tmalls/page', method: 'POST' },
// 获取查询条件栏数据-天猫
{
key: 'getOriginalBillTmallsQueryData',
url: '/original/bill/tmalls/query/data',
method: 'GET',
},
// 自动导入到正式表,一次执行三个流程(同步)
{
key: 'importOriginalBillTmalls',
url: '/{organizationId}/import/data/sync/auto-import?templateCode=SFIN.BILL_TM',
method: 'POST',
type: 'form',
},
// 平台账单(原始)-京东
{ key: 'getOriginalBillJdsPage', url: '/original/bill/jds/page', method: 'POST' },
// 获取查询条件栏数据-京东
{ key: 'getOriginalBillJdsQueryData', url: '/original/bill/jds/query/data', method: 'GET' },
// 自动导入到正式表,一次执行三个流程(同步)
{
key: 'importOriginalBillJds',
url: '/{organizationId}/import/data/sync/auto-import?templateCode=SFIN.BILL_JD',
method: 'POST',
type: 'form',
},
// 平台账单管理
{ key: 'getBillsPage', url: '/bills/page', method: 'POST' },
// 获取查询条件栏数据-平台账单管理
{ key: 'getBillsQueryData', url: '/bills/query/data', method: 'GET' },
// 新增、修改解析规则
{ key: 'saveParsingStrategys', url: '/parsing-strategys/save', method: 'PUT' },
// 分页
{ key: 'getParsingStrategysPage', url: '/parsing-strategys/page', method: 'POST' },
// 详情
{ key: 'getParsingStrategysDetail', url: '/parsing-strategys/detail/{id}', method: 'GET' },
// 启用/禁用
{
key: 'updateParsingStrategysStatus',
url: '/parsing-strategys/batch/enable',
method: 'PATCH',
},
// 根据渠道类型编码,获取字段集
{
key: 'getBasicSettingFieldList',
url: '/basic/setting/field/list',
method: 'GET',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,69 @@
/**
* Attribute Manage : 渠道仓库管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/goods/attribute',
items: [
/**
* 新增
*/
{ key: 'addAttribute', url: '/attribute', method: 'POST' },
// /**
// * 删除
// */
// { key: 'deleteAttribute', url: '/delete', method: 'DELETE', type: 'query' },
/**
* 分页
*/
{ key: 'getPageAttribute', url: '/page', method: 'POST' },
/**
* 修改
*/
{ key: 'updateAttribute', url: '/attribute', method: 'PUT' },
/**
* 根据Id获取
*/
{ key: 'getDetailAttribute', url: '/detail/', method: 'GET' },
/**
* 批量删除
*/
{ key: 'batchDeleteAttribute', url: '/batch-delete-attribute', method: 'PATCH' },
/**
* 更新状态
*/
{ key: 'patchAttributeStatus', url: '/status', method: 'PATCH' },
/** ************************* */
/**
* 根据分类或者商品查询所有属性及对应属性值
* @goodsId
*/
{
key: 'getAttributeValueByGoodsId',
url: '/all-attribute-value-by-main/',
method: 'GET',
},
/**
* 对属性添加对应属性值
*/
{ key: 'addAttributeValue', url: '/attribute-value', method: 'POST' },
/**
* 查询属性对应的属性值
* @attributeId
*/
{ key: 'getAttributeValueByAttributeId', url: '/attribute-value/', method: 'GET' },
/**
* 对属性更新对应属性值
*/
{ key: 'updateAttributeValue', url: '/attribute-value', method: 'POST' },
/**
* 对属性更新对应属性值(单个)
*/
{ key: 'updateSingleAttributeValue', url: '/single-attribute-value', method: 'PUT' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,34 @@
/**
* Attribute Manage : 渠道仓库管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/goods/attribute/relation',
items: [
/**
* 新增
*/
{ key: 'addAttributeRelation', url: '/attribute-relation', method: 'POST' },
/**
* 分页
*/
{ key: 'getPageAttributeRelation', url: '/page-attribute-relation', method: 'POST' },
/**
* 修改
*/
{ key: 'updateAttributeRelation', url: '/attribute-relation', method: 'PUT' },
/**
* 批量删除
*/
{ key: 'batchDeleteAttributeRelation', url: '/attribute-relation', method: 'PATCH' },
/**
* 通过mainId查询当前属性
*/
{ key: 'getListAttributeRelation', url: '/list-attribute-relation/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,33 @@
/**
* : 商品审核
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1',
items: [
/**
* 获取商品审核
*/
{ key: 'getSkuAudit', url: '/sku-audit-settings/default', method: 'GET' },
/**
* 修改审核
*/
{ key: 'updateSkuAudit', url: '/sku-audit-settings/update', method: 'PUT' },
/**
* 获取sku审核列表
*/
{ key: 'getSkuAuditList', url: '/goods/sku/page', method: 'POST' },
/**
* 获取sku审核详情
*/
{ key: 'getSkuAuditDetail', url: '/sku/audit/detail', method: 'POST' },
/**
* sku审核
*/
{ key: 'skuAudit', url: '/sku/audit', method: 'POST', loadingMore: 100 },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,33 @@
/**
* Brand Manage : 渠道仓库管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/goods/brand',
items: [
/**
* 新增
*/
{ key: 'addBrand', url: '/brand', method: 'POST' },
/**
* 分页
*/
{ key: 'getPageBrand', url: '/page', method: 'post' },
/**
* 修改
*/
{ key: 'updateBrand', url: '/brand', method: 'PUT' },
/**
* 状态
*/
{ key: 'operationBrand', url: '/status', method: 'PATCH' },
/**
* 批量删除
*/
{ key: 'batchDeleteBrand', url: '/batch-delete-brand', method: 'PATCH' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,59 @@
/**
*
* Category Manage : 商品分类管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1',
items: [
/**
* 新增
*/
{ key: 'addCategory', url: '/categorys/save', method: 'POST' },
/**
* 分页
*/
{ key: 'getPageCategory', url: '/categorys/page', method: 'POST' },
/**
* 修改
*/
{ key: 'updateCategory', url: '/categorys/save', method: 'POST' },
/**
* 状态
*/
{ key: 'operationCategory', url: '/categorys/update/status', method: 'POST' },
/**
* 批量删除
*/
{ key: 'batchDeleteCategory', url: '/categorys/batch/delete', method: 'DELETE' },
/** ************* */
/**
* 统计分类
*/
{ key: 'getTotalCategory', url: '/total-category', method: 'POST' },
/**
* 根据父级获取子级id
*/
{ key: 'getSonCategory', url: '/list-by-front', method: 'GET' },
/**
* 刷新分类redis
*/
{ key: 'refreshCategory', url: '/category-refresh', method: 'GET' },
/**
* 获取全部分类
*/
{ key: 'getAllCategory', url: '/categorys/tree', method: 'POST' },
/**
* 复制上级
*/
{
key: 'getPrentAttribute',
url: '/category/attributes/list/category/attribute',
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,33 @@
/* jshint esversion: 9 */ /**
* 商品模块接口
*/
import materialApi from './materialApi';
import attributeApi from './attributeApi';
import attributeRelationApi from './attributeRelationApi';
import brandApi from './brandApi';
import categoryApi from './categoryApi';
import managerApi from './managerApi';
import priceApi from './priceApi';
import skuApi from './skuApi';
import skuGroupApi from './skuGroupApi';
import spuSonApi from './spuSonApi';
import installServiceApi from './installServiceApi';
import otherInfoApi from './otherInfoApi';
import auditApi from './auditApi';
export default {
...materialApi,
...attributeApi,
...attributeRelationApi,
...brandApi,
...categoryApi,
...managerApi,
...priceApi,
...skuApi,
...skuGroupApi,
...spuSonApi,
...installServiceApi,
...otherInfoApi,
...auditApi,
};

View file

@ -0,0 +1,23 @@
/**
* goods-install-service : 安装服务管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/spu-install-services',
items: [
{ key: 'addSpuInstallServices', url: '', method: 'POST' },
{ key: 'deleteSpuInstallServices', url: '', method: 'DELETE' },
{ key: 'DetailSpuInstallServices', url: '/', method: 'GET' },
{ key: 'getSpuInstallServices', url: '', method: 'GET' },
{ key: 'updateSpuInstallServices', url: '', method: 'PUT' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,39 @@
/**
*
* goods Manage : 商品管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/goods/manager',
items: [
/**
* 新增
*/
{ key: 'add', url: '/goods', method: 'POST' },
/**
* 分页
*/
{ key: 'getPage', url: '/page', method: 'post' },
/**
* 修改
*/
{ key: 'update', url: '/goods', method: 'PUT' },
/**
* 状态
*/
{ key: 'operation', url: '/goods', method: 'PATCH' },
/**
* 详情
*/
{ key: 'detail', url: '/detail/', method: 'Get' },
/**
* 批量删除
*/
{ key: 'batchDelete', url: '/batch-delete-goods', method: 'PATCH' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,38 @@
/**
* Material Manage : 管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/goods/material',
items: [
/**
* 新增
*/
{ key: 'addMaterial', url: '/add', method: 'POST' },
/**
* 删除
*/
{ key: 'deleteMaterial', url: '/delete', method: 'DELETE', type: 'query' },
/**
* 分页获取
*/
{ key: 'getPageMaterial', url: '/list', method: 'GET' },
/**
* 修改
*/
{ key: 'updateMaterial', url: '/edit', method: 'PUT' },
/**
* 根据Id获取
*/
{ key: 'getDetailMaterial', url: '/', method: 'GET' },
/**
* 批量删除
*/
{ key: 'batchDeleteMaterial', url: '/batch-delete', method: 'PATCH' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,39 @@
/**
* goods-spu-son : 子母商品管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/other/info',
items: [
/**
* 新增
*/
{ key: 'addOtherInfo', url: '/save', method: 'POST' },
/**
* 删除
*/
{ key: 'deleteOtherInfo', url: '/delete', method: 'POST' },
/**
* 分页获取
*/
{ key: 'getOtherInfo', url: '/page', method: 'POST' },
/**
* 修改
*/
{ key: 'updateOtherInfo', url: '/save', method: 'POST' },
/**
* 修改
*/
{ key: 'detailsOtherInfo', url: '/details', method: 'GET' },
/**
* 禁用 OR 启用
*/
{ key: 'operationOtherInfo', url: '/operation', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,75 @@
/**
* Price: 价格管理
*
* 值集头创建 POST /v1/price/item/setting/add-head
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1',
items: [
/** * SKU价格 */
// 查看商品价格列表
{
key: 'getSkuPrices',
url: '/goods/prices/{skuCode}',
method: 'GET',
},
{
key: 'addSkuPrices',
url: '/goods/prices',
method: 'POST',
},
{
key: 'updateSkuPrices',
url: '/goods/prices',
method: 'PUT',
},
{
key: 'deleteSkuPrices',
url: '/goods/prices',
method: 'DELETE',
},
/** * 价格项 */
/**
* 新增
*/
{
key: 'addPriceItem',
url: '/price/item/setting/addValue',
method: 'POST',
},
/**
* 分页
*/
{ key: 'getPagePriceItem', url: '/price/item/setting/page', method: 'GET' },
/**
* 修改
*/
{
key: 'updatePriceItem',
url: '/price/item/setting/value-update',
method: 'PUT',
},
/**
* 租户价格项值集查询(所有数据列表)
*/
{ key: 'getListPriceItem', url: '/price/item/setting', method: 'GET' },
/**
* 删除
*/
{
key: 'deletePriceItem',
url: '/price/item/setting/value-delete/',
method: 'DELETE',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,96 @@
/*
* @Author: your name
* @Date: 2021-07-29 14:15:07
* @LastEditTime: 2021-08-02 14:49:28
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\goodsApi\skuApi.js
*/
/**
* goods-sku : 商品SKU
*
* 值集头创建 POST /v1/price/item/setting/add-head
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/goods/sku',
items: [
/**
* 新增
*/
{
key: 'addSku',
url: '',
method: 'POST',
loadingMore: 999,
},
/**
* 分页
*/
{ key: 'getSku', url: '/page', method: 'POST' },
/**
* 修改
*/
{
key: 'updateSku',
url: '/update',
method: 'PUT',
},
/**
* 根据属性创建商品sku列表
*/
{
key: 'createSku',
url: '/createSkuList',
method: 'POST',
},
/**
* SKU详情
*/
{ key: 'detailSku', url: '/{id}', method: 'GET' },
/**
* 根据商品id获取已经生成的sku
*/
{ key: 'getOldSkuListBySpuId', url: '/goods/', method: 'GET' },
/**
* 批量 提交 审核
*/
{ key: 'skuBatchSubmitAudit', url: '/batchAudit', method: 'PUT' },
/**
* 删除
*/
{
key: 'deleteSku',
url: '',
method: 'DELETE',
},
// 修改商品sku显示状态
{
key: 'updateSkuStatus',
url: '/updateShowFlag',
method: 'PUT',
},
// 编辑商品价格
{
key: 'updateSkuPrice',
url: '/sku-price',
method: 'PUT',
},
// 批量获取套餐明细列表 Array[ skuCode]
{
key: 'getMealsGoodsList',
url: '/meals-goods-list',
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,35 @@
/**
* sku-group
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/sku-groups',
items: [
/**
* 新增
*/
{ key: 'addSkuGroup', url: '/sku-group', method: 'POST' },
/**
* 删除
*/
{ key: 'deleteSkuGroup', url: '/group', method: 'DELETE' },
/**
* 分页获取
*/
{ key: 'getSkuGroup', url: '/page', method: 'POST' },
/**
* 修改
*/
{ key: 'updateSkuGroup', url: '/sku-group', method: 'POST' },
/**
* 根据Id获取
*/
{ key: 'detailSkuGroup', url: '/detail/{groupId}', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,34 @@
/**
* goods-spu-son : 子母商品管理
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sgoo/v1/spu-son-mums',
items: [
/**
* 新增
*/
{ key: 'addSpuSonNum', url: '', method: 'POST' },
/**
* 删除
*/
{ key: 'deleteSpuSonNum', url: '', method: 'DELETE' },
/**
* 分页获取
*/
{ key: 'getSpuSonNum', url: '', method: 'GET' },
/**
* 修改
*/
{ key: 'updateSpuSonNum', url: '', method: 'PUT' },
/**
* 根据Id获取
*/
{ key: 'detailSpuSonNum', url: '/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,59 @@
/*
* @Author: your name
* @Date: 2021-06-23 10:00:10
* @LastEditTime: 2022-04-28 10:23:35
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\index.js
*/
import commonApi from './commonApi/index';
import userApi from './userApi/index';
import userGroupApi from './userGroupApi/index';
import testApi from './testApi';
import tenantApi from './tenantApi/index';
import roleApi from './roleApi/index';
import authApi from './authApi/index';
import channelApi from './channelApi/index';
import goodsApi from './goodsApi/index';
import settingApi from './settingApi/index';
import messageApi from './messageApi/index';
import stockApi from './stockApi/index';
import baseDataApi from './baseDataApi/index';
import worksheetApi from './worksheetApi/index';
import logisticApi from './logisticApi/index';
import menuApi from './menuApi/index';
import simpApi from './simpApi/index';
import orderApi from './orderApi';
import strategyApi from './strategyApi';
import tagsApi from './tagsApi';
import promotionApi from './promotionApi';
import afterApi from './afterApi';
import financeApi from './financeApi'; // 财务
import reportApi from './reportApi'; // 报表
export {
commonApi,
userApi,
userGroupApi,
testApi,
tenantApi,
roleApi,
authApi,
channelApi,
goodsApi,
settingApi,
messageApi,
stockApi,
baseDataApi,
worksheetApi,
logisticApi,
menuApi,
simpApi,
orderApi,
strategyApi,
tagsApi,
promotionApi,
afterApi,
financeApi,
reportApi,
};

View file

@ -0,0 +1,21 @@
/*
* @Author: your name
* @Date: 2021-09-08 11:16:34
* @LastEditTime: 2021-09-14 19:44:02
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\logisticApi\abnormalApi.js
*/
/** 物流异常 */
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/logistics/abnormal',
items: [
{ key: 'getLogisticAbnormal', url: '', method: 'get' },
{ key: 'getLogisticRefreshConfig', url: '/getRefreshConfig', method: 'get' },
{ key: 'updateRefreshConfig', url: '/updateRefreshConfig', method: 'PUT' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,20 @@
/* jshint esversion: 9 */
/**
* Logistics Businesss : 物流业务管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/logistics-businesss',
items: [
{ key: 'addLogisticsBusiness', url: '', method: 'POST' },
{ key: 'deleteLogisticsBusiness', url: '', method: 'DELETE' },
{ key: 'updateLogisticsBusiness', url: '', method: 'PUT' },
{ key: 'getLogisticsBusiness', url: '', method: 'GET' },
{ key: 'detailLogisticsBusiness', url: '/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,25 @@
/*
* @Author: your name
* @Date: 2021-09-06 14:05:56
* @LastEditTime: 2021-09-14 22:05:46
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\logisticApi\claim.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/breakage/claims',
items: [
/** 破损理赔单列表 */
{ key: 'getLogisticClaim', url: '/page', method: 'get' },
/** 破损理赔单明细 */
{ key: 'getLogisticClaimDetail', url: '/detail/{serialNum}', method: 'get' },
/** 修改理赔单状态 */
{ key: 'updataLogisticClaimStatus', url: '/orderStatus', method: 'PATCH' },
/** 修改理赔单 */
{ key: 'updataLogisticClaim', url: '/update', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,20 @@
/* jshint esversion: 9 */
/**
* Logistics Companys : 物流商管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/logistics-companys',
items: [
{ key: 'addLogisticsCompany', url: '', method: 'POST' },
{ key: 'deleteLogisticsCompany', url: '', method: 'DELETE' },
{ key: 'updateLogisticsCompany', url: '', method: 'PUT' },
{ key: 'getLogisticsCompany', url: '', method: 'GET' },
{ key: 'detailLogisticsCompany', url: '/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,48 @@
/*
* @Author: your name
* @Date: 2021-09-08 17:20:28
* @LastEditTime: 2022-02-18 15:26:59
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\logisticApi\freightApi.js
*/
/* jshint esversion: 9 */
/**
* Postage Template : 运费模板
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/postage-templates',
items: [
{ key: 'addLogisticsFreightTemplate', url: '', method: 'POST' },
{ key: 'deleteLogisticsFreightTemplate', url: '', method: 'DELETE' },
{ key: 'updateLogisticsFreightTemplate', url: '', method: 'PUT' },
{ key: 'getLogisticsFreightTemplate', url: '', method: 'GET' },
{ key: 'detailLogisticsFreightTemplate', url: '/', method: 'GET' },
{ key: 'operationLogisticsFreightTemplate', url: '/enabled', method: 'PUT' },
/** 模板适用物流业务、仓库 */
{
key: 'getLogisticsFreightTemplateBusinessStorehouse',
url: '/business-storehouse',
method: 'GET',
},
/** 查询模板已经绑定的仓库 */
{
key: 'getBusinessStorehouse',
url: '/business-storehouse',
method: 'GET',
},
/** 根据运费模板关联关系查物流商和物业业务 */
{
key: 'getQueryLogistics',
url: '/query/logistics',
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,32 @@
/*
* @Author: your name
* @Date: 2021-08-06 13:55:19
* @LastEditTime: 2021-09-08 17:10:17
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\stockApi\index.js
*/
/* jshint esversion: 9 */
/**
* 模块接口
*/
import companyApi from './companyApi';
import businessApi from './businessApi';
import mappingApi from './mappingApi';
import relationApi from './relationApi';
import orderApi from './orderApi';
import claimApi from './claimApi';
import freightApi from './freightApi';
import abnormalApi from './abnormalApi';
export default {
...companyApi,
...businessApi,
...mappingApi,
...relationApi,
...orderApi,
...claimApi,
...freightApi,
...abnormalApi,
};

View file

@ -0,0 +1,20 @@
/* jshint esversion: 9 */
/**
* logistics-mapping : 物流商管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/logistics/mappings',
items: [
{ key: 'addLogisticsMapping', url: '', method: 'POST' },
{ key: 'deleteLogisticsMapping', url: '/deletes', method: 'PATCH' },
{ key: 'updateLogisticsMapping', url: '', method: 'PUT' },
{ key: 'getLogisticsMapping', url: '/page', method: 'GET' },
{ key: 'detailLogisticsMapping', url: '/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,21 @@
/* jshint esversion: 9 */
/**
* Logistics Orders : 物流商管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/logistics-orders',
items: [
{ key: 'addLogisticsOrder', url: '', method: 'POST' },
{ key: 'deleteLogisticsOrder', url: '', method: 'DELETE' },
{ key: 'updateLogisticsOrder', url: '', method: 'PUT' },
{ key: 'getLogisticsOrderSales', url: '/sales', method: 'GET' },
{ key: 'getLogisticsOrderAfter', url: '/customer-service', method: 'GET' },
{ key: 'detailLogisticsOrder', url: '/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,21 @@
/* jshint esversion: 9 */
/**
* logistics-mapping : 物流商管理
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/lgit/v1/logistics/relations',
items: [
{ key: 'addLogisticsRelation', url: '', method: 'POST' },
{ key: 'deleteLogisticsRelation', url: '/deletes', method: 'PATCH' },
{ key: 'updateLogisticsRelation', url: '/update', method: 'POST' },
{ key: 'getLogisticsRelation', url: '', method: 'GET' },
{ key: 'detailLogisticsRelation', url: '/', method: 'GET' },
{ key: 'getLogisticsWarehouse', url: '/warehouse', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,34 @@
/**
* Tenant(Site Level) : 租户管理(平台级)
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/iam',
items: [
// GET /skyer/v1/menus/tree菜单展示-获取导航栏树形菜单
{ key: 'treeMenu', url: '/skyer/v1/menus/tree', method: 'get' },
// 租户层-菜单管理-获取树形菜单
{ key: 'getMenuTree', url: '/skyer/v1/{organizationId}/menus/manage-tree', method: 'get' },
// 租户层-创建菜单
{ key: 'addMenu', url: '/skyer/v1/{organizationId}/menus/create', method: 'POST' },
// 租户层-禁用菜单及其子菜单
{ key: 'disableMenu', url: '/skyer/v1/{organizationId}/menus/disable', method: 'PUT' },
// 租户层-启用菜单及其子菜单
{ key: 'enableMenu', url: '/skyer/v1/{organizationId}/menus/enable', method: 'PUT' },
{ key: 'detailMenu', url: '/v1/tenants-manager/', method: 'GET' },
// 租户层-更新菜单
{ key: 'updateMenu', url: '/skyer/v1/{organizationId}/menus/update', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,36 @@
/**
* File : 文件
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/smsg/v1',
items: [
/**
* 获取列表
*/
{ key: 'getEmail', url: '/{organizationId}/email/servers', method: 'GET' },
{ key: 'addEmail', url: '/{organizationId}/email/servers', method: 'POST' },
{ key: 'updateEmail', url: '/{organizationId}/email/servers', method: 'PUT' },
{ key: 'deleteEmail', url: '/{organizationId}/email/servers', method: 'DELETE' },
// 查询邮箱服务明细
{ key: 'detailEmail', url: '/{organizationId}/email/servers/{serverId}', method: 'Get' },
{
key: 'detailEmailConfig',
url: '/{organizationId}/email/servers/{serverId}/properties',
method: 'Get',
},
// Email Filter : 邮箱账户黑白名单
{ key: 'getEmailFilters', url: '/{organizationId}/email-filters', method: 'GET' },
{ key: 'addEmailFilters', url: '/{organizationId}/email-filters', method: 'POST' },
{ key: 'updateEmailFilters', url: '/{organizationId}/email-filters', method: 'POST' },
{ key: 'deleteEmailFilters', url: '/{organizationId}/email-filters', method: 'DELETE' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,25 @@
/*
* @Author: your name
* @Date: 2021-07-13 14:49:11
* @LastEditTime: 2021-07-22 17:08:03
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\settingApi\index.js
*/
/**
* 模块接口
*/
import noticeApi from './noticeApi';
import emailApi from './emailApi';
import smsApi from './smsApi';
import templateApi from './templateApi';
import sendApi from './sendApi';
export default {
...noticeApi,
...emailApi,
...smsApi,
...templateApi,
...sendApi,
};

View file

@ -0,0 +1,29 @@
/**
* File : 文件
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/smsg/v1',
items: [
/**
* 获取列表
*/
{ key: 'getNotices', url: '/{organizationId}/notices', method: 'GET' },
{ key: 'deleteNotices', url: '/{organizationId}/notices', method: 'DELETE' },
{ key: 'addNotices', url: '/{organizationId}/notices', method: 'POST' },
{ key: 'updateNotices', url: '/{organizationId}/notices', method: 'PUT' },
{ key: 'detailNotices', url: '/{organizationId}/notices/{noticeId}', method: 'GET' },
// 发布
{ key: 'publishNotices', url: '/{organizationId}/notices/{noticeId}/publish', method: 'POST' },
// 撤消
{ key: 'revokeNotices', url: '/{organizationId}/notices/{noticeId}/revoke', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,61 @@
/**
* Template Maintain : 邮箱账户与模板关系维护
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/smsg/v1',
items: [
/**
* 获取列表
*/
{ key: 'getSend', url: '/{organizationId}/template-servers', method: 'GET' },
{ key: 'addSend', url: '/{organizationId}/template-servers', method: 'POST' },
{ key: 'updateSend', url: '/{organizationId}/template-servers/{tempServerId}', method: 'PUT' },
{
key: 'deleteSend',
url: '/{organizationId}/template-servers/{tempServerId}',
method: 'DELETE',
},
// 查询邮箱服务明细
{ key: 'detailSend', url: '/{organizationId}/template-servers/detail', method: 'Get' },
// 消息模板账户关联:查询模板行
{
key: 'detailLineSend',
url: '/{organizationId}/template-servers/detail/line',
method: 'Get',
},
// 消息模板账户关联:查询消息模板关联的服务
{
key: 'getTempServerList',
url: '/{organizationId}/template-servers/line/{tempServerId}',
method: 'Get',
},
// 删除消息模板账户行
{
key: 'deleteLineSend',
url: '/{organizationId}/template-servers/line/{tempServerLineId}',
method: 'DELETE',
},
// 复制消息发送配置
{
key: 'addSendFilters',
url: '/{organizationId}/template-servers/{tempServerId}/copy',
method: 'GET',
},
/** * Relation Send Message : 关联发送消息 */
// 关联发送消息,邮件/短信/站内信
{
key: 'sendMessageRelevance',
url: '/{organizationId}/message/relevance',
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,34 @@
/**
* SMS Server : 短信配置
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/smsg/v1',
items: [
/**
* 发送一条短信消息指定模板和参数
*/
{ key: 'sendSMS', url: '/{organizationId}/messages/call/template', method: 'POST' },
// 列表
{ key: 'getSMS', url: '/{organizationId}/sms/servers', method: 'GET' },
// 创建短信服务
{ key: 'addSMS', url: '/{organizationId}/sms/servers', method: 'POST' },
// 删除短信配置
{ key: 'deleteSMS', url: '/{organizationId}/sms/servers', method: 'DELETE' },
/**
* 修改短信服务
*/
{ key: 'updateSMS', url: '/{organizationId}/sms/servers', method: 'PUT' },
/**
* 查询短信服务配置
*/
{ key: 'detailSMS', url: '/{organizationId}/sms/servers/{serverId}', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,80 @@
/**
* File : 文件
*
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/smsg/v1',
items: [
{ key: 'getTemplates', url: '/{organizationId}/message/templates', method: 'GET' },
{ key: 'deleteTemplate', url: '/{organizationId}/message/templates', method: 'DELETE' },
{ key: 'addTemplate', url: '/{organizationId}/message/templates', method: 'POST' },
{ key: 'updateTemplate', url: '/{organizationId}/message/templates', method: 'PUT' },
{
key: 'detailTemplate',
url: '/{organizationId}/message/templates/{templateId}',
method: 'GET',
},
/** * */
// 查询消息模板参数
{
key: 'argsTemplate',
url: '/{organizationId}/message/templates/template-args',
method: 'GET',
},
// 根据编码查询消息模板明细
{
key: 'codeTemplate',
url: '/{organizationId}/message/templates/template-code',
method: 'GET',
},
// 查询消息模板语言
{
key: 'langTemplate',
url: '/{organizationId}/message/templates/template-lang',
method: 'GET',
},
// 消息模板复制
{
key: 'copyTemplate',
url: '/{organizationId}/message/templates/{templateId}/copy',
method: 'GET',
},
/** * Template Arg 消息模板参数管理*/
{
key: 'getTemplateArgs',
url: '/{organizationId}/template-args/{templateId}',
method: 'GET',
},
{
key: 'deleteTemplateArgs',
url: '/{organizationId}/template-args',
method: 'DELETE',
},
{
key: 'updateTemplateArgs',
url: '/{organizationId}/template-args',
method: 'PUT',
},
// 初始化消息模板参数列表
{
key: 'initTemplateArgs',
url: '/{organizationId}/template-args/init',
type: 'query',
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,46 @@
/*
* @Author: your name
* @Date: 2021-11-03 17:08:17
* @LastEditTime: 2022-02-24 13:28:45
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\audit.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1/',
items: [
{ key: 'getWaitAuditOrders', url: '/order-header/wait-audit-orders', method: 'GET' },
{
key: 'getWaitAuditOrdersTabs',
url: '/order-flow-config/get-order-flow-confiy-by-tenantId/{tenantId}',
method: 'GET',
},
// { key: 'AuditWaitAuditOrders', url: '/order-header/audit-order', method: 'PUT' },
/** 订单审核列表 */
{ key: 'getOrderAuditPage', url: '/order/order-audit-page', method: 'POST' },
/** 订单审核 */
{ key: 'orderAuditdeal', url: '/audit/deal', method: 'POST', loadingMore: 999 },
// 获取订单Item列表某订单的SKU汇总
{
key: 'getInternalSkuListByAuditId',
url: '/audit/order-item-page',
method: 'POST',
},
// 获取订单平摊行列表(某订单的商品行列表)
{ key: 'getInternalSkuLineListByAuditId', url: '/audit/item-line-page', method: 'POST' },
// 展开行根据itemId获取平摊商品行列表某订单的某SKU的商品行列表
{
key: 'getInternalSkuLineListByAuditIdSku',
url: '/audit/item-line-details/{itemId}/{auditId}',
method: 'GET',
loadingHide: true,
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,27 @@
/*
* @Author: 订单模块
* @Date: 2021-10-19 10:27:31
* @LastEditTime: 2022-04-21 15:36:00
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\index.js
*/
import internalApi from './internalApi';
import stockoutApi from './stockoutApi';
import auditApi from './auditApi';
import processApi from './processApi';
import sourcingApi from './sourcingApi';
import preemptApi from './preemptApi';
import itemPriceApi from './itemPriceApi';
import thirdApi from './thirdApi';
export default {
...internalApi,
...stockoutApi,
...processApi,
...auditApi,
...sourcingApi,
...preemptApi,
...itemPriceApi,
...thirdApi,
};

View file

@ -0,0 +1,92 @@
/*
* @Author: your name
* @Date: 2021-10-19 10:27:23
* @LastEditTime: 2022-04-25 15:36:26
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\internal.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1',
items: [
// 创建手工单
{ key: 'addInternalOrderByHand', url: '/order/hand-order', method: 'POST', loadingMore: 999 },
// 复制手工单
{
key: 'addInternalOrderByCopy',
url: '/order/copy-order?innerOrderNo={innerOrderNo}',
method: 'GET',
}, // innerOrderNo
// 内部订单列表
{ key: 'getInternalPage', url: '/order/order-page', method: 'POST' },
// 订单详情订单基本信息
{ key: 'getInternalDetail', url: '/order/order-base-detail/{orderId}', method: 'GET' },
// 订单详情订单基本信息{"orderCode": "string","orderId": 0}
{
key: 'getInternalDetailByIdCode',
url: '/order/order-base-detail-by-id-code',
method: 'POST',
},
// 获取订单Item列表某订单的SKU汇总
{
key: 'getInternalSkuListByOrder',
url: '/order/order-item-page',
method: 'POST',
},
// 获取订单平摊行列表(某订单的商品行列表)
{ key: 'getInternalSkuLineListByOrder', url: '/order/item-line-page', method: 'POST' },
// 展开行根据itemId获取平摊商品行列表某订单的某SKU的商品行列表
{
key: 'getInternalSkuLineListBySku',
url: '/order/item-line-details/{itemId}',
method: 'GET',
loadingHide: true,
},
/** 订单审核(通过,拒绝) */
{ key: 'auditOrder', url: '/order-header/audit-order', method: 'PUT' },
/** 订单商品行审核(通过, 拒绝) */
{ key: 'auditGoodsLineAuditOrder', url: '/order-header/goods-line-audit-order', method: 'PUT' },
/** 订单挂起/解挂 */
{ key: 'upOrderHandUpOrder', url: '/order-header/order-hand-up', method: 'PUT' },
/** 订单商品行挂起/解挂 */
{ key: 'upGoodsLineHandUpOrder', url: '/order-header/goods-line-hand-up', method: 'PUT' },
/** 订单基础信息的修改 */
{ key: 'updateOrderBase', url: '/order/order-base', method: 'PUT' },
/** 订单取消 普通订单 */
{ key: 'cancelInternalOrder', url: '/order/cancel-order', method: 'PATCH' },
/** 订单取消 O2O */
{ key: 'cancelInternalO2oOrder', url: '/order/cancel-o2o-order', method: 'PATCH' },
/** 订单级挂起 */
{ key: 'suspendOrderByOrderId', url: '/order/suspend-order', method: 'POST' },
/** 订单级解挂 */
{ key: 'unsuspendOrderByOrderId', url: '/order/unsuspend-order', method: 'POST' },
/** 商品行级挂起/解挂 */
{ key: 'suspendOrderByItemLine', url: '/order/itemLine-suspend-order', method: 'POST' },
/** 商品行级预占/解占 */
{ key: 'preemptionOrderByItemLine', url: '/order/re-preemption', method: 'POST' },
/** 订单级-确认收货 普通订单 */
{ key: 'confirmReceiptByOrderId', url: '/order/confirm-receipt/', method: 'PATCH' },
/** 订单级-确认收货 o2o */
{ key: 'o2oConfirmReceiptByOrderId', url: '/order/o2o-confirm-receipt', method: 'POST' },
/** 商品行级-确认收货 */
{ key: 'confirmReceiptByItemLine', url: '/order/item-confirm-receipt', method: 'POST' },
// 内部订单缺货管理列表
{ key: 'getInternalStockoutPage', url: '/order/stockout-page', method: 'POST' },
/** 缺货统计列表 */
{ key: 'getOrderStatsStockout', url: '/order/stats/stockout', method: 'POST' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,10 @@
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1',
items: [{ key: 'getPriceType', url: '/item-prices/price-type', method: 'GET' }],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,60 @@
/*
* @Author: your name
* @Date: 2021-10-19 10:27:23
* @LastEditTime: 2021-11-12 17:30:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\internal.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1',
items: [
/** 预占管理 */
// 列表
{ key: 'getPreemptionOrders', url: '/preemp-notice/preemp-page', method: 'POST' },
// 详情-基本信息
{
key: 'getPreemptionOrderDetail',
url: '/preemp-notice/preemp-notice-details/',
method: 'GET',
},
// 详情-SKU汇总
{
key: 'getPreemptionOrderSkuListByOrder',
url: '/preemp-notice/items-page',
method: 'POST',
},
// 详情-商品行预占统计
{
key: 'getPreemptionOrderSkuCountByOrder',
url: '/preemp-notice/item-lines-count',
method: 'POST',
loadingHide: true,
},
// 详情-商品行列表
{
key: 'getPreemptionOrderSkuLineListByOrder',
url: '/preemp-notice/item-lines-page',
method: 'POST',
},
// 详情-展开行根据itemId获取平摊商品行列表某订单的某SKU的商品行列表
{
key: 'getPreemptionOrderSkuLineListBySku',
url: '/preemp-notice/item-lines/{itemId}',
method: 'GET',
loadingHide: true,
},
// 重新预占
{
key: 'rePreemptOrderByNoticeId',
url: '/preemp-notice/re-preemption?noticeId={noticeId}', // noticeId
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,18 @@
import { generate } from '@/utils/request';
const config = {
prefix: '/sord/v1/process-defines',
items: [
{ key: 'addOrderProcessDefines', url: '', method: 'POST' },
{ key: 'deleteOrderProcessDefines', url: '', method: 'DELETE' },
{ key: 'updateOrderProcessDefines', url: '', method: 'PUT' },
{ key: 'getOrderProcessDefines', url: '', method: 'GET' },
{ key: 'detailOrderProcessDefines', url: '/', method: 'GET' },
// 流程部署
{ key: 'deploymentOrderProcessDefines', url: '/deploy-process/', method: 'GET' },
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,120 @@
/*
* @Author: your name
* @Date: 2021-10-19 10:27:23
* @LastEditTime: 2022-04-14 10:53:09
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\internal.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/sourcing/v1',
items: [
/** 寻源列表 */
{ key: 'getOrderSourcingPage', url: '/sourcing/page', method: 'POST' },
/** 寻源详情 */
{ key: 'getOrderSourcingDetail', url: '/sourcing/detail', method: 'GET' },
/** 寻源详情 按商品行汇总 sourcingId */
{ key: 'getOrderSourcingSkuListByOrder', url: '/sourcing/goods/page/spu', method: 'GET' },
/** 寻源详情 按照商品行分页查询列表 sourcingId */
{ key: 'getOrderSourcingSkuLineListByOrder', url: '/sourcing/goods/page', method: 'GET' },
/** 寻源详情 商品行汇总展开列表 skuCode */
{
key: 'getOrderSourcingSkuLineListBySku',
url: '/sourcing/goods/listBySkuCode',
method: 'GET',
loadingHide: true,
},
/** 创建寻源包裹 */
{
key: 'addSourcingPackages',
url: '/sourcing/packages',
method: 'POST',
},
/** 重新寻源 */
{
key: 'reAutoSource',
url: '/sourcing/re-auto-source/{sourceId}',
method: 'GET',
},
{
key: 'reAutoSourceBatch',
url: '/sourcing/re-auto-source',
method: 'PATCH',
},
/** **** 配置 ******** */
// 寻源策略-寻源规则 列表
{
key: 'getSouringStrategyConfigs',
url: '/souring-strategy-configs',
method: 'GET',
loadingHide: true,
},
// 寻源策略-寻源规则 修改
{
key: 'updateSouringStrategyConfigs',
url: '/souring-strategy-configs',
method: 'PUT',
loadingHide: true,
},
// 寻源策略-寻源规则 批量修改
{
key: 'updateSouringStrategyConfigsBatch',
url: '/souring-strategy-configs/batch-update',
method: 'PATCH',
loadingHide: true,
},
// 寻源策略-包裹规则 列表
{
key: 'getSouringStrategyPackage',
url: '/package-strategy',
method: 'GET',
},
// 寻源策略-包裹规则 批量删除
{
key: 'deleteSouringStrategyPackageBatch',
url: '/package-strategy',
method: 'DELETE',
},
// 寻源策略-包裹规则 批量创建
{
key: 'addSouringStrategyPackageBatch',
url: '/package-strategy',
method: 'POST',
},
// 寻源策略-包裹规则 批量修改
{
key: 'updateSouringStrategyPackageBatch',
url: '/package-strategy/batch-update-split',
method: 'PATCH',
},
// 寻源策略-包裹规则 排除条件配置列表
{
key: 'getSouringStrategyPackageExcludes',
url: '/souring-exclude-strategy',
method: 'GET',
},
// 寻源策略-包裹规则 排除条件配置列表
{
key: 'updateSouringStrategyPackageExcludes',
url: '/souring-exclude-strategy',
method: 'PUT',
},
// 寻源策略-包裹规则 排除条件配置列表
{
key: 'addSouringStrategyPackageExcludes',
url: '/souring-exclude-strategy',
method: 'POST',
},
],
};
export default {
...generate(config),
};

View file

@ -0,0 +1,27 @@
/*
* @Author: your name
* @Date: 2021-10-28 10:59:27
* @LastEditTime: 2022-04-25 16:57:39
* @LastEditors: LAPTOP-JM4BAR46
* @Description: In User Settings Edit
* @FilePath: \newBj-admin\src\api\orderApi\stockoutApi.js
*/
import { generate } from '@/utils/request';
const config = {
prefix: '/stock/v1',
items: [
/** 缺货管理列表 */
{ key: 'getStockoutManageList', url: '/stockout/manage/page', method: 'POST' },
/** 缺货订单列表 */
{ key: 'getStockoutOrderList', url: '/stockout/order/page', method: 'POST' },
/** 缺货店铺列表 */
{ key: 'getStockoutShopList', url: '/stockout/shop/page', method: 'POST' },
/** 批量保存 */
{ key: 'saveStockoutList', url: '/stockout/batch/setting', method: 'POST' },
],
};
export default {
...generate(config),
};

Some files were not shown because too many files have changed in this diff Show more