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
1c863f1d
Commit
1c863f1d
authored
Dec 30, 2024
by
沈翠玲
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
资产详情
parent
0724314c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
2128 additions
and
978 deletions
+2128
-978
font.scss
src/assets/fonts/font.scss
+3
-3
iconfont.scss
src/assets/iconfont/iconfont.scss
+13
-13
bootstrap.js
src/bootstrap.js
+1
-1
index.scss
src/layouts/components/Tabs/index.scss
+1
-1
allocationModal.vue
...s/property/case-allocation/components/allocationModal.vue
+226
-198
callDrawer.vue
src/views/property/case-detail/components/callDrawer.vue
+444
-0
reduceDrawer.vue
src/views/property/case-detail/components/reduceDrawer.vue
+170
-0
repairModal.vue
src/views/property/case-detail/components/repairModal.vue
+165
-0
splitDrawer.vue
src/views/property/case-detail/components/splitDrawer.vue
+265
-0
index.vue
src/views/property/case-detail/index.vue
+544
-503
caseModal.vue
src/views/property/case-manage/components/caseModal.vue
+226
-197
index.vue
src/views/property/case-manage/index.vue
+45
-46
caseDetailModal.vue
src/views/property/import/components/caseDetailModal.vue
+3
-5
index.vue
src/views/property/import/index.vue
+22
-11
No files found.
src/assets/fonts/font.scss
View file @
1c863f1d
@font-face
{
@font-face
{
font-family
:
YouSheBiaoTiHei
;
font-family
:
YouSheBiaoTiHei
;
src
:
url(
"./YouSheBiaoTiHei.ttf"
)
;
src
:
url(
'./YouSheBiaoTiHei.ttf'
)
;
}
}
@font-face
{
@font-face
{
font-family
:
MetroDF
;
font-family
:
MetroDF
;
src
:
url(
"./MetroDF.ttf"
)
;
src
:
url(
'./MetroDF.ttf'
)
;
}
}
@font-face
{
@font-face
{
font-family
:
DIN
;
font-family
:
DIN
;
src
:
url(
"./DIN.otf"
)
;
src
:
url(
'./DIN.otf'
)
;
}
}
src/assets/iconfont/iconfont.scss
View file @
1c863f1d
@font-face
{
@font-face
{
font-family
:
iconfont
;
/* Project id 2667653 */
font-family
:
iconfont
;
/* Project id 2667653 */
src
:
url(
"iconfont.ttf?t=1719667796161")
format
(
"truetype"
);
src
:
url(
'iconfont.ttf?t=1719667796161')
format
(
'truetype'
);
}
}
.iconfont
{
.iconfont
{
font-family
:
iconfont
!
important
;
font-family
:
iconfont
!
important
;
...
@@ -12,40 +12,40 @@
...
@@ -12,40 +12,40 @@
}
}
.
icon-yiwen
:
:
before
{
.
icon-yiwen
:
:
before
{
font-size
:
15px
;
font-size
:
15px
;
content
:
"\e693"
;
content
:
'\e693'
;
}
}
.
icon-xiala
:
:
before
{
.
icon-xiala
:
:
before
{
content
:
"\e62b"
;
content
:
'\e62b'
;
}
}
.
icon-tuichu
:
:
before
{
.
icon-tuichu
:
:
before
{
content
:
"\e645"
;
content
:
'\e645'
;
}
}
.
icon-xiaoxi
:
:
before
{
.
icon-xiaoxi
:
:
before
{
font-size
:
21
.2px
;
font-size
:
21
.2px
;
content
:
"\e61f"
;
content
:
'\e61f'
;
}
}
.
icon-zhuti
:
:
before
{
.
icon-zhuti
:
:
before
{
font-size
:
22
.4px
;
font-size
:
22
.4px
;
content
:
"\e638"
;
content
:
'\e638'
;
}
}
.
icon-sousuo
:
:
before
{
.
icon-sousuo
:
:
before
{
content
:
"\e611"
;
content
:
'\e611'
;
}
}
.
icon-contentright
:
:
before
{
.
icon-contentright
:
:
before
{
content
:
"\e8c9"
;
content
:
'\e8c9'
;
}
}
.
icon-contentleft
:
:
before
{
.
icon-contentleft
:
:
before
{
content
:
"\e8ca"
;
content
:
'\e8ca'
;
}
}
.
icon-fangda
:
:
before
{
.
icon-fangda
:
:
before
{
content
:
"\e826"
;
content
:
'\e826'
;
}
}
.
icon-suoxiao
:
:
before
{
.
icon-suoxiao
:
:
before
{
content
:
"\e641"
;
content
:
'\e641'
;
}
}
.
icon-zhongyingwen
:
:
before
{
.
icon-zhongyingwen
:
:
before
{
content
:
"\e8cb"
;
content
:
'\e8cb'
;
}
}
.
icon-huiche
:
:
before
{
.
icon-huiche
:
:
before
{
content
:
"\e637"
;
content
:
'\e637'
;
}
}
src/bootstrap.js
View file @
1c863f1d
...
@@ -25,7 +25,7 @@ export async function bootstrapInstall() {
...
@@ -25,7 +25,7 @@ export async function bootstrapInstall() {
// 挂载路由
// 挂载路由
setupRouter
(
app
);
setupRouter
(
app
);
app
.
component
(
'ProTable'
,
ProTable
)
app
.
component
(
'ProTable'
,
ProTable
)
;
// 路由准备就绪后挂载 APP 实例
// 路由准备就绪后挂载 APP 实例
await
router
.
isReady
();
await
router
.
isReady
();
...
...
src/layouts/components/Tabs/index.scss
View file @
1c863f1d
...
@@ -56,7 +56,7 @@
...
@@ -56,7 +56,7 @@
bottom
:
0
;
bottom
:
0
;
width
:
100%
;
width
:
100%
;
height
:
0
;
height
:
0
;
content
:
""
;
content
:
''
;
border-bottom
:
2px
solid
var
(
--
el-color-primary
)
!
important
;
border-bottom
:
2px
solid
var
(
--
el-color-primary
)
!
important
;
}
}
}
}
...
...
src/views/property/case-allocation/components/allocationModal.vue
View file @
1c863f1d
This diff is collapsed.
Click to expand it.
src/views/property/case-detail/components/callDrawer.vue
0 → 100644
View file @
1c863f1d
This diff is collapsed.
Click to expand it.
src/views/property/case-detail/components/reduceDrawer.vue
0 → 100644
View file @
1c863f1d
<
template
>
<el-drawer
v-model=
"showModal"
title=
"减免申请"
:size=
"800"
direction=
"rtl"
:before-close=
"onHide"
>
<div
class=
"h-full overflow-auto flex-col flex mydrawer"
>
<el-form
ref=
"formRef"
inline
:model=
"form"
:rules=
"rules"
label-width=
"110px"
label-position=
"left"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免类型:"
prop=
"name"
label-width=
"82px"
>
<el-select
v-model=
"form.relation"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免申请时间:"
prop=
"code"
>
<el-date-picker
v-model=
"form.datetime"
type=
"datetime"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免到期时间:"
prop=
"code"
>
<el-date-picker
v-model=
"form.datetime"
type=
"datetime"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免金额(总计):"
prop=
"name"
label-width=
"120px"
>
4444
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"减免案件数:"
prop=
"role"
>
1
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"应还金额:"
prop=
"relation"
>
<div>
<p>
3000
</p>
<p
class=
"text-red-600 leading-3"
>
*应还金额
</p>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div>
<ProTable
:config=
"config"
:data=
"tabledata"
:showPagination=
"false"
:showToolBar=
"false"
>
<template
#
table_top
>
<p
class=
"font-bold"
>
关联案件:
</p>
</
template
>
</ProTable>
</div>
</div>
<
template
#
footer
>
<div
style=
"flex: auto"
>
<el-button
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确定
</el-button>
</div>
</
template
>
</el-drawer>
</template>
<
script
setup
lang=
"jsx"
name=
"reduceDrawer"
>
import
dayjs
from
'dayjs'
;
import
{
computed
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
const
showModal
=
ref
(
false
);
const
tabledata
=
ref
([]);
const
form
=
reactive
({
name
:
''
,
relation
:
''
,
datetime
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
});
const
currentAccount
=
ref
({
people
:
0
,
case
:
0
,
money
:
0
});
const
onHide
=
(
done
)
=>
{
currentAccount
.
value
=
{
people
:
0
,
case
:
0
,
money
:
0
};
done
();
};
const
options
=
[
{
value
:
'Option1'
,
label
:
'Option1'
,
},
{
value
:
'Option2'
,
label
:
'Option2'
,
},
{
value
:
'Option3'
,
label
:
'Option3'
,
},
{
value
:
'Option4'
,
label
:
'Option4'
,
},
{
value
:
'Option5'
,
label
:
'Option5'
,
},
];
const
config
=
reactive
({
minHeight
:
200
,
columns
:
[
{
field
:
'code'
,
title
:
'案件ID'
,
},
{
field
:
'code'
,
title
:
'产品'
,
},
{
field
:
'code'
,
title
:
'借款机构'
,
},
{
field
:
'code'
,
title
:
'委案金额'
,
},
{
field
:
'code'
,
title
:
'累计减免金额'
,
},
{
field
:
'code'
,
title
:
'累计还款金额'
,
},
{
field
:
'code'
,
title
:
'剩余待还金额'
,
},
],
toolbarConfig
:
{
enabled
:
false
},
});
tabledata
.
value
=
[
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
,
num
:
1
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
];
const
openModal
=
(
account
)
=>
{
showModal
.
value
=
true
;
currentAccount
.
value
=
{
people
:
333
,
case
:
44
,
money
:
1111
};
};
const
submitForm
=
()
=>
{};
defineExpose
({
openModal
,
});
</
script
>
<
style
lang=
"scss"
scoped
>
.mydrawer
{
:deep
(
.card
)
{
padding
:
0
;
border
:
none
;
}
}
</
style
>
src/views/property/case-detail/components/repairModal.vue
0 → 100644
View file @
1c863f1d
<
template
>
<vxe-modal
v-model=
"showModal"
title=
"修复申请"
@
hide=
"onHide"
height=
"582"
width=
"1003"
show-footer
esc-closable
>
<div
class=
"w-full px-3 h-full overflow-auto flex-col flex"
>
<div
class=
"box-title"
>
案人基本信息
</div>
<el-form
ref=
"formRef"
inline
:model=
"form"
:rules=
"rules"
label-width=
"100px"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-form-item
class=
"w-full"
label=
"姓名:"
prop=
"name"
label-width=
"72px"
>
{{
currentAccount
.
people
}}
</el-form-item>
</el-col>
<el-col
:span=
"9"
>
<el-form-item
class=
"w-full"
label=
"身份证号:"
prop=
"code"
label-width=
"85px"
>
{{
currentAccount
.
people
}}
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
class=
"w-full"
label=
"联系人姓名:"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入账号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"号码类型:"
prop=
"role"
>
修复
</el-form-item>
</el-col>
<el-col
:span=
"10"
>
<el-form-item
class=
"w-full"
label=
"与案人关系:"
prop=
"relation"
>
<el-select
v-model=
"form.relation"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
class=
"w-full"
label=
"修复前联系号码:"
prop=
"role"
label-width=
"140px"
>
{{
currentAccount
.
people
}}
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
class=
"flex-1"
>
<ProTable
:config=
"config"
:data=
"tabledata"
:showPagination=
"false"
:showToolBar=
"true"
>
<template
#
left_buttons
>
<el-button
type=
"primary"
>
下载申请
</el-button>
<el-button
type=
"primary"
>
审批
</el-button>
<el-button
type=
"primary"
>
下载
</el-button>
<el-button
type=
"primary"
>
批量修复上传
</el-button>
</
template
>
</ProTable>
</div>
</div>
<
template
#
footer
>
<el-button
type=
"default"
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确定
</el-button>
</
template
>
</vxe-modal>
</template>
<
script
setup
lang=
"jsx"
name=
"allocationModal"
>
import
{
computed
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
const
data
=
ref
([]);
const
mytransfer
=
ref
();
const
tabledata
=
ref
([]);
const
showModal
=
ref
(
false
);
const
currentAccount
=
ref
({
people
:
0
,
case
:
0
,
money
:
0
});
const
form
=
reactive
({
name
:
''
,
relation
:
''
,
});
const
radio
=
ref
(
0
);
const
step
=
ref
(
0
);
const
onHide
=
()
=>
{
currentAccount
.
value
=
{
people
:
0
,
case
:
0
,
money
:
0
};
};
const
openModal
=
(
account
)
=>
{
showModal
.
value
=
true
;
currentAccount
.
value
=
{
people
:
333
,
case
:
44
,
money
:
1111
};
step
.
value
=
0
;
radio
.
value
=
0
;
};
const
submitForm
=
()
=>
{
if
(
step
.
value
||
radio
.
value
===
0
)
{
}
else
{
step
.
value
=
1
;
}
};
const
options
=
[
{
value
:
'Option1'
,
label
:
'Option1'
,
},
{
value
:
'Option2'
,
label
:
'Option2'
,
},
{
value
:
'Option3'
,
label
:
'Option3'
,
},
{
value
:
'Option4'
,
label
:
'Option4'
,
},
{
value
:
'Option5'
,
label
:
'Option5'
,
},
];
const
config
=
computed
(()
=>
{
return
{
columns
:
[
{
type
:
'checkbox'
,
width
:
50
},
{
type
:
'seq'
,
width
:
50
},
{
field
:
'code'
,
title
:
'联系人姓名'
,
},
{
field
:
'code'
,
title
:
'与债权人关系'
,
},
{
field
:
'code'
,
title
:
'号码类型'
,
},
],
};
});
tabledata
.
value
=
[
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
,
num
:
1
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
];
defineExpose
({
openModal
,
});
</
script
>
<
style
lang=
"scss"
scoped
>
.box-title
{
font-weight
:
600
;
font-size
:
18px
;
color
:
#000000
;
line-height
:
45px
;
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0
.06
);
margin-bottom
:
10px
;
}
</
style
>
src/views/property/case-detail/components/splitDrawer.vue
0 → 100644
View file @
1c863f1d
<
template
>
<el-drawer
v-model=
"showModal"
title=
"分期申请"
:size=
"850"
direction=
"rtl"
:before-close=
"onHide"
>
<div
class=
"h-full flex-col flex mydrawer pb-2"
>
<div>
<ProTable
:config=
"config"
:data=
"tabledata"
:showPagination=
"false"
:showToolBar=
"false"
>
<template
#
table_top
>
<p
class=
"font-bold"
>
关联案件:
</p>
</
template
>
</ProTable>
</div>
<div
class=
"flex"
>
<div
class=
"mt-3 pr-8 w-2/5"
>
<el-form
ref=
"formRef"
inline
:model=
"form"
:rules=
"rules"
label-width=
"110px"
label-position=
"left"
>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"剩余待还总额:"
prop=
"name"
>
{{ form.sum }}
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"还款总额:"
prop=
"code"
>
<el-input
v-model=
"form.num"
placeholder=
"请输入"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"分期申请时间:"
prop=
"code"
>
<el-date-picker
v-model=
"form.datetime"
class=
"w-full"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"还款期数:"
prop=
"name"
>
<el-select
v-model=
"form.splitnum"
placeholder=
"请选择"
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"首期还款日:"
prop=
"code"
>
<el-date-picker
class=
"w-full"
v-model=
"form.datetime"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"非首期还款日:"
prop=
"code"
>
<el-date-picker
v-model=
"form.datetime"
class=
"w-full"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
/>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
class=
"w-full"
label=
"分期生效时间:"
prop=
"code"
>
<el-date-picker
v-model=
"form.datetime"
class=
"w-full"
format=
"YYYY-MM-DD HH:mm:ss"
type=
"datetime"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div
class=
"w-3/5"
>
<ProTable
:config=
"splitconfig"
:data=
"splitdata"
:showPagination=
"false"
>
<
template
#
right_tools
>
<el-button
type=
"primary"
@
click=
"editFirst = !editFirst"
class=
"mr-1"
>
{{
editFirst
?
'确定'
:
'修改'
}}
</el-button>
</
template
>
</ProTable>
<div
class=
"flex"
>
<div
class=
"ml-auto text-gray-400"
>
总计: xxxxx
</div>
</div>
</div>
</div>
</div>
<
template
#
footer
>
<div
style=
"flex: auto"
>
<el-button
@
click=
"showModal = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确定
</el-button>
</div>
</
template
>
</el-drawer>
</template>
<
script
setup
lang=
"jsx"
name=
"reduceDrawer"
>
import
dayjs
from
'dayjs'
;
import
{
computed
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
ElInputNumber
}
from
'element-plus'
;
const
showModal
=
ref
(
false
);
const
editFirst
=
ref
(
false
);
const
tabledata
=
ref
([]);
const
splitdata
=
ref
([]);
const
form
=
reactive
({
sum
:
0
,
num
:
0
,
splitnum
:
2
,
datetime
:
dayjs
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
});
const
currentAccount
=
ref
({
people
:
0
,
case
:
0
,
money
:
0
});
const
onHide
=
(
done
)
=>
{
currentAccount
.
value
=
{
people
:
0
,
case
:
0
,
money
:
0
};
done
();
};
const
options
=
[
{
value
:
'Option1'
,
label
:
'Option1'
,
},
{
value
:
'Option2'
,
label
:
'Option2'
,
},
{
value
:
'Option3'
,
label
:
'Option3'
,
},
{
value
:
'Option4'
,
label
:
'Option4'
,
},
{
value
:
'Option5'
,
label
:
'Option5'
,
},
];
const
selectdList
=
ref
([]);
const
onCheckboxChange
=
(
row
)
=>
{
selectdList
.
value
=
row
.
records
;
};
const
config
=
reactive
({
minHeight
:
200
,
columns
:
[
{
type
:
'checkbox'
,
width
:
50
},
{
field
:
'code'
,
title
:
'案件ID'
,
},
{
field
:
'code'
,
title
:
'产品'
,
},
{
field
:
'code'
,
title
:
'借款机构'
,
},
{
field
:
'code'
,
title
:
'委案金额'
,
},
{
field
:
'code'
,
title
:
'累计减免金额'
,
},
{
field
:
'code'
,
title
:
'累计还款金额'
,
},
{
field
:
'code'
,
title
:
'剩余待还金额'
,
},
],
onCheckboxChange
:
onCheckboxChange
,
toolbarConfig
:
{
enabled
:
false
},
});
const
splitconfig
=
computed
(()
=>
{
return
{
minHeight
:
200
,
columns
:
[
{
type
:
'seq'
,
width
:
50
,
title
:
'期次'
},
{
field
:
'code'
,
title
:
'到期日'
,
},
{
field
:
'code'
,
title
:
'状态'
,
width
:
70
,
},
{
field
:
'num'
,
title
:
'金额'
,
slots
:
{
default
:
({
row
,
rowIndex
})
=>
{
if
(
editFirst
.
value
&&
rowIndex
===
0
)
{
return
(
<>
<
ElInputNumber
v
-
model
=
{
row
.
num
}
/
>
<
/
>
);
}
else
{
return
<>
{
row
.
num
}
<
/>
;
}
},
},
},
],
onCheckboxChange
:
onCheckboxChange
,
};
});
tabledata
.
value
=
[
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
,
num
:
1
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
];
splitdata
.
value
=
[
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
,
num
:
1
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account2'
,
code
:
'account2'
,
role
:
'user'
,
num
:
1
},
{
name
:
'account3'
,
code
:
'account3'
,
role
:
'user'
,
num
:
1
},
];
const
openModal
=
(
account
)
=>
{
showModal
.
value
=
true
;
currentAccount
.
value
=
{
people
:
333
,
case
:
44
,
money
:
1111
};
};
const
submitForm
=
()
=>
{};
defineExpose
({
openModal
,
});
</
script
>
<
style
lang=
"scss"
scoped
>
.mydrawer
{
:deep
(
.card
)
{
padding
:
0
;
border
:
none
;
}
:deep
(
.el-date-editor
)
{
width
:
100%
;
}
}
</
style
>
src/views/property/case-detail/index.vue
View file @
1c863f1d
This diff is collapsed.
Click to expand it.
src/views/property/case-manage/components/caseModal.vue
View file @
1c863f1d
This diff is collapsed.
Click to expand it.
src/views/property/case-manage/index.vue
View file @
1c863f1d
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"card content-box"
>
<div
class=
"card content-box"
>
<div
class=
"table-inner"
>
<div
class=
"table-inner"
>
<ProTable
:config=
"config"
:data=
"data"
ref=
"caseLRef"
>
<ProTable
:config=
"config"
:data=
"data"
ref=
"caseLRef"
>
<template
#
left_buttons
>
<template
#
table_top
>
<div
class=
"topgrp"
>
<div
class=
"topgrp"
>
<div
class=
"topbox"
>
<div
class=
"topbox"
>
<div
class=
"topinner"
>
<div
class=
"topinner"
>
...
@@ -20,20 +20,20 @@
...
@@ -20,20 +20,20 @@
<
script
setup
name=
"case-manage"
>
<
script
setup
name=
"case-manage"
>
import
caseModal
from
'./components/caseModal.vue'
;
import
caseModal
from
'./components/caseModal.vue'
;
import
{
useRouter
}
from
'vue-router'
import
{
useRouter
}
from
'vue-router'
;
import
{
reactive
,
ref
}
from
'vue'
;
import
{
reactive
,
ref
}
from
'vue'
;
const
caseModalRef
=
ref
();
const
caseModalRef
=
ref
();
const
caseLRef
=
ref
();
const
caseLRef
=
ref
();
const
router
=
useRouter
()
const
router
=
useRouter
();
const
options
=
ref
([])
const
options
=
ref
([])
;
const
onCellClick
=
({
row
,
rowIndex
})
=>
{
const
onCellClick
=
({
row
,
rowIndex
})
=>
{
let
obj
=
JSON
.
stringify
(
row
)
let
obj
=
JSON
.
stringify
(
row
)
;
router
.
push
({
router
.
push
({
path
:
'/property/case-detail'
,
path
:
'/property/case-detail'
,
query
:
{
item
:
obj
},
//这里不能直接写成 query: JSON.stringify(item)
query
:
{
item
:
obj
},
//这里不能直接写成 query: JSON.stringify(item)
})
})
;
}
}
;
const
config
=
reactive
({
const
config
=
reactive
({
columns
:
[
columns
:
[
{
field
:
'name'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
}
},
{
field
:
'name'
,
title
:
'案件ID'
,
search
:
{
el
:
'input'
}
},
...
@@ -90,7 +90,7 @@
...
@@ -90,7 +90,7 @@
{
{
field
:
'role'
,
field
:
'role'
,
title
:
'分配CPE日期'
,
title
:
'分配CPE日期'
,
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
"date"
,
valueFormat
:
"YYYY-MM-DD"
}
},
search
:
{
el
:
'date-picker'
,
props
:
{
type
:
'date'
,
valueFormat
:
'YYYY-MM-DD'
}
},
},
},
{
{
field
:
'role'
,
field
:
'role'
,
...
@@ -111,32 +111,36 @@
...
@@ -111,32 +111,36 @@
field
:
'role'
,
field
:
'role'
,
title
:
'跟进结果'
,
title
:
'跟进结果'
,
enum
:
options
,
enum
:
options
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
fieldNames
:
{
label
:
"genderLabel"
,
value
:
"genderValue"
}
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
},
},
{
{
field
:
'role'
,
field
:
'role'
,
title
:
'跟进状态'
,
title
:
'跟进状态'
,
enum
:
options
,
enum
:
options
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
fieldNames
:
{
label
:
"genderLabel"
,
value
:
"genderValue"
}
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
},
},
{
{
field
:
'role'
,
field
:
'role'
,
title
:
'案件状态'
,
title
:
'案件状态'
,
enum
:
options
,
enum
:
options
,
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
search
:
{
el
:
'select'
,
props
:
{
filterable
:
true
},
span
:
1
},
fieldNames
:
{
label
:
"genderLabel"
,
value
:
"genderValue"
}
fieldNames
:
{
label
:
'genderLabel'
,
value
:
'genderValue'
},
}
}
,
],
],
onCellClick
:
onCellClick
onCellClick
:
onCellClick
,
});
});
const
allocation
=
(
row
)
=>
{
const
allocation
=
(
row
)
=>
{
if
(
!
caseLRef
.
value
.
element
.
getCheckboxRecords
()
||
caseLRef
.
value
.
element
.
getCheckboxRecords
().
length
===
0
)
return
if
(
console
.
log
(
'111'
,
caseLRef
.
value
.
element
.
getCheckboxRecords
()
)
!
caseLRef
.
value
.
element
.
getCheckboxRecords
()
||
caseLRef
.
value
.
element
.
getCheckboxRecords
().
length
===
0
)
return
;
console
.
log
(
'111'
,
caseLRef
.
value
.
element
.
getCheckboxRecords
());
caseModalRef
.
value
.
openModal
(
JSON
.
parse
(
JSON
.
stringify
(
row
)));
caseModalRef
.
value
.
openModal
(
JSON
.
parse
(
JSON
.
stringify
(
row
)));
}
}
;
const
data
=
[
const
data
=
[
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
},
{
name
:
'admin'
,
code
:
'admin'
,
role
:
'superadmin'
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
},
{
name
:
'account1'
,
code
:
'account1'
,
role
:
'user'
},
...
@@ -145,31 +149,26 @@
...
@@ -145,31 +149,26 @@
];
];
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.table-inner
{
.table-inner
{
width
:
100%
;
width
:
100%
;
:deep
(
.topgrp
)
{
:deep
(
.topgrp
)
{
display
:
flex
;
margin-bottom
:
8px
;
.topbox
{
margin-right
:
10px
;
background
:
rgba
(
0
,
0
,
0
,
0
.02
);
border-radius
:
16px
;
width
:
146px
;
height
:
97px
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
margin-bottom
:
8px
;
align-items
:
center
;
.topbox
{
font-size
:
24px
;
margin-right
:
10px
;
p
:nth-child
(
1
)
{
background
:
rgba
(
0
,
0
,
0
,
0
.02
);
font-size
:
14px
;
border-radius
:
16px
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
width
:
146px
;
height
:
97px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
font-size
:
24px
;
p
:nth-child
(
1
)
{
font-size
:
14px
;
color
:
rgba
(
0
,
0
,
0
,
0
.45
);
}
}
}
}
}
}
:deep
(
.card
)
{
border
:
none
;
box-shadow
:
none
;
}
}
}
</
style
>
</
style
>
src/views/property/import/components/caseDetailModal.vue
View file @
1c863f1d
...
@@ -7,10 +7,8 @@
...
@@ -7,10 +7,8 @@
show-footer
show-footer
esc-closable
esc-closable
>
>
<ProTable
:config=
"config"
:data=
"data"
>
<ProTable
:config=
"config"
:data=
"data"
>
</ProTable>
</ProTable>
<template
#
footer
>
</
template
>
<template
#
footer
>
</
template
>
</vxe-modal>
</vxe-modal>
</template>
</template>
...
@@ -37,7 +35,7 @@
...
@@ -37,7 +35,7 @@
field
:
'role'
,
field
:
'role'
,
title
:
'角色'
,
title
:
'角色'
,
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
search
:
{
el
:
'input'
,
props
:
{
clearable
:
true
}
},
}
}
,
],
],
});
});
...
...
src/views/property/import/index.vue
View file @
1c863f1d
...
@@ -6,15 +6,19 @@
...
@@ -6,15 +6,19 @@
<div>
<div>
<el-upload
<el-upload
class=
"avatar-uploader"
class=
"avatar-uploader"
:action=
"'https://jsonplaceholder.typicode.com/posts/'"
ref=
"uploadRef"
:show-file-list=
"false"
:action=
"upload.url"
:disabled=
"upload.isUploading"
accept=
".xls, .xlsx"
accept=
".xls, .xlsx"
:limit=
"1"
:on-success=
"handleFileSuccess"
:auto-upload=
"false"
:on-progress=
"uploadVideoProcess"
:on-progress=
"uploadVideoProcess"
>
>
<el-button
type=
"primary"
plain
:icon=
"Upload"
>
上传文件
</el-button>
<el-button
type=
"primary"
plain
:icon=
"Upload"
>
上传文件
</el-button>
</el-upload>
</el-upload>
<!-- 进度条 -->
<!-- 进度条 -->
<
el-progress
v-if=
"progressFlag"
:percentage=
"loadProgress"
/
>
<
!--
<el-progress
v-if=
"progressFlag"
:percentage=
"loadProgress"
/>
--
>
<div
class=
"mt-2 text-sm text-gray-400"
>
仅支持1个文件上传,格式为xls和xlsx
</div>
<div
class=
"mt-2 text-sm text-gray-400"
>
仅支持1个文件上传,格式为xls和xlsx
</div>
<div
class=
"mt-1 text-blue-500 underline"
>
下载模板
</div>
<div
class=
"mt-1 text-blue-500 underline"
>
下载模板
</div>
</div>
</div>
...
@@ -76,6 +80,7 @@
...
@@ -76,6 +80,7 @@
const
options
=
ref
([]);
const
options
=
ref
([]);
const
loadProgress
=
ref
(
0
);
const
loadProgress
=
ref
(
0
);
const
caseDetailModalRef
=
ref
();
const
caseDetailModalRef
=
ref
();
const
uploadRef
=
ref
();
const
isFold
=
ref
(
true
);
const
isFold
=
ref
(
true
);
const
config
=
reactive
({
const
config
=
reactive
({
columns
:
[
columns
:
[
...
@@ -170,15 +175,21 @@
...
@@ -170,15 +175,21 @@
code
:
''
,
code
:
''
,
role
:
''
,
role
:
''
,
});
});
const
upload
=
reactive
({
// 是否禁用上传
isUploading
:
false
,
// 设置上传的请求头部
// headers: { Authorization: "Bearer " + getToken() },
headers
:
{},
// 上传的地址
url
:
'/mes/dv/machinery/importData'
,
});
const
uploadVideoProcess
=
(
event
,
file
,
fileList
)
=>
{
const
uploadVideoProcess
=
(
event
,
file
,
fileList
)
=>
{
progressFlag
.
value
=
true
;
// 显示进度条
upload
.
isUploading
=
true
;
loadProgress
.
value
=
parseInt
(
event
.
percent
);
// 动态获取文件上传进度
};
if
(
loadProgress
.
value
>=
100
)
{
const
handleFileSuccess
=
(
response
,
file
,
fileList
)
=>
{
loadProgress
.
value
=
100
;
upload
.
isUploading
=
false
;
setTimeout
(()
=>
{
uploadRef
.
value
.
clearFiles
();
progressFlag
.
value
=
false
;
},
1000
);
// 一秒后关闭进度条
}
};
};
const
linkZK
=
(
row
)
=>
{
const
linkZK
=
(
row
)
=>
{
caseDetailModalRef
.
value
.
openModal
(
JSON
.
parse
(
JSON
.
stringify
(
row
)));
caseDetailModalRef
.
value
.
openModal
(
JSON
.
parse
(
JSON
.
stringify
(
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