23
23
</el-form-item >
24
24
<el-form-item label =" 状态设置" prop =" statusList" >
25
25
<el-table border style =" width : 100% " :data =" formData.statusList" >
26
- <el-table-column
27
- align =" center"
28
- label =" 状态"
29
- width =" 120"
30
- prop =" star"
31
- >
26
+ <el-table-column align =" center" label =" 状态" width =" 120" prop =" star" >
32
27
<template #default =" scope " >
33
- <el-text >状态{{scope.$index+1 }}</el-text >
28
+ <el-text >状态{{ scope.$index + 1 }}</el-text >
34
29
</template >
35
30
</el-table-column >
36
- <el-table-column
37
- align =" center"
38
- label =" 状态名称"
39
- width =" 120"
40
- prop =" name"
41
- >
31
+ <el-table-column align =" center" label =" 状态名称" width =" 120" prop =" name" >
42
32
<template #default =" { row } " >
43
33
<el-input v-model =" row.name" placeholder =" 请输入状态名称" />
44
34
</template >
50
40
</el-table-column >
51
41
<el-table-column label =" 操作" align =" center" >
52
42
<template #default =" scope " >
53
- <el-button link type =" primary" @click =" addStatusArea(scope.$index)" >
54
- 添加
55
- </el-button >
56
- <el-button link type =" danger" @click =" deleteStatusArea(scope.$index)" v-show =" scope.$index>0" >
43
+ <el-button link type =" primary" @click =" addStatusArea(scope.$index)" > 添加 </el-button >
44
+ <el-button
45
+ link
46
+ type =" danger"
47
+ @click =" deleteStatusArea(scope.$index)"
48
+ v-show =" scope.$index > 0"
49
+ >
57
50
删除
58
51
</el-button >
59
52
</template >
69
62
</template >
70
63
<script setup lang="ts">
71
64
import * as BusinessStatusTypeApi from ' @/api/crm/businessStatusType'
72
- import {defaultProps , handleTree } from " @/utils/tree" ;
73
- import * as DeptApi from " @/api/system/dept" ;
65
+ import { defaultProps , handleTree } from ' @/utils/tree'
66
+ import * as DeptApi from ' @/api/system/dept'
74
67
75
68
const { t } = useI18n () // 国际化
76
69
const message = useMessage () // 消息弹窗
@@ -86,15 +79,15 @@ const formData = ref({
86
79
statusList: []
87
80
})
88
81
const formRules = reactive ({
89
- name: [{ required: true , message: ' 状态类型名不能为空' , trigger: ' blur' }],
82
+ name: [{ required: true , message: ' 状态类型名不能为空' , trigger: ' blur' }]
90
83
})
91
84
const formRef = ref () // 表单 Ref
92
85
const deptList = ref <Tree []>([]) // 树形结构
93
86
const treeRef = ref () // 菜单树组件 Ref
94
87
const checkStrictly = ref (true ) // 是否严格模式,即父子不关联
95
88
96
89
/** 打开弹窗 */
97
- const open = async (type : string , id ? : number ) => {
90
+ const open = async (type : string , id ? : number ) => {
98
91
dialogVisible .value = true
99
92
dialogTitle .value = t (' action.' + type )
100
93
formType .value = type
@@ -105,7 +98,7 @@ const open = async (type: string, id?: number) => {
105
98
try {
106
99
formData .value = await BusinessStatusTypeApi .getBusinessStatusType (id )
107
100
treeRef .value .setCheckedKeys (formData .value .deptIds )
108
- if (formData .value .statusList .length == 0 ) {
101
+ if (formData .value .statusList .length == 0 ) {
109
102
addStatusArea (0 )
110
103
}
111
104
} finally {
@@ -116,7 +109,6 @@ const open = async (type: string, id?: number) => {
116
109
}
117
110
// 加载部门树
118
111
deptList .value = handleTree (await DeptApi .getSimpleDeptList ())
119
-
120
112
}
121
113
defineExpose ({ open }) // 提供 open 方法,用于打开弹窗
122
114
@@ -157,16 +149,18 @@ const resetForm = () => {
157
149
treeRef .value ?.setCheckedNodes ([])
158
150
formRef .value ?.resetFields ()
159
151
}
152
+
160
153
/** 添加状态 */
161
- const addStatusArea = (index ) => {
154
+ const addStatusArea = () => {
162
155
const data = formData .value
163
156
data .statusList .push ({
164
157
name: ' ' ,
165
158
percent: ' '
166
159
})
167
160
}
161
+
168
162
/** 删除状态 */
169
- const deleteStatusArea = (index ) => {
163
+ const deleteStatusArea = (index : number ) => {
170
164
const data = formData .value
171
165
data .statusList .splice (index , 1 )
172
166
}
0 commit comments