无等级网格版合并
This commit is contained in:
		| @@ -13,7 +13,8 @@ | ||||
|               <el-form-item :label="item.fieldName" :prop="item.fieldDbName" style="width: 100%"> | ||||
|                 <!-- 字典下拉选择 --> | ||||
|                 <template v-if="item.type == 'dict'"> | ||||
|                   <ai-select v-model="formData[item.fieldDbName]" :placeholder="item.fieldName" :selectList="dict.getDict(item.dict)" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" /> | ||||
|                   <ai-select v-model="formData[item.fieldDbName]" :placeholder="item.fieldName" :selectList="dict.getDict(item.dict)" | ||||
|                              :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"/> | ||||
|                 </template> | ||||
|                 <!-- 单选radio --> | ||||
|                 <template v-else-if="item.type == 'radio'"> | ||||
| @@ -23,7 +24,8 @@ | ||||
|                 </template> | ||||
|                 <!-- 开关onOff --> | ||||
|                 <template v-else-if="item.type == 'onOff'"> | ||||
|                   <el-switch v-model="formData[item.fieldDbName]" active-color="#26f" inactive-color="#ddd" active-value="1" inactive-value="0" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"></el-switch> | ||||
|                   <el-switch v-model="formData[item.fieldDbName]" active-color="#26f" inactive-color="#ddd" active-value="1" inactive-value="0" | ||||
|                              :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"></el-switch> | ||||
|                 </template> | ||||
|                 <!-- 多选checkbox --> | ||||
|                 <template v-else-if="item.type == 'checkbox'"> | ||||
| @@ -37,20 +39,23 @@ | ||||
|                 <template v-else-if="item.type === 'gird'"> | ||||
|                   <el-input disabled :value="girdName" size="small" placeholder="请选择网格"> | ||||
|                     <template slot="append"> | ||||
|                       <el-button size="small" @click="showGrid = true, treeObj.checkedKeys = formData[item.fieldDbName] ? [formData[item.fieldDbName]] : [], gridFieldName = item.fieldDbName">选择网格</el-button> | ||||
|                       <el-button size="small" | ||||
|                                  @click="showGrid = true, treeObj.checkedKeys = formData[item.fieldDbName] ? [formData[item.fieldDbName]] : [], gridFieldName = item.fieldDbName"> | ||||
|                         选择网格 | ||||
|                       </el-button> | ||||
|                     </template> | ||||
|                   </el-input> | ||||
|                 </template> | ||||
|                 <template v-else-if="item.type === 'resident'"> | ||||
|                   <el-input | ||||
|                     v-model="formData.name" | ||||
|                     :placeholder="'请选择'+item.fieldName"> | ||||
|                       v-model="formData.name" | ||||
|                       :placeholder="'请选择'+item.fieldName"> | ||||
|                     <template slot="append"> | ||||
|                       <ai-person-select | ||||
|                         :instance="instance" | ||||
|                         :disabled="!!params.id" | ||||
|                         :url="'/app/appresident/list?auditType=1&areaId=' + user.info.areaId" | ||||
|                         :isMultiple="false" dialogTitle="选择" @selectPerson="onChange"> | ||||
|                           :instance="instance" | ||||
|                           :disabled="!!params.id" | ||||
|                           :url="'/app/appresident/list?auditType=1&areaId=' + user.info.areaId" | ||||
|                           :isMultiple="false" dialogTitle="选择" @selectPerson="onChange"> | ||||
|                         <template name="option" v-slot:option="{ item }"> | ||||
|                           <span class="iconfont iconProlife">{{ item.name }}</span> | ||||
|                           <ai-id mode="show" :show-eyes="false" :value="item.idNumber"/> | ||||
| @@ -60,35 +65,42 @@ | ||||
|                   </el-input> | ||||
|                 </template> | ||||
|                 <template v-else-if="item.type == 'idNumber'"> | ||||
|                   <ai-id v-model="formData[item.fieldDbName]" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" /> | ||||
|                   <ai-id v-model="formData[item.fieldDbName]" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"/> | ||||
|                 </template> | ||||
|                 <!-- input输入框 --> | ||||
|                 <template v-else-if="item.type == 'input' || item.type == 'name' || item.type == 'phone'"> | ||||
|                   <el-input v-model="formData[item.fieldDbName]" :placeholder="'请输入'+item.fieldName" clearable :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                   <el-input v-model="formData[item.fieldDbName]" :placeholder="'请输入'+item.fieldName" clearable | ||||
|                             :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                             :maxlength="item.maxLength" show-word-limit></el-input> | ||||
|                 </template> | ||||
|                 <!-- number 输入框 --> | ||||
|                 <template v-else-if="item.type == 'number'"> | ||||
|                   <el-input-number v-model="formData[item.fieldDbName]" :label="'请输入'+item.fieldName" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" :precision="item.decimalPlaces" :max="item.maxValue" :min="item.minValue"></el-input-number> | ||||
|                   <el-input-number v-model="formData[item.fieldDbName]" :label="'请输入'+item.fieldName" | ||||
|                                    :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" :precision="item.decimalPlaces" :max="item.maxValue" | ||||
|                                    :min="item.minValue"></el-input-number> | ||||
|                 </template> | ||||
|                 <!-- textarea输入框 --> | ||||
|                 <template v-else-if="item.type == 'textarea' || item.type == 'text'"> | ||||
|                   <el-input v-model="formData[item.fieldDbName]" :placeholder="'请输入'+item.fieldName" clearable :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                   <el-input v-model="formData[item.fieldDbName]" :placeholder="'请输入'+item.fieldName" clearable | ||||
|                             :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                             :maxlength="item.maxLength" type="textarea" show-word-limit :rows="3"></el-input> | ||||
|                 </template> | ||||
|                 <!-- 日期选择 --> | ||||
|                 <template v-else-if="item.type == 'date'"> | ||||
|                   <el-date-picker style="width: 100%;" v-model="formData[item.fieldDbName]" type="date" placeholder="请选择" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                   <el-date-picker style="width: 100%;" v-model="formData[item.fieldDbName]" type="date" placeholder="请选择" | ||||
|                                   :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                                   :value-format="item.timePattern"></el-date-picker> | ||||
|                 </template> | ||||
|                 <!-- 日期带时分秒选择 --> | ||||
|                 <template v-else-if="item.type == 'datetime'"> | ||||
|                   <el-date-picker v-model="formData[item.fieldDbName]" type="datetime" placeholder="选择日期时间" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                   <el-date-picker v-model="formData[item.fieldDbName]" type="datetime" placeholder="选择日期时间" | ||||
|                                   :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                                   :value-format="item.timePattern"></el-date-picker> | ||||
|                 </template> | ||||
|                 <!-- 时间-时分秒选择 --> | ||||
|                 <template v-else-if="item.type == 'time'"> | ||||
|                   <el-time-picker v-model="formData[item.fieldDbName]" placeholder="请选择" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                   <el-time-picker v-model="formData[item.fieldDbName]" placeholder="请选择" | ||||
|                                   :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)" | ||||
|                                   :value-format="item.timePattern"></el-time-picker> | ||||
|                 </template> | ||||
|                 <!-- 附件 --> | ||||
| @@ -99,11 +111,13 @@ | ||||
|                 </template> | ||||
|                 <!-- 富文本 --> | ||||
|                 <template v-else-if="item.type == 'rtf'"> | ||||
|                   <ai-editor v-model="formData[item.fieldDbName]" :instance="instance" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"/> | ||||
|                   <ai-editor v-model="formData[item.fieldDbName]" :instance="instance" | ||||
|                              :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"/> | ||||
|                 </template> | ||||
|                 <!-- 地区选择 --> | ||||
|                 <template v-else-if="item.type == 'area'"> | ||||
|                   <ai-area-get :instance="instance" v-model="formData[item.fieldDbName]" :name.sync="formData[item.fieldDbName +'_name']" :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"/> | ||||
|                   <ai-area-get :instance="instance" v-model="formData[item.fieldDbName]" :name.sync="formData[item.fieldDbName +'_name']" | ||||
|                                :disabled="item.disable == 1 || !!(formData.resident_id && item.isInit)"/> | ||||
|                 </template> | ||||
|                 <!-- 人员选择 --> | ||||
|                 <div class="especial" v-else-if="item.type == 'user'"> | ||||
| @@ -118,23 +132,23 @@ | ||||
|         </ai-card> | ||||
|       </el-form> | ||||
|       <ai-dialog | ||||
|         title="选择网格" | ||||
|         :visible.sync="showGrid" | ||||
|         :destroyOnClose="true" | ||||
|         @close="showGrid = false" | ||||
|         @onConfirm="getCheckedTree" | ||||
|         width="720px"> | ||||
|           title="选择网格" | ||||
|           :visible.sync="showGrid" | ||||
|           :destroyOnClose="true" | ||||
|           @close="showGrid = false" | ||||
|           @onConfirm="getCheckedTree" | ||||
|           width="720px"> | ||||
|         <div class="grid"> | ||||
|           <el-tree | ||||
|             :data="treeObj.treeList" | ||||
|             :props="treeObj.defaultProps" | ||||
|             node-key="id" | ||||
|             ref="tree" | ||||
|             :check-strictly="true" | ||||
|             show-checkbox | ||||
|             :default-checked-keys="treeObj.checkedKeys" | ||||
|             default-expand-all | ||||
|             @check="onCheckChange"> | ||||
|               :data="treeObj.treeList" | ||||
|               :props="treeObj.defaultProps" | ||||
|               node-key="id" | ||||
|               ref="tree" | ||||
|               :check-strictly="true" | ||||
|               show-checkbox | ||||
|               :default-checked-keys="treeObj.checkedKeys" | ||||
|               default-expand-all | ||||
|               @check="onCheckChange"> | ||||
|           </el-tree> | ||||
|         </div> | ||||
|       </ai-dialog> | ||||
| @@ -205,7 +219,7 @@ export default { | ||||
|     this.getFormData() | ||||
|     if (this.params.id) { | ||||
|       this.getDetail() | ||||
|     }  | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     getGridList() { | ||||
| @@ -219,10 +233,10 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     onChange (e) { | ||||
|     onChange(e) { | ||||
|       this.formData.resident_id = e.id | ||||
|       Object.keys(this.formData).forEach(item => { | ||||
|         for (var p in e){ | ||||
|         for (var p in e) { | ||||
|           if (item === p) { | ||||
|             this.$set(this.formData, item, e[item]) | ||||
|           } | ||||
| @@ -249,7 +263,7 @@ export default { | ||||
|       this.showGrid = false | ||||
|     }, | ||||
|  | ||||
|     onCheckChange (e) { | ||||
|     onCheckChange(e) { | ||||
|       this.$nextTick(() => { | ||||
|         this.$refs.tree.getCheckedKeys().forEach(v => { | ||||
|           this.$refs.tree.setChecked(v, false) | ||||
| @@ -258,16 +272,11 @@ export default { | ||||
|       }) | ||||
|     }, | ||||
|  | ||||
|     format (list) { | ||||
|     format(list) { | ||||
|       return list.map(item => { | ||||
|         if (item.girdLevel !== '2') { | ||||
|           item.disabled = true | ||||
|         } | ||||
|  | ||||
|         if (item.girdList && item.girdList.length) { | ||||
|           item.girdList = this.format(item.girdList) | ||||
|         } | ||||
|  | ||||
|         return item | ||||
|       }) | ||||
|     }, | ||||
| @@ -305,8 +314,7 @@ export default { | ||||
|             fieldValue: [] | ||||
|           } | ||||
|           if (!this.params.id && item.defaultValue) { | ||||
|             var val = item.defaultValue?.split('`') | ||||
|             colItem.fieldValue = val | ||||
|             colItem.fieldValue = item.defaultValue?.split('`') | ||||
|           } | ||||
|  | ||||
|         } else if (item.type === 'upload') { | ||||
| @@ -333,7 +341,7 @@ export default { | ||||
|           if (!this.params.id) { | ||||
|             colItem.fieldValue = Number(item.defaultValue) || 0 | ||||
|           } | ||||
|         }else { | ||||
|         } else { | ||||
|           if (item.type == 'date' && !item.timePattern) { | ||||
|             item.timePattern = 'yyyy-MM-dd' | ||||
|           } | ||||
| @@ -378,9 +386,8 @@ export default { | ||||
|         if (res?.data) { | ||||
|           this.configs.tableInfos.map((item) => { | ||||
|             this.formData[item.fieldDbName] = res.data[item.fieldDbName] || '' | ||||
|             if(item.type == 'checkbox') { | ||||
|               var checkList = this.formData[item.fieldDbName]?.split(',') | ||||
|               this.formData[item.fieldDbName] = checkList | ||||
|             if (item.type == 'checkbox') { | ||||
|               this.formData[item.fieldDbName] = this.formData[item.fieldDbName]?.split(',') | ||||
|             } | ||||
|  | ||||
|             if (item.type === 'gird' && this.formData[item.fieldDbName]) { | ||||
| @@ -421,13 +428,13 @@ export default { | ||||
|                   this.formData[items.fieldDbName] = this.formData[items.fieldDbName].map(v => v.url).join(',') | ||||
|                 } | ||||
|  | ||||
|                 if(items.type == 'gird' && this.formData[items.fieldDbName]) { | ||||
|                 if (items.type == 'gird' && this.formData[items.fieldDbName]) { | ||||
|                   this.formData[items.fieldDbName] = this.formData[items.fieldDbName] + '_' + this.girdName | ||||
|                 } | ||||
|                 if(items.type == 'area' && this.formData[items.fieldDbName]) { | ||||
|                 if (items.type == 'area' && this.formData[items.fieldDbName]) { | ||||
|                   var area = [] | ||||
|                   area.push(this.formData[items.fieldDbName]) | ||||
|                   area.push(this.formData[items.fieldDbName+'_name']) | ||||
|                   area.push(this.formData[items.fieldDbName + '_name']) | ||||
|                   this.formData[items.fieldDbName] = area.join('_') | ||||
|                 } | ||||
|               }) | ||||
| @@ -462,9 +469,10 @@ export default { | ||||
| </script> | ||||
|  | ||||
| <style scoped lang="scss"> | ||||
| ::v-deep .ai-card{ | ||||
| ::v-deep .ai-card { | ||||
|   width: 100%; | ||||
| } | ||||
|  | ||||
| .form-div { | ||||
|   display: inline-block; | ||||
|   vertical-align: top; | ||||
| @@ -474,11 +482,10 @@ export default { | ||||
|   ::v-deep .AiPersonSelect { | ||||
|     .el-button { | ||||
|       border-color: transparent; | ||||
|     background-color: transparent; | ||||
|     color: inherit; | ||||
|     border-top: 0; | ||||
|     border-bottom: 0; | ||||
|     background: transparent; | ||||
|       background-color: transparent; | ||||
|       color: inherit; | ||||
|       border-top: 0; | ||||
|       border-bottom: 0; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user