Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
Y
yishuju-ui
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何远江
yishuju-ui
Commits
12dfdf1c
Commit
12dfdf1c
authored
Jan 22, 2025
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化界面
parent
85f4d2c0
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
320 additions
and
261 deletions
+320
-261
audit.js
src/api/audit.js
+0
-1
property.js
src/api/property.js
+1
-1
index.vue
src/components/ProTable/index.vue
+1
-1
index.vue
src/components/SearchForm/index.vue
+18
-12
index.vue
src/components/TenantModal/index.vue
+2
-2
Message.vue
src/layouts/components/Header/components/Message.vue
+76
-70
main.css
src/styles/main.css
+1
-1
callDrawer.vue
src/views/property/audit-manage/components/callDrawer.vue
+37
-13
index.vue
src/views/property/audit-manage/index.vue
+60
-44
index.vue
src/views/property/case-allocation/index.vue
+22
-14
callDrawer.vue
src/views/property/case-detail/components/callDrawer.vue
+19
-17
index.vue
src/views/property/case-detail/index.vue
+9
-11
index.vue
src/views/property/case-manage/index.vue
+28
-23
index.vue
src/views/property/import/index.vue
+8
-9
index.vue
src/views/system/tenantManage/index.vue
+3
-5
index.vue
src/views/workplace/todo/index.vue
+35
-37
No files found.
src/api/audit.js
View file @
12dfdf1c
...
...
@@ -15,4 +15,3 @@ export const auditAudit = (params) => {
export
const
batchSave
=
(
params
)
=>
{
return
request
.
get
(
'/TrackRecord/batchSave'
,
params
);
};
src/api/property.js
View file @
12dfdf1c
...
...
@@ -83,4 +83,4 @@ export const saveTrackRecord = (data) => {
// 案件跟踪记录列表
export
const
getTrackRecord
=
(
params
)
=>
{
return
request
.
get
(
'/TrackRecord/page'
,
params
);
};
\ No newline at end of file
};
src/components/ProTable/index.vue
View file @
12dfdf1c
...
...
@@ -79,7 +79,7 @@
},
collapsedRows
:
{
type
:
Number
,
default
:
1
,
default
:
0.8
,
},
data
:
{
type
:
Array
,
...
...
src/components/SearchForm/index.vue
View file @
12dfdf1c
...
...
@@ -16,18 +16,24 @@
>
<el-form-item>
<template
#
label
>
<el-space
:size=
"4"
>
<span>
{{
`${item.search?.label ?? item.title
}
`
}}
<
/span
>
<
el
-
tooltip
v
-
if
=
"item.search?.tooltip"
effect
=
"dark"
:
content
=
"item.search?.tooltip"
placement
=
"top"
>
<
i
:
class
=
"'iconfont icon-yiwen'"
><
/i
>
<
/el-tooltip
>
<
/el-space
>
<
span
>&
nbsp
;:
<
/span
>
<div
:style=
"
{
width: item.search.labelWidth ? `${item.search.labelWidth}px` : auto,
'text-align': 'right',
}"
>
<el-space
:size=
"4"
>
<span>
{{
`${item.search?.label ?? item.title
}
`
}}
<
/span
>
<
el
-
tooltip
v
-
if
=
"item.search?.tooltip"
effect
=
"dark"
:
content
=
"item.search?.tooltip"
placement
=
"top"
>
<
i
:
class
=
"'iconfont icon-yiwen'"
><
/i
>
<
/el-tooltip
>
<
/el-space
>
<
/div
>
<
/template
>
<
SearchFormItem
:
column
=
"item"
:
search
-
param
=
"searchParam"
/>
<
/el-form-item
>
...
...
src/components/TenantModal/index.vue
View file @
12dfdf1c
...
...
@@ -37,8 +37,8 @@
};
const
openModal
=
(
tenants
)
=>
{
showModal
.
value
=
true
tenantList
.
value
=
tenants
showModal
.
value
=
true
;
tenantList
.
value
=
tenants
;
};
defineExpose
({
openModal
,
...
...
src/layouts/components/Header/components/Message.vue
View file @
12dfdf1c
...
...
@@ -7,24 +7,33 @@
</el-badge>
</
template
>
<!-- <el-tabs v-model="activeName"> -->
<!-- <el-tab-pane label="通知(5)" name="first"> -->
<div
class=
"message-list"
>
<div
class=
"message-item"
v-for=
"(item, index) in msgList"
:key=
"index"
@
click=
"clickMessage(item)"
>
<img
:src=
"item.serviceType ==='tip' ? msg02 : msg01"
alt=
""
class=
"message-icon"
/>
<div
class=
"message-content"
>
<span
class=
"message-title"
:class=
"{' text-gray-400' : item.messageReads && item.messageReads.length}"
>
{{item.title}}
</span>
<span
class=
"message-date"
>
{{timeago(item.sendTime)}}
</span>
</div>
</div>
<!-- <div class="message-item">
<!-- <el-tab-pane label="通知(5)" name="first"> -->
<div
class=
"message-list"
>
<div
class=
"message-item"
v-for=
"(item, index) in msgList"
:key=
"index"
@
click=
"clickMessage(item)"
>
<img
:src=
"item.serviceType === 'tip' ? msg02 : msg01"
alt=
""
class=
"message-icon"
/>
<div
class=
"message-content"
>
<span
class=
"message-title"
:class=
"{ ' text-gray-400': item.messageReads && item.messageReads.length }"
>
{{ item.title }}
</span
>
<span
class=
"message-date"
>
{{ timeago(item.sendTime) }}
</span>
</div>
</div>
<!-- <div class="message-item">
<img src="@/assets/images/msg02.png" alt="" class="message-icon" />
<div class="message-content">
<span class="message-title">一键三连 Geeker-Admin 💙</span>
<span class="message-date">一小时前</span>
</div>
</div> -->
</div>
<!-- </el-tab-pane>
</div>
<!-- </el-tab-pane>
<el-tab-pane label="消息(0)" name="second">
<div class="message-empty">
<img src="@/assets/images/notData.png" alt="notData" />
...
...
@@ -39,20 +48,15 @@
</el-tab-pane>
</el-tabs> -->
</el-popover>
<el-popover
:visible=
"visible"
placement=
"bottom"
title=
"收到1条新消息"
:width=
"200"
>
<el-popover
:visible=
"visible"
placement=
"bottom"
title=
"收到1条新消息"
:width=
"200"
>
<
template
#
reference
>
<el-badge
class=
"item"
>
<el-badge
class=
"item"
>
<i
:class=
"'iconfont icon-xiaoxi'"
class=
"toolBar-icon"
style=
"display: none"
></i>
</el-badge>
</
template
>
<div>
{{socketStore.msg.title
}}
</div>
<div>
{{ socketStore.msg.title
}}
</div>
</el-popover>
</div>
</template>
...
...
@@ -60,7 +64,7 @@
<
script
setup
>
import
{
reactive
,
ref
,
watch
}
from
'vue'
;
import
useSocketStore
from
'../../../../stores/modules/websocket'
;
import
{
useUserStore
}
from
'../../../../stores/modules/user'
;
import
{
useUserStore
}
from
'../../../../stores/modules/user'
;
import
msg02
from
'@/assets/images/msg02.png'
;
import
msg01
from
'@/assets/images/msg01.png'
;
import
{
computed
,
onMounted
}
from
'vue'
;
...
...
@@ -71,100 +75,102 @@
const
activeName
=
ref
(
'first'
);
const
msgList
=
ref
([]);
const
newMsgList
=
ref
([]);
const
visible
=
ref
(
false
)
const
visible
=
ref
(
false
)
;
const
socketStore
=
useSocketStore
();
console
.
log
(
'socketStore'
,
socketStore
)
console
.
log
(
'socketStore'
,
socketStore
)
;
const
query
=
()
=>
{
pageMyMesage
({
current
:
1
,
readStatus
:
'read'
,
size
:
100
size
:
100
,
}).
then
((
res
)
=>
{
console
.
log
(
'sadas'
,
res
)
if
(
res
.
success
&&
res
.
result
)
{
msgList
.
value
=
res
.
result
.
content
console
.
log
(
'sadas'
,
res
)
;
if
(
res
.
success
&&
res
.
result
)
{
msgList
.
value
=
res
.
result
.
content
;
}
});
}
watch
(()
=>
socketStore
.
msg
,
(
newValue
,
oldValue
)
=>
{
if
(
newValue
instanceof
Array
){
newMsgList
.
value
.
push
(
newValue
)
visible
.
value
=
true
};
watch
(
()
=>
socketStore
.
msg
,
(
newValue
,
oldValue
)
=>
{
if
(
newValue
instanceof
Array
)
{
newMsgList
.
value
.
push
(
newValue
);
visible
.
value
=
true
;
}
query
();
}
query
()
});
);
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
const
envs
=
getAppEnvConfig
();
const
{
userInfo
}
=
useUserStore
();
if
(
!
socketStore
.
ws
&&
userInfo
.
id
)
{
if
(
!
socketStore
.
ws
&&
userInfo
.
id
)
{
let
url
=
`ws://8.152.205.9:8080/websocket/
${
userInfo
.
id
}
`
;
console
.
log
(
'url'
,
url
)
console
.
log
(
'url'
,
url
)
;
socketStore
.
connection
(
url
);
}
if
(
socketStore
.
ws
){
if
(
socketStore
.
ws
)
{
socketStore
.
sendMsg
({
aa
:
44
});
}
const
clickMsg
=
()
=>
{
visible
.
value
=
false
newMsgList
.
value
=
[]
}
visible
.
value
=
false
;
newMsgList
.
value
=
[]
;
}
;
const
clickMessage
=
(
item
)
=>
{
readMessage
({
msgId
:
item
.
id
}).
then
(
res
=>
{
msgId
:
item
.
id
,
}).
then
(
(
res
)
=>
{
router
.
push
({
path
:
'/workplace/todo'
path
:
'/workplace/todo'
,
});
query
()
})
}
const
timeago
=
(
time
)
=>
{
query
()
;
})
;
}
;
const
timeago
=
(
time
)
=>
{
const
data
=
new
Date
(
time
);
const
dateTimeStamp
=
data
.
getTime
()
const
minute
=
1000
*
60
;
//把分,时,天,周,半个月,一个月用毫秒表示
const
dateTimeStamp
=
data
.
getTime
()
;
const
minute
=
1000
*
60
;
//把分,时,天,周,半个月,一个月用毫秒表示
const
hour
=
minute
*
60
;
const
day
=
hour
*
24
;
const
week
=
day
*
7
;
const
month
=
day
*
30
;
const
year
=
month
*
12
;
const
now
=
new
Date
().
getTime
();
//获取当前时间毫秒
const
diffValue
=
now
-
dateTimeStamp
;
//时间差
let
result
=
""
;
const
now
=
new
Date
().
getTime
();
//获取当前时间毫秒
const
diffValue
=
now
-
dateTimeStamp
;
//时间差
let
result
=
''
;
if
(
diffValue
<
0
)
{
result
=
""
+
"未来"
;
result
=
''
+
'未来'
;
}
const
minC
=
diffValue
/
minute
;
//计算时间差的分,时,天,周,月
const
minC
=
diffValue
/
minute
;
//计算时间差的分,时,天,周,月
const
hourC
=
diffValue
/
hour
;
const
dayC
=
diffValue
/
day
;
const
weekC
=
diffValue
/
week
;
const
monthC
=
diffValue
/
month
;
const
yearC
=
diffValue
/
year
;
if
(
yearC
>=
1
)
{
result
=
" "
+
parseInt
(
yearC
)
+
"年前"
result
=
' '
+
parseInt
(
yearC
)
+
'年前'
;
}
else
if
(
monthC
>=
1
&&
monthC
<
12
)
{
result
=
" "
+
parseInt
(
monthC
)
+
"月前"
result
=
' '
+
parseInt
(
monthC
)
+
'月前'
;
}
else
if
(
weekC
>=
1
&&
weekC
<
5
&&
dayC
>
6
&&
monthC
<
1
)
{
result
=
" "
+
parseInt
(
weekC
)
+
"周前"
result
=
' '
+
parseInt
(
weekC
)
+
'周前'
;
}
else
if
(
dayC
>=
1
&&
dayC
<=
6
)
{
result
=
" "
+
parseInt
(
dayC
)
+
"天前"
result
=
' '
+
parseInt
(
dayC
)
+
'天前'
;
}
else
if
(
hourC
>=
1
&&
hourC
<=
23
)
{
result
=
" "
+
parseInt
(
hourC
)
+
"小时前"
result
=
' '
+
parseInt
(
hourC
)
+
'小时前'
;
}
else
if
(
minC
>=
1
&&
minC
<=
59
)
{
result
=
" "
+
parseInt
(
minC
)
+
"分钟前"
result
=
' '
+
parseInt
(
minC
)
+
'分钟前'
;
}
else
if
(
diffValue
>=
0
&&
diffValue
<=
minute
)
{
result
=
"刚刚"
result
=
'刚刚'
;
}
console
.
log
(
result
)
return
result
}
console
.
log
(
result
)
;
return
result
;
}
;
onMounted
(()
=>
{
query
();
});
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/styles/main.css
View file @
12dfdf1c
...
...
@@ -14,4 +14,4 @@ body,
}
.vxe-modal--container
{
max-height
:
100vh
;
}
\ No newline at end of file
}
src/views/property/audit-manage/components/callDrawer.vue
View file @
12dfdf1c
...
...
@@ -76,7 +76,9 @@
type=
"datetime"
/>
<div>
<el-button
size=
"small"
disabled
@
click=
"changeLastTime('tomorrow')"
>
明天
</el-button>
<el-button
size=
"small"
disabled
@
click=
"changeLastTime('tomorrow')"
>
明天
</el-button
>
<el-button
size=
"small"
disabled
@
click=
"changeLastTime('tomorrowDay')"
>
后天
</el-button
>
...
...
@@ -219,7 +221,9 @@
<
template
#
footer
>
<div
style=
"flex: auto"
>
<el-button
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
v-if=
"props.mode === 'handle'"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
v-if=
"props.mode === 'handle'"
>
确定
</el-button
>
<template
v-else
>
<el-button
type=
"primary"
@
click=
"submitForm('pass')"
>
通过
</el-button>
<el-button
type=
"danger"
@
click=
"submitForm('rejected')"
>
拒绝
</el-button>
...
...
@@ -250,7 +254,7 @@
const
dialogImageUrl
=
ref
(
''
);
const
dialogVisible
=
ref
(
false
);
const
props
=
defineProps
({
mode
:
String
mode
:
String
,
});
const
emits
=
defineEmits
([
'success'
]);
const
tabObj
=
[
...
...
@@ -448,17 +452,37 @@
const
openModal
=
(
info
)
=>
{
showModal
.
value
=
true
;
currentInfo
.
value
=
info
;
form
.
trackTime
=
info
.
trackTime
form
.
remark
=
info
.
remark
form
.
phoneResultStatus
=
info
.
phoneResultStatus
resuleObj
.
childrenlabel
=
info
.
followStatus
form
.
nextTime
=
info
.
nextTime
form
.
notes
=
info
.
notes
?
info
.
notes
.
map
(
v
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
}))
:
[]
form
.
voices
=
info
.
voices
?
info
.
voices
.
map
(
v
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
}))
:
[]
form
.
images
=
info
.
images
?
info
.
images
.
map
(
v
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
}))
:
[]
form
.
others
=
info
.
others
?
info
.
others
.
map
(
v
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
}))
:
[]
form
.
trackTime
=
info
.
trackTime
;
form
.
remark
=
info
.
remark
;
form
.
phoneResultStatus
=
info
.
phoneResultStatus
;
resuleObj
.
childrenlabel
=
info
.
followStatus
;
form
.
nextTime
=
info
.
nextTime
;
form
.
notes
=
info
.
notes
?
info
.
notes
.
map
((
v
)
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
,
}))
:
[];
form
.
voices
=
info
.
voices
?
info
.
voices
.
map
((
v
)
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
,
}))
:
[];
form
.
images
=
info
.
images
?
info
.
images
.
map
((
v
)
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
,
}))
:
[];
form
.
others
=
info
.
others
?
info
.
others
.
map
((
v
)
=>
({
name
:
v
.
slice
(
v
.
lastIndexOf
(
'/'
)
+
1
,
v
.
length
),
url
:
envs
.
VITE_GLOB_API_URL_PREFIX
+
'/sys/static/'
+
v
,
}))
:
[];
tabledata
.
value
=
info
.
loans
;
console
.
log
(
'formform'
,
form
)
console
.
log
(
'formform'
,
form
)
;
};
const
submitForm
=
(
type
)
=>
{
saveTrackRecord
({
...
...
src/views/property/audit-manage/index.vue
View file @
12dfdf1c
<
template
>
<div
class=
"table-box"
>
<div>
<ProTable
:config=
"config"
ref=
"caseLRef"
:api=
"getTrackRecord"
:paramCallback=
"paramCallback"
>
<ProTable
:config=
"config"
ref=
"caseLRef"
:api=
"getTrackRecord"
:paramCallback=
"paramCallback"
>
<template
#
table_top
>
<div>
<el-tabs
v-model=
"activeName"
type=
"card
"
class=
"demo-tabs
"
@
tab-click=
"handleClick
"
>
<el-tab-pane
:label=
"item.label"
:name=
"item.value"
v-for=
"(item, index) in auditStatusOpt"
:key=
"index"
></el-tab-pane>
<el-tabs
v-model=
"activeName"
type=
"card"
class=
"demo-tabs"
@
tab-click=
"handleClick"
>
<el-tab-pane
:label=
"item.label
"
:name=
"item.value
"
v-for=
"(item, index) in auditStatusOpt
"
:key=
"index"
></el-tab-pane>
</el-tabs>
</div>
</
template
>
...
...
@@ -35,15 +40,11 @@
import
{
inject
}
from
'vue'
;
import
{
computed
}
from
'vue'
;
import
callDrawer
from
'./components/callDrawer.vue'
;
import
{
ElMessageBox
,
ElMessage
,
ElButton
}
from
'element-plus'
;
import
{
ElMessageBox
,
ElMessage
,
ElButton
}
from
'element-plus'
;
import
{
onMounted
}
from
'vue'
;
import
{
getAppEnvConfig
}
from
'@/utils/env'
;
import
{
getTrackRecord
}
from
'@/api/property'
;
import
{
batchSave
}
from
'@/api/audit'
;
import
{
getTrackRecord
}
from
'@/api/property'
;
import
{
batchSave
}
from
'@/api/audit'
;
const
envs
=
getAppEnvConfig
();
import
{
reactive
,
ref
}
from
'vue'
;
const
downloadfile
=
inject
(
'download'
);
...
...
@@ -93,13 +94,13 @@
{
label
:
'未稽核'
,
value
:
'un_audit'
},
{
label
:
'稽核中'
,
value
:
'audit'
},
{
label
:
'已拒绝'
,
value
:
'rejected'
},
{
label
:
'已完成'
,
value
:
'complete'
}
{
label
:
'已完成'
,
value
:
'complete'
}
,
];
const
activeName
=
ref
(
'un_audit'
)
const
callMode
=
ref
(
''
)
const
activeName
=
ref
(
'un_audit'
)
;
const
callMode
=
ref
(
''
)
;
const
paramCallback
=
(
param
)
=>
{
const
obj
=
JSON
.
parse
(
JSON
.
stringify
(
param
));
obj
[
'auditStatus'
]
=
activeName
.
value
obj
[
'auditStatus'
]
=
activeName
.
value
;
if
(
obj
[
'trackTime'
])
{
if
(
obj
[
'trackTime'
][
0
])
obj
[
'trackTimeBegin'
]
=
obj
[
'trackTime'
][
0
];
if
(
obj
[
'trackTime'
][
1
])
obj
[
'trackTimeEnd'
]
=
obj
[
'trackTime'
][
1
];
...
...
@@ -117,14 +118,14 @@
return
obj
;
};
const
callTelephone
=
(
row
,
type
)
=>
{
callMode
.
value
=
type
callMode
.
value
=
type
;
callDrawerRef
.
value
.
openModal
(
JSON
.
parse
(
JSON
.
stringify
(
row
)));
};
const
handleClick
=
()
=>
{
const
handleClick
=
()
=>
{
setTimeout
(()
=>
{
query
()
query
()
;
},
300
);
}
}
;
const
config
=
computed
(()
=>
{
return
{
columns
:
[
...
...
@@ -134,14 +135,10 @@
field
:
'caseId'
,
title
:
'案件ID'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
loans
.
map
(
v
=>
v
.
caseId
).
join
(
','
)}
<
/
>
);
return
<>
{
row
.
loans
.
map
((
v
)
=>
v
.
caseId
).
join
(
','
)}
<
/>
;
},
},
},
...
...
@@ -151,7 +148,8 @@
width
:
100
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
}
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
},
labelWidth
:
85
,
},
},
{
...
...
@@ -161,26 +159,44 @@
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
},
labelWidth
:
85
,
},
},
{
field
:
'guarantor.name'
,
title
:
'联系人姓名'
,
width
:
110
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'guarantorName'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'guarantorName'
,
labelWidth
:
85
},
},
{
field
:
'guarantor.phone'
,
title
:
'联系人号码'
,
width
:
110
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'guarantorPhone'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'guarantorPhone'
,
labelWidth
:
85
,
},
labelWidth
:
85
,
},
{
field
:
'followStatus'
,
title
:
'拨打跟进结果'
,
width
:
120
,
enum
:
followStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
,
multiple
:
true
},
span
:
1
,
defaultValue
:
[
'progress'
,
'pass_on'
,
'no_pass'
,
'Claims_unrelated_to_creditors'
,
'Claiming_not_to_be_myself'
]
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
,
multiple
:
true
,
'collapse-tags'
:
true
},
labelWidth
:
85
,
defaultValue
:
[
'progress'
,
'pass_on'
,
'no_pass'
,
'Claims_unrelated_to_creditors'
,
'Claiming_not_to_be_myself'
,
],
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
...
...
@@ -199,7 +215,7 @@
title
:
'拨打处置状态'
,
width
:
120
,
enum
:
phoneResultStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
85
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
...
...
@@ -233,7 +249,7 @@
field
:
'remark'
,
title
:
'备注'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'voices'
,
...
...
@@ -313,7 +329,7 @@
field
:
'code'
,
title
:
'操作'
,
width
:
80
,
visible
:
(
activeName
.
value
===
'audit'
||
activeName
.
value
===
'complete'
)
?
true
:
false
,
visible
:
activeName
.
value
===
'audit'
||
activeName
.
value
===
'complete'
?
true
:
false
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
if
(
activeName
.
value
===
'audit'
)
{
...
...
@@ -323,7 +339,7 @@
处理
<
/ElButton
>
<
/
>
)
)
;
}
else
{
return
(
<>
...
...
@@ -331,14 +347,14 @@
审核
<
/ElButton
>
<
/
>
)
)
;
}
}
}
}
,
}
,
},
],
onCheckboxChange
:
onCheckboxChange
}
onCheckboxChange
:
onCheckboxChange
,
}
;
});
const
preview
=
(
item
,
type
)
=>
{
const
list
=
[];
...
...
@@ -354,14 +370,14 @@
};
const
audit
=
async
(
row
)
=>
{
const
list
=
caseLRef
.
value
.
element
.
getCheckboxRecords
();
if
(
!
list
.
length
)
return
if
(
!
list
.
length
)
return
;
await
ElMessageBox
.
confirm
(
'是否确认发起稽核勾选项?'
,
'提示'
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
});
const
ids
=
list
.
map
((
v
)
=>
v
.
id
).
join
(
','
);
await
batchSave
({
ids
:
ids
});
await
batchSave
({
ids
:
ids
});
ElMessage
({
type
:
'success'
,
...
...
src/views/property/case-allocation/index.vue
View file @
12dfdf1c
...
...
@@ -107,14 +107,14 @@
const
config
=
reactive
({
columns
:
[
{
type
:
'checkbox'
,
title
:
''
,
width
:
40
},
{
field
:
'caseId'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
},
width
:
80
},
{
field
:
'caseId'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
,
labelWidth
:
85
},
width
:
80
},
{
field
:
'arealist'
,
enum
:
citydata
,
title
:
'所属区域'
,
width
:
80
,
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
search
:
{
el
:
'cascader'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'cascader'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
slots
:
{
default
:
({
row
})
=>
{
return
(
...
...
@@ -131,20 +131,20 @@
field
:
'loanPlatform.name'
,
title
:
'借款机构'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'payOrg'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'payOrg'
,
labelWidth
:
85
},
},
{
field
:
'manageOrg.orgName'
,
title
:
'资管公司'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'manageOrg'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'manageOrg'
,
labelWidth
:
85
},
},
{
field
:
'distributeStatus'
,
title
:
'分配状态'
,
width
:
80
,
enum
:
distributeStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
85
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
...
...
@@ -162,7 +162,7 @@
field
:
'tenant.name'
,
title
:
'调解中心'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'discount'
,
...
...
@@ -173,50 +173,58 @@
field
:
'cpe.name'
,
title
:
'CPE'
,
width
:
60
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'cpeName'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'cpeName'
,
labelWidth
:
85
},
},
{
field
:
'tenantTime'
,
title
:
'分配中心日期'
,
width
:
100
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
}
},
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
},
labelWidth
:
85
,
},
},
{
field
:
'commissionAmount'
,
title
:
'债权总额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'cpeDate'
,
title
:
'分配CPE日期'
,
width
:
100
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
}
},
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
},
labelWidth
:
85
,
},
},
{
field
:
'borrower.name'
,
title
:
'借款人姓名'
,
width
:
100
,
search
:
{
el
:
'input'
,
key
:
'borrowerName'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
key
:
'borrowerName'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'sumRepayAmount'
,
title
:
'已还总额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'borrower.idCard'
,
title
:
'身份证'
,
width
:
120
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'idCard'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'idCard'
,
labelWidth
:
85
},
},
{
field
:
'borrower.phone'
,
key
:
'borrowerPhone'
,
title
:
'手机'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'principalBalance'
,
...
...
src/views/property/case-detail/components/callDrawer.vue
View file @
12dfdf1c
...
...
@@ -433,26 +433,28 @@
currentInfo
.
value
=
info
;
currentDetail
.
value
=
detail
;
console
.
log
(
'currentInfo'
,
currentInfo
.
value
,
currentDetail
.
value
);
form
.
sum
=
0
form
.
phoneResultStatus
=
''
form
.
remark
=
''
form
.
nextTime
=
null
form
.
trackTime
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
form
.
images
=
[]
form
.
notes
=
[]
form
.
others
=
[]
form
.
voices
=
[]
resuleObj
.
label
=
'本人可联'
resuleObj
.
childrenlabel
=
null
form
.
sum
=
0
;
form
.
phoneResultStatus
=
''
;
form
.
remark
=
''
;
form
.
nextTime
=
null
;
form
.
trackTime
=
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
)
;
form
.
images
=
[]
;
form
.
notes
=
[]
;
form
.
others
=
[]
;
form
.
voices
=
[]
;
resuleObj
.
label
=
'本人可联'
;
resuleObj
.
childrenlabel
=
null
;
tabledata
.
value
=
caselist
;
};
const
submitForm
=
()
=>
{
if
(
!
form
.
phoneResultStatus
)
return
ElMessage
.
warning
({
message
:
'跟进状态必选'
});
if
(
!
resuleObj
.
childrenlabel
)
return
ElMessage
.
warning
({
message
:
'跟进结果必选'
});
if
(
!
form
.
phoneResultStatus
)
return
ElMessage
.
warning
({
message
:
'跟进状态必选'
,
});
if
(
!
resuleObj
.
childrenlabel
)
return
ElMessage
.
warning
({
message
:
'跟进结果必选'
,
});
saveTrackRecord
({
loans
:
tabledata
.
value
,
guarantor
:
currentInfo
.
value
,
...
...
src/views/property/case-detail/index.vue
View file @
12dfdf1c
...
...
@@ -17,7 +17,7 @@
<el-button
type=
"primary"
@
click=
"reduce"
>
减免申请
</el-button>
<el-button
type=
"primary"
@
click=
"split"
>
分期申请
</el-button>
</div>
<div
class=
"detail-steps"
style=
"display:
none;
"
>
<div
class=
"detail-steps"
style=
"display:
none
"
>
<el-steps
:active=
"activeStep"
>
<el-step
:title=
"item.title"
...
...
@@ -230,7 +230,7 @@
getByStages
,
listByBorrower
,
getRepayRecords
,
getGuarantors
getGuarantors
,
}
from
'@/api/property'
;
import
{
Picture
,
Download
}
from
'@element-plus/icons-vue'
;
import
{
saveAudit
}
from
'@/api/audit'
;
...
...
@@ -481,7 +481,7 @@
}
},
},
}
}
,
],
toolbarConfig
:
{
enabled
:
false
},
});
...
...
@@ -768,12 +768,10 @@
const
audit
=
(
row
)
=>
{
saveAudit
({
trackRecord
:
{
id
:
row
.
id
}
}).
then
(
res
=>
{
})
}
id
:
row
.
id
,
},
}).
then
((
res
)
=>
{});
};
const
reduceConfig
=
reactive
({
columns
:
[
{
...
...
@@ -887,10 +885,10 @@
onBeforeMount
(
async
()
=>
{
const
id
=
JSON
.
parse
(
route
.
query
.
id
);
const
{
result
}
=
await
getCredit
(
id
);
console
.
log
(
'result'
,
result
)
console
.
log
(
'result'
,
result
)
;
detail
.
value
=
result
;
if
(
14
)
{
getGuarantorsList
(
14
)
getGuarantorsList
(
14
)
;
getTrackRecordList
(
14
);
listByBorrower
(
14
).
then
((
res
)
=>
{
if
(
res
.
result
&&
res
.
result
)
{
...
...
src/views/property/case-manage/index.vue
View file @
12dfdf1c
<
template
>
<div
class=
"
card content
-box"
>
<div
class=
"
table
-box"
>
<div
class=
"table-inner"
>
<ProTable
:config=
"config"
ref=
"caseLRef"
:api=
"getCreditPage"
>
<!--
<ProTable
:config=
"config"
ref=
"caseLRef"
:data=
"data"
>
-->
...
...
@@ -73,18 +73,18 @@
];
const
config
=
reactive
({
columns
:
[
{
field
:
'caseId'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
},
width
:
80
},
{
field
:
'caseId'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
,
labelWidth
:
85
},
width
:
80
},
{
field
:
'loanPlatform.name'
,
title
:
'借款机构'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'payOrg'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'payOrg'
,
labelWidth
:
85
},
},
{
field
:
'manageOrg.orgName'
,
title
:
'资管公司'
,
width
:
100
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'manageOrg'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'manageOrg'
,
labelWidth
:
85
},
},
{
field
:
'borrower.name'
,
...
...
@@ -94,6 +94,7 @@
el
:
'input'
,
key
:
'borrowerName'
,
props
:
{
clearable
:
true
},
labelWidth
:
85
,
},
},
{
...
...
@@ -104,6 +105,7 @@
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'borrowerIdCard'
,
labelWidth
:
85
,
},
},
{
...
...
@@ -114,6 +116,7 @@
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'borrowerPhone'
,
labelWidth
:
85
,
},
},
{
...
...
@@ -125,63 +128,67 @@
field
:
'commissionAmount'
,
title
:
'委案金额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'sumRepayAmount'
,
title
:
'累计还款金额'
,
width
:
1
1
0
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
width
:
1
0
0
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'sumReductionAmount'
,
title
:
'累计减免金额'
,
width
:
1
1
0
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
width
:
1
0
0
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'remainingAmount'
,
title
:
'剩余待还金额'
,
width
:
1
1
0
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
width
:
1
0
0
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'cpe.username'
,
title
:
'CPE'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'cpeName'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'cpeName'
,
labelWidth
:
85
},
},
{
field
:
'cpeDate'
,
title
:
'分配CPE日期'
,
width
:
110
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'date'
,
valueFormat
:
'YYYY-MM-DD'
}
},
width
:
100
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'date'
,
valueFormat
:
'YYYY-MM-DD'
},
labelWidth
:
85
,
},
},
{
field
:
'principalBalance'
,
title
:
'本金余额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'debitInterest'
,
title
:
'欠息额'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'commission'
,
title
:
'手续费'
,
width
:
80
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
,
labelWidth
:
85
},
},
{
field
:
'followStatus'
,
title
:
'跟进结果'
,
width
:
80
,
enum
:
followStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
85
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
...
...
@@ -200,7 +207,7 @@
title
:
'跟进状态'
,
width
:
80
,
enum
:
phoneResultStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
85
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
...
...
@@ -219,15 +226,13 @@
title
:
'案件状态'
,
width
:
80
,
enum
:
caseStatusOpt
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
labelWidth
:
85
},
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
caseStatus
?
caseStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
).
label
:
''
}
{
row
.
caseStatus
?
caseStatusOpt
.
find
((
v
)
=>
v
.
value
===
row
.
caseStatus
).
label
:
''
}
<
/
>
);
},
...
...
src/views/property/import/index.vue
View file @
12dfdf1c
...
...
@@ -46,7 +46,7 @@
>
</div>
</div>
<div
class=
"flex-1
importwrapper"
>
<div
class=
"flex-1 importwrapper"
>
<div
class=
"mb-1 text-center"
>
3、上传数据
</div>
<div
class=
"pr-4"
>
<el-form
ref=
"formRef"
inline
:model=
"form"
:rules=
"rules"
label-width=
"85px"
>
...
...
@@ -136,18 +136,18 @@
{
field
:
'code'
,
title
:
'导入编号'
,
search
:
{
el
:
'input'
,
span
:
1.5
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
{
field
:
'contractNo'
,
title
:
'委案合同'
,
search
:
{
el
:
'input'
,
span
:
1.5
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
},
{
field
:
'code'
,
title
:
'资产类型'
,
enum
:
options
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
}
,
span
:
1.5
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
}
},
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
},
{
...
...
@@ -205,7 +205,6 @@
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'daterange'
,
valueFormat
:
'YYYY-MM-DD'
},
span
:
1.5
,
},
},
],
...
...
@@ -290,10 +289,10 @@
uploadRef
.
value
.
clearFiles
();
form
.
path
=
''
;
query
();
form
[
'path'
]
=
''
form
[
'code'
]
=
''
form
[
'contractNo'
]
=
''
form
[
'discount'
]
=
''
form
[
'path'
]
=
''
;
form
[
'code'
]
=
''
;
form
[
'contractNo'
]
=
''
;
form
[
'discount'
]
=
''
;
});
};
onMounted
(()
=>
{
...
...
src/views/system/tenantManage/index.vue
View file @
12dfdf1c
...
...
@@ -28,17 +28,15 @@
{
type
:
'checkbox'
,
width
:
50
},
{
field
:
'name'
,
title
:
'调解中心名称'
,
search
:
{
el
:
'input'
}
},
{
field
:
'code'
,
title
:
'调解中心编码'
,
search
:
{
el
:
'input'
}
},
{
field
:
'adminUser'
,
title
:
'负责人'
},
{
field
:
'phone'
,
title
:
'负责人手机'
},
{
field
:
'adminUser'
,
title
:
'负责人'
},
{
field
:
'phone'
,
title
:
'负责人手机'
},
{
field
:
''
,
title
:
'成员数量'
,
width
:
80
,
slots
:
{
default
:
({
row
})
=>
{
return
(
<
div
>
{
row
.
users
.
length
}
<
/div
>
);
return
<
div
>
{
row
.
users
.
length
}
<
/div>
;
},
},
},
...
...
src/views/workplace/todo/index.vue
View file @
12dfdf1c
<
template
>
<div
class=
"table-box"
>
<ProTable
ref=
"proTable"
:config=
"config"
:api=
"pageMyMesage"
>
</ProTable>
<ProTable
ref=
"proTable"
:config=
"config"
:api=
"pageMyMesage"
>
</ProTable>
</div>
</
template
>
...
...
@@ -13,22 +12,22 @@
import
{
pageMyMesage
}
from
'@/api/message'
;
const
statusOpt
=
[
{
label
:
'正常'
,
value
:
'normal'
},
{
label
:
'已撤销'
,
value
:
'cancel'
}
{
label
:
'已撤销'
,
value
:
'cancel'
}
,
];
const
messageTypeOpt
=
[
{
label
:
'通知'
,
value
:
'system'
},
{
label
:
'任务消息'
,
value
:
'task'
}
]
{
label
:
'任务消息'
,
value
:
'task'
}
,
]
;
const
sendTypeOpt
=
[
{
label
:
'群发'
,
value
:
'all'
},
{
label
:
'指定用户发送'
,
value
:
'user'
},
{
label
:
'指定角色发送'
,
value
:
'role'
},
{
label
:
'指定调节中心发送'
,
value
:
'tentant'
},
]
]
;
const
serviceTypeOpt
=
[
{
label
:
'流程'
,
value
:
'bpm'
},
{
label
:
'提示'
,
value
:
'tip'
}
]
{
label
:
'提示'
,
value
:
'tip'
}
,
]
;
const
proTable
=
ref
();
const
socketStore
=
useSocketStore
();
const
config
=
reactive
({
...
...
@@ -44,7 +43,7 @@
field
:
'sender.username'
,
title
:
'发送人名称'
,
width
:
160
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'senderName'
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
},
key
:
'senderName'
},
},
{
field
:
'status'
,
...
...
@@ -77,14 +76,14 @@
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
messageType
?
messageTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
messageType
).
label
:
''
}
<
/
>
);
},
return
(
<>
{
row
.
messageType
?
messageTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
messageType
).
label
:
''
}
<
/
>
);
},
},
},
{
...
...
@@ -96,14 +95,10 @@
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
sendType
?
sendTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
sendType
).
label
:
''
}
<
/
>
);
},
return
(
<>
{
row
.
sendType
?
sendTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
sendType
).
label
:
''
}
<
/
>
);
},
},
},
{
...
...
@@ -115,22 +110,25 @@
fieldNames
:
{
label
:
'label'
,
value
:
'value'
},
slots
:
{
default
:
({
row
})
=>
{
return
(
<>
{
row
.
serviceType
?
serviceTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
serviceType
).
label
:
''
}
<
/
>
);
},
return
(
<>
{
row
.
serviceType
?
serviceTypeOpt
.
find
((
v
)
=>
v
.
value
===
row
.
serviceType
).
label
:
''
}
<
/
>
);
},
},
}
}
,
],
});
const
query
=
()
=>
proTable
.
value
?.
search
();
watch
(()
=>
socketStore
.
msg
,
(
newValue
,
oldValue
)
=>
{
query
()
});
watch
(
()
=>
socketStore
.
msg
,
(
newValue
,
oldValue
)
=>
{
query
();
}
);
onMounted
(()
=>
{
query
();
});
...
...
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