Browse Source

Merge branch 'dev' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov into dev

shibei_prod
jiangyy 4 years ago
parent
commit
3e43bfb1b5
  1. 23663
      package-lock.json
  2. 13
      src/views/components/editResi.vue
  3. 131
      src/views/components/resiForm.vue
  4. 428
      src/views/components/resiSearch.vue
  5. 134
      src/views/modules/base/resi.vue

23663
package-lock.json

File diff suppressed because it is too large

13
src/views/components/editResi.vue

@ -165,12 +165,13 @@
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker
v-else-if="n.itemType === 'dateRange'"
v-else-if="n.itemType === 'daterange'"
v-model="form[n.columnName]"
:disabled="disabled"
type="daterange"
align="right"
unlink-panels
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@ -183,7 +184,7 @@
placeholder="任意时间点">
</el-time-picker>
<el-time-picker
v-else-if="n.itemType === 'timeRange'"
v-else-if="n.itemType === 'timerange'"
v-model="form[n.columnName]"
:disabled="disabled"
is-range
@ -320,8 +321,9 @@ export default {
_form = { ...obj }
// return _form
}
const itemTypes = ['cascader', 'daterange', 'timerange']
arr.forEach(item => {
if (item.multiSelect || item.itemType === 'cascader') {
if (item.multiSelect || itemTypes.includes(item.itemType)) {
if (item.columnValue && item.columnValue.indexOf(',') > -1) _form[item.columnName] = item.columnValue.split(',')
else _form[item.columnName] = (item.columnValue && [item.columnValue]) || []
} else _form[item.columnName] = item.columnValue || ''
@ -613,10 +615,11 @@ export default {
})
})
// console.log('resssssss', res)
const itemTypes = ['cascader', 'daterange', 'timerange']
res.forEach(item => {
let _form = {}
item.list.filter(n => n.isChange).forEach(r => {
_form[r.columnName] = r.multiSelect || r.itemType === 'cascader' ? this.form[r.columnName].toString() : this.form[r.columnName]
_form[r.columnName] = r.multiSelect || itemTypes.includes(r.itemType) ? this.form[r.columnName].toString() : this.form[r.columnName]
if (r.ID) {
_form.ID = r.ID
}
@ -628,8 +631,8 @@ export default {
}
if (Object.keys(_form).length > 0) {
if (!_form.AGENCY_ID) _form.AGENCY_ID = this.$store.state.user.agencyId
if (!_form.ID) _form.ID = ID
}
if (!_form.ID) _form.ID = ID
}
console.log('objeckeyssss', Object.keys(_form), _form)
newForm.push({

131
src/views/components/resiForm.vue

@ -1,6 +1,6 @@
<template>
<div :id="formId" class="resi-container">
<el-form :ref="formId" class="resi-form" :model="form" :rules="rules" :label-width="labelWidth">
<el-form :ref="formId" class="resi-form" :model="form" :rules="rulesForm" :label-width="labelWidth">
<template v-if="supportAdd">
<el-row style="margin-bottom: 10px;">
<el-col :span="24">
@ -13,7 +13,7 @@
<el-row v-if="fixed" class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col :span="6">
<el-form-item :prop="form.GRID_ID" label="所属网格">
<el-form-item prop="GRID_ID" label="所属网格">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
@ -32,48 +32,64 @@
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item :prop="form.VILLAGE_ID" label="所属家庭">
<el-form-item label="所属家庭" required>
<div class="resi-cell-value">
<el-select v-model="form.VILLAGE_ID" placeholder="请选择小区" size="small"
clearable class="resi-cell-select" @change="handleChangeV"
>
<el-option
v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="form.BUILD_ID" placeholder="请选择楼号" size="small"
clearable class="resi-cell-select" @change="handleChangeB"
>
<el-option
v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="form.UNIT_ID" placeholder="请选择单元" size="small"
clearable class="resi-cell-select" @change="handleChangeD"
>
<el-option
v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="form.HOME_ID" placeholder="请选择房号" size="small"
clearable class="resi-cell-select"
>
<el-option
v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-col :span="4">
<el-form-item prop="VILLAGE_ID">
<el-select v-model="form.VILLAGE_ID" placeholder="请选择小区" size="small"
clearable class="resi-cell-select" @change="handleChangeV"
>
<el-option
v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="BUILD_ID">
<el-select v-model="form.BUILD_ID" placeholder="请选择楼号" size="small"
clearable class="resi-cell-select" @change="handleChangeB"
>
<el-option
v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="UNIT_ID">
<el-select v-model="form.UNIT_ID" placeholder="请选择单元" size="small"
clearable class="resi-cell-select" @change="handleChangeD"
>
<el-option
v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="HOME_ID">
<el-select v-model="form.HOME_ID" placeholder="请选择房号" size="small"
clearable class="resi-cell-select"
>
<el-option
v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</div>
</el-form-item>
</el-col>
@ -124,7 +140,7 @@
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col v-for="n in item" :key="n.itemId" :span="item.length === 1 ? 24 : (24/columns)"
:style="n.itemType === 'divider' && 'display: none;'">
<el-form-item :prop="n.columnName" :label="n.label">
<el-form-item :prop="n.columnName" :label="n.label" :required="Boolean(n.required)">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
@ -171,7 +187,7 @@
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker
v-else-if="n.itemType === 'dateRange'"
v-else-if="n.itemType === 'daterange'"
v-model="form[n.columnName]"
type="daterange"
align="right"
@ -187,9 +203,10 @@
placeholder="任意时间点">
</el-time-picker>
<el-time-picker
v-else-if="n.itemType === 'timeRange'"
v-else-if="n.itemType === 'timerange'"
v-model="form[n.columnName]"
is-range
class="resi-cell-range"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
@ -380,7 +397,14 @@ export default {
tempFormList,
addCount: 0,
addList: [],
rules,
rulesForm: {
...rules,
VILLAGE_ID: [{ required: true, message: `请选择小区`, trigger: 'blur' }],
GRID_ID: [{ required: true, message: `请选择网格`, trigger: 'blur' }],
BUILD_ID: [{ required: true, message: `请选择楼号`, trigger: 'blur' }],
UNIT_ID: [{ required: true, message: `请选择单元`, trigger: 'blur' }],
HOME_ID: [{ required: true, message: `请选择房号`, trigger: 'blur' }]
},
value: '',
optionsV: [],
optionsB: [],
@ -611,10 +635,11 @@ export default {
tableName: name
})
})
const itemTypes = ['cascader', 'daterange', 'timerange']
res.forEach(item => {
let _form = {}
item.list.filter(n => n.isChange).forEach(r => {
_form[r.columnName] = r.multiSelect || r.itemType === 'cascader' ? this.form[r.columnName].toString() : this.form[r.columnName]
_form[r.columnName] = r.multiSelect || itemTypes.includes(r.itemType) ? this.form[r.columnName].toString() : this.form[r.columnName]
// return _form
})
if (this.fixed) {
@ -639,6 +664,7 @@ export default {
},
getGridList () {
const { user } = this.$store.state
console.log('agencyId', user)
this.$http
.post('/gov/org/customergrid/gridoption', { agencyId: user.agencyId })
.then(({ data: res }) => {
@ -744,7 +770,14 @@ export default {
.resi-cell-value .resi-cell-input {
max-width: 180px;
}
.resi-cell-value {
.el-col {
margin-right: 20px;
}
// .resi-cell-range {
// width: 180px;
// }
}
</style>
<style lang="scss" scoped>

428
src/views/components/resiSearch.vue

@ -124,429 +124,8 @@
</div>
</div>
</el-col>
<!-- <el-col :span="12">
<div class="resi-cell">
<div class="resi-cell-label">小区名称</div>
<div class="resi-cell-value">
<el-select v-model="value" placeholder="请选择" size="small" class="resi-cell-select">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="value" placeholder="请选择" size="small" class="resi-cell-select resi-cell-select-middle">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="value" placeholder="请选择" size="small" class="resi-cell-select resi-cell-select-middle">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">户籍查询</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col> -->
</el-row>
<!-- <el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row class="resi-row" :gutter="20">
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="resi-cell">
<div class="resi-cell-label">所属网格</div>
<div class="resi-cell-value">
<el-input
class="resi-cell-input"
size="small"
placeholder="请输入内容"
>
</el-input>
</div>
</div>
</el-col>
</el-row> -->
</el-row>
<el-row class="resi-search">
<!-- <el-col :span="20">
@ -738,13 +317,14 @@ export default {
},
handleSearch () {
// console.log('formmmmm---', this.form)
const itemTypes = ['cascader', 'daterange', 'timerange']
let arr = this.tempFormList.filter(n => n.isChange).map(item => {
return {
queryType: item.queryType,
tableName: item.tableName,
columnName: item.columnName,
columnValue: [...this.form[item.columnName]]
// columnValue: item.queryType === 'daterange' ? this.form[item.columnName] : [this.form[item.columnName]]
// columnValue: []
columnValue: (itemTypes.includes(item.queryType) || itemTypes.includes(item.itemType)) ? this.form[item.columnName] : [this.form[item.columnName]]
}
})
let arr1 = this.fixedList.filter(n => n.columnValue.length > 0).map(item => {

134
src/views/modules/base/resi.vue

@ -3,10 +3,11 @@
<resi-search v-if="searchList.length > 0" ref="resiSearch" :form-list="searchList" @search="handleSearch" />
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="warning" size="small">导出</el-button>
<el-button type="success" size="small" @click="handleAdd">新增</el-button>
<el-button type="primary" size="small">下载人口模板</el-button>
<el-button type="danger" size="small">导入人口数据</el-button>
<el-button type="warning" size="small" @click="handleExport">导出</el-button>
<!-- <el-button type="primary" size="small">下载人口模板</el-button> -->
<!-- <el-button type="danger" size="small">导入人口数据</el-button> -->
</div>
<el-table
:data="tableData"
@ -36,13 +37,16 @@
width="120">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small" class="btn-color-look">查看</el-button>
<el-button @click="handleEdit(scope.row)" type="text" size="small" class="btn-color-edit">编辑</el-button>
<el-popconfirm
title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row)"
>
<el-button slot="reference" type="text" size="small" class="btn-color-del">删除</el-button>
</el-popconfirm>
<template v-if="filterEdit(scope.row.ORG_ID)">
<el-button @click="handleEdit(scope.row)" type="text" size="small" class="btn-color-edit">编辑</el-button>
<el-popconfirm
title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row)"
>
<el-button slot="reference" type="text" size="small" class="btn-color-del">删除</el-button>
</el-popconfirm>
</template>
</template>
</el-table-column>
</el-table>
@ -130,7 +134,6 @@ export default {
pageLoading: false,
dialogEditVisible: false,
dialogVisible: false,
openSearch: false,
currentPage: 1,
pageSize: 20,
total: null,
@ -138,7 +141,6 @@ export default {
activeName: '',
tableData: [],
searchList: [],
value: '',
editForm: {
GRID_ID: '',
VILLAGE_ID: '',
@ -150,47 +152,6 @@ export default {
},
formList: [],
tableHeader: [],
tabsForm: [{
label: '所属网格',
itemType: 'input',
optionSourceType: '',
sort: '1',
require: true,
validType: null,
columnName: 'grid'
}, {
label: '小区名称',
require: true,
itemType: 'select',
optionSourceType: '',
sort: '1',
validType: null,
columnName: 'shequ'
}, {
label: '户籍查询',
require: true,
itemType: 'input',
optionSourceType: '',
sort: '1',
validType: null,
columnName: 'huji'
}, {
label: '本地户籍',
itemType: 'select',
require: true,
optionSourceType: '',
sort: '1',
validType: null,
columnName: 'huji1'
}, {
label: '姓名',
itemType: 'input',
optionSourceType: '',
sort: '1',
validType: null,
require: true,
columnName: 'username'
}],
tabsList: []
}
},
@ -203,6 +164,10 @@ export default {
console.log('storeoooo----0000', this.$store)
},
methods: {
filterEdit (id) {
const { user } = this.$store.state
return id === user.agencyId
},
handleSizeChange (val) {
console.log(`每页 ${val}`)
this.pageSize = val
@ -228,6 +193,69 @@ export default {
this.conditions = val
this.getTableData()
},
//
download (data, fileName) {
console.log('data',data)
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
handleExport () {
let params = {
formCode: 'resi_base_info',
conditions: this.conditions
}
// .post('epmetuser/icresiuser/exportExcel', params)
this.$http({
url: 'epmetuser/icresiuser/exportExcel',
method: 'post',
data: params,
header: {
headers: { 'Content-Type': 'application/x-download' }
},
responseType: 'blob'
}).then(({ data: res }) => {
// var headerData = res.headers
// this.download(res, '.xlsx')
console.log('res',res)
const fileName = '人员数据.xlsx'
let blob = new Blob([res], {type: 'application/vnd.ms-excel'})
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
// window.location.href = res.data
})
.catch(err => {
console.log('获取导出情失败', err)
return this.$message.error('网络错误')
})
},
handleClick (tab, event) {
console.log(tab, event)
},

Loading…
Cancel
Save