提交 f10cd1ab authored 作者: 宋雄's avatar 宋雄

一期封版

上级 19dd7385
NODE_ENV=development NODE_ENV=development
# VUE_APP_API_BASE_URL='http://192.168.0.119:9999' # 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://192.168.0.101:9999'
# VUE_APP_API_BASE_URL='http://220.203.25.212: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_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
......
...@@ -252,7 +252,6 @@ ...@@ -252,7 +252,6 @@
<div class="load_title">加载中,请稍等</div> <div class="load_title">加载中,请稍等</div>
</div> </div>
</div> </div>
<script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=CHUN0HYsI6BBdicixQPL6dFLOFICXDkm"></script>
</body> </body>
</html> </html>
\ No newline at end of file
import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage' import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage'
import Vue from 'vue' import Vue from 'vue'
import {UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types" 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 homeDataStatistics = (params)=>getAction("/community/homepage/dataStatistics",params);
const companyNoticeList = (params)=>getAction("/property-company/notice/companyNotice/list",params); const companyNoticeList = (params)=>getAction("/property-company/notice/companyNotice/list",params);
......
// 与业主关系 // 与业主关系
export const RELATION_SHIP = [ export const RELATION_SHIP = [
{label: '本人', value: 'self'}, {label: '业主', value: 'self'},
{label: '租户', value: 'tenant'}, {label: '租户', value: 'tenant'},
{label: '亲人', value: 'relative'}, {label: '亲人', value: 'relative'},
{label: '朋友', value: 'friend'}, {label: '朋友', value: 'friend'},
......
<template> <template>
<div id="userLayout" :class="['user-layout-wrapper', device]"> <div id="userLayout" :class="['user-layout-wrapper', device]">
<div class="container"> <div class="container" v-if="isPageUrlTrue">
<div class="top"> <div class="top">
<div class="header"> <div class="header">
<a href="/"> <a href="/">
<!-- <img src="~@/assets/logo.svg" class="logo" alt="logo"> --> <!-- <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> <span class="title">欢迎登陆</span>
</a> </a>
</div> </div>
<div class="desc"> <div class="desc">{{pageTitle}}</div>
湖北汉江之星科技有限公司
</div>
</div> </div>
<route-view></route-view> <route-view></route-view>
...@@ -27,20 +26,26 @@ ...@@ -27,20 +26,26 @@
</div> </div>
</div> --> </div> -->
</div> </div>
<div v-else>
<err-page />
</div>
</div> </div>
</template> </template>
<script> <script>
import RouteView from "@/components/layouts/RouteView" import RouteView from "@/components/layouts/RouteView"
import { mixinDevice } from '@/utils/mixin.js' import { mixinDevice } from '@/utils/mixin.js'
import { mapGetters } from 'vuex'
import errPage from './urlErr.vue'
export default { export default {
name: "UserLayout", name: "UserLayout",
components: { RouteView }, components: { RouteView, errPage },
mixins: [mixinDevice], mixins: [mixinDevice],
data () { data () {
return {} return {}
}, },
computed: mapGetters(["isPageUrlTrue", "pageTitle", "pageImage"]),
mounted () { mounted () {
document.body.classList.add('userLayout') document.body.classList.add('userLayout')
}, },
......
<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
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
:collapsible="collapsible" :collapsible="collapsible"
v-model="collapsed" v-model="collapsed"
:trigger="null"> :trigger="null">
<logo /> <logo :showTitle="false" />
<s-menu <s-menu
:collapsed="collapsed" :collapsed="collapsed"
:menu="menus" :menu="menus"
......
<template> <template>
<div class="logo"> <div class="logo">
<router-link :to="routerLinkTo"> <router-link :to="routerLinkTo">
<img :src="getAvatar()" alt="logo">
<!-- 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颜色根据主题颜色变化 -->
<h1 v-if="showTitle">{{ title }}</h1> <h1 v-if="showTitle">{{ title }}</h1>
</router-link> </router-link>
</div> </div>
...@@ -14,6 +9,8 @@ ...@@ -14,6 +9,8 @@
<script> <script>
import { mixin } from '@/utils/mixin.js' import { mixin } from '@/utils/mixin.js'
import { getFileAccessHttpUrl } from "@/api/manage"
import { mapGetters } from 'vuex'
export default { export default {
name: 'Logo', name: 'Logo',
...@@ -34,6 +31,12 @@ ...@@ -34,6 +31,12 @@
type: Object, type: Object,
default: () => ({name: 'dashboard'}), default: () => ({name: 'dashboard'}),
}, },
},
methods: {
...mapGetters(["avatar"]),
getAvatar(){
return getFileAccessHttpUrl(this.avatar())
}
} }
} }
</script> </script>
......
...@@ -248,9 +248,9 @@ export const JeecgListMixin = { ...@@ -248,9 +248,9 @@ export const JeecgListMixin = {
}, },
modalFormOk() { modalFormOk() {
// 新增/修改 成功时,重载列表 // 新增/修改 成功时,重载列表
this.loadData(); // this.loadData();
//清空列表选中 //清空列表选中
this.onClearSelected() // this.onClearSelected()
}, },
handleDetail:function(record){ handleDetail:function(record){
this.$refs.modalForm.edit(record); this.$refs.modalForm.edit(record);
......
...@@ -18,7 +18,9 @@ const getters = { ...@@ -18,7 +18,9 @@ const getters = {
return state.enhance.enhanceJs[code] return state.enhance.enhanceJs[code]
}, },
sysSafeMode: state => state.user.sysSafeMode, sysSafeMode: state => state.user.sysSafeMode,
isPageUrlTrue: state => state.loginurl.isPageUrlTrue,
pageTitle: state => state.loginurl.pageTitle,
pageImage: state => state.loginurl.pageImage
} }
export default getters export default getters
...@@ -5,6 +5,7 @@ import app from './modules/app' ...@@ -5,6 +5,7 @@ import app from './modules/app'
import user from './modules/user' import user from './modules/user'
import permission from './modules/permission' import permission from './modules/permission'
import enhance from './modules/enhance' import enhance from './modules/enhance'
import loginurl from './modules/loginurl'
import online from './modules/online' import online from './modules/online'
import getters from './getters' import getters from './getters'
...@@ -17,6 +18,7 @@ export default new Vuex.Store({ ...@@ -17,6 +18,7 @@ export default new Vuex.Store({
permission, permission,
enhance, enhance,
online, online,
loginurl
}, },
state: { state: {
......
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
...@@ -9,13 +9,6 @@ ...@@ -9,13 +9,6 @@
<j-input placeholder="请输入楼宇名称" v-model="queryParam.buildingName"></j-input> <j-input placeholder="请输入楼宇名称" v-model="queryParam.buildingName"></j-input>
</a-form-item> </a-form-item>
</a-col> </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"> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24"> <a-col :md="6" :sm="24">
...@@ -90,15 +83,14 @@ ...@@ -90,15 +83,14 @@
</div> </div>
<!-- table区域-end --> <!-- table区域-end -->
<notice-modal ref="modalForm" @ok="modalFormOk"></notice-modal> <notice-modal ref="modalForm" @ok="searchQuery"></notice-modal>
</a-card> </a-card>
</template> </template>
<script> <script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import NoticeModal from './modules/NoticeModal' import NoticeModal from './modules/NoticeModal'
import {filterDictTextByCache} from '@/components/dict/JDictSelectUtil' import {ajaxGetDictItems} from '@/api/api'
import {ajaxGetDictItems,getDictItemsFromCache} from '@/api/api'
const columns = [ const columns = [
{ {
...@@ -107,15 +99,6 @@ ...@@ -107,15 +99,6 @@
key: 'buildingName', key: 'buildingName',
align: 'center' align: 'center'
}, },
{
title: '房屋用途',
dataIndex: 'useTo',
key: 'useTo',
align: 'center',
customRender: function(text) {
return filterDictTextByCache('house_purpose', text);
}
},
{ {
title: '单元', title: '单元',
dataIndex: 'communityUnitList', dataIndex: 'communityUnitList',
...@@ -156,7 +139,6 @@ ...@@ -156,7 +139,6 @@
components: {NoticeModal}, components: {NoticeModal},
data() { data() {
return { return {
dictOptions: [],
// 表头 // 表头
columns: columns, columns: columns,
url: { url: {
...@@ -167,23 +149,7 @@ ...@@ -167,23 +149,7 @@
} }
} }
}, },
created() {
this.initDictData()
},
methods: { 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) { onHandleEdit(row) {
let data = {...row} let data = {...row}
data.communityUnitList.forEach((item, index)=> { data.communityUnitList.forEach((item, index)=> {
......
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
</div> </div>
<!-- table区域-end --> <!-- table区域-end -->
<notice-modal ref="modalForm" @ok="modalFormOk"></notice-modal> <notice-modal ref="modalForm" @ok="searchQuery"></notice-modal>
</a-card> </a-card>
</template> </template>
......
...@@ -77,7 +77,6 @@ ...@@ -77,7 +77,6 @@
import { httpAction, getAction } from '@/api/manage' import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util' import { validateDuplicateValue } from '@/utils/util'
import {ajaxGetDictItems,getDictItemsFromCache, getUnitListApi} from '@/api/api' import {ajaxGetDictItems,getDictItemsFromCache, getUnitListApi} from '@/api/api'
import {filterDictTextByCache} from '@/components/dict/JDictSelectUtil'
export default { export default {
name: 'PropertyChargruleForm', name: 'PropertyChargruleForm',
...@@ -138,15 +137,6 @@ ...@@ -138,15 +137,6 @@
key: 'buildingName', key: 'buildingName',
align: 'center' align: 'center'
}, },
{
title: '房屋用途',
dataIndex: 'useTo',
key: 'useTo',
align: 'center',
customRender: function(text) {
return filterDictTextByCache('house_purpose', text);
}
},
{ {
title: '管理员', title: '管理员',
dataIndex: 'buildingAdmin', dataIndex: 'buildingAdmin',
......
...@@ -21,25 +21,30 @@ ...@@ -21,25 +21,30 @@
<p style="line-height:30px">{{this.model.buildingName}}{{this.model.unitName}}{{this.model.roomName}}</p> <p style="line-height:30px">{{this.model.buildingName}}{{this.model.unitName}}{{this.model.roomName}}</p>
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="业主名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ownerName"> <a-form-model-item label="与业主关系" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="relationShip">
<a-input v-model="model.ownerName" placeholder="请输入业主名称"></a-input> <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-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="业主联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ownerPhone"> <a-form-model-item label="住户姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="residentName">
<a-input v-model="model.ownerPhone" placeholder="请输入业主联系方式"></a-input> <a-input v-model="model.residentName" placeholder="请输入住户姓名"></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<!-- <a-col :span="24"> <a-col :span="12">
<a-form-model-item label="性别" :labelCol=" { xs: { span: 24 }, sm: { span: 3 } }" :wrapperCol="wrapperCol" prop="sex"> <a-form-model-item label="住户联系人电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="residentPhone">
<a-radio-group v-model="model.sex"> <a-input v-model="model.residentPhone" placeholder="请输入住户联系人电话"></a-input>
<a-radio :value="1"></a-radio>
<a-radio :value="2"></a-radio>
</a-radio-group>
</a-form-model-item> </a-form-model-item>
</a-col> --> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sex"> <a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sex">
<a-radio-group v-model="model.sex"> <a-radio-group v-model="model.sex">
...@@ -68,28 +73,6 @@ ...@@ -68,28 +73,6 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </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> </a-form-model>
</j-form-container> </j-form-container>
</a-spin> </a-spin>
...@@ -132,13 +115,11 @@ ...@@ -132,13 +115,11 @@
roomName: '', roomName: '',
useTo: '', useTo: '',
floorSpace: '', floorSpace: '',
ownerName: '',
sex: 1, sex: 1,
age: undefined, age: undefined,
ownerPhone: '',
certificateType: '1', certificateType: '1',
certificateNo: '', certificateNo: '',
relationShip: '', relationShip: 'self',
residentName: '', residentName: '',
residentPhone: '' residentPhone: ''
}, },
...@@ -153,9 +134,10 @@ ...@@ -153,9 +134,10 @@
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
roomId: [{ required: true, message: '请选择关联房屋', trigger: 'change' }], roomId: [{ required: true, message: '请选择关联房屋', trigger: 'change' }],
ownerName: [{ required: true, message: '请输入业主名称', trigger: 'blur' }], relationShip: [{ required: true, message: '请选择与业主关系', trigger: 'change' }],
ownerPhone: [ residentName: [{ required: true, message: '请输入住户姓名', trigger: 'blur' }],
{ required: true, message: '请输入业主联系方式', trigger: 'blur' }, residentPhone: [
{ required: true, message: '请输入住户联系人电话', trigger: 'blur' },
{ validator: validateToNextPhone } { validator: validateToNextPhone }
], ],
certificateNo: [{ certificateNo: [{
...@@ -175,10 +157,7 @@ ...@@ -175,10 +157,7 @@
callback(); callback();
} }
} }
}], }]
relationShip: [{ required: true, message: '请选择与业主关系', trigger: 'change' }],
residentName: [{ required: true, message: '请输入住户姓名', trigger: 'blur' }],
residentPhone: [{ required: true, message: '请输入住户联系方式', trigger: 'blur' }]
}, },
url: { url: {
add: "/property-community/info/communityOwner/add", add: "/property-community/info/communityOwner/add",
...@@ -238,7 +217,6 @@ ...@@ -238,7 +217,6 @@
}) })
}, },
onSelectRoom(value, node) { onSelectRoom(value, node) {
console.log(node)
let data = node.dataRef let data = node.dataRef
this.model.roomId = data.value this.model.roomId = data.value
this.model.roomName = data.label this.model.roomName = data.label
...@@ -293,22 +271,11 @@ ...@@ -293,22 +271,11 @@
}) })
let roomKey = this.treeData[unitKey]['children'].findIndex(item=>item.value === record.unitId) let roomKey = this.treeData[unitKey]['children'].findIndex(item=>item.value === record.unitId)
this.treeData[unitKey]['children'][roomKey]['children'] = roomChildren 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.model = Object.assign({}, record);
this.visible = true; this.visible = true;
}, },
submitForm () { submitForm () {
if(this.model.relationShip === 'self') {
this.model.residentName = this.model.ownerName
this.model.residentPhone = this.model.ownerPhone
}
const that = this; const that = this;
// 触发表单验证 // 触发表单验证
this.$refs.form.validate(valid => { this.$refs.form.validate(valid => {
...@@ -334,7 +301,6 @@ ...@@ -334,7 +301,6 @@
that.confirmLoading = false; that.confirmLoading = false;
}) })
} }
}) })
}, },
onLoadData(treeNode) { onLoadData(treeNode) {
......
...@@ -33,15 +33,26 @@ ...@@ -33,15 +33,26 @@
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="业主名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ownerName"> <a-form-model-item label="与业主关系" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="relationShip">
<a-input v-model="model.ownerName" placeholder="请输入业主名称"></a-input> <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-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="业主联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ownerPhone"> <a-form-model-item label="住户联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="residentPhone">
<a-input v-model="model.ownerPhone" placeholder="请输入业主联系方式"></a-input> <a-input v-model="model.residentPhone" placeholder="请输入住户联系方式"></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="证件类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="certificateType"> <a-form-model-item label="证件类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="certificateType">
<a-select style="width: 100%" v-model="model.certificateType" placeholder="请选择证件类型"> <a-select style="width: 100%" v-model="model.certificateType" placeholder="请选择证件类型">
...@@ -57,28 +68,6 @@ ...@@ -57,28 +68,6 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </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> </a-form-model>
</j-form-container> </j-form-container>
<!-- <h4 style="padding:20px 0 0 50px;line-height:30px;">审核意见</h4> --> <!-- <h4 style="padding:20px 0 0 50px;line-height:30px;">审核意见</h4> -->
...@@ -129,8 +118,6 @@ ...@@ -129,8 +118,6 @@
roomName: '', roomName: '',
useTo: '', useTo: '',
floorSpace: '', floorSpace: '',
ownerName: '',
ownerPhone: '',
certificateType: '1', certificateType: '1',
certificateNo: '', certificateNo: '',
relationShip: '', relationShip: '',
...@@ -148,26 +135,12 @@ ...@@ -148,26 +135,12 @@
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
roomId: [{ required: true, message: '请选择关联房屋', trigger: 'change' }], roomId: [{ required: true, message: '请选择关联房屋', trigger: 'change' }],
ownerName: [{ required: true, message: '请输入业主名称', trigger: 'blur' }], residentPhone: [
ownerPhone: [ { required: true, message: '请输入住户联系方式', trigger: 'blur' },
{ required: true, message: '请输入业主联系方式', trigger: 'blur' },
{ validator: validateToNextPhone } { validator: validateToNextPhone }
], ],
certificateNo: [{
trigger: 'blur',
message: '请输入业主联系方式',
required: true
// validator: function(rule, value, callback) {
// if (value) {
// callback();
// } else {
// callback('请输入正确的联系人电话!');
// }
// }
}],
relationShip: [{ required: true, message: '请选择与业主关系', trigger: 'change' }], relationShip: [{ required: true, message: '请选择与业主关系', trigger: 'change' }],
residentName: [{ required: true, message: '请输入住户姓名', trigger: 'blur' }], residentName: [{ required: true, message: '请输入住户姓名', trigger: 'blur' }]
residentPhone: [{ required: true, message: '请输入住户联系方式', trigger: 'blur' }]
}, },
url: { url: {
add: "/property-community/info/communityOwner/add", add: "/property-community/info/communityOwner/add",
......
...@@ -10,21 +10,30 @@ ...@@ -10,21 +10,30 @@
<a-input v-model="model.houseAllName" placeholder="请输入关联房屋"></a-input> <a-input v-model="model.houseAllName" placeholder="请输入关联房屋"></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </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-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="业主名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ownerName"> <a-form-model-item label="与业主关系" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="relationShip">
<a-input v-model="model.ownerName" placeholder="请输入业主名称"></a-input> <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-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="业主联系方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ownerPhone"> <a-form-model-item label="住户姓名" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="residentName">
<a-input v-model="model.ownerPhone" placeholder="请输入业主联系方式"></a-input> <a-input v-model="model.residentName" placeholder="请输入住户姓名"></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </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-col :span="12">
<a-form-model-item label="证件类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="certificateType"> <a-form-model-item label="证件类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="certificateType">
<a-select style="width: 100%" v-model="model.certificateType" placeholder="请选择证件类型"> <a-select style="width: 100%" v-model="model.certificateType" placeholder="请选择证件类型">
...@@ -40,28 +49,6 @@ ...@@ -40,28 +49,6 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </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-row>
<a-col :span="12"> <a-col :span="12">
...@@ -70,8 +57,8 @@ ...@@ -70,8 +57,8 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="住户来源" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="residentPhone"> <a-form-model-item label="住户来源" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="residentSourceName">
<a-input v-model="model.residentPhone" placeholder="请输入住户来源"></a-input> <a-input v-model="model.residentSourceName" placeholder="请输入住户来源"></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
...@@ -91,6 +78,13 @@ ...@@ -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 @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-col>
</a-row> </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-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="职位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="labelCode"> <a-form-model-item label="职位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="labelCode">
...@@ -138,7 +132,7 @@ ...@@ -138,7 +132,7 @@
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="贫困类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="potions"> <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-option :value="item.value" v-for="item in ownerLabelsLists" :key="item.value">{{item.label}}</a-select-option>
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
...@@ -191,8 +185,6 @@ ...@@ -191,8 +185,6 @@
roomName: '', roomName: '',
useTo: '', useTo: '',
floorSpace: '', floorSpace: '',
ownerName: '',
ownerPhone: '',
certificateType: '1', certificateType: '1',
certificateNo: '', certificateNo: '',
relationShip: '', relationShip: '',
...@@ -217,6 +209,7 @@ ...@@ -217,6 +209,7 @@
}, },
validatorRules: { validatorRules: {
accessAddress: [{ required: true, message: '请输入访问域名前缀', trigger: 'blur' }], accessAddress: [{ required: true, message: '请输入访问域名前缀', trigger: 'blur' }],
logoUrl: [{ required: true, message: '请上传logo', trigger: 'blur' }],
potions: [{ required: true, message: '请选择贫困类型', trigger: 'change' }], potions: [{ required: true, message: '请选择贫困类型', trigger: 'change' }],
labelCode: [{ required: true, message: '请选择职位', trigger: 'change' }], labelCode: [{ required: true, message: '请选择职位', trigger: 'change' }],
committeeName: [{ required: true, message: '请输入业委会名称', trigger: 'blur' }], committeeName: [{ required: true, message: '请输入业委会名称', trigger: 'blur' }],
...@@ -226,6 +219,7 @@ ...@@ -226,6 +219,7 @@
}, },
formParamas: { formParamas: {
accessAddress: '', accessAddress: '',
logoUrl: '',
labelCode: '', labelCode: '',
committeeName: '', committeeName: '',
adminLoginName: '', adminLoginName: '',
...@@ -261,9 +255,10 @@ ...@@ -261,9 +255,10 @@
async getPageDetail() { async getPageDetail() {
let {result} = await geCommunityOwnertInfoApi({id: this.$route.query.id}) let {result} = await geCommunityOwnertInfoApi({id: this.$route.query.id})
result.communityOwner['houseAllName'] = result.communityOwner.buildingName + '-' + result.communityOwner.unitName + '-' + result.communityOwner.roomName 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); this.model = Object.assign({}, result.communityOwner);
if(this.labelType === '1') { if(this.labelType === '1') {
this.formParamas.adminLoginName = result.communityOwner.ownerPhone this.formParamas.adminLoginName = result.communityOwner.residentPhone
this.formParamas.accessAddress = result.communityVo.accessAddress this.formParamas.accessAddress = result.communityVo.accessAddress
this.formParamas.committeeName = result.committee ? result.committee.committeeName : '' this.formParamas.committeeName = result.committee ? result.committee.committeeName : ''
} }
...@@ -290,7 +285,7 @@ ...@@ -290,7 +285,7 @@
accessAddress: result.communityVo.accessAddress, accessAddress: result.communityVo.accessAddress,
labelCode: result.committeeInfo ? result.committeeInfo.labelCode : null, labelCode: result.committeeInfo ? result.committeeInfo.labelCode : null,
committeeName: result.committee.committeeName, committeeName: result.committee.committeeName,
adminLoginName: result.communityOwner.ownerPhone, adminLoginName: result.communityOwner.residentPhone,
adminPassword: result.communityVo.adminPassword, adminPassword: result.communityVo.adminPassword,
labelImg: result.committeeInfo ? result.committeeInfo.labelImg : null, labelImg: result.committeeInfo ? result.committeeInfo.labelImg : null,
labelRemark: result.committeeInfo ? result.committeeInfo.labelRemark : null labelRemark: result.committeeInfo ? result.committeeInfo.labelRemark : null
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
<a-form layout="inline" @keyup.enter.native="searchQuery"> <a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
<a-form-item label="业主姓名"> <a-form-item label="住户姓名">
<j-input placeholder="请输入业主姓名" v-model="queryParam.ownerName"></j-input> <j-input placeholder="请输入住户姓名" v-model="queryParam.residentName"></j-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :md="6" :sm="8"> <a-col :md="6" :sm="8">
...@@ -72,9 +72,6 @@ ...@@ -72,9 +72,6 @@
:dataSource="dataSource" :pagination="ipagination" :loading="loading" :dataSource="dataSource" :pagination="ipagination" :loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap"
@change="handleTableChange"> @change="handleTableChange">
<span slot="ownerName" slot-scope="text, record">
<span>{{record.ownerName}}{{record.ownerPhone}}</span>
</span>
<span slot="residentName" slot-scope="text, record"> <span slot="residentName" slot-scope="text, record">
<span>{{`${record.residentName},${record.residentPhone}`}}</span> <span>{{`${record.residentName},${record.residentPhone}`}}</span>
</span> </span>
...@@ -84,7 +81,7 @@ ...@@ -84,7 +81,7 @@
<span slot="label" slot-scope="text, record"> <span slot="label" slot-scope="text, record">
<!-- <span>{{record.label | filterLabel}}</span> --> <!-- <span>{{record.label | filterLabel}}</span> -->
<div> <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="red" v-if="record.labelCommitteeDesc">{{record.labelCommitteeDesc}}</a-tag>
<a-tag color="orange" v-if="record.labelDestituteDesc">{{record.labelDestituteDesc}}</a-tag> <a-tag color="orange" v-if="record.labelDestituteDesc">{{record.labelDestituteDesc}}</a-tag>
</div> </div>
...@@ -142,7 +139,7 @@ ...@@ -142,7 +139,7 @@
</div> </div>
</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> <user-role-modal ref="modalUserRole"></user-role-modal>
</a-card> </a-card>
...@@ -159,13 +156,6 @@ import { RELATION_SHIP, filterDictTextByStatic, INDUSTRY_JOB, OWNER_LEBEL } from ...@@ -159,13 +156,6 @@ import { RELATION_SHIP, filterDictTextByStatic, INDUSTRY_JOB, OWNER_LEBEL } from
import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
const labelAllList = [{label: '业主', value: 'owner'}].concat(INDUSTRY_JOB, OWNER_LEBEL) const labelAllList = [{label: '业主', value: 'owner'}].concat(INDUSTRY_JOB, OWNER_LEBEL)
const columns = [ const columns = [
{
title: '业主',
dataIndex: 'ownerName',
scopedSlots: { customRender: 'ownerName' },
key: 'ownerName',
align: 'center',
},
{ {
title: '与业主关系', title: '与业主关系',
dataIndex: 'relationShip', dataIndex: 'relationShip',
...@@ -295,7 +285,7 @@ export default { ...@@ -295,7 +285,7 @@ export default {
}, },
created() { created() {
this.getBuildingList() this.getBuildingList()
// this.initDictData() this.initDictData()
}, },
computed: { computed: {
importExcelUrl: function () { importExcelUrl: function () {
...@@ -405,13 +395,13 @@ export default { ...@@ -405,13 +395,13 @@ export default {
return return
} }
if (typeof window.navigator.msSaveBlob !== 'undefined') { 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 + '.xlsx')
} else { } else {
let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })) let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' }))
let link = document.createElement('a') let link = document.createElement('a')
link.style.display = 'none' link.style.display = 'none'
link.href = url link.href = url
link.setAttribute('download', fileName + '.xls') link.setAttribute('download', fileName + '.xlsx')
document.body.appendChild(link) document.body.appendChild(link)
link.click() link.click()
document.body.removeChild(link) //下载完成移除元素 document.body.removeChild(link) //下载完成移除元素
......
...@@ -38,6 +38,7 @@ import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types' ...@@ -38,6 +38,7 @@ import { ACCESS_TOKEN, ENCRYPTED_STRING } from '@/store/mutation-types'
import LoginSelectHouse from "@/components/tools/LoginSelectHouse"; import LoginSelectHouse from "@/components/tools/LoginSelectHouse";
import { getEncryptedString } from '@/utils/encryption/aesEncrypt' import { getEncryptedString } from '@/utils/encryption/aesEncrypt'
import { timeFix } from '@/utils/util' import { timeFix } from '@/utils/util'
import { mapActions } from 'vuex'
import LoginAccount from './LoginAccount' import LoginAccount from './LoginAccount'
import LoginPhone from './LoginPhone' import LoginPhone from './LoginPhone'
...@@ -64,8 +65,10 @@ export default { ...@@ -64,8 +65,10 @@ export default {
Vue.ls.remove(ACCESS_TOKEN) Vue.ls.remove(ACCESS_TOKEN)
this.getRouterData(); this.getRouterData();
this.rememberMe = true this.rememberMe = true
this.onLoginUrlCheck()
}, },
methods:{ methods:{
...mapActions(["onLoginUrlCheck"]),
handleTabClick(key){ handleTabClick(key){
this.customActiveKey = key this.customActiveKey = key
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论