Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
3ddba81e
authored
Feb 29, 2024
by
dhb52
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'yudao/dev' into dev
parents
441b9138
1a5e7902
Show whitespace changes
Inline
Side-by-side
Showing
94 changed files
with
248 additions
and
36 deletions
+248
-36
.image/common/crm-feature.png
+0
-0
README.md
+6
-0
src/api/infra/file/index.ts
+5
-0
src/components/UploadFile/src/useUpload.ts
+15
-7
src/utils/formatTime.ts
+12
-22
src/views/bpm/definition/index.vue
+2
-0
src/views/bpm/form/index.vue
+2
-0
src/views/bpm/group/index.vue
+2
-0
src/views/bpm/model/index.vue
+2
-0
src/views/bpm/oa/leave/index.vue
+2
-0
src/views/bpm/processInstance/index.vue
+2
-0
src/views/bpm/task/done/index.vue
+2
-0
src/views/bpm/task/todo/index.vue
+3
-1
src/views/crm/backlog/index.vue
+2
-0
src/views/crm/business/index.vue
+3
-0
src/views/crm/business/status/index.vue
+3
-0
src/views/crm/clue/index.vue
+3
-0
src/views/crm/contact/index.vue
+3
-0
src/views/crm/contract/config/index.vue
+3
-0
src/views/crm/contract/index.vue
+3
-0
src/views/crm/customer/index.vue
+3
-0
src/views/crm/customer/limitConfig/index.vue
+3
-0
src/views/crm/customer/pool/index.vue
+3
-0
src/views/crm/customer/poolConfig/index.vue
+3
-0
src/views/crm/product/category/index.vue
+2
-0
src/views/crm/product/index.vue
+2
-0
src/views/crm/receivable/ReceivableForm.vue
+2
-0
src/views/crm/receivable/index.vue
+3
-0
src/views/crm/receivable/plan/index.vue
+3
-0
src/views/erp/finance/account/index.vue
+5
-0
src/views/erp/finance/payment/index.vue
+5
-0
src/views/erp/finance/receipt/index.vue
+5
-0
src/views/erp/home/index.vue
+2
-0
src/views/erp/product/category/index.vue
+2
-0
src/views/erp/product/product/index.vue
+2
-0
src/views/erp/product/unit/index.vue
+2
-0
src/views/erp/purchase/in/index.vue
+2
-0
src/views/erp/purchase/order/index.vue
+2
-0
src/views/erp/purchase/return/index.vue
+2
-0
src/views/erp/purchase/supplier/index.vue
+2
-0
src/views/erp/sale/customer/index.vue
+2
-0
src/views/erp/sale/order/index.vue
+2
-0
src/views/erp/sale/out/index.vue
+2
-0
src/views/erp/sale/return/index.vue
+2
-0
src/views/erp/stock/check/index.vue
+5
-0
src/views/erp/stock/in/index.vue
+2
-0
src/views/erp/stock/move/index.vue
+5
-0
src/views/erp/stock/out/index.vue
+2
-0
src/views/erp/stock/record/index.vue
+2
-0
src/views/erp/stock/stock/index.vue
+2
-0
src/views/erp/stock/warehouse/index.vue
+2
-0
src/views/infra/webSocket/index.vue
+2
-0
src/views/mall/home/index.vue
+2
-0
src/views/mall/product/brand/index.vue
+2
-0
src/views/mall/product/category/index.vue
+2
-0
src/views/mall/product/comment/index.vue
+2
-0
src/views/mall/product/property/index.vue
+2
-0
src/views/mall/product/spu/index.vue
+2
-0
src/views/mall/promotion/article/category/ArticleCategoryForm.vue
+2
-0
src/views/mall/promotion/article/index.vue
+2
-0
src/views/mall/promotion/banner/index.vue
+2
-0
src/views/mall/promotion/bargain/activity/index.vue
+2
-0
src/views/mall/promotion/bargain/record/index.vue
+2
-0
src/views/mall/promotion/combination/activity/index.vue
+2
-0
src/views/mall/promotion/combination/record/index.vue
+2
-0
src/views/mall/promotion/coupon/index.vue
+1
-1
src/views/mall/promotion/coupon/template/index.vue
+1
-1
src/views/mall/promotion/discountActivity/index.vue
+2
-0
src/views/mall/promotion/diy/page/index.vue
+2
-0
src/views/mall/promotion/diy/template/index.vue
+2
-0
src/views/mall/promotion/rewardActivity/index.vue
+2
-0
src/views/mall/promotion/seckill/activity/index.vue
+2
-0
src/views/mall/promotion/seckill/config/index.vue
+1
-1
src/views/mall/statistics/member/index.vue
+5
-2
src/views/mall/statistics/product/index.vue
+2
-0
src/views/mall/statistics/trade/index.vue
+2
-0
src/views/mall/trade/afterSale/index.vue
+2
-0
src/views/mall/trade/brokerage/record/index.vue
+2
-0
src/views/mall/trade/brokerage/user/index.vue
+2
-0
src/views/mall/trade/brokerage/withdraw/index.vue
+2
-0
src/views/mall/trade/config/index.vue
+3
-0
src/views/mall/trade/delivery/express/index.vue
+2
-0
src/views/mall/trade/delivery/expressTemplate/index.vue
+2
-0
src/views/mall/trade/delivery/pickUpOrder/index.vue
+3
-0
src/views/mall/trade/delivery/pickUpStore/index.vue
+2
-0
src/views/mall/trade/order/index.vue
+3
-0
src/views/member/config/index.vue
+2
-0
src/views/member/group/index.vue
+2
-0
src/views/member/level/index.vue
+2
-0
src/views/member/point/record/index.vue
+2
-0
src/views/member/signin/config/index.vue
+3
-1
src/views/member/signin/record/index.vue
+2
-0
src/views/member/tag/index.vue
+2
-0
src/views/member/user/index.vue
+2
-0
No files found.
.image/common/crm-feature.png
0 → 100644
View file @
3ddba81e
15.2 KB
README.md
View file @
3ddba81e
...
@@ -202,6 +202,12 @@ _前端基于 crmeb uniapp 经过授权重构,优化代码实现,接入芋
...
@@ -202,6 +202,12 @@ _前端基于 crmeb uniapp 经过授权重构,优化代码实现,接入芋
演示地址:
<https://doc.iocoder.cn/erp-preview/>
演示地址:
<https://doc.iocoder.cn/erp-preview/>
### CRM 系统

演示地址:
<https://doc.iocoder.cn/crm-preview/>
## 🐷 演示图
## 🐷 演示图
### 系统功能
### 系统功能
...
...
src/api/infra/file/index.ts
View file @
3ddba81e
...
@@ -38,3 +38,8 @@ export const getFilePresignedUrl = (path: string) => {
...
@@ -38,3 +38,8 @@ export const getFilePresignedUrl = (path: string) => {
export
const
createFile
=
(
data
:
any
)
=>
{
export
const
createFile
=
(
data
:
any
)
=>
{
return
request
.
post
({
url
:
'/infra/file/create'
,
data
})
return
request
.
post
({
url
:
'/infra/file/create'
,
data
})
}
}
// 上传文件
export
const
updateFile
=
(
data
:
any
)
=>
{
return
request
.
upload
({
url
:
'/infra/file/upload'
,
data
})
}
src/components/UploadFile/src/useUpload.ts
View file @
3ddba81e
import
{
getAccessToken
,
getTenantId
}
from
'@/utils/auth'
import
*
as
FileApi
from
'@/api/infra/file'
import
*
as
FileApi
from
'@/api/infra/file'
import
CryptoJS
from
'crypto-js'
import
CryptoJS
from
'crypto-js'
import
{
UploadRawFile
,
UploadRequestOptions
}
from
'element-plus/es/components/upload/src/upload'
import
{
UploadRawFile
,
UploadRequestOptions
}
from
'element-plus/es/components/upload/src/upload'
import
{
ajaxUpload
}
from
'element-plus/es/components/upload/src/ajax'
import
axios
from
'axios'
import
axios
from
'axios'
export
const
useUpload
=
()
=>
{
export
const
useUpload
=
()
=>
{
...
@@ -26,11 +24,21 @@ export const useUpload = () => {
...
@@ -26,11 +24,21 @@ export const useUpload = () => {
return
{
data
:
presignedInfo
.
url
}
return
{
data
:
presignedInfo
.
url
}
})
})
}
else
{
}
else
{
// 模式二:后端上传(需要增加后端身份认证请求头)
// 模式二:后端上传
options
.
headers
[
'Authorization'
]
=
'Bearer '
+
getAccessToken
()
// 重写 el-upload httpRequest 文件上传成功会走成功的钩子,失败走失败的钩子
options
.
headers
[
'tenant-id'
]
=
getTenantId
()
return
new
Promise
((
resolve
,
reject
)
=>
{
// 使用 ElUpload 的上传方法
FileApi
.
updateFile
({
file
:
options
.
file
})
return
ajaxUpload
(
options
)
.
then
((
res
)
=>
{
if
(
res
.
code
===
0
)
{
resolve
(
res
)
}
else
{
reject
(
res
)
}
})
.
catch
((
res
)
=>
{
reject
(
res
)
})
})
}
}
}
}
...
...
src/utils/formatTime.ts
View file @
3ddba81e
import
dayjs
from
'dayjs'
import
dayjs
from
'dayjs'
import
type
{
TableColumnCtx
}
from
'element-plus'
/**
/**
* 日期快捷选项适用于 el-date-picker
* 日期快捷选项适用于 el-date-picker
...
@@ -68,10 +69,7 @@ export function formatDate(date: Date, format?: string): string {
...
@@ -68,10 +69,7 @@ export function formatDate(date: Date, format?: string): string {
return
''
return
''
}
}
// 日期存在,则进行格式化
// 日期存在,则进行格式化
if
(
format
===
undefined
)
{
return
date
?
dayjs
(
date
).
format
(
format
??
'YYYY-MM-DD HH:mm:ss'
)
:
''
format
=
'YYYY-MM-DD HH:mm:ss'
}
return
dayjs
(
date
).
format
(
format
)
}
}
/**
/**
...
@@ -171,7 +169,7 @@ export function formatAxis(param: Date): string {
...
@@ -171,7 +169,7 @@ export function formatAxis(param: Date): string {
* @param ms 毫秒
* @param ms 毫秒
* @returns {string} 字符串
* @returns {string} 字符串
*/
*/
export
function
formatPast2
(
ms
)
{
export
function
formatPast2
(
ms
:
number
):
string
{
const
day
=
Math
.
floor
(
ms
/
(
24
*
60
*
60
*
1000
))
const
day
=
Math
.
floor
(
ms
/
(
24
*
60
*
60
*
1000
))
const
hour
=
Math
.
floor
(
ms
/
(
60
*
60
*
1000
)
-
day
*
24
)
const
hour
=
Math
.
floor
(
ms
/
(
60
*
60
*
1000
)
-
day
*
24
)
const
minute
=
Math
.
floor
(
ms
/
(
60
*
1000
)
-
day
*
24
*
60
-
hour
*
60
)
const
minute
=
Math
.
floor
(
ms
/
(
60
*
1000
)
-
day
*
24
*
60
-
hour
*
60
)
...
@@ -199,12 +197,8 @@ export function formatPast2(ms) {
...
@@ -199,12 +197,8 @@ export function formatPast2(ms) {
* @param column 字段
* @param column 字段
* @param cellValue 字段值
* @param cellValue 字段值
*/
*/
// @ts-ignore
export
function
dateFormatter
(
_row
:
any
,
_column
:
TableColumnCtx
<
any
>
,
cellValue
:
any
):
string
{
export
const
dateFormatter
=
(
row
,
column
,
cellValue
):
string
=>
{
return
cellValue
?
formatDate
(
cellValue
)
:
''
if
(
!
cellValue
)
{
return
''
}
return
formatDate
(
cellValue
)
}
}
/**
/**
...
@@ -214,12 +208,8 @@ export const dateFormatter = (row, column, cellValue): string => {
...
@@ -214,12 +208,8 @@ export const dateFormatter = (row, column, cellValue): string => {
* @param column 字段
* @param column 字段
* @param cellValue 字段值
* @param cellValue 字段值
*/
*/
// @ts-ignore
export
function
dateFormatter2
(
_row
:
any
,
_column
:
TableColumnCtx
<
any
>
,
cellValue
:
any
):
string
{
export
const
dateFormatter2
=
(
row
,
column
,
cellValue
)
=>
{
return
cellValue
?
formatDate
(
cellValue
,
'YYYY-MM-DD'
)
:
''
if
(
!
cellValue
)
{
return
}
return
formatDate
(
cellValue
,
'YYYY-MM-DD'
)
}
}
/**
/**
...
@@ -227,7 +217,7 @@ export const dateFormatter2 = (row, column, cellValue) => {
...
@@ -227,7 +217,7 @@ export const dateFormatter2 = (row, column, cellValue) => {
* @param param 传入日期
* @param param 传入日期
* @returns 带时间00:00:00的日期
* @returns 带时间00:00:00的日期
*/
*/
export
function
beginOfDay
(
param
:
Date
)
{
export
function
beginOfDay
(
param
:
Date
)
:
Date
{
return
new
Date
(
param
.
getFullYear
(),
param
.
getMonth
(),
param
.
getDate
(),
0
,
0
,
0
)
return
new
Date
(
param
.
getFullYear
(),
param
.
getMonth
(),
param
.
getDate
(),
0
,
0
,
0
)
}
}
...
@@ -236,7 +226,7 @@ export function beginOfDay(param: Date) {
...
@@ -236,7 +226,7 @@ export function beginOfDay(param: Date) {
* @param param 传入日期
* @param param 传入日期
* @returns 带时间23:59:59的日期
* @returns 带时间23:59:59的日期
*/
*/
export
function
endOfDay
(
param
:
Date
)
{
export
function
endOfDay
(
param
:
Date
)
:
Date
{
return
new
Date
(
param
.
getFullYear
(),
param
.
getMonth
(),
param
.
getDate
(),
23
,
59
,
59
)
return
new
Date
(
param
.
getFullYear
(),
param
.
getMonth
(),
param
.
getDate
(),
23
,
59
,
59
)
}
}
...
@@ -245,7 +235,7 @@ export function endOfDay(param: Date) {
...
@@ -245,7 +235,7 @@ export function endOfDay(param: Date) {
* @param param1 日期1
* @param param1 日期1
* @param param2 日期2
* @param param2 日期2
*/
*/
export
function
betweenDay
(
param1
:
Date
,
param2
:
Date
)
{
export
function
betweenDay
(
param1
:
Date
,
param2
:
Date
)
:
number
{
param1
=
convertDate
(
param1
)
param1
=
convertDate
(
param1
)
param2
=
convertDate
(
param2
)
param2
=
convertDate
(
param2
)
// 计算差值
// 计算差值
...
@@ -257,7 +247,7 @@ export function betweenDay(param1: Date, param2: Date) {
...
@@ -257,7 +247,7 @@ export function betweenDay(param1: Date, param2: Date) {
* @param param1 日期
* @param param1 日期
* @param param2 添加的时间
* @param param2 添加的时间
*/
*/
export
function
addTime
(
param1
:
Date
,
param2
:
number
)
{
export
function
addTime
(
param1
:
Date
,
param2
:
number
)
:
Date
{
param1
=
convertDate
(
param1
)
param1
=
convertDate
(
param1
)
return
new
Date
(
param1
.
getTime
()
+
param2
)
return
new
Date
(
param1
.
getTime
()
+
param2
)
}
}
...
@@ -266,7 +256,7 @@ export function addTime(param1: Date, param2: number) {
...
@@ -266,7 +256,7 @@ export function addTime(param1: Date, param2: number) {
* 日期转换
* 日期转换
* @param param 日期
* @param param 日期
*/
*/
export
function
convertDate
(
param
:
Date
|
string
)
{
export
function
convertDate
(
param
:
Date
|
string
)
:
Date
{
if
(
typeof
param
===
'string'
)
{
if
(
typeof
param
===
'string'
)
{
return
new
Date
(
param
)
return
new
Date
(
param
)
}
}
...
...
src/views/bpm/definition/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"定义编号"
align=
"center"
prop=
"id"
width=
"400"
/>
<el-table-column
label=
"定义编号"
align=
"center"
prop=
"id"
width=
"400"
/>
...
...
src/views/bpm/form/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/bpm/group/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/bpm/model/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/bpm/oa/leave/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/bpm/processInstance/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/bpm/task/done/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/bpm/task/todo/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"工作流手册"
url=
"https://doc.iocoder.cn/bpm/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
@@ -75,7 +77,7 @@
...
@@ -75,7 +77,7 @@
:total=
"total"
:total=
"total"
@
pagination=
"getList"
@
pagination=
"getList"
/>
/>
<TaskCCDialogForm
ref=
"taskCCDialogForm"
/>
<TaskCCDialogForm
ref=
"taskCCDialogForm"
/>
</ContentWrap>
</ContentWrap>
</template>
</template>
...
...
src/views/crm/backlog/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【通用】跟进记录、待办事项"
url=
"https://doc.iocoder.cn/crm/follow-up/"
/>
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"4"
class=
"min-w-[200px]"
>
<el-col
:span=
"4"
class=
"min-w-[200px]"
>
<div
class=
"side-item-list"
>
<div
class=
"side-item-list"
>
...
...
src/views/crm/business/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【商机】商机管理、商机状态"
url=
"https://doc.iocoder.cn/crm/business/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/business/status/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【商机】商机管理、商机状态"
url=
"https://doc.iocoder.cn/crm/business/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/clue/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【线索】线索管理"
url=
"https://doc.iocoder.cn/crm/clue/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/contact/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【客户】客户管理、公海客户"
url=
"https://doc.iocoder.cn/crm/customer/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/contract/config/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【合同】合同管理、合同提醒"
url=
"https://doc.iocoder.cn/crm/contract/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<el-form
<el-form
ref=
"formRef"
ref=
"formRef"
...
...
src/views/crm/contract/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【合同】合同管理、合同提醒"
url=
"https://doc.iocoder.cn/crm/contract/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/customer/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【客户】客户管理、公海客户"
url=
"https://doc.iocoder.cn/crm/customer/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/customer/limitConfig/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【客户】客户管理、公海客户"
url=
"https://doc.iocoder.cn/crm/customer/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<!-- 列表 -->
<!-- 列表 -->
<ContentWrap>
<ContentWrap>
<el-tabs>
<el-tabs>
...
...
src/views/crm/customer/pool/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【客户】客户管理、公海客户"
url=
"https://doc.iocoder.cn/crm/customer/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/customer/poolConfig/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【客户】客户管理、公海客户"
url=
"https://doc.iocoder.cn/crm/customer/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<el-form
<el-form
ref=
"formRef"
ref=
"formRef"
...
...
src/views/crm/product/category/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【产品】产品管理、产品分类"
url=
"https://doc.iocoder.cn/crm/product/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/product/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【产品】产品管理、产品分类"
url=
"https://doc.iocoder.cn/crm/product/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/receivable/ReceivableForm.vue
View file @
3ddba81e
...
@@ -186,6 +186,8 @@ const open = async (
...
@@ -186,6 +186,8 @@ const open = async (
formLoading
.
value
=
true
formLoading
.
value
=
true
try
{
try
{
formData
.
value
=
await
ReceivableApi
.
getReceivable
(
id
)
formData
.
value
=
await
ReceivableApi
.
getReceivable
(
id
)
await
handleCustomerChange
(
formData
.
value
.
customerId
)
formData
.
value
.
contractId
=
formData
.
value
.
contract
.
id
}
finally
{
}
finally
{
formLoading
.
value
=
false
formLoading
.
value
=
false
}
}
...
...
src/views/crm/receivable/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【回款】回款管理、回款计划"
url=
"https://doc.iocoder.cn/crm/receivable/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/crm/receivable/plan/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【回款】回款管理、回款计划"
url=
"https://doc.iocoder.cn/crm/receivable/"
/>
<doc-alert
title=
"【通用】数据权限"
url=
"https://doc.iocoder.cn/crm/permission/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/finance/account/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【财务】采购付款、销售收款"
url=
"https://doc.iocoder.cn/sale/finance-payment-receipt/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/finance/payment/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【财务】采购付款、销售收款"
url=
"https://doc.iocoder.cn/sale/finance-payment-receipt/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/finance/receipt/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【财务】采购付款、销售收款"
url=
"https://doc.iocoder.cn/sale/finance-payment-receipt/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/home/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"ERP 手册(功能开启)"
url=
"https://doc.iocoder.cn/erp/build/"
/>
<div
class=
"flex flex-col"
>
<div
class=
"flex flex-col"
>
<!-- 销售/采购的全局统计 -->
<!-- 销售/采购的全局统计 -->
<el-row
:gutter=
"16"
class=
"row"
>
<el-row
:gutter=
"16"
class=
"row"
>
...
...
src/views/erp/product/category/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【产品】产品信息、分类、单位"
url=
"https://doc.iocoder.cn/erp/product/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/product/product/index.vue
View file @
3ddba81e
<!-- ERP 产品列表 -->
<!-- ERP 产品列表 -->
<
template
>
<
template
>
<doc-alert
title=
"【产品】产品信息、分类、单位"
url=
"https://doc.iocoder.cn/erp/product/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/product/unit/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【产品】产品信息、分类、单位"
url=
"https://doc.iocoder.cn/erp/product/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/purchase/in/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【采购】采购订单、入库、退货"
url=
"https://doc.iocoder.cn/erp/purchase/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/purchase/order/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【采购】采购订单、入库、退货"
url=
"https://doc.iocoder.cn/erp/purchase/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/purchase/return/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【采购】采购订单、入库、退货"
url=
"https://doc.iocoder.cn/erp/purchase/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/purchase/supplier/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【采购】采购订单、入库、退货"
url=
"https://doc.iocoder.cn/erp/purchase/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/sale/customer/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【销售】销售订单、出库、退货"
url=
"https://doc.iocoder.cn/erp/sale/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/sale/order/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【销售】销售订单、出库、退货"
url=
"https://doc.iocoder.cn/erp/sale/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/sale/out/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【销售】销售订单、出库、退货"
url=
"https://doc.iocoder.cn/erp/sale/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/sale/return/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【销售】销售订单、出库、退货"
url=
"https://doc.iocoder.cn/erp/sale/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/check/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【库存】库存调拨、库存盘点"
url=
"https://doc.iocoder.cn/erp/stock-move-check/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/in/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【库存】其它入库、其它出库"
url=
"https://doc.iocoder.cn/erp/stock-in-out/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/move/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【库存】库存调拨、库存盘点"
url=
"https://doc.iocoder.cn/erp/stock-move-check/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/out/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【库存】其它入库、其它出库"
url=
"https://doc.iocoder.cn/erp/stock-in-out/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/record/index.vue
View file @
3ddba81e
<!-- ERP 产品库存明细列表 -->
<!-- ERP 产品库存明细列表 -->
<
template
>
<
template
>
<doc-alert
title=
"【库存】产品库存、库存明细"
url=
"https://doc.iocoder.cn/erp/stock/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/stock/index.vue
View file @
3ddba81e
<!-- ERP 产品库存列表 -->
<!-- ERP 产品库存列表 -->
<
template
>
<
template
>
<doc-alert
title=
"【库存】产品库存、库存明细"
url=
"https://doc.iocoder.cn/erp/stock/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/erp/stock/warehouse/index.vue
View file @
3ddba81e
<!-- ERP 仓库列表 -->
<!-- ERP 仓库列表 -->
<
template
>
<
template
>
<doc-alert
title=
"【库存】产品库存、库存明细"
url=
"https://doc.iocoder.cn/erp/stock/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/infra/webSocket/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"WebSocket 实时通信"
url=
"https://doc.iocoder.cn/websocket/"
/>
<div
class=
"flex"
>
<div
class=
"flex"
>
<!-- 左侧:建立连接、发送消息 -->
<!-- 左侧:建立连接、发送消息 -->
<el-card
:gutter=
"12"
class=
"w-1/2"
shadow=
"always"
>
<el-card
:gutter=
"12"
class=
"w-1/2"
shadow=
"always"
>
...
...
src/views/mall/home/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"商城手册(功能开启)"
url=
"https://doc.iocoder.cn/mall/build/"
/>
<div
class=
"flex flex-col"
>
<div
class=
"flex flex-col"
>
<!-- 数据对照 -->
<!-- 数据对照 -->
<el-row
:gutter=
"16"
class=
"row"
>
<el-row
:gutter=
"16"
class=
"row"
>
...
...
src/views/mall/product/brand/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"商城手册(功能开启)"
url=
"https://doc.iocoder.cn/mall/build/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/product/category/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【商品】商品分类"
url=
"https://doc.iocoder.cn/mall/product-category/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/product/comment/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【商品】商品评价"
url=
"https://doc.iocoder.cn/mall/product-comment/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/product/property/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【商品】商品属性"
url=
"https://doc.iocoder.cn/mall/product-property/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/product/spu/index.vue
View file @
3ddba81e
<!-- 商品中心 - 商品列表 -->
<!-- 商品中心 - 商品列表 -->
<
template
>
<
template
>
<doc-alert
title=
"【商品】商品 SPU 与 SKU"
url=
"https://doc.iocoder.cn/mall/product-spu-sku/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/promotion/article/category/ArticleCategoryForm.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】内容管理"
url=
"https://doc.iocoder.cn/mall/promotion-content/"
/>
<Dialog
v-model=
"dialogVisible"
:title=
"dialogTitle"
>
<Dialog
v-model=
"dialogVisible"
:title=
"dialogTitle"
>
<el-form
<el-form
ref=
"formRef"
ref=
"formRef"
...
...
src/views/mall/promotion/article/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】内容管理"
url=
"https://doc.iocoder.cn/mall/promotion-content/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/banner/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】内容管理"
url=
"https://doc.iocoder.cn/mall/promotion-content/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/bargain/activity/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】砍价活动"
url=
"https://doc.iocoder.cn/mall/promotion-bargain/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/bargain/record/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】砍价活动"
url=
"https://doc.iocoder.cn/mall/promotion-bargain/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/combination/activity/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】拼团活动"
url=
"https://doc.iocoder.cn/mall/promotion-combination/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/combination/record/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】拼团活动"
url=
"https://doc.iocoder.cn/mall/promotion-combination/"
/>
<!-- 统计信息展示 -->
<!-- 统计信息展示 -->
<el-row
:gutter=
"12"
>
<el-row
:gutter=
"12"
>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
...
...
src/views/mall/promotion/coupon/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"
功能开启"
url=
"https://doc.iocoder.cn/mall/build
/"
/>
<doc-alert
title=
"
【营销】优惠劵"
url=
"https://doc.iocoder.cn/mall/promotion-coupon
/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
...
...
src/views/mall/promotion/coupon/template/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"
功能开启"
url=
"https://doc.iocoder.cn/mall/build
/"
/>
<doc-alert
title=
"
【营销】优惠劵"
url=
"https://doc.iocoder.cn/mall/promotion-coupon
/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
...
...
src/views/mall/promotion/discountActivity/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】限时折扣"
url=
"https://doc.iocoder.cn/mall/promotion-discount/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/diy/page/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】商城装修"
url=
"https://doc.iocoder.cn/mall/diy/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/diy/template/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】商城装修"
url=
"https://doc.iocoder.cn/mall/diy/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/rewardActivity/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】满减送"
url=
"https://doc.iocoder.cn/mall/promotion-record/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/promotion/seckill/activity/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【营销】秒杀活动"
url=
"https://doc.iocoder.cn/mall/promotion-seckill/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/promotion/seckill/config/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"
功能开启"
url=
"https://doc.iocoder.cn/mall/build
/"
/>
<doc-alert
title=
"
【营销】秒杀活动"
url=
"https://doc.iocoder.cn/mall/promotion-seckill
/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
...
...
src/views/mall/statistics/member/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【统计】会员、商品、交易统计"
url=
"https://doc.iocoder.cn/mall/statistics/"
/>
<div
class=
"flex flex-col"
>
<div
class=
"flex flex-col"
>
<el-row
:gutter=
"16"
class=
"summary"
>
<el-row
:gutter=
"16"
class=
"summary"
>
<el-col
:sm=
"6"
:xs=
"12"
v-loading=
"loading"
>
<el-col
:sm=
"6"
:xs=
"12"
v-loading=
"loading"
>
...
@@ -269,8 +271,9 @@ const getMemberSexStatisticsList = async () => {
...
@@ -269,8 +271,9 @@ const getMemberSexStatisticsList = async () => {
const dictDataList = getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)
const dictDataList = getIntDictOptions(DICT_TYPE.SYSTEM_USER_SEX)
dictDataList.push({ label: '未知', value: null } as any)
dictDataList.push({ label: '未知', value: null } as any)
sexChartOptions.series![0].data = dictDataList.map((dictData: DictDataType) => {
sexChartOptions.series![0].data = dictDataList.map((dictData: DictDataType) => {
const userCount = list.find((item: MemberSexStatisticsRespVO) => item.sex === dictData.value)
const userCount = list.find(
?.userCount
(item: MemberSexStatisticsRespVO) => item.sex === dictData.value
)?.userCount
return {
return {
name: dictData.label,
name: dictData.label,
value: userCount || 0
value: userCount || 0
...
...
src/views/mall/statistics/product/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【统计】会员、商品、交易统计"
url=
"https://doc.iocoder.cn/mall/statistics/"
/>
<!-- 商品概览 -->
<!-- 商品概览 -->
<ProductSummary
/>
<ProductSummary
/>
<!-- 商品排行 -->
<!-- 商品排行 -->
...
...
src/views/mall/statistics/trade/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【统计】会员、商品、交易统计"
url=
"https://doc.iocoder.cn/mall/statistics/"
/>
<div
class=
"flex flex-col"
>
<div
class=
"flex flex-col"
>
<el-row
:gutter=
"16"
class=
"summary"
>
<el-row
:gutter=
"16"
class=
"summary"
>
<el-col
:sm=
"6"
:xs=
"12"
>
<el-col
:sm=
"6"
:xs=
"12"
>
...
...
src/views/mall/trade/afterSale/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】售后退款"
url=
"https://doc.iocoder.cn/mall/trade-aftersale/"
/>
<!-- 搜索 -->
<!-- 搜索 -->
<ContentWrap>
<ContentWrap>
<el-form
ref=
"queryFormRef"
:inline=
"true"
:model=
"queryParams"
label-width=
"68px"
>
<el-form
ref=
"queryFormRef"
:inline=
"true"
:model=
"queryParams"
label-width=
"68px"
>
...
...
src/views/mall/trade/brokerage/record/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】分销返佣"
url=
"https://doc.iocoder.cn/mall/trade-brokerage/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/trade/brokerage/user/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】分销返佣"
url=
"https://doc.iocoder.cn/mall/trade-brokerage/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/trade/brokerage/withdraw/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】分销返佣"
url=
"https://doc.iocoder.cn/mall/trade-brokerage/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/mall/trade/config/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】交易订单"
url=
"https://doc.iocoder.cn/mall/trade-order/"
/>
<doc-alert
title=
"【交易】购物车"
url=
"https://doc.iocoder.cn/mall/trade-cart/"
/>
<ContentWrap>
<ContentWrap>
<el-form
<el-form
ref=
"formRef"
ref=
"formRef"
...
...
src/views/mall/trade/delivery/express/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】快递发货"
url=
"https://doc.iocoder.cn/mall/trade-delivery-express/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/trade/delivery/expressTemplate/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】快递发货"
url=
"https://doc.iocoder.cn/mall/trade-delivery-express/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/trade/delivery/pickUpOrder/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】交易订单"
url=
"https://doc.iocoder.cn/mall/trade-order/"
/>
<doc-alert
title=
"【交易】购物车"
url=
"https://doc.iocoder.cn/mall/trade-cart/"
/>
<!-- 搜索 -->
<!-- 搜索 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/mall/trade/delivery/pickUpStore/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】快递发货"
url=
"https://doc.iocoder.cn/mall/trade-delivery-express/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<ContentWrap>
<el-form
ref=
"queryFormRef"
:inline=
"true"
:model=
"queryParams"
class=
"-mb-15px"
>
<el-form
ref=
"queryFormRef"
:inline=
"true"
:model=
"queryParams"
class=
"-mb-15px"
>
...
...
src/views/mall/trade/order/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"【交易】交易订单"
url=
"https://doc.iocoder.cn/mall/trade-order/"
/>
<doc-alert
title=
"【交易】购物车"
url=
"https://doc.iocoder.cn/mall/trade-cart/"
/>
<!-- 搜索 -->
<!-- 搜索 -->
<ContentWrap>
<ContentWrap>
<el-form
<el-form
...
...
src/views/member/config/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员手册(功能开启)"
url=
"https://doc.iocoder.cn/member/build/"
/>
<ContentWrap>
<ContentWrap>
<el-form
<el-form
ref=
"formRef"
ref=
"formRef"
...
...
src/views/member/group/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员用户、标签、分组"
url=
"https://doc.iocoder.cn/member/user/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/member/level/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员等级、积分、签到"
url=
"https://doc.iocoder.cn/member/level/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/member/point/record/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员等级、积分、签到"
url=
"https://doc.iocoder.cn/member/level/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/member/signin/config/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<ContentWrap>
<doc-alert
title=
"会员等级、积分、签到"
url=
"https://doc.iocoder.cn/member/level/"
/>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<ContentWrap>
<el-button
<el-button
type=
"primary"
type=
"primary"
plain
plain
...
...
src/views/member/signin/record/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员等级、积分、签到"
url=
"https://doc.iocoder.cn/member/level/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/member/tag/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员用户、标签、分组"
url=
"https://doc.iocoder.cn/member/user/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
src/views/member/user/index.vue
View file @
3ddba81e
<
template
>
<
template
>
<doc-alert
title=
"会员用户、标签、分组"
url=
"https://doc.iocoder.cn/member/user/"
/>
<ContentWrap>
<ContentWrap>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment