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
cac39ae1
authored
Feb 04, 2024
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CRM:优化合同列的新增/修改界面
parent
6d0231d4
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
111 additions
and
136 deletions
+111
-136
src/api/bpm/model/index.ts
+0
-4
src/api/crm/contract/index.ts
+2
-2
src/views/crm/contract/ContractForm.vue
+59
-72
src/views/crm/contract/components/BPMLModel.vue
+0
-31
src/views/crm/contract/components/ProductList.vue
+36
-17
src/views/crm/contract/detail/index.vue
+9
-4
src/views/crm/contract/index.vue
+4
-5
src/views/crm/contract/oa/ContractDetail/index.vue
+1
-1
No files found.
src/api/bpm/model/index.ts
View file @
cac39ae1
...
@@ -33,10 +33,6 @@ export const getModel = async (id: number) => {
...
@@ -33,10 +33,6 @@ export const getModel = async (id: number) => {
return
await
request
.
get
({
url
:
'/bpm/model/get?id='
+
id
})
return
await
request
.
get
({
url
:
'/bpm/model/get?id='
+
id
})
}
}
export
const
getModelByKey
=
async
(
key
:
string
)
=>
{
return
await
request
.
get
({
url
:
'/bpm/model/get-by-key?key='
+
key
})
}
export
const
updateModel
=
async
(
data
:
ModelVO
)
=>
{
export
const
updateModel
=
async
(
data
:
ModelVO
)
=>
{
return
await
request
.
put
({
url
:
'/bpm/model/update'
,
data
:
data
})
return
await
request
.
put
({
url
:
'/bpm/model/update'
,
data
:
data
})
}
}
...
...
src/api/crm/contract/index.ts
View file @
cac39ae1
...
@@ -68,8 +68,8 @@ export const exportContract = async (params) => {
...
@@ -68,8 +68,8 @@ export const exportContract = async (params) => {
}
}
// 提交审核
// 提交审核
export
const
handleApprove
=
async
(
id
:
number
)
=>
{
export
const
submitContract
=
async
(
id
:
number
)
=>
{
return
await
request
.
put
({
url
:
`/crm/contract/
approve
?id=
${
id
}
`
})
return
await
request
.
put
({
url
:
`/crm/contract/
submit
?id=
${
id
}
`
})
}
}
// 合同转移
// 合同转移
...
...
src/views/crm/contract/ContractForm.vue
View file @
cac39ae1
<
template
>
<
template
>
<Dialog
v-model=
"dialogVisible"
:title=
"dialogTitle"
width=
"
70%
"
>
<Dialog
v-model=
"dialogVisible"
:title=
"dialogTitle"
width=
"
820
"
>
<el-form
<el-form
ref=
"formRef"
ref=
"formRef"
v-loading=
"formLoading"
v-loading=
"formLoading"
...
@@ -8,36 +8,21 @@
...
@@ -8,36 +8,21 @@
label-width=
"110px"
label-width=
"110px"
>
>
<el-row
:gutter=
"20"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"24"
class=
"mb-10px"
>
<CardTitle
title=
"基本信息"
/>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"合同名称"
prop=
"name"
>
<el-input
v-model=
"formData.name"
placeholder=
"请输入合同名称"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"合同编号"
prop=
"no"
>
<el-form-item
label=
"合同编号"
prop=
"no"
>
<el-input
v-model=
"formData.no"
placeholder=
"请输入合同编号"
/>
<el-input
v-model=
"formData.no"
placeholder=
"请输入合同编号"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户"
prop=
"customerId"
>
<el-form-item
label=
"合同名称"
prop=
"name"
>
<el-select
v-model=
"formData.customerId"
>
<el-input
v-model=
"formData.name"
placeholder=
"请输入合同名称"
/>
<el-option
v-for=
"item in customerList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id!"
/>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户
签约人"
prop=
"contact
Id"
>
<el-form-item
label=
"客户
名称"
prop=
"customer
Id"
>
<el-select
v-model=
"formData.c
ontactId"
:disabled=
"!formData.c
ustomerId"
>
<el-select
v-model=
"formData.customerId"
>
<el-option
<el-option
v-for=
"item in
getContactOptions
"
v-for=
"item in
customerList
"
:key=
"item.id"
:key=
"item.id"
:label=
"item.name"
:label=
"item.name"
:value=
"item.id!"
:value=
"item.id!"
...
@@ -46,30 +31,6 @@
...
@@ -46,30 +31,6 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"公司签约人"
prop=
"signUserId"
>
<el-select
v-model=
"formData.signUserId"
>
<el-option
v-for=
"item in userList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id!"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"负责人"
prop=
"ownerUserId"
>
<el-select
v-model=
"formData.ownerUserId"
>
<el-option
v-for=
"item in userList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id!"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"商机名称"
prop=
"businessId"
>
<el-form-item
label=
"商机名称"
prop=
"businessId"
>
<el-select
v-model=
"formData.businessId"
>
<el-select
v-model=
"formData.businessId"
>
<el-option
<el-option
...
@@ -82,11 +43,6 @@
...
@@ -82,11 +43,6 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"合同金额(元)"
prop=
"price"
>
<el-input
v-model=
"formData.price"
placeholder=
"请输入合同金额"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"下单日期"
prop=
"orderDate"
>
<el-form-item
label=
"下单日期"
prop=
"orderDate"
>
<el-date-picker
<el-date-picker
v-model=
"formData.orderDate"
v-model=
"formData.orderDate"
...
@@ -97,6 +53,11 @@
...
@@ -97,6 +53,11 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"合同金额"
prop=
"price"
>
<el-input
v-model=
"formData.price"
placeholder=
"请输入合同金额"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"开始时间"
prop=
"startTime"
>
<el-form-item
label=
"开始时间"
prop=
"startTime"
>
<el-date-picker
<el-date-picker
v-model=
"formData.startTime"
v-model=
"formData.startTime"
...
@@ -116,6 +77,42 @@
...
@@ -116,6 +77,42 @@
/>
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"公司签约人"
prop=
"signUserId"
>
<el-select
v-model=
"formData.signUserId"
>
<el-option
v-for=
"item in userList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id!"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"客户签约人"
prop=
"contactId"
>
<el-select
v-model=
"formData.contactId"
:disabled=
"!formData.customerId"
>
<el-option
v-for=
"item in getContactOptions"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id!"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"负责人"
prop=
"ownerUserId"
>
<el-select
v-model=
"formData.ownerUserId"
>
<el-option
v-for=
"item in userList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id!"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
<el-input
...
@@ -126,6 +123,7 @@
...
@@ -126,6 +123,7 @@
/>
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<!-- TODO @puhui999:productItems 改成 products 会更好点;因为它不是 item 哈 -->
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"产品列表"
prop=
"productList"
>
<el-form-item
label=
"产品列表"
prop=
"productList"
>
<ProductList
v-model=
"formData.productItems"
/>
<ProductList
v-model=
"formData.productItems"
/>
...
@@ -133,28 +131,21 @@
...
@@ -133,28 +131,21 @@
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"整单折扣(%)"
prop=
"discountPercent"
>
<el-form-item
label=
"整单折扣(%)"
prop=
"discountPercent"
>
<el-input
v-model=
"formData.discountPercent"
placeholder=
"请输入整单折扣"
/>
<el-input-number
v-model=
"formData.discountPercent"
:min=
"0"
:max=
"100"
:precision=
"0"
placeholder=
"请输入整单折扣"
class=
"!w-100%"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"产品总金额(元)"
prop=
"productPrice"
>
<el-form-item
label=
"产品总金额(元)"
prop=
"productPrice"
>
{{
f
loatToFixed2
(
formData
.
productPrice
)
}}
{{
f
enToYuan
(
formData
.
productPrice
)
}}
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<CardTitle
class=
"mb-10px"
title=
"审批信息"
/>
</el-col>
<!-- TODO 芋艿:需要后面在 review 下,目前看不到信息 -->
<el-col
:span=
"12"
>
<el-button
class=
"m-20px"
link
type=
"primary"
@
click=
"BPMLModelRef?.handleBpmnDetail('contract-approve')"
>
查看工作流
</el-button>
</el-col>
</el-row>
</el-row>
</el-form>
</el-form>
<template
#
footer
>
<template
#
footer
>
...
@@ -162,7 +153,6 @@
...
@@ -162,7 +153,6 @@
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
</
template
>
</
template
>
</Dialog>
</Dialog>
<BPMLModel
ref=
"BPMLModelRef"
/>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
*
as
CustomerApi
from
'@/api/crm/customer'
import
*
as
CustomerApi
from
'@/api/crm/customer'
...
@@ -171,8 +161,7 @@ import * as UserApi from '@/api/system/user'
...
@@ -171,8 +161,7 @@ import * as UserApi from '@/api/system/user'
import
*
as
ContactApi
from
'@/api/crm/contact'
import
*
as
ContactApi
from
'@/api/crm/contact'
import
*
as
BusinessApi
from
'@/api/crm/business'
import
*
as
BusinessApi
from
'@/api/crm/business'
import
ProductList
from
'./components/ProductList.vue'
import
ProductList
from
'./components/ProductList.vue'
import
BPMLModel
from
'@/views/crm/contract/components/BPMLModel.vue'
import
{
fenToYuan
}
from
'@/utils'
import
{
floatToFixed2
}
from
'@/utils'
const
{
t
}
=
useI18n
()
// 国际化
const
{
t
}
=
useI18n
()
// 国际化
const
message
=
useMessage
()
// 消息弹窗
const
message
=
useMessage
()
// 消息弹窗
...
@@ -190,9 +179,8 @@ const formRules = reactive({
...
@@ -190,9 +179,8 @@ const formRules = reactive({
no
:
[{
required
:
true
,
message
:
'合同编号不能为空'
,
trigger
:
'blur'
}]
no
:
[{
required
:
true
,
message
:
'合同编号不能为空'
,
trigger
:
'blur'
}]
})
})
const
formRef
=
ref
()
// 表单 Ref
const
formRef
=
ref
()
// 表单 Ref
const
BPMLModelRef
=
ref
<
InstanceType
<
typeof
BPMLModel
>>
()
// TODO @puhui999:这个变量不太对;另外,可以不做 bpm model 窗口,而是可以点击跳转到工作流详情里;
/
/ 监听合同产品变化,计算合同产品总价
/
** 监听合同产品变化,计算合同产品总价 */
watch
(
watch
(
()
=>
formData
.
value
.
productItems
,
()
=>
formData
.
value
.
productItems
,
(
val
)
=>
{
(
val
)
=>
{
...
@@ -227,7 +215,6 @@ const open = async (type: string, id?: number) => {
...
@@ -227,7 +215,6 @@ const open = async (type: string, id?: number) => {
}
}
await
getAllApi
()
await
getAllApi
()
}
}
defineExpose
({
open
})
// 提供 open 方法,用于打开弹窗
defineExpose
({
open
})
// 提供 open 方法,用于打开弹窗
/** 提交表单 */
/** 提交表单 */
...
...
src/views/crm/contract/components/BPMLModel.vue
deleted
100644 → 0
View file @
6d0231d4
<
template
>
<!-- 弹窗:流程模型图的预览 -->
<Dialog
v-model=
"bpmnDetailVisible"
:append-to-body=
"true"
title=
"流程图"
width=
"800"
>
<MyProcessViewer
key=
"designer"
v-model=
"bpmnXML"
:prefix=
"bpmnControlForm.prefix"
:value=
"bpmnXML as any"
v-bind=
"bpmnControlForm"
/>
</Dialog>
</
template
>
<
script
lang=
"ts"
setup
>
import
*
as
ModelApi
from
'@/api/bpm/model'
import
{
MyProcessViewer
}
from
'@/components/bpmnProcessDesigner/package'
defineOptions
({
name
:
'BPMLModel'
})
/** 流程图的详情按钮操作 */
const
bpmnDetailVisible
=
ref
(
false
)
const
bpmnXML
=
ref
(
null
)
const
bpmnControlForm
=
ref
({
prefix
:
'flowable'
})
const
handleBpmnDetail
=
async
(
key
:
string
)
=>
{
const
data
=
await
ModelApi
.
getModelByKey
(
key
)
bpmnXML
.
value
=
data
.
bpmnXml
||
''
bpmnDetailVisible
.
value
=
true
}
defineExpose
({
handleBpmnDetail
})
</
script
>
src/views/crm/contract/components/ProductList.vue
View file @
cac39ae1
...
@@ -4,37 +4,56 @@
...
@@ -4,37 +4,56 @@
<el-button
plain
type=
"primary"
@
click=
"openForm"
>
添加产品
</el-button>
<el-button
plain
type=
"primary"
@
click=
"openForm"
>
添加产品
</el-button>
</el-row>
</el-row>
<el-table
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table-column
align=
"center"
label=
"产品名称"
prop=
"name"
width=
"160"
/>
<el-table-column
align=
"center"
label=
"产品名称"
prop=
"name"
width=
"120"
/>
<el-table-column
align=
"center"
label=
"产品类型"
prop=
"categoryName"
width=
"160"
/>
<el-table-column
align=
"center"
label=
"产品单位"
prop=
"unit"
>
<template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CRM_PRODUCT_UNIT"
:value=
"scope.row.unit"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"产品编码"
prop=
"no"
/>
<el-table-column
<el-table-column
:formatter=
"fenToYuanFormat"
:formatter=
"fenToYuanFormat"
align=
"center"
align=
"center"
label=
"价格
(元)
"
label=
"价格"
prop=
"price"
prop=
"price"
width=
"100"
width=
"100"
/>
/>
<el-table-column
align=
"center"
label=
"数量"
prop=
"count"
width=
"200"
>
<el-table-column
align=
"center"
label=
"产品类型"
prop=
"categoryName"
width=
"100"
/>
<el-table-column
align=
"center"
label=
"产品单位"
prop=
"unit"
>
<template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CRM_PRODUCT_UNIT"
:value=
"scope.row.unit"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"产品编码"
prop=
"no"
/>
<el-table-column
align=
"center"
fixed=
"right"
label=
"数量"
prop=
"count"
width=
"100"
>
<
template
#
default=
"{ row }: { row: ProductApi.ProductExpandVO }"
>
<
template
#
default=
"{ row }: { row: ProductApi.ProductExpandVO }"
>
<el-input-number
v-model=
"row.count"
class=
"!w-100%"
/>
<el-input-number
v-model=
"row.count"
controls-position=
"right"
:min=
"0"
:precision=
"0"
class=
"!w-100%"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"折扣(%)"
prop=
"discountPercent"
width=
"200"
>
<el-table-column
align=
"center"
fixed=
"right"
label=
"折扣(%)"
prop=
"discountPercent"
width=
"120"
>
<
template
#
default=
"{ row }: { row: ProductApi.ProductExpandVO }"
>
<
template
#
default=
"{ row }: { row: ProductApi.ProductExpandVO }"
>
<el-input-number
v-model=
"row.discountPercent"
class=
"!w-100%"
/>
<el-input-number
v-model=
"row.discountPercent"
controls-position=
"right"
:min=
"0"
:max=
"100"
:precision=
"0"
class=
"!w-100%"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
label=
"合计"
prop=
"totalPrice"
width=
"100"
>
<el-table-column
align=
"center"
fixed=
"right"
label=
"合计"
prop=
"totalPrice"
width=
"100"
>
<
template
#
default=
"{ row }: { row: ProductApi.ProductExpandVO }"
>
<
template
#
default=
"{ row }: { row: ProductApi.ProductExpandVO }"
>
{{
getTotalPrice
(
row
)
}}
{{
fenToYuan
(
getTotalPrice
(
row
)
)
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
width=
"
13
0"
>
<el-table-column
align=
"center"
fixed=
"right"
label=
"操作"
width=
"
6
0"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<el-button
link
type=
"danger"
@
click=
"handleDelete(scope.row.id)"
>
移除
</el-button>
<el-button
link
type=
"danger"
@
click=
"handleDelete(scope.row.id)"
>
移除
</el-button>
</
template
>
</
template
>
...
@@ -66,7 +85,7 @@ import * as ProductApi from '@/api/crm/product'
...
@@ -66,7 +85,7 @@ import * as ProductApi from '@/api/crm/product'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
fenToYuanFormat
}
from
'@/utils/formatter'
import
{
fenToYuanFormat
}
from
'@/utils/formatter'
import
{
TableSelectForm
}
from
'@/components/Table/index'
import
{
TableSelectForm
}
from
'@/components/Table/index'
import
{
floatToFixed2
,
yuanToFen
}
from
'@/utils'
import
{
f
enToYuan
,
f
loatToFixed2
,
yuanToFen
}
from
'@/utils'
defineOptions
({
name
:
'ProductList'
})
defineOptions
({
name
:
'ProductList'
})
const
props
=
withDefaults
(
defineProps
<
{
modelValue
:
ProductApi
.
ProductExpandVO
[]
}
>
(),
{
const
props
=
withDefaults
(
defineProps
<
{
modelValue
:
ProductApi
.
ProductExpandVO
[]
}
>
(),
{
...
...
src/views/crm/contract/detail/index.vue
View file @
cac39ae1
...
@@ -10,15 +10,16 @@
...
@@ -10,15 +10,16 @@
</ContractDetailsHeader>
</ContractDetailsHeader>
<el-col>
<el-col>
<el-tabs>
<el-tabs>
<el-tab-pane
label=
"详细资料"
>
<!-- TODO @puhui999:跟进记录 -->
<el-tab-pane
label=
"基本信息"
>
<ContractDetailsInfo
:contract=
"contract"
/>
<ContractDetailsInfo
:contract=
"contract"
/>
</el-tab-pane>
</el-tab-pane>
<!-- TODO @puhui999:products 更合适哈 -->
<el-tab-pane
label=
"产品"
>
<el-tab-pane
label=
"产品"
>
<ContractProductList
v-model=
"contract.productItems"
/>
<ContractProductList
v-model=
"contract.productItems"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"操作日志"
>
<!-- TODO @puhui999:回款信息 -->
<OperateLogV2
:log-list=
"logList"
/>
<!-- TODO @puhui999:这里是不是不用 isPool 哈 -->
</el-tab-pane>
<el-tab-pane
label=
"团队成员"
>
<el-tab-pane
label=
"团队成员"
>
<PermissionList
<PermissionList
ref=
"permissionListRef"
ref=
"permissionListRef"
...
@@ -28,8 +29,12 @@
...
@@ -28,8 +29,12 @@
@
quit-team=
"close"
@
quit-team=
"close"
/>
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"操作日志"
>
<OperateLogV2
:log-list=
"logList"
/>
</el-tab-pane>
</el-tabs>
</el-tabs>
</el-col>
</el-col>
<!-- 表单弹窗:添加/修改 -->
<!-- 表单弹窗:添加/修改 -->
<ContractForm
ref=
"formRef"
@
success=
"getContractData"
/>
<ContractForm
ref=
"formRef"
@
success=
"getContractData"
/>
<CrmTransferForm
ref=
"transferFormRef"
@
success=
"close"
/>
<CrmTransferForm
ref=
"transferFormRef"
@
success=
"close"
/>
...
...
src/views/crm/contract/index.vue
View file @
cac39ae1
...
@@ -54,7 +54,6 @@
...
@@ -54,7 +54,6 @@
</ContentWrap>
</ContentWrap>
<!-- 列表 -->
<!-- 列表 -->
<!-- TODO 芋艿:各种字段要调整 -->
<ContentWrap>
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table-column
align=
"center"
fixed=
"left"
label=
"合同编号"
prop=
"no"
width=
"130"
/>
<el-table-column
align=
"center"
fixed=
"left"
label=
"合同编号"
prop=
"no"
width=
"130"
/>
...
@@ -145,12 +144,12 @@
...
@@ -145,12 +144,12 @@
>
>
编辑
编辑
</el-button>
</el-button>
<!-- TODO @puhui999:可以加下判断,什么情况下,可以审批; -->
<!-- TODO @puhui999:可以加下判断,什么情况下,可以审批;
然后加个【查看审批】按钮
-->
<el-button
<el-button
v-hasPermi=
"['crm:contract:update']"
v-hasPermi=
"['crm:contract:update']"
link
link
type=
"primary"
type=
"primary"
@
click=
"handle
Approve
(scope.row)"
@
click=
"handle
Submit
(scope.row)"
>
>
提交审核
提交审核
</el-button>
</el-button>
...
@@ -274,9 +273,9 @@ const handleExport = async () => {
...
@@ -274,9 +273,9 @@ const handleExport = async () => {
}
}
/** 提交审核 **/
/** 提交审核 **/
const
handle
Approve
=
async
(
row
:
ContractApi
.
ContractVO
)
=>
{
const
handle
Submit
=
async
(
row
:
ContractApi
.
ContractVO
)
=>
{
await
message
.
confirm
(
`您确定提交【
${
row
.
name
}
】审核吗?`
)
await
message
.
confirm
(
`您确定提交【
${
row
.
name
}
】审核吗?`
)
await
ContractApi
.
handleApprove
(
row
.
id
)
await
ContractApi
.
submitContract
(
row
.
id
)
message
.
success
(
'提交审核成功!'
)
message
.
success
(
'提交审核成功!'
)
await
getList
()
await
getList
()
}
}
...
...
src/views/crm/contract/oa/ContractDetail/index.vue
View file @
cac39ae1
<!-- TODO @puhui999:这个好像和 detail 重复了??? -->
<!-- TODO @puhui999:这个好像和 detail 重复了???
能不能复用 detail 哈?
-->
<
template
>
<
template
>
<el-form
ref=
"formRef"
v-loading=
"formLoading"
:model=
"formData"
label-width=
"110px"
>
<el-form
ref=
"formRef"
v-loading=
"formLoading"
:model=
"formData"
label-width=
"110px"
>
<el-row>
<el-row>
...
...
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