Browse Source

合并五大图层

test
jiangyy 3 years ago
parent
commit
a82f146fc1
  1. 166
      src/views/components/editResi.vue

166
src/views/components/editResi.vue

@ -1,28 +1,44 @@
<template> <template>
<div :id="formId" class="resi-container"> <div :id="formId"
<el-form :ref="formId" class="resi-form" :model="form" :rules="rulesForm" :label-width="labelWidth"> class="resi-container">
<el-form :ref="formId"
class="resi-form"
:model="form"
:rules="rulesForm"
:label-width="labelWidth">
<template v-if="supportAdd"> <template v-if="supportAdd">
<el-row style="margin-bottom: 10px;"> <el-row style="margin-bottom: 10px;">
<el-col :span="24"> <el-col :span="24">
<el-button icon="el-icon-plus" size="small" @click="handleAddRow"></el-button> <el-button icon="el-icon-plus"
size="small"
@click="handleAddRow"></el-button>
</el-col> </el-col>
</el-row> </el-row>
<edit-form v-for="(item, index) in addList" :key="index" :ref="'baseForms' + index" :columns="3" <edit-form v-for="(item, index) in addList"
:form-list="item.itemList || formList" :form-id="'baseForms' + item.row" /> :key="index"
:ref="'baseForms' + index"
:columns="3"
:form-list="item.itemList || formList"
:form-id="'baseForms' + item.row" />
</template> </template>
<template v-else> <template v-else>
<el-row v-if="fixed" class="resi-row"> <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 v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="GRID_ID" label="所属网格"> <el-form-item prop="GRID_ID"
label="所属网格">
<!-- <div class="resi-cell"> --> <!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> --> <!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value"> <div class="resi-cell-value">
<el-select v-model.trim="form.GRID_ID" :disabled="disabled" placeholder="请选择网格" size="small" <el-select v-model.trim="form.GRID_ID"
clearable class="resi-cell-select" @change="handleChangeGrid" :disabled="disabled"
> placeholder="请选择网格"
<el-option size="small"
v-for="item in optionsG" clearable
class="resi-cell-select"
@change="handleChangeGrid">
<el-option v-for="item in optionsG"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@ -33,15 +49,19 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18">
<el-form-item label="所属房屋" required> <el-form-item label="所属房屋"
required>
<div class="resi-cell-value"> <div class="resi-cell-value">
<div class="resi-cell-col"> <div class="resi-cell-col">
<el-form-item prop="VILLAGE_ID"> <el-form-item prop="VILLAGE_ID">
<el-select v-model.trim="form.VILLAGE_ID" placeholder="请选择小区" size="small" <el-select v-model.trim="form.VILLAGE_ID"
clearable class="resi-cell-select" :disabled="disabled" @change="handleChangeV" placeholder="请选择小区"
> size="small"
<el-option clearable
v-for="item in optionsV" class="resi-cell-select"
:disabled="disabled"
@change="handleChangeV">
<el-option v-for="item in optionsV"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@ -49,11 +69,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="BUILD_ID"> <el-form-item prop="BUILD_ID">
<el-select v-model.trim="form.BUILD_ID" placeholder="请选择楼号" size="small" <el-select v-model.trim="form.BUILD_ID"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" @change="handleChangeB" placeholder="请选择楼号"
> size="small"
<el-option clearable
v-for="item in optionsB" :disabled="disabled"
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeB">
<el-option v-for="item in optionsB"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@ -61,11 +84,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="UNIT_ID"> <el-form-item prop="UNIT_ID">
<el-select v-model.trim="form.UNIT_ID" placeholder="请选择单元" size="small" <el-select v-model.trim="form.UNIT_ID"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" @change="handleChangeD" placeholder="请选择单元"
> size="small"
<el-option clearable
v-for="item in optionsD" :disabled="disabled"
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeD">
<el-option v-for="item in optionsD"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@ -73,12 +99,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="HOME_ID"> <el-form-item prop="HOME_ID">
<el-select v-model.trim="form.HOME_ID" placeholder="请选择房号" size="small" <el-select v-model.trim="form.HOME_ID"
clearable :disabled="disabled" class="resi-cell-select resi-cell-select-middle" placeholder="请选择房号"
@change="handleChangeH" size="small"
> clearable
<el-option :disabled="disabled"
v-for="item in optionsH" class="resi-cell-select resi-cell-select-middle"
@change="handleChangeH">
<el-option v-for="item in optionsH"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@ -134,34 +162,35 @@
</el-form-item> </el-form-item>
</el-col> --> </el-col> -->
</el-row> </el-row>
<el-row v-for="(item, index) in sliceList(formList, columns)" :key="index" class="resi-row"> <el-row v-for="(item, index) in sliceList(formList, columns)"
:key="index"
class="resi-row">
<!-- <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.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)" <el-col v-for="n in item"
:key="n.itemId"
:span="item.length === 1 ? 24 : (24/columns)"
:style="n.itemType === 'divider' && 'display: none;'"> :style="n.itemType === 'divider' && 'display: none;'">
<el-form-item :prop="n.columnName" :label="n.label"> <el-form-item :prop="n.columnName"
:label="n.label">
<!-- <div class="resi-cell"> --> <!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> --> <!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value"> <div class="resi-cell-value">
<template v-if="n.itemType === 'input' || n.itemType === 'textarea'"> <template v-if="n.itemType === 'input' || n.itemType === 'textarea'">
<el-input <el-input v-if="n.validType"
v-if="n.validType"
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:disabled="disabled" :disabled="disabled"
class="resi-cell-input" class="resi-cell-input"
size="small" size="small"
clearable clearable
placeholder="请输入内容" placeholder="请输入内容">
>
</el-input> </el-input>
<el-input <el-input v-else
v-else
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:disabled="disabled" :disabled="disabled"
class="resi-cell-input" class="resi-cell-input"
size="small" size="small"
clearable clearable
placeholder="请输入内容" placeholder="请输入内容">
>
</el-input> </el-input>
</template> </template>
<!-- <template v-if="n.itemType === 'textarea'"> <!-- <template v-if="n.itemType === 'textarea'">
@ -175,8 +204,7 @@
> >
</el-input> </el-input>
</template> --> </template> -->
<el-date-picker <el-date-picker v-else-if="n.itemType === 'datepicker'"
v-else-if="n.itemType === 'datepicker'"
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:disabled="disabled" :disabled="disabled"
class="resi-cell-input" class="resi-cell-input"
@ -187,8 +215,7 @@
format="yyyy 年 MM 月 dd 日" format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"> value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
<el-date-picker <el-date-picker v-else-if="n.itemType === 'daterange'"
v-else-if="n.itemType === 'daterange'"
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:disabled="disabled" :disabled="disabled"
type="daterange" type="daterange"
@ -197,17 +224,14 @@
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期">
>
</el-date-picker> </el-date-picker>
<el-time-picker <el-time-picker v-else-if="n.itemType === 'timepicker'"
v-else-if="n.itemType === 'timepicker'"
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:disabled="disabled" :disabled="disabled"
placeholder="任意时间点"> placeholder="任意时间点">
</el-time-picker> </el-time-picker>
<el-time-picker <el-time-picker v-else-if="n.itemType === 'timerange'"
v-else-if="n.itemType === 'timerange'"
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:disabled="disabled" :disabled="disabled"
is-range is-range
@ -216,12 +240,15 @@
end-placeholder="结束时间" end-placeholder="结束时间"
placeholder="选择时间范围"> placeholder="选择时间范围">
</el-time-picker> </el-time-picker>
<el-select v-else-if="n.itemType === 'select'" v-model.trim="form[n.columnName]" <el-select v-else-if="n.itemType === 'select'"
v-model.trim="form[n.columnName]"
:multiple="n.multiSelect" :multiple="n.multiSelect"
:disabled="disabled" :disabled="disabled"
placeholder="请选择" size="small" clearable class="resi-cell-select"> placeholder="请选择"
<el-option size="small"
v-for="item in n.options || options" clearable
class="resi-cell-select">
<el-option v-for="item in n.options || options"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
@ -231,19 +258,20 @@
:options="options" :options="options"
:props="{ checkStrictly: true }" :props="{ checkStrictly: true }"
clearable></el-cascader> --> clearable></el-cascader> -->
<el-cascader <el-cascader v-else-if="n.itemType === 'cascader'"
v-else-if="n.itemType === 'cascader'"
v-model.trim="form[n.columnName]" v-model.trim="form[n.columnName]"
:options="n.options" :options="n.options"
:props="{ checkStrictly: true }" :props="{ checkStrictly: true }"
:disabled="disabled" :disabled="disabled"
:props="{ emitPath: false }"
clearable clearable
size="small" size="small"
class="resi-cell-select"> class="resi-cell-select">
</el-cascader> </el-cascader>
<template v-else-if="n.itemType === 'radio'"> <template v-else-if="n.itemType === 'radio'">
<el-radio v-for="ns in n.options" :key="ns.value" v-model.trim="form[n.columnName]" :disabled="disabled" <el-radio v-for="ns in n.options"
:key="ns.value"
v-model.trim="form[n.columnName]"
:disabled="disabled"
:label="ns.value"> :label="ns.value">
{{ ns.label }} {{ ns.label }}
</el-radio> </el-radio>
@ -251,7 +279,10 @@
</template> </template>
<template v-else-if="n.itemType === 'checkbox'"> <template v-else-if="n.itemType === 'checkbox'">
<el-checkbox-group v-model.trim="form[n.columnName]"> <el-checkbox-group v-model.trim="form[n.columnName]">
<el-checkbox v-for="ns in n.options" :key="ns.value" :label="ns.value" :disabled="disabled">{{ns.label}}</el-checkbox> <el-checkbox v-for="ns in n.options"
:key="ns.value"
:label="ns.value"
:disabled="disabled">{{ns.label}}</el-checkbox>
<!-- <el-checkbox label="n.la"></el-checkbox> --> <!-- <el-checkbox label="n.la"></el-checkbox> -->
</el-checkbox-group> </el-checkbox-group>
</template> </template>
@ -349,7 +380,7 @@ export default {
_form = { ...obj } _form = { ...obj }
// return _form // return _form
} }
const itemTypes = ['daterange', 'timerange'] const itemTypes = ['cascader', 'daterange', 'timerange']
arr.forEach(item => { arr.forEach(item => {
if (item.multiSelect || itemTypes.includes(item.itemType)) { if (item.multiSelect || itemTypes.includes(item.itemType)) {
if (item.columnValue && item.columnValue.indexOf(',') > -1) _form[item.columnName] = item.columnValue.split(',') if (item.columnValue && item.columnValue.indexOf(',') > -1) _form[item.columnName] = item.columnValue.split(',')
@ -808,17 +839,16 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.resi-form { .resi-form {
:deep .el-date-editor.el-input, .el-date-editor.el-input__inner { :deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100% !important; width: 100% !important;
} }
} }
.resi-cell-value .resi-cell-input { .resi-cell-value .resi-cell-input {
width: 190px; width: 190px;
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.resi-form .resi-row { .resi-form .resi-row {
margin-bottom: 0; margin-bottom: 0;
} }

Loading…
Cancel
Save