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
3c19cb1a
authored
Nov 25, 2023
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crm:code review 商机类型
parent
b3515b2d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
36 deletions
+28
-36
src/views/crm/business/BusinessForm.vue
+9
-11
src/views/crm/businessStatusType/BusinessStatusTypeForm.vue
+19
-25
No files found.
src/views/crm/business/BusinessForm.vue
View file @
3c19cb1a
...
...
@@ -10,6 +10,7 @@
<el-form-item
label=
"商机名称"
prop=
"name"
>
<el-input
v-model=
"formData.name"
placeholder=
"请输入商机名称"
/>
</el-form-item>
<!-- TODO 芋艿:客户列表的组件 -->
<el-form-item
label=
"客户名称"
prop=
"customerName"
>
<el-popover
placement=
"bottom"
...
...
@@ -78,12 +79,7 @@
</el-select>
</el-form-item>
<el-form-item
label=
"商机状态"
prop=
"statusId"
>
<el-select
v-model=
"formData.statusId"
placeholder=
"请选择商机状态"
clearable
size=
"small"
>
<el-select
v-model=
"formData.statusId"
placeholder=
"请选择商机状态"
clearable
size=
"small"
>
<el-option
v-for=
"item in businessStatusList"
:key=
"item.id"
...
...
@@ -122,9 +118,9 @@
<
script
setup
lang=
"ts"
>
import
*
as
BusinessApi
from
'@/api/crm/business'
import
*
as
BusinessStatusTypeApi
from
'@/api/crm/businessStatusType'
import
*
as
CustomerApi
from
"@/api/crm/customer"
;
import
*
as
CustomerApi
from
'@/api/crm/customer'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
ElTable
}
from
"element-plus"
;
import
{
ElTable
}
from
'element-plus'
const
{
t
}
=
useI18n
()
// 国际化
const
message
=
useMessage
()
// 消息弹窗
...
...
@@ -233,10 +229,12 @@ const resetForm = () => {
}
formRef
.
value
?.
resetFields
()
}
const
changeBusinessStatusType
=
async
(
id
)
=>
{
// 加载商机状态列表
businessStatusList
.
value
=
await
BusinessStatusTypeApi
.
getBusinessStatusListByTypeId
(
id
)
/** 加载商机状态列表 */
const
changeBusinessStatusType
=
async
(
typeId
:
number
)
=>
{
businessStatusList
.
value
=
await
BusinessStatusTypeApi
.
getBusinessStatusListByTypeId
(
typeId
)
}
const
queryParams
=
reactive
({
pageNo
:
1
,
pageSize
:
10
,
...
...
src/views/crm/businessStatusType/BusinessStatusTypeForm.vue
View file @
3c19cb1a
...
...
@@ -23,22 +23,12 @@
</el-form-item>
<el-form-item
label=
"状态设置"
prop=
"statusList"
>
<el-table
border
style=
"width: 100%"
:data=
"formData.statusList"
>
<el-table-column
align=
"center"
label=
"状态"
width=
"120"
prop=
"star"
>
<el-table-column
align=
"center"
label=
"状态"
width=
"120"
prop=
"star"
>
<template
#
default=
"scope"
>
<el-text>
状态
{{
scope
.
$index
+
1
}}
</el-text>
<el-text>
状态
{{
scope
.
$index
+
1
}}
</el-text>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"状态名称"
width=
"120"
prop=
"name"
>
<el-table-column
align=
"center"
label=
"状态名称"
width=
"120"
prop=
"name"
>
<
template
#
default=
"{ row }"
>
<el-input
v-model=
"row.name"
placeholder=
"请输入状态名称"
/>
</
template
>
...
...
@@ -50,10 +40,13 @@
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"primary"
@
click=
"addStatusArea(scope.$index)"
>
添加
</el-button>
<el-button
link
type=
"danger"
@
click=
"deleteStatusArea(scope.$index)"
v-show=
"scope.$index>0"
>
<el-button
link
type=
"primary"
@
click=
"addStatusArea(scope.$index)"
>
添加
</el-button>
<el-button
link
type=
"danger"
@
click=
"deleteStatusArea(scope.$index)"
v-show=
"scope.$index > 0"
>
删除
</el-button>
</
template
>
...
...
@@ -69,8 +62,8 @@
</template>
<
script
setup
lang=
"ts"
>
import
*
as
BusinessStatusTypeApi
from
'@/api/crm/businessStatusType'
import
{
defaultProps
,
handleTree
}
from
"@/utils/tree"
;
import
*
as
DeptApi
from
"@/api/system/dept"
;
import
{
defaultProps
,
handleTree
}
from
'@/utils/tree'
import
*
as
DeptApi
from
'@/api/system/dept'
const
{
t
}
=
useI18n
()
// 国际化
const
message
=
useMessage
()
// 消息弹窗
...
...
@@ -86,7 +79,7 @@ const formData = ref({
statusList
:
[]
})
const
formRules
=
reactive
({
name
:
[{
required
:
true
,
message
:
'状态类型名不能为空'
,
trigger
:
'blur'
}]
,
name
:
[{
required
:
true
,
message
:
'状态类型名不能为空'
,
trigger
:
'blur'
}]
})
const
formRef
=
ref
()
// 表单 Ref
const
deptList
=
ref
<
Tree
[]
>
([])
// 树形结构
...
...
@@ -94,7 +87,7 @@ const treeRef = ref() // 菜单树组件 Ref
const
checkStrictly
=
ref
(
true
)
// 是否严格模式,即父子不关联
/** 打开弹窗 */
const
open
=
async
(
type
:
string
,
id
?:
number
)
=>
{
const
open
=
async
(
type
:
string
,
id
?:
number
)
=>
{
dialogVisible
.
value
=
true
dialogTitle
.
value
=
t
(
'action.'
+
type
)
formType
.
value
=
type
...
...
@@ -105,7 +98,7 @@ const open = async (type: string, id?: number) => {
try
{
formData
.
value
=
await
BusinessStatusTypeApi
.
getBusinessStatusType
(
id
)
treeRef
.
value
.
setCheckedKeys
(
formData
.
value
.
deptIds
)
if
(
formData
.
value
.
statusList
.
length
==
0
)
{
if
(
formData
.
value
.
statusList
.
length
==
0
)
{
addStatusArea
(
0
)
}
}
finally
{
...
...
@@ -116,7 +109,6 @@ const open = async (type: string, id?: number) => {
}
// 加载部门树
deptList
.
value
=
handleTree
(
await
DeptApi
.
getSimpleDeptList
())
}
defineExpose
({
open
})
// 提供 open 方法,用于打开弹窗
...
...
@@ -157,16 +149,18 @@ const resetForm = () => {
treeRef
.
value
?.
setCheckedNodes
([])
formRef
.
value
?.
resetFields
()
}
/** 添加状态 */
const
addStatusArea
=
(
index
)
=>
{
const
addStatusArea
=
()
=>
{
const
data
=
formData
.
value
data
.
statusList
.
push
({
name
:
''
,
percent
:
''
})
}
/** 删除状态 */
const
deleteStatusArea
=
(
index
)
=>
{
const
deleteStatusArea
=
(
index
:
number
)
=>
{
const
data
=
formData
.
value
data
.
statusList
.
splice
(
index
,
1
)
}
...
...
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