Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
housing-estate
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
物业总平台
housing-estate
Commits
f10cd1ab
提交
f10cd1ab
authored
8月 02, 2023
作者:
宋雄
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
一期封版
上级
19dd7385
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
228 行增加
和
222 行删除
+228
-222
.env.development
.env.development
+2
-2
index.html
public/index.html
+0
-2
api.js
src/api/api.js
+2
-0
static.js
src/assets/static.js
+1
-1
UserLayout.vue
src/components/layouts/UserLayout.vue
+11
-6
urlErr.vue
src/components/layouts/urlErr.vue
+77
-0
SideMenu.vue
src/components/menu/SideMenu.vue
+1
-1
Logo.vue
src/components/tools/Logo.vue
+9
-6
JeecgListMixin.js
src/mixins/JeecgListMixin.js
+2
-2
getters.js
src/store/getters.js
+3
-1
index.js
src/store/index.js
+2
-0
loginurl.js
src/store/modules/loginurl.js
+34
-0
building.vue
src/views/information/building/building.vue
+2
-36
house.vue
src/views/information/house/house.vue
+1
-1
NoticeForm.vue
src/views/information/house/modules/NoticeForm.vue
+0
-10
NoticeForm.vue
src/views/information/owner/modules/NoticeForm.vue
+22
-56
owner-add.vue
src/views/information/owner/owner-add.vue
+18
-45
owner-setting.vue
src/views/information/owner/owner-setting.vue
+31
-36
owner.vue
src/views/information/owner/owner.vue
+7
-17
Login.vue
src/views/user/Login.vue
+3
-0
没有找到文件。
.env.development
浏览文件 @
f10cd1ab
NODE_ENV=development
# VUE_APP_API_BASE_URL='http://192.168.0.119:9999'
VUE_APP_API_BASE_URL='http://192.168.0.101:9999'
#
VUE_APP_API_BASE_URL='http://220.203.25.212:9999'
#
VUE_APP_API_BASE_URL='http://192.168.0.101:9999'
VUE_APP_API_BASE_URL='http://220.203.25.212:9999'
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
...
...
public/index.html
浏览文件 @
f10cd1ab
...
...
@@ -252,7 +252,6 @@
<div
class=
"load_title"
>
加载中,请稍等
</div>
</div>
</div>
<script
type=
"text/javascript"
src=
"//api.map.baidu.com/api?type=webgl&v=1.0&ak=CHUN0HYsI6BBdicixQPL6dFLOFICXDkm"
></script>
</body>
</html>
\ No newline at end of file
src/api/api.js
浏览文件 @
f10cd1ab
import
{
getAction
,
deleteAction
,
putAction
,
postAction
,
httpAction
}
from
'@/api/manage'
import
Vue
from
'vue'
import
{
UI_CACHE_DB_DICT_DATA
}
from
"@/store/mutation-types"
// 获取当前账号个人信息
export
const
loginUrlCheck
=
(
params
)
=>
postAction
(
"/sys/loginUrlCheck"
,
params
);
// 首页统计
const
homeDataStatistics
=
(
params
)
=>
getAction
(
"/community/homepage/dataStatistics"
,
params
);
const
companyNoticeList
=
(
params
)
=>
getAction
(
"/property-company/notice/companyNotice/list"
,
params
);
...
...
src/assets/static.js
浏览文件 @
f10cd1ab
// 与业主关系
export
const
RELATION_SHIP
=
[
{
label
:
'
本人
'
,
value
:
'self'
},
{
label
:
'
业主
'
,
value
:
'self'
},
{
label
:
'租户'
,
value
:
'tenant'
},
{
label
:
'亲人'
,
value
:
'relative'
},
{
label
:
'朋友'
,
value
:
'friend'
},
...
...
src/components/layouts/UserLayout.vue
浏览文件 @
f10cd1ab
<
template
>
<div
id=
"userLayout"
:class=
"['user-layout-wrapper', device]"
>
<div
class=
"container"
>
<div
class=
"container"
v-if=
"isPageUrlTrue"
>
<div
class=
"top"
>
<div
class=
"header"
>
<a
href=
"/"
>
<!--
<img
src=
"~@/assets/logo.svg"
class=
"logo"
alt=
"logo"
>
-->
<img
src=
"~@/assets/logo.png"
class=
"logo"
alt=
"logo"
>
<img
v-if=
"pageImage"
:src=
"pageImage"
class=
"logo"
alt=
"logo"
>
<img
v-else
src=
"~@/assets/logo.png"
class=
"logo"
alt=
"logo"
>
<span
class=
"title"
>
欢迎登陆
</span>
</a>
</div>
<div
class=
"desc"
>
湖北汉江之星科技有限公司
</div>
<div
class=
"desc"
>
{{
pageTitle
}}
</div>
</div>
<route-view></route-view>
...
...
@@ -27,20 +26,26 @@
</div>
</div>
-->
</div>
<div
v-else
>
<err-page
/>
</div>
</div>
</
template
>
<
script
>
import
RouteView
from
"@/components/layouts/RouteView"
import
{
mixinDevice
}
from
'@/utils/mixin.js'
import
{
mapGetters
}
from
'vuex'
import
errPage
from
'./urlErr.vue'
export
default
{
name
:
"UserLayout"
,
components
:
{
RouteView
},
components
:
{
RouteView
,
errPage
},
mixins
:
[
mixinDevice
],
data
()
{
return
{}
},
computed
:
mapGetters
([
"isPageUrlTrue"
,
"pageTitle"
,
"pageImage"
]),
mounted
()
{
document
.
body
.
classList
.
add
(
'userLayout'
)
},
...
...
src/components/layouts/urlErr.vue
0 → 100644
浏览文件 @
f10cd1ab
<
template
>
<div
class=
"exception"
>
<div
class=
"img"
>
<img
src=
"https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg"
/>
</div>
<div
class=
"content"
>
<h1>
404
</h1>
<div
class=
"desc"
>
抱歉,你访问的页面地址错误
</div>
<!--
<div
class=
"action"
>
<a-button
type=
"primary"
@
click=
"handleToHome"
>
返回首页
</a-button>
</div>
-->
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
"ErrPage"
,
data
()
{
return
{}
},
methods
:
{
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.exception {
min-height: 500px;
height: 80%;
align-items: center;
text-align: center;
margin-top: 150px;
.img {
display: inline-block;
padding-right: 52px;
zoom: 1;
img {
height: 360px;
max-width: 430px;
}
}
.content {
display: inline-block;
flex: auto;
h1 {
color: #434e59;
font-size: 72px;
font-weight: 600;
line-height: 72px;
margin-bottom: 24px;
}
.desc {
color: rgba(0, 0, 0, .45);
font-size: 20px;
line-height: 28px;
margin-bottom: 16px;
}
}
}
.mobile {
.exception {
margin-top: 30px;
.img {
padding-right: unset;
img {
height: 40%;
max-width: 80%;
}
}
}
}
</
style
>
\ No newline at end of file
src/components/menu/SideMenu.vue
浏览文件 @
f10cd1ab
...
...
@@ -5,7 +5,7 @@
:collapsible=
"collapsible"
v-model=
"collapsed"
:trigger=
"null"
>
<logo
/>
<logo
:showTitle=
"false"
/>
<s-menu
:collapsed=
"collapsed"
:menu=
"menus"
...
...
src/components/tools/Logo.vue
浏览文件 @
f10cd1ab
<
template
>
<div
class=
"logo"
>
<router-link
:to=
"routerLinkTo"
>
<!-- update-begin- author:sunjianlei --- date:20190814 --- for: logo颜色根据主题颜色变化 -->
<img
v-if=
"navTheme === 'dark'"
src=
"~@/assets/logo-white.png"
alt=
"logo"
>
<img
v-else
src=
"~@/assets/logo.png"
alt=
"logo"
>
<!-- update-begin- author:sunjianlei --- date:20190814 --- for: logo颜色根据主题颜色变化 -->
<img
:src=
"getAvatar()"
alt=
"logo"
>
<h1
v-if=
"showTitle"
>
{{
title
}}
</h1>
</router-link>
</div>
...
...
@@ -14,6 +9,8 @@
<
script
>
import
{
mixin
}
from
'@/utils/mixin.js'
import
{
getFileAccessHttpUrl
}
from
"@/api/manage"
import
{
mapGetters
}
from
'vuex'
export
default
{
name
:
'Logo'
,
...
...
@@ -34,6 +31,12 @@
type
:
Object
,
default
:
()
=>
({
name
:
'dashboard'
}),
},
},
methods
:
{
...
mapGetters
([
"avatar"
]),
getAvatar
(){
return
getFileAccessHttpUrl
(
this
.
avatar
())
}
}
}
</
script
>
...
...
src/mixins/JeecgListMixin.js
浏览文件 @
f10cd1ab
...
...
@@ -248,9 +248,9 @@ export const JeecgListMixin = {
},
modalFormOk
()
{
// 新增/修改 成功时,重载列表
this
.
loadData
();
//
this.loadData();
//清空列表选中
this
.
onClearSelected
()
//
this.onClearSelected()
},
handleDetail
:
function
(
record
){
this
.
$refs
.
modalForm
.
edit
(
record
);
...
...
src/store/getters.js
浏览文件 @
f10cd1ab
...
...
@@ -18,7 +18,9 @@ const getters = {
return
state
.
enhance
.
enhanceJs
[
code
]
},
sysSafeMode
:
state
=>
state
.
user
.
sysSafeMode
,
isPageUrlTrue
:
state
=>
state
.
loginurl
.
isPageUrlTrue
,
pageTitle
:
state
=>
state
.
loginurl
.
pageTitle
,
pageImage
:
state
=>
state
.
loginurl
.
pageImage
}
export
default
getters
src/store/index.js
浏览文件 @
f10cd1ab
...
...
@@ -5,6 +5,7 @@ import app from './modules/app'
import
user
from
'./modules/user'
import
permission
from
'./modules/permission'
import
enhance
from
'./modules/enhance'
import
loginurl
from
'./modules/loginurl'
import
online
from
'./modules/online'
import
getters
from
'./getters'
...
...
@@ -17,6 +18,7 @@ export default new Vuex.Store({
permission
,
enhance
,
online
,
loginurl
},
state
:
{
...
...
src/store/modules/loginurl.js
0 → 100644
浏览文件 @
f10cd1ab
import
{
loginUrlCheck
}
from
'@/api/api'
import
{
getFileAccessHttpUrl
}
from
'@/api/manage'
const
enhance
=
{
state
:
{
isPageUrlTrue
:
true
,
pageTitle
:
'湖北汉江之星科技有限公司'
,
pageImage
:
''
},
mutations
:
{
SET_PAGE_URL_FLAG
:
(
state
,
flag
)
=>
{
state
.
isPageUrlTrue
=
flag
},
SET_PAGE_TITLE
:
(
state
,
name
)
=>
{
state
.
pageTitle
=
name
},
SET_PAGE_IMAGE
:
(
state
,
image
)
=>
{
state
.
pageImage
=
image
}
},
actions
:
{
onLoginUrlCheck
({
commit
},
record
)
{
loginUrlCheck
({
platformType
:
'community'
}).
then
(
res
=>
{
if
(
res
.
result
&&
res
.
result
.
logoUrl
)
{
commit
(
'SET_PAGE_TITLE'
,
res
.
result
.
name
)
commit
(
'SET_PAGE_IMAGE'
,
getFileAccessHttpUrl
(
res
.
result
.
logoUrl
))
}
else
{
commit
(
'SET_PAGE_URL_FLAG'
,
false
)
}
})
}
}
}
export
default
enhance
\ No newline at end of file
src/views/information/building/building.vue
浏览文件 @
f10cd1ab
...
...
@@ -9,13 +9,6 @@
<j-input
placeholder=
"请输入楼宇名称"
v-model=
"queryParam.buildingName"
></j-input>
</a-form-item>
</a-col>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-model-item
label=
"房屋用途"
>
<a-select
style=
"width: 100%"
v-model=
"queryParam.useTo"
placeholder=
"请选择房屋用途"
>
<a-select-option
v-for=
"item in dictOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<span
style=
"float: left;overflow: hidden;"
class=
"table-page-search-submitButtons"
>
<a-col
:md=
"6"
:sm=
"24"
>
...
...
@@ -90,15 +83,14 @@
</div>
<!-- table区域-end -->
<notice-modal
ref=
"modalForm"
@
ok=
"
modalFormOk
"
></notice-modal>
<notice-modal
ref=
"modalForm"
@
ok=
"
searchQuery
"
></notice-modal>
</a-card>
</
template
>
<
script
>
import
{
JeecgListMixin
}
from
'@/mixins/JeecgListMixin'
import
NoticeModal
from
'./modules/NoticeModal'
import
{
filterDictTextByCache
}
from
'@/components/dict/JDictSelectUtil'
import
{
ajaxGetDictItems
,
getDictItemsFromCache
}
from
'@/api/api'
import
{
ajaxGetDictItems
}
from
'@/api/api'
const
columns
=
[
{
...
...
@@ -107,15 +99,6 @@
key
:
'buildingName'
,
align
:
'center'
},
{
title
:
'房屋用途'
,
dataIndex
:
'useTo'
,
key
:
'useTo'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
return
filterDictTextByCache
(
'house_purpose'
,
text
);
}
},
{
title
:
'单元'
,
dataIndex
:
'communityUnitList'
,
...
...
@@ -156,7 +139,6 @@
components
:
{
NoticeModal
},
data
()
{
return
{
dictOptions
:
[],
// 表头
columns
:
columns
,
url
:
{
...
...
@@ -167,23 +149,7 @@
}
}
},
created
()
{
this
.
initDictData
()
},
methods
:
{
initDictData
()
{
//优先从缓存中读取字典配置
if
(
getDictItemsFromCache
(
'house_purpose'
)){
this
.
dictOptions
=
getDictItemsFromCache
(
'house_purpose'
);
return
}
// //根据字典Code, 初始化字典数组
ajaxGetDictItems
(
'house_purpose'
,
null
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
this
.
dictOptions
=
res
.
result
;
}
})
},
onHandleEdit
(
row
)
{
let
data
=
{...
row
}
data
.
communityUnitList
.
forEach
((
item
,
index
)
=>
{
...
...
src/views/information/house/house.vue
浏览文件 @
f10cd1ab
...
...
@@ -96,7 +96,7 @@
<
/div
>
<!--
table
区域
-
end
-->
<
notice
-
modal
ref
=
"modalForm"
@
ok
=
"
modalFormOk
"
><
/notice-modal
>
<
notice
-
modal
ref
=
"modalForm"
@
ok
=
"
searchQuery
"
><
/notice-modal
>
<
/a-card
>
<
/template
>
...
...
src/views/information/house/modules/NoticeForm.vue
浏览文件 @
f10cd1ab
...
...
@@ -77,7 +77,6 @@
import
{
httpAction
,
getAction
}
from
'@/api/manage'
import
{
validateDuplicateValue
}
from
'@/utils/util'
import
{
ajaxGetDictItems
,
getDictItemsFromCache
,
getUnitListApi
}
from
'@/api/api'
import
{
filterDictTextByCache
}
from
'@/components/dict/JDictSelectUtil'
export
default
{
name
:
'PropertyChargruleForm'
,
...
...
@@ -138,15 +137,6 @@
key
:
'buildingName'
,
align
:
'center'
},
{
title
:
'房屋用途'
,
dataIndex
:
'useTo'
,
key
:
'useTo'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
return
filterDictTextByCache
(
'house_purpose'
,
text
);
}
},
{
title
:
'管理员'
,
dataIndex
:
'buildingAdmin'
,
...
...
src/views/information/owner/modules/NoticeForm.vue
浏览文件 @
f10cd1ab
...
...
@@ -21,25 +21,30 @@
<p
style=
"line-height:30px"
>
{{
this
.
model
.
buildingName
}}{{
this
.
model
.
unitName
}}{{
this
.
model
.
roomName
}}
</p>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"业主名称"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"ownerName"
>
<a-input
v-model=
"model.ownerName"
placeholder=
"请输入业主名称"
></a-input>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<a-select
style=
"width: 100%"
v-model=
"model.relationShip"
placeholder=
"请选择与业主关系"
>
<a-select-option
v-for=
"item in relationShipList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
业主联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"ownerPhon
e"
>
<a-input
v-model=
"model.
ownerPhone"
placeholder=
"请输入业主联系方式
"
></a-input>
<a-form-model-item
label=
"
住户姓名"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentNam
e"
>
<a-input
v-model=
"model.
residentName"
placeholder=
"请输入住户姓名
"
></a-input>
</a-form-model-item>
</a-col>
<!--
<a-col
:span=
"24"
>
<a-form-model-item
label=
"性别"
:labelCol=
"
{ xs: { span: 24 }, sm: { span: 3 } }" :wrapperCol="wrapperCol" prop="sex">
<a-radio-group
v-model=
"model.sex"
>
<a-radio
:value=
"1"
>
男
</a-radio>
<a-radio
:value=
"2"
>
女
</a-radio>
</a-radio-group>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户联系人电话"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhone"
>
<a-input
v-model=
"model.residentPhone"
placeholder=
"请输入住户联系人电话"
></a-input>
</a-form-model-item>
</a-col>
-->
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"性别"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"sex"
>
<a-radio-group
v-model=
"model.sex"
>
...
...
@@ -68,28 +73,6 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<a-select
style=
"width: 100%"
v-model=
"model.relationShip"
placeholder=
"请选择与业主关系"
>
<a-select-option
v-for=
"item in relationShipList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row
v-if=
"model.relationShip && model.relationShip !== 'self'"
>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户姓名"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentName"
>
<a-input
v-model=
"model.residentName"
placeholder=
"请输入住户姓名"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhone"
>
<a-input
v-model=
"model.residentPhone"
placeholder=
"请输入住户联系方式"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
...
...
@@ -132,13 +115,11 @@
roomName
:
''
,
useTo
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
sex
:
1
,
age
:
undefined
,
ownerPhone
:
''
,
certificateType
:
'1'
,
certificateNo
:
''
,
relationShip
:
''
,
relationShip
:
'
self
'
,
residentName
:
''
,
residentPhone
:
''
},
...
...
@@ -153,9 +134,10 @@
confirmLoading
:
false
,
validatorRules
:
{
roomId
:
[{
required
:
true
,
message
:
'请选择关联房屋'
,
trigger
:
'change'
}],
ownerName
:
[{
required
:
true
,
message
:
'请输入业主名称'
,
trigger
:
'blur'
}],
ownerPhone
:
[
{
required
:
true
,
message
:
'请输入业主联系方式'
,
trigger
:
'blur'
},
relationShip
:
[{
required
:
true
,
message
:
'请选择与业主关系'
,
trigger
:
'change'
}],
residentName
:
[{
required
:
true
,
message
:
'请输入住户姓名'
,
trigger
:
'blur'
}],
residentPhone
:
[
{
required
:
true
,
message
:
'请输入住户联系人电话'
,
trigger
:
'blur'
},
{
validator
:
validateToNextPhone
}
],
certificateNo
:
[{
...
...
@@ -175,10 +157,7 @@
callback
();
}
}
}],
relationShip
:
[{
required
:
true
,
message
:
'请选择与业主关系'
,
trigger
:
'change'
}],
residentName
:
[{
required
:
true
,
message
:
'请输入住户姓名'
,
trigger
:
'blur'
}],
residentPhone
:
[{
required
:
true
,
message
:
'请输入住户联系方式'
,
trigger
:
'blur'
}]
}]
},
url
:
{
add
:
"/property-community/info/communityOwner/add"
,
...
...
@@ -238,7 +217,6 @@
})
},
onSelectRoom
(
value
,
node
)
{
console
.
log
(
node
)
let
data
=
node
.
dataRef
this
.
model
.
roomId
=
data
.
value
this
.
model
.
roomName
=
data
.
label
...
...
@@ -293,22 +271,11 @@
})
let
roomKey
=
this
.
treeData
[
unitKey
][
'children'
].
findIndex
(
item
=>
item
.
value
===
record
.
unitId
)
this
.
treeData
[
unitKey
][
'children'
][
roomKey
][
'children'
]
=
roomChildren
console
.
log
(
record
)
console
.
log
(
unitChildren
)
console
.
log
(
unitKey
)
console
.
log
(
roomChildren
)
console
.
log
(
roomKey
)
console
.
log
(
this
.
treeData
)
}
this
.
model
=
Object
.
assign
({},
record
);
this
.
visible
=
true
;
},
submitForm
()
{
if
(
this
.
model
.
relationShip
===
'self'
)
{
this
.
model
.
residentName
=
this
.
model
.
ownerName
this
.
model
.
residentPhone
=
this
.
model
.
ownerPhone
}
const
that
=
this
;
// 触发表单验证
this
.
$refs
.
form
.
validate
(
valid
=>
{
...
...
@@ -334,7 +301,6 @@
that
.
confirmLoading
=
false
;
})
}
})
},
onLoadData
(
treeNode
)
{
...
...
src/views/information/owner/owner-add.vue
浏览文件 @
f10cd1ab
...
...
@@ -33,15 +33,26 @@
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"业主名称"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"ownerName"
>
<a-input
v-model=
"model.ownerName"
placeholder=
"请输入业主名称"
></a-input>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<a-select
style=
"width: 100%"
v-model=
"model.relationShip"
placeholder=
"请选择与业主关系"
>
<a-select-option
v-for=
"item in relationShipList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户姓名"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentName"
>
<a-input
v-model=
"model.residentName"
placeholder=
"请输入住户姓名"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
业主联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"owner
Phone"
>
<a-input
v-model=
"model.
ownerPhone"
placeholder=
"请输入业主
联系方式"
></a-input>
<a-form-model-item
label=
"
住户联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"resident
Phone"
>
<a-input
v-model=
"model.
residentPhone"
placeholder=
"请输入住户
联系方式"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"证件类型"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"certificateType"
>
<a-select
style=
"width: 100%"
v-model=
"model.certificateType"
placeholder=
"请选择证件类型"
>
...
...
@@ -57,28 +68,6 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<a-select
style=
"width: 100%"
v-model=
"model.relationShip"
placeholder=
"请选择与业主关系"
>
<a-select-option
v-for=
"item in relationShipList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row
v-if=
"model.relationShip && model.relationShip !== 'self'"
>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户姓名"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentName"
>
<a-input
v-model=
"model.residentName"
placeholder=
"请输入住户姓名"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhone"
>
<a-input
v-model=
"model.residentPhone"
placeholder=
"请输入住户联系方式"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
<!--
<h4
style=
"padding:20px 0 0 50px;line-height:30px;"
>
审核意见
</h4>
-->
...
...
@@ -129,8 +118,6 @@
roomName
:
''
,
useTo
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
ownerPhone
:
''
,
certificateType
:
'1'
,
certificateNo
:
''
,
relationShip
:
''
,
...
...
@@ -148,26 +135,12 @@
confirmLoading
:
false
,
validatorRules
:
{
roomId
:
[{
required
:
true
,
message
:
'请选择关联房屋'
,
trigger
:
'change'
}],
ownerName
:
[{
required
:
true
,
message
:
'请输入业主名称'
,
trigger
:
'blur'
}],
ownerPhone
:
[
{
required
:
true
,
message
:
'请输入业主联系方式'
,
trigger
:
'blur'
},
residentPhone
:
[
{
required
:
true
,
message
:
'请输入住户联系方式'
,
trigger
:
'blur'
},
{
validator
:
validateToNextPhone
}
],
certificateNo
:
[{
trigger
:
'blur'
,
message
:
'请输入业主联系方式'
,
required
:
true
// validator: function(rule, value, callback) {
// if (value) {
// callback();
// } else {
// callback('请输入正确的联系人电话!');
// }
// }
}],
relationShip
:
[{
required
:
true
,
message
:
'请选择与业主关系'
,
trigger
:
'change'
}],
residentName
:
[{
required
:
true
,
message
:
'请输入住户姓名'
,
trigger
:
'blur'
}],
residentPhone
:
[{
required
:
true
,
message
:
'请输入住户联系方式'
,
trigger
:
'blur'
}]
residentName
:
[{
required
:
true
,
message
:
'请输入住户姓名'
,
trigger
:
'blur'
}]
},
url
:
{
add
:
"/property-community/info/communityOwner/add"
,
...
...
src/views/information/owner/owner-setting.vue
浏览文件 @
f10cd1ab
...
...
@@ -10,21 +10,30 @@
<a-input
v-model=
"model.houseAllName"
placeholder=
"请输入关联房屋"
></a-input>
</a-form-model-item>
</a-col>
<!--
<a-col
:span=
"12"
>
<p
style=
"line-height:30px"
>
{{
this
.
model
.
buildingName
}}{{
this
.
model
.
unitName
}}{{
this
.
model
.
roomName
}}
</p>
</a-col>
-->
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"业主名称"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"ownerName"
>
<a-input
v-model=
"model.ownerName"
placeholder=
"请输入业主名称"
></a-input>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<a-select
style=
"width: 100%"
v-model=
"model.relationShip"
placeholder=
"请选择与业主关系"
>
<a-select-option
v-for=
"item in relationShipList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"
业主联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"ownerPhon
e"
>
<a-input
v-model=
"model.
ownerPhone"
placeholder=
"请输入业主联系方式
"
></a-input>
<a-form-model-item
label=
"
住户姓名"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentNam
e"
>
<a-input
v-model=
"model.
residentName"
placeholder=
"请输入住户姓名
"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhone"
>
<a-input
v-model=
"model.residentPhone"
placeholder=
"请输入住户联系方式"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"证件类型"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"certificateType"
>
<a-select
style=
"width: 100%"
v-model=
"model.certificateType"
placeholder=
"请选择证件类型"
>
...
...
@@ -40,28 +49,6 @@
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"与业主关系"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"relationShip"
>
<a-select
style=
"width: 100%"
v-model=
"model.relationShip"
placeholder=
"请选择与业主关系"
>
<a-select-option
v-for=
"item in relationShipList"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
</a-row>
<a-row
v-if=
"model.relationShip && model.relationShip !== 'self'"
>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户姓名"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentName"
>
<a-input
v-model=
"model.residentName"
placeholder=
"请输入住户姓名"
></a-input>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户联系方式"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"residentPhone"
>
<a-input
v-model=
"model.residentPhone"
placeholder=
"请输入住户联系方式"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
...
...
@@ -70,8 +57,8 @@
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"住户来源"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"resident
Phon
e"
>
<a-input
v-model=
"model.resident
Phon
e"
placeholder=
"请输入住户来源"
></a-input>
<a-form-model-item
label=
"住户来源"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"resident
SourceNam
e"
>
<a-input
v-model=
"model.resident
SourceNam
e"
placeholder=
"请输入住户来源"
></a-input>
</a-form-model-item>
</a-col>
</a-row>
...
...
@@ -91,6 +78,13 @@
<a
@
click=
"onCopyLink"
v-if=
"formParamas.accessAddress"
style=
"position:absolute;top:0;right:-10px;line-height:40px;z-index:999;pointer-events:auto;"
>
复制
</a>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"24"
>
<a-form-model-item
label=
"logo"
:labelCol=
"
{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol" prop="logoUrl">
<j-image-upload
:isMultiple=
"false"
text=
"点击上传"
bizPath=
"scott/pic"
v-model=
"formParamas.logoUrl"
></j-image-upload>
</a-form-model-item>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"职位"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"labelCode"
>
...
...
@@ -138,7 +132,7 @@
<a-row>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"贫困类型"
:labelCol=
"labelCol"
:wrapperCol=
"wrapperCol"
prop=
"potions"
>
<a-select
style=
"width:100%"
v-model=
"formModel.potions"
mode=
"multiple"
placeholder=
"请选择
职位
(可多选)"
labelInValue
>
<a-select
style=
"width:100%"
v-model=
"formModel.potions"
mode=
"multiple"
placeholder=
"请选择
贫困类型
(可多选)"
labelInValue
>
<a-select-option
:value=
"item.value"
v-for=
"item in ownerLabelsLists"
:key=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-form-model-item>
...
...
@@ -191,8 +185,6 @@
roomName
:
''
,
useTo
:
''
,
floorSpace
:
''
,
ownerName
:
''
,
ownerPhone
:
''
,
certificateType
:
'1'
,
certificateNo
:
''
,
relationShip
:
''
,
...
...
@@ -217,6 +209,7 @@
},
validatorRules
:
{
accessAddress
:
[{
required
:
true
,
message
:
'请输入访问域名前缀'
,
trigger
:
'blur'
}],
logoUrl
:
[{
required
:
true
,
message
:
'请上传logo'
,
trigger
:
'blur'
}],
potions
:
[{
required
:
true
,
message
:
'请选择贫困类型'
,
trigger
:
'change'
}],
labelCode
:
[{
required
:
true
,
message
:
'请选择职位'
,
trigger
:
'change'
}],
committeeName
:
[{
required
:
true
,
message
:
'请输入业委会名称'
,
trigger
:
'blur'
}],
...
...
@@ -226,6 +219,7 @@
},
formParamas
:
{
accessAddress
:
''
,
logoUrl
:
''
,
labelCode
:
''
,
committeeName
:
''
,
adminLoginName
:
''
,
...
...
@@ -261,9 +255,10 @@
async
getPageDetail
()
{
let
{
result
}
=
await
geCommunityOwnertInfoApi
({
id
:
this
.
$route
.
query
.
id
})
result
.
communityOwner
[
'houseAllName'
]
=
result
.
communityOwner
.
buildingName
+
'-'
+
result
.
communityOwner
.
unitName
+
'-'
+
result
.
communityOwner
.
roomName
result
.
communityOwner
[
'residentSourceName'
]
=
result
.
residentSource
===
'miniapp'
?
'小程序'
:
'pc'
this
.
model
=
Object
.
assign
({},
result
.
communityOwner
);
if
(
this
.
labelType
===
'1'
)
{
this
.
formParamas
.
adminLoginName
=
result
.
communityOwner
.
owner
Phone
this
.
formParamas
.
adminLoginName
=
result
.
communityOwner
.
resident
Phone
this
.
formParamas
.
accessAddress
=
result
.
communityVo
.
accessAddress
this
.
formParamas
.
committeeName
=
result
.
committee
?
result
.
committee
.
committeeName
:
''
}
...
...
@@ -290,7 +285,7 @@
accessAddress
:
result
.
communityVo
.
accessAddress
,
labelCode
:
result
.
committeeInfo
?
result
.
committeeInfo
.
labelCode
:
null
,
committeeName
:
result
.
committee
.
committeeName
,
adminLoginName
:
result
.
communityOwner
.
owner
Phone
,
adminLoginName
:
result
.
communityOwner
.
resident
Phone
,
adminPassword
:
result
.
communityVo
.
adminPassword
,
labelImg
:
result
.
committeeInfo
?
result
.
committeeInfo
.
labelImg
:
null
,
labelRemark
:
result
.
committeeInfo
?
result
.
committeeInfo
.
labelRemark
:
null
...
...
src/views/information/owner/owner.vue
浏览文件 @
f10cd1ab
...
...
@@ -5,8 +5,8 @@
<a-form
layout=
"inline"
@
keyup
.
enter
.
native=
"searchQuery"
>
<a-row
:gutter=
"24"
>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-item
label=
"
业主
姓名"
>
<j-input
placeholder=
"请输入
业主姓名"
v-model=
"queryParam.owner
Name"
></j-input>
<a-form-item
label=
"
住户
姓名"
>
<j-input
placeholder=
"请输入
住户姓名"
v-model=
"queryParam.resident
Name"
></j-input>
</a-form-item>
</a-col>
<a-col
:md=
"6"
:sm=
"8"
>
...
...
@@ -72,9 +72,6 @@
:dataSource="dataSource" :pagination="ipagination" :loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap"
@change="handleTableChange">
<span
slot=
"ownerName"
slot-scope=
"text, record"
>
<span>
{{
record
.
ownerName
}}
,
{{
record
.
ownerPhone
}}
</span>
</span>
<span
slot=
"residentName"
slot-scope=
"text, record"
>
<span>
{{
`${record.residentName
}
,${record.residentPhone
}
`
}}
<
/span
>
<
/span
>
...
...
@@ -84,7 +81,7 @@
<
span
slot
=
"label"
slot
-
scope
=
"text, record"
>
<!--
<
span
>
{{
record
.
label
|
filterLabel
}}
<
/span> --
>
<
div
>
<
a
-
tag
color
=
"blue"
>
业主
<
/a-tag
>
<
a
-
tag
color
=
"blue"
v
-
if
=
"record.relationShip === 'self'"
>
业主
<
/a-tag
>
<
a
-
tag
color
=
"red"
v
-
if
=
"record.labelCommitteeDesc"
>
{{
record
.
labelCommitteeDesc
}}
<
/a-tag
>
<
a
-
tag
color
=
"orange"
v
-
if
=
"record.labelDestituteDesc"
>
{{
record
.
labelDestituteDesc
}}
<
/a-tag
>
<
/div
>
...
...
@@ -142,7 +139,7 @@
<
/div
>
<
/div
>
<
notice
-
modal
ref
=
"modalForm"
@
ok
=
"
modalFormOk
"
><
/notice-modal
>
<
notice
-
modal
ref
=
"modalForm"
@
ok
=
"
searchQuery
"
><
/notice-modal
>
<!--
右侧的角色权限配置
-->
<
user
-
role
-
modal
ref
=
"modalUserRole"
><
/user-role-modal
>
<
/a-card
>
...
...
@@ -159,13 +156,6 @@ import { RELATION_SHIP, filterDictTextByStatic, INDUSTRY_JOB, OWNER_LEBEL } from
import
{
ajaxGetDictItems
,
getDictItemsFromCache
}
from
'@/api/api'
const
labelAllList
=
[{
label
:
'业主'
,
value
:
'owner'
}
].
concat
(
INDUSTRY_JOB
,
OWNER_LEBEL
)
const
columns
=
[
{
title
:
'业主'
,
dataIndex
:
'ownerName'
,
scopedSlots
:
{
customRender
:
'ownerName'
}
,
key
:
'ownerName'
,
align
:
'center'
,
}
,
{
title
:
'与业主关系'
,
dataIndex
:
'relationShip'
,
...
...
@@ -295,7 +285,7 @@ export default {
}
,
created
()
{
this
.
getBuildingList
()
//
this.initDictData()
this
.
initDictData
()
}
,
computed
:
{
importExcelUrl
:
function
()
{
...
...
@@ -405,13 +395,13 @@ export default {
return
}
if
(
typeof
window
.
navigator
.
msSaveBlob
!==
'undefined'
)
{
window
.
navigator
.
msSaveBlob
(
new
Blob
([
data
],
{
type
:
'application/vnd.ms-excel'
}
),
fileName
+
'.xls'
)
window
.
navigator
.
msSaveBlob
(
new
Blob
([
data
],
{
type
:
'application/vnd.ms-excel'
}
),
fileName
+
'.xls
x
'
)
}
else
{
let
url
=
window
.
URL
.
createObjectURL
(
new
Blob
([
data
],
{
type
:
'application/vnd.ms-excel'
}
))
let
link
=
document
.
createElement
(
'a'
)
link
.
style
.
display
=
'none'
link
.
href
=
url
link
.
setAttribute
(
'download'
,
fileName
+
'.xls'
)
link
.
setAttribute
(
'download'
,
fileName
+
'.xls
x
'
)
document
.
body
.
appendChild
(
link
)
link
.
click
()
document
.
body
.
removeChild
(
link
)
//下载完成移除元素
...
...
src/views/user/Login.vue
浏览文件 @
f10cd1ab
...
...
@@ -38,6 +38,7 @@ import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
import
LoginSelectHouse
from
"@/components/tools/LoginSelectHouse"
;
import
{
getEncryptedString
}
from
'@/utils/encryption/aesEncrypt'
import
{
timeFix
}
from
'@/utils/util'
import
{
mapActions
}
from
'vuex'
import
LoginAccount
from
'./LoginAccount'
import
LoginPhone
from
'./LoginPhone'
...
...
@@ -64,8 +65,10 @@ export default {
Vue
.
ls
.
remove
(
ACCESS_TOKEN
)
this
.
getRouterData
();
this
.
rememberMe
=
true
this
.
onLoginUrlCheck
()
},
methods
:{
...
mapActions
([
"onLoginUrlCheck"
]),
handleTabClick
(
key
){
this
.
customActiveKey
=
key
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论