7 changed files with 1599 additions and 747 deletions
			
			
		@ -0,0 +1,441 @@ | 
				
			|||||
 | 
					<template> | 
				
			||||
 | 
					  <div> | 
				
			||||
 | 
					    <div class="dialog-h-content scroll-h"> | 
				
			||||
 | 
					      <el-form | 
				
			||||
 | 
					        ref="ref_form" | 
				
			||||
 | 
					        :model="fmData" | 
				
			||||
 | 
					        :inline="true" | 
				
			||||
 | 
					        :disabled="formType === 'watch'" | 
				
			||||
 | 
					        class="form" | 
				
			||||
 | 
					      > | 
				
			||||
 | 
					        <el-form-item | 
				
			||||
 | 
					          v-for="item in editParams" | 
				
			||||
 | 
					          label-width="150px" | 
				
			||||
 | 
					          style="display: block" | 
				
			||||
 | 
					          :key="'edit' + item.keyName" | 
				
			||||
 | 
					          :label="item.field" | 
				
			||||
 | 
					          :prop="item.keyName" | 
				
			||||
 | 
					          :rules="item.rules || []" | 
				
			||||
 | 
					        > | 
				
			||||
 | 
					          <template v-if="item.type == 'input'"> | 
				
			||||
 | 
					            <el-input | 
				
			||||
 | 
					              v-if=" | 
				
			||||
 | 
					                formType == 'add' || (formType == 'edit' && !item.editDisable) | 
				
			||||
 | 
					              " | 
				
			||||
 | 
					              v-model="fmData[item.keyName]" | 
				
			||||
 | 
					              class="item_width_1" | 
				
			||||
 | 
					              size="small" | 
				
			||||
 | 
					              clearable | 
				
			||||
 | 
					              show-word-limit | 
				
			||||
 | 
					              :maxlength="item.maxlength || ''" | 
				
			||||
 | 
					              :placeholder="item.placeholder || '请输入'" | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					            </el-input> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div style="width: 610px" v-else> | 
				
			||||
 | 
					              {{ item.value || "--" }} | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <template v-if="item.type == 'textarea'"> | 
				
			||||
 | 
					            <el-input | 
				
			||||
 | 
					              v-if=" | 
				
			||||
 | 
					                formType == 'add' || (formType == 'edit' && !item.editDisable) | 
				
			||||
 | 
					              " | 
				
			||||
 | 
					              v-model="fmData[item.keyName]" | 
				
			||||
 | 
					              type="textarea" | 
				
			||||
 | 
					              class="item_width_1" | 
				
			||||
 | 
					              size="small" | 
				
			||||
 | 
					              clearable | 
				
			||||
 | 
					              show-word-limit | 
				
			||||
 | 
					              :rows="3" | 
				
			||||
 | 
					              :maxlength="item.maxlength || ''" | 
				
			||||
 | 
					              :placeholder="item.placeholder || '请输入'" | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					            </el-input> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div style="width: 610px" v-else> | 
				
			||||
 | 
					              {{ item.value || "--" }} | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <template v-else-if="item.type == 'select'"> | 
				
			||||
 | 
					            <el-select | 
				
			||||
 | 
					              v-model="fmData[item.keyName]" | 
				
			||||
 | 
					              :placeholder="item.placeholder || '请选择'" | 
				
			||||
 | 
					              size="small" | 
				
			||||
 | 
					              clearable | 
				
			||||
 | 
					              class="item_width_2" | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					              <el-option | 
				
			||||
 | 
					                v-for="subItem in item.optionList" | 
				
			||||
 | 
					                :key="subItem.value" | 
				
			||||
 | 
					                :label="subItem.label" | 
				
			||||
 | 
					                :value="subItem.value" | 
				
			||||
 | 
					              > | 
				
			||||
 | 
					              </el-option> | 
				
			||||
 | 
					            </el-select> | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <template v-else-if="item.type == 'address'"> | 
				
			||||
 | 
					            <div style="width: 500px"> | 
				
			||||
 | 
					              <el-input | 
				
			||||
 | 
					                class="item_width_4" | 
				
			||||
 | 
					                maxlength="100" | 
				
			||||
 | 
					                style="width: 430px" | 
				
			||||
 | 
					                show-word-limit | 
				
			||||
 | 
					                :placeholder="item.placeholder || '请输入所在地址'" | 
				
			||||
 | 
					                v-model="fmData[item.keyName]" | 
				
			||||
 | 
					              > | 
				
			||||
 | 
					              </el-input> | 
				
			||||
 | 
					              <el-button | 
				
			||||
 | 
					                style="margin-left: 10px" | 
				
			||||
 | 
					                type="default" | 
				
			||||
 | 
					                size="small" | 
				
			||||
 | 
					                @click="handleSearchMap(item)" | 
				
			||||
 | 
					                >查询</el-button | 
				
			||||
 | 
					              > | 
				
			||||
 | 
					              <div id="app" class="div_map"></div> | 
				
			||||
 | 
					              <div style="margin-top: 10px"> | 
				
			||||
 | 
					                <span>经度</span> | 
				
			||||
 | 
					                <el-input | 
				
			||||
 | 
					                  class="item_width_3" | 
				
			||||
 | 
					                  maxlength="50" | 
				
			||||
 | 
					                  placeholder="请输入经度" | 
				
			||||
 | 
					                  v-model="fmData[item.supKeys[0]]" | 
				
			||||
 | 
					                > | 
				
			||||
 | 
					                </el-input> | 
				
			||||
 | 
					                <span style="margin-left: 20px">纬度</span> | 
				
			||||
 | 
					                <el-input | 
				
			||||
 | 
					                  class="item_width_3" | 
				
			||||
 | 
					                  maxlength="50" | 
				
			||||
 | 
					                  placeholder="请输入纬度" | 
				
			||||
 | 
					                  v-model="fmData[item.supKeys[1]]" | 
				
			||||
 | 
					                > | 
				
			||||
 | 
					                </el-input> | 
				
			||||
 | 
					              </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					        </el-form-item> | 
				
			||||
 | 
					      </el-form> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="div_btn resi-btns"> | 
				
			||||
 | 
					      <el-button size="small" @click="handleCancle">取 消</el-button> | 
				
			||||
 | 
					      <el-button | 
				
			||||
 | 
					        v-if="formType != 'watch'" | 
				
			||||
 | 
					        type="primary" | 
				
			||||
 | 
					        size="small" | 
				
			||||
 | 
					        :disabled="btnDisable" | 
				
			||||
 | 
					        @click="handleComfirm" | 
				
			||||
 | 
					        >确 定</el-button | 
				
			||||
 | 
					      > | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script> | 
				
			||||
 | 
					import { mapGetters } from "vuex"; | 
				
			||||
 | 
					import { requestPost } from "@/js/dai/request"; | 
				
			||||
 | 
					import nextTick from "dai-js/tools/nextTick"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					var map; | 
				
			||||
 | 
					var search; | 
				
			||||
 | 
					var markers; | 
				
			||||
 | 
					var infoWindowList; | 
				
			||||
 | 
					var geocoder; // 新建一个正逆地址解析类 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					export default { | 
				
			||||
 | 
					  props: { | 
				
			||||
 | 
					    formId: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    formType: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "info", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    editParams: { | 
				
			||||
 | 
					      type: Array, | 
				
			||||
 | 
					      default: () => [], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  data() { | 
				
			||||
 | 
					    return { | 
				
			||||
 | 
					      btnDisable: false, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      fmData: {}, | 
				
			||||
 | 
					    }; | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  components: {}, | 
				
			||||
 | 
					  computed: {}, | 
				
			||||
 | 
					  watch: { | 
				
			||||
 | 
					    editParams: { | 
				
			||||
 | 
					      handler() { | 
				
			||||
 | 
					        this.computeFmData(); | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					      deep: true, | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  async mounted() { | 
				
			||||
 | 
					    this.initForm(); | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  methods: { | 
				
			||||
 | 
					    async initForm() { | 
				
			||||
 | 
					      this.iniFmData(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (this.formId && this.formType != "add") { | 
				
			||||
 | 
					        this.getInfo(); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    iniFmData() { | 
				
			||||
 | 
					      const { editParams } = this; | 
				
			||||
 | 
					      editParams.forEach(async (item, index) => { | 
				
			||||
 | 
					        this.fmData[item.keyName] = item.value; | 
				
			||||
 | 
					        if (item.type == "select") { | 
				
			||||
 | 
					          if (item.optionUrl) { | 
				
			||||
 | 
					            this.getFmOptions( | 
				
			||||
 | 
					              index, | 
				
			||||
 | 
					              item.optionUrl, | 
				
			||||
 | 
					              item.optionUrlParams || {} | 
				
			||||
 | 
					            ); | 
				
			||||
 | 
					          } | 
				
			||||
 | 
					        } else if (item.type == "address") { | 
				
			||||
 | 
					          await nextTick(500); | 
				
			||||
 | 
					          this.initMap(item); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async getFmOptions(index, url, params) { | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, { | 
				
			||||
 | 
					        ...params, | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.editParams[index].optionList = data || []; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error("请求检索基础数据失败!"); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    // 地图初始化函数,本例取名为init,开发者可根据实际情况定义 | 
				
			||||
 | 
					    initMap(item) { | 
				
			||||
 | 
					      // 定义地图中心点坐标 | 
				
			||||
 | 
					      var center = new window.TMap.LatLng(36.0722275, 120.38945519); | 
				
			||||
 | 
					      // 定义map变量,调用 TMap.Map() 构造函数创建地图 | 
				
			||||
 | 
					      map = new window.TMap.Map(document.getElementById("app"), { | 
				
			||||
 | 
					        center: center, // 设置地图中心点坐标 | 
				
			||||
 | 
					        zoom: 17.2, // 设置地图缩放级别 | 
				
			||||
 | 
					        pitch: 43.5, // 设置俯仰角 | 
				
			||||
 | 
					        rotation: 45, // 设置地图旋转角度 | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      search = new window.TMap.service.Search({ pageSize: 10 }); | 
				
			||||
 | 
					      // 新建一个地点搜索类 | 
				
			||||
 | 
					      markers = new TMap.MultiMarker({ | 
				
			||||
 | 
					        map: map, | 
				
			||||
 | 
					        geometries: [], | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					      infoWindowList = Array(10); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      geocoder = new TMap.service.Geocoder(); // 新建一个正逆地址解析类 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      // 监听地图平移结束 | 
				
			||||
 | 
					      map.on("panend", () => { | 
				
			||||
 | 
					        this.handleMoveCenter(item); | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					      this.handleMoveCenter(item); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    setMarker(lat, lng) { | 
				
			||||
 | 
					      markers.setGeometries([]); | 
				
			||||
 | 
					      markers.add([ | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          id: "4", | 
				
			||||
 | 
					          styleId: "marker", | 
				
			||||
 | 
					          position: new TMap.LatLng(lat, lng), | 
				
			||||
 | 
					          properties: { | 
				
			||||
 | 
					            title: "marker4", | 
				
			||||
 | 
					          }, | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					      ]); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleSearchMap(item) { | 
				
			||||
 | 
					      infoWindowList.forEach((infoWindow) => { | 
				
			||||
 | 
					        infoWindow.close(); | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					      infoWindowList.length = 0; | 
				
			||||
 | 
					      markers.setGeometries([]); | 
				
			||||
 | 
					      // 在地图显示范围内以给定的关键字搜索地点 | 
				
			||||
 | 
					      search | 
				
			||||
 | 
					        .searchRectangle({ | 
				
			||||
 | 
					          keyword: item.value, | 
				
			||||
 | 
					          bounds: map.getBounds(), | 
				
			||||
 | 
					        }) | 
				
			||||
 | 
					        .then((result) => { | 
				
			||||
 | 
					          let { data } = result; | 
				
			||||
 | 
					          if (Array.isArray(data) && data.length > 0) { | 
				
			||||
 | 
					            const { | 
				
			||||
 | 
					              location: { lat, lng }, | 
				
			||||
 | 
					            } = data[0]; | 
				
			||||
 | 
					            map.setCenter(new TMap.LatLng(lat, lng)); | 
				
			||||
 | 
					            this.setMarker(lat, lng); | 
				
			||||
 | 
					            item.supValues[0] = lng; | 
				
			||||
 | 
					            item.supValues[1] = lat; | 
				
			||||
 | 
					          } else { | 
				
			||||
 | 
					            this.$message.error("未检索到相关位置坐标"); | 
				
			||||
 | 
					          } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleMoveCenter(item) { | 
				
			||||
 | 
					      //修改地图中心点 | 
				
			||||
 | 
					      const center = map.getCenter(); | 
				
			||||
 | 
					      const lat = center.getLat(); | 
				
			||||
 | 
					      const lng = center.getLng(); | 
				
			||||
 | 
					      item.supValues[0] = lng; | 
				
			||||
 | 
					      item.supValues[1] = lat; | 
				
			||||
 | 
					      this.setMarker(lat, lng); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      geocoder | 
				
			||||
 | 
					        .getAddress({ location: new TMap.LatLng(lat, lng) }) // 将给定的坐标位置转换为地址 | 
				
			||||
 | 
					        .then((result) => { | 
				
			||||
 | 
					          item.value = result.result.address; | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async getInfo() { | 
				
			||||
 | 
					      const url = "/heart/icServiceOrg/detail"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const params = { | 
				
			||||
 | 
					        icServiceOrgId: this.formId, | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.fmData = { | 
				
			||||
 | 
					          ...this.fmData, | 
				
			||||
 | 
					          ...data, | 
				
			||||
 | 
					          serviceTypeArr: data.serviceType.split(","), | 
				
			||||
 | 
					        }; | 
				
			||||
 | 
					        map.setCenter(new TMap.LatLng(data.latitude, data.longitude)); | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    watchImg(src) { | 
				
			||||
 | 
					      window.open(src); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async handleComfirm() { | 
				
			||||
 | 
					      this.btnDisable = true; | 
				
			||||
 | 
					      setTimeout(() => { | 
				
			||||
 | 
					        this.btnDisable = false; | 
				
			||||
 | 
					      }, 5000); | 
				
			||||
 | 
					      this.computeFmData(); | 
				
			||||
 | 
					      this.$refs["ref_form"].validate((valid, messageObj) => { | 
				
			||||
 | 
					        if (!valid) { | 
				
			||||
 | 
					          app.util.validateRule(messageObj); | 
				
			||||
 | 
					          this.btnDisable = false; | 
				
			||||
 | 
					        } else { | 
				
			||||
 | 
					          this.submit(); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    computeFmData() { | 
				
			||||
 | 
					      console.log("11111111111111111112", this.fmData); | 
				
			||||
 | 
					      // let fmData = {}; | 
				
			||||
 | 
					      // this.editParams.forEach((item) => { | 
				
			||||
 | 
					      //   fmData[item.keyName] = item.value; | 
				
			||||
 | 
					      //   if (item.supValues) { | 
				
			||||
 | 
					      //     item.supValues.forEach((value, index) => { | 
				
			||||
 | 
					      //       fmData[item.supKeys[index]] = value; | 
				
			||||
 | 
					      //     }); | 
				
			||||
 | 
					      //   } | 
				
			||||
 | 
					      // }); | 
				
			||||
 | 
					      // this.fmData = fmData; | 
				
			||||
 | 
					      return this.fmData; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async submit() { | 
				
			||||
 | 
					      let url = ""; | 
				
			||||
 | 
					      let params = { | 
				
			||||
 | 
					        ...this.computeFmData(), | 
				
			||||
 | 
					        // serviceType: this.fmData.serviceTypeArr.join(","), | 
				
			||||
 | 
					      }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (this.formType === "add") { | 
				
			||||
 | 
					        url = this.addUrl; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        url = this.editUrl; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        // params.icServiceOrgId = this.formId; | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, params); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.$message({ | 
				
			||||
 | 
					          type: "success", | 
				
			||||
 | 
					          message: "操作成功", | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        this.$emit("afterEdit"); | 
				
			||||
 | 
					        this.btnDisable = false; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.btnDisable = false; | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleCancle() { | 
				
			||||
 | 
					      this.$emit("close"); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					}; | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style lang="scss" scoped> | 
				
			||||
 | 
					.item_width_1 { | 
				
			||||
 | 
					  width: 500px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.item_width_2 { | 
				
			||||
 | 
					  width: 400px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.item_width_3 { | 
				
			||||
 | 
					  margin-left: 10px; | 
				
			||||
 | 
					  width: 200px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.item_width_4 { | 
				
			||||
 | 
					  width: 200px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.div_map { | 
				
			||||
 | 
					  margin-top: 10px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.div_btn { | 
				
			||||
 | 
					  // display: flex; | 
				
			||||
 | 
					  // justify-content: flex-end; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.el-tabs { | 
				
			||||
 | 
					  margin: 0 20px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.el-upload__tip { | 
				
			||||
 | 
					  color: rgb(155, 155, 155); | 
				
			||||
 | 
					  margin: 0; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.form { | 
				
			||||
 | 
					  margin-top: 30px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.attachement-list { | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
@ -0,0 +1,451 @@ | 
				
			|||||
 | 
					<template> | 
				
			||||
 | 
					  <div class="div_main"> | 
				
			||||
 | 
					    <div v-show="true"> | 
				
			||||
 | 
					      <div class="div_search"> | 
				
			||||
 | 
					        <el-form :inline="true" ref="ref_searchform" :label-width="'80px'"> | 
				
			||||
 | 
					          <div> | 
				
			||||
 | 
					            <el-form-item | 
				
			||||
 | 
					              v-for="item in searchParams" | 
				
			||||
 | 
					              :key="'serach' + item.keyName" | 
				
			||||
 | 
					              :label="item.field" | 
				
			||||
 | 
					              :prop="item.keyName" | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					              <template v-if="item.type == 'input'"> | 
				
			||||
 | 
					                <el-input | 
				
			||||
 | 
					                  v-model="item.value" | 
				
			||||
 | 
					                  class="item_width_1" | 
				
			||||
 | 
					                  size="small" | 
				
			||||
 | 
					                  clearable | 
				
			||||
 | 
					                  :placeholder="item.placeholder || '请输入'" | 
				
			||||
 | 
					                > | 
				
			||||
 | 
					                </el-input> | 
				
			||||
 | 
					              </template> | 
				
			||||
 | 
					              <template v-else-if="item.type == 'select'"> | 
				
			||||
 | 
					                <el-select | 
				
			||||
 | 
					                  v-model="item.value" | 
				
			||||
 | 
					                  :placeholder="item.placeholder || '请选择'" | 
				
			||||
 | 
					                  size="small" | 
				
			||||
 | 
					                  clearable | 
				
			||||
 | 
					                  class="item_width_2" | 
				
			||||
 | 
					                > | 
				
			||||
 | 
					                  <el-option | 
				
			||||
 | 
					                    v-for="item in item.optionList" | 
				
			||||
 | 
					                    :key="item.value" | 
				
			||||
 | 
					                    :label="item.label" | 
				
			||||
 | 
					                    :value="item.value" | 
				
			||||
 | 
					                  > | 
				
			||||
 | 
					                  </el-option> | 
				
			||||
 | 
					                </el-select> | 
				
			||||
 | 
					              </template> | 
				
			||||
 | 
					            </el-form-item> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <el-button | 
				
			||||
 | 
					              style="margin-left: 30px" | 
				
			||||
 | 
					              size="small" | 
				
			||||
 | 
					              class="diy-button--search" | 
				
			||||
 | 
					              @click="handleSearch" | 
				
			||||
 | 
					              >查询</el-button | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					            <el-button | 
				
			||||
 | 
					              style="margin-left: 10px" | 
				
			||||
 | 
					              size="small" | 
				
			||||
 | 
					              class="diy-button--reset" | 
				
			||||
 | 
					              @click="resetSearch" | 
				
			||||
 | 
					              >重置</el-button | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					        </el-form> | 
				
			||||
 | 
					      </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      <div class="div_table"> | 
				
			||||
 | 
					        <div class="div_btn"> | 
				
			||||
 | 
					          <el-button | 
				
			||||
 | 
					            class="diy-button--add" | 
				
			||||
 | 
					            v-if="addUrl" | 
				
			||||
 | 
					            size="small" | 
				
			||||
 | 
					            @click="handleAdd" | 
				
			||||
 | 
					            >新增</el-button | 
				
			||||
 | 
					          > | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <!-- <el-button | 
				
			||||
 | 
					            @click="handleExport" | 
				
			||||
 | 
					            class="diy-button--reset" | 
				
			||||
 | 
					            size="small" | 
				
			||||
 | 
					            >导出</el-button | 
				
			||||
 | 
					          > --> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <el-table | 
				
			||||
 | 
					          :data="tableData" | 
				
			||||
 | 
					          border | 
				
			||||
 | 
					          :header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" | 
				
			||||
 | 
					          class="table" | 
				
			||||
 | 
					          style="width: 100%" | 
				
			||||
 | 
					          :height="maxTableHeight" | 
				
			||||
 | 
					        > | 
				
			||||
 | 
					          <template v-for="item in tableParams" :prop="item.keyName"> | 
				
			||||
 | 
					            <el-table-column | 
				
			||||
 | 
					              v-if="item.type == 'no'" | 
				
			||||
 | 
					              :key="'table' + item.keyName" | 
				
			||||
 | 
					              :label="item.field" | 
				
			||||
 | 
					              fixed="left" | 
				
			||||
 | 
					              type="index" | 
				
			||||
 | 
					              align="center" | 
				
			||||
 | 
					              width="50" | 
				
			||||
 | 
					            /> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <el-table-column | 
				
			||||
 | 
					              :key="'table' + item.keyName" | 
				
			||||
 | 
					              v-else-if="item.type == 'text'" | 
				
			||||
 | 
					              :prop="item.keyName" | 
				
			||||
 | 
					              :label="item.field" | 
				
			||||
 | 
					              align="center" | 
				
			||||
 | 
					              :width="item.width || ''" | 
				
			||||
 | 
					              :show-overflow-tooltip="true" | 
				
			||||
 | 
					            > | 
				
			||||
 | 
					            </el-table-column> | 
				
			||||
 | 
					          </template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          <el-table-column | 
				
			||||
 | 
					            fixed="right" | 
				
			||||
 | 
					            label="操作" | 
				
			||||
 | 
					            align="center" | 
				
			||||
 | 
					            width="200" | 
				
			||||
 | 
					          > | 
				
			||||
 | 
					            <template slot-scope="scope"> | 
				
			||||
 | 
					              <el-button | 
				
			||||
 | 
					                @click="handleWatch(scope.row)" | 
				
			||||
 | 
					                type="text" | 
				
			||||
 | 
					                size="small" | 
				
			||||
 | 
					                class=".div-table-button--detail" | 
				
			||||
 | 
					                >查看</el-button | 
				
			||||
 | 
					              > | 
				
			||||
 | 
					              <el-button | 
				
			||||
 | 
					                v-if="editUrl" | 
				
			||||
 | 
					                @click="handleEdit(scope.row)" | 
				
			||||
 | 
					                type="text" | 
				
			||||
 | 
					                size="small" | 
				
			||||
 | 
					                class="div-table-button--edit" | 
				
			||||
 | 
					                >编辑</el-button | 
				
			||||
 | 
					              > | 
				
			||||
 | 
					              <el-popconfirm | 
				
			||||
 | 
					                v-if="delUrl" | 
				
			||||
 | 
					                title="删除之后无法回复,确认删除?" | 
				
			||||
 | 
					                @onConfirm="handleDelete(scope.row, scope.$index)" | 
				
			||||
 | 
					                @confirm="handleDelete(scope.row, scope.$index)" | 
				
			||||
 | 
					              > | 
				
			||||
 | 
					                <el-button | 
				
			||||
 | 
					                  slot="reference" | 
				
			||||
 | 
					                  type="text" | 
				
			||||
 | 
					                  size="small" | 
				
			||||
 | 
					                  style="margin-left: 10px" | 
				
			||||
 | 
					                  class="div-table-button--delete" | 
				
			||||
 | 
					                  >删除</el-button | 
				
			||||
 | 
					                > | 
				
			||||
 | 
					              </el-popconfirm> | 
				
			||||
 | 
					            </template> | 
				
			||||
 | 
					          </el-table-column> | 
				
			||||
 | 
					        </el-table> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <div> | 
				
			||||
 | 
					          <el-pagination | 
				
			||||
 | 
					            @size-change="handleSizeChange" | 
				
			||||
 | 
					            @current-change="handleCurrentChange" | 
				
			||||
 | 
					            :current-page.sync="pageNo" | 
				
			||||
 | 
					            :page-sizes="[20, 50, 100, 200]" | 
				
			||||
 | 
					            :page-size="parseInt(pageSize)" | 
				
			||||
 | 
					            layout="sizes, prev, pager, next, total" | 
				
			||||
 | 
					            :total="total" | 
				
			||||
 | 
					          > | 
				
			||||
 | 
					          </el-pagination> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					      </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- 修改弹出框 --> | 
				
			||||
 | 
					    <el-dialog | 
				
			||||
 | 
					      v-if="formShow" | 
				
			||||
 | 
					      :visible.sync="formShow" | 
				
			||||
 | 
					      :close-on-click-modal="false" | 
				
			||||
 | 
					      :close-on-press-escape="false" | 
				
			||||
 | 
					      :title="formTitle" | 
				
			||||
 | 
					      width="850px" | 
				
			||||
 | 
					      top="5vh" | 
				
			||||
 | 
					      class="dialog-h" | 
				
			||||
 | 
					      @closed="handleClose" | 
				
			||||
 | 
					    > | 
				
			||||
 | 
					      <edit-form | 
				
			||||
 | 
					        ref="eleEditForm" | 
				
			||||
 | 
					        :formId="formId" | 
				
			||||
 | 
					        :formType="formType" | 
				
			||||
 | 
					        :editParams="editParams" | 
				
			||||
 | 
					        @close="handleClose" | 
				
			||||
 | 
					        @afterEdit="handleEditSuccess" | 
				
			||||
 | 
					      ></edit-form> | 
				
			||||
 | 
					    </el-dialog> | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script> | 
				
			||||
 | 
					import { requestPost } from "@/js/dai/request"; | 
				
			||||
 | 
					import { mapGetters } from "vuex"; | 
				
			||||
 | 
					import axios from "axios"; | 
				
			||||
 | 
					import editForm from "./cpts/edit"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					export default { | 
				
			||||
 | 
					  components: { editForm }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  props: { | 
				
			||||
 | 
					    searchParams: { | 
				
			||||
 | 
					      type: Array, | 
				
			||||
 | 
					      default: () => [], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    searchUrl: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    tableParams: { | 
				
			||||
 | 
					      type: Array, | 
				
			||||
 | 
					      default: () => [], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    tableUrl: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    addUrl: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    editUrl: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    delUrl: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    exportUrl: { | 
				
			||||
 | 
					      type: String, | 
				
			||||
 | 
					      default: "", | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    editParams: { | 
				
			||||
 | 
					      type: Array, | 
				
			||||
 | 
					      default: () => [], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  data() { | 
				
			||||
 | 
					    return { | 
				
			||||
 | 
					      tableData: [], | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      pageNo: 1, | 
				
			||||
 | 
					      pageSize: window.localStorage.getItem("pageSize") || 20, | 
				
			||||
 | 
					      total: 1, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      formId: "", | 
				
			||||
 | 
					      formShow: false, | 
				
			||||
 | 
					      formTitle: "详情", | 
				
			||||
 | 
					      formType: "", // 列表list 新增add  修改edit 详情info | 
				
			||||
 | 
					    }; | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  computed: { | 
				
			||||
 | 
					    maxTableHeight() { | 
				
			||||
 | 
					      return this.$store.state.inIframe | 
				
			||||
 | 
					        ? this.clientHeight - 410 + this.iframeHeigh | 
				
			||||
 | 
					        : this.clientHeight - 410; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    ...mapGetters(["clientHeight", "iframeHeight"]), | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  watch: {}, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  mounted() { | 
				
			||||
 | 
					    console.log(this.$store.state); | 
				
			||||
 | 
					    this.user = this.$store.state.user; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    this.agencyId = this.user.agencyId; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    this.iniSearchData(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    this.getTableData(); | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  methods: { | 
				
			||||
 | 
					    iniSearchData() { | 
				
			||||
 | 
					      const { searchParams } = this; | 
				
			||||
 | 
					      searchParams.forEach((item, index) => { | 
				
			||||
 | 
					        if (item.type == "select") { | 
				
			||||
 | 
					          if (item.optionUrl) { | 
				
			||||
 | 
					            this.getFmOptions( | 
				
			||||
 | 
					              index, | 
				
			||||
 | 
					              item.optionUrl, | 
				
			||||
 | 
					              item.optionUrlParams || {} | 
				
			||||
 | 
					            ); | 
				
			||||
 | 
					          } | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async getFmOptions(index, url, params) { | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, { | 
				
			||||
 | 
					        ...params, | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.searchParams[index].optionList = data || []; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error("请求检索基础数据失败!"); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleSearch(val) { | 
				
			||||
 | 
					      this.pageNo = 1; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      this.getTableData(); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async handleExport() { | 
				
			||||
 | 
					      const { exportUrl: url } = this; | 
				
			||||
 | 
					      if (!url) return; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { pageSize, pageNo } = this; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      axios({ | 
				
			||||
 | 
					        url: window.SITE_CONFIG["apiURL"] + url, | 
				
			||||
 | 
					        method: "post", | 
				
			||||
 | 
					        data: { | 
				
			||||
 | 
					          pageSize, | 
				
			||||
 | 
					          pageNo, | 
				
			||||
 | 
					          ...this.computeFmData(), | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					        responseType: "blob", | 
				
			||||
 | 
					      }) | 
				
			||||
 | 
					        .then((res) => { | 
				
			||||
 | 
					          let fileName = window.decodeURI( | 
				
			||||
 | 
					            res.headers["content-disposition"].split(";")[1].split("=")[1] | 
				
			||||
 | 
					          ); | 
				
			||||
 | 
					          console.log("filename", fileName); | 
				
			||||
 | 
					          let blob = new Blob([res.data], { 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对象 | 
				
			||||
 | 
					        }) | 
				
			||||
 | 
					        .catch((err) => { | 
				
			||||
 | 
					          console.log("获取导出情失败", err); | 
				
			||||
 | 
					          return this.$message.error("网络错误"); | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleAdd() { | 
				
			||||
 | 
					      this.formType = "add"; | 
				
			||||
 | 
					      this.formTitle = "新增"; | 
				
			||||
 | 
					      this.formShow = true; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleWatch(row) { | 
				
			||||
 | 
					      this.formType = "watch"; | 
				
			||||
 | 
					      this.formId = row.icServiceOrgId; | 
				
			||||
 | 
					      this.formTitle = "查看"; | 
				
			||||
 | 
					      this.formShow = true; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleEdit(row) { | 
				
			||||
 | 
					      this.formType = "edit"; | 
				
			||||
 | 
					      this.formId = row.icServiceOrgId; | 
				
			||||
 | 
					      this.formTitle = "编辑"; | 
				
			||||
 | 
					      this.formShow = true; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleClose() { | 
				
			||||
 | 
					      this.formShow = false; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleEditSuccess() { | 
				
			||||
 | 
					      this.handleClose(); | 
				
			||||
 | 
					      this.getTableData(); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async handleDelete(rowData, rowIndex) { | 
				
			||||
 | 
					      console.log(rowData, rowIndex); | 
				
			||||
 | 
					      const { delUrl: url } = this; | 
				
			||||
 | 
					      if (!url) return; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { tableData } = this; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, { | 
				
			||||
 | 
					        icServiceOrgId: tableData[rowIndex].icServiceOrgId, | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.$message.success("删除成功!"); | 
				
			||||
 | 
					        this.getTableData(); | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error("操作失败!"); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    computeFmData() { | 
				
			||||
 | 
					      let fmData = {}; | 
				
			||||
 | 
					      this.searchParams.forEach((item) => { | 
				
			||||
 | 
					        fmData[item.keyName] = item.value; | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					      return fmData; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    async getTableData() { | 
				
			||||
 | 
					      const { tableUrl: url, searchParams } = this; | 
				
			||||
 | 
					      if (!url) return; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      const { pageSize, pageNo } = this; | 
				
			||||
 | 
					      const { data, code, msg } = await requestPost(url, { | 
				
			||||
 | 
					        pageSize, | 
				
			||||
 | 
					        pageNo, | 
				
			||||
 | 
					        ...this.computeFmData(), | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      if (code === 0) { | 
				
			||||
 | 
					        this.total = data.total || 0; | 
				
			||||
 | 
					        this.tableData = data.list | 
				
			||||
 | 
					          ? data.list.map((item) => { | 
				
			||||
 | 
					              return item; | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					          : []; | 
				
			||||
 | 
					      } else { | 
				
			||||
 | 
					        this.$message.error(msg); | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    handleSizeChange(val) { | 
				
			||||
 | 
					      this.pageSize = val; | 
				
			||||
 | 
					      window.localStorage.setItem("pageSize", val); | 
				
			||||
 | 
					      this.getTableData(); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    handleCurrentChange(val) { | 
				
			||||
 | 
					      this.pageNo = val; | 
				
			||||
 | 
					      this.getTableData(); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    resetSearch() { | 
				
			||||
 | 
					      this.searchParams.forEach((item) => { | 
				
			||||
 | 
					        item.value = ""; | 
				
			||||
 | 
					      }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					}; | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style lang="scss" scoped> | 
				
			||||
 | 
					@import "@/assets/scss/buttonstyle.scss"; | 
				
			||||
 | 
					@import "@/assets/scss/modules/management/list-main.scss"; | 
				
			||||
 | 
					@import "@/assets/scss/modules/shequzhili/event-info.scss"; | 
				
			||||
 | 
					</style> | 
				
			||||
@ -0,0 +1,104 @@ | 
				
			|||||
 | 
					<template> | 
				
			||||
 | 
					  <div> | 
				
			||||
 | 
					    <base-page | 
				
			||||
 | 
					      :searchParams="searchParams" | 
				
			||||
 | 
					      :tableParams="tableParams" | 
				
			||||
 | 
					      :tableUrl="tableUrl" | 
				
			||||
 | 
					      :addUrl="addUrl" | 
				
			||||
 | 
					      :editUrl="editUrl" | 
				
			||||
 | 
					      :delUrl="delUrl" | 
				
			||||
 | 
					      :exportUrl="exportUrl" | 
				
			||||
 | 
					      :editParams="editParams" | 
				
			||||
 | 
					    ></base-page> | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script> | 
				
			||||
 | 
					import basePage from "@/views/modules/cpts/base/index"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					export default { | 
				
			||||
 | 
					  props: {}, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  data() { | 
				
			||||
 | 
					    return { | 
				
			||||
 | 
					      searchParams: [ | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          field: "服务类别", | 
				
			||||
 | 
					          keyName: "serviceType", | 
				
			||||
 | 
					          type: "select", | 
				
			||||
 | 
					          optionUrl: "/sys/dict/data/dictlist", | 
				
			||||
 | 
					          optionUrlParams: { | 
				
			||||
 | 
					            dictType: "ic_service_type", | 
				
			||||
 | 
					          }, | 
				
			||||
 | 
					          optionList: [], | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					        { field: "服务组织", keyName: "orgName", type: "input" }, | 
				
			||||
 | 
					        { field: "服务地址", keyName: "address", type: "input" }, | 
				
			||||
 | 
					        { field: "备注", keyName: "remark", type: "input" }, | 
				
			||||
 | 
					      ], | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      tableParams: [ | 
				
			||||
 | 
					        { field: "序号", keyName: "", type: "no" }, | 
				
			||||
 | 
					        { field: "服务类别", keyName: "serviceType", type: "text" }, | 
				
			||||
 | 
					        { field: "服务组织名称", keyName: "orgName", type: "text" }, | 
				
			||||
 | 
					        { field: "服务地址", keyName: "address", type: "text" }, | 
				
			||||
 | 
					        { field: "备注", keyName: "remark", type: "text" }, | 
				
			||||
 | 
					      ], | 
				
			||||
 | 
					      tableUrl: "/heart/icServiceOrg/list", | 
				
			||||
 | 
					      exportUrl: "/gov/project/icEvent/export", | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      editParams: [ | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          field: "服务类别", | 
				
			||||
 | 
					          keyName: "serviceType", | 
				
			||||
 | 
					          type: "select", | 
				
			||||
 | 
					          optionUrl: "/sys/dict/data/dictlist", | 
				
			||||
 | 
					          optionUrlParams: { | 
				
			||||
 | 
					            dictType: "ic_service_type", | 
				
			||||
 | 
					          }, | 
				
			||||
 | 
					          optionList: [], | 
				
			||||
 | 
					          editDisabled: true, | 
				
			||||
 | 
					          rules: [ | 
				
			||||
 | 
					            { required: true, message: "服务类别不能为空", trigger: "blur" }, | 
				
			||||
 | 
					          ], | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          field: "服务组织", | 
				
			||||
 | 
					          keyName: "orgName", | 
				
			||||
 | 
					          type: "input", | 
				
			||||
 | 
					          maxlength: 100, | 
				
			||||
 | 
					          editDisabled: true, | 
				
			||||
 | 
					          rules: [ | 
				
			||||
 | 
					            { | 
				
			||||
 | 
					              required: true, | 
				
			||||
 | 
					              message: "服务组织名称不能为空", | 
				
			||||
 | 
					              trigger: "blur", | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					          ], | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					        { | 
				
			||||
 | 
					          field: "服务地址", | 
				
			||||
 | 
					          keyName: "address", | 
				
			||||
 | 
					          type: "address", | 
				
			||||
 | 
					          supKeys: ["longitude", "latitude"], | 
				
			||||
 | 
					          supValues: ["", ""], | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					        { field: "备注", keyName: "remark", type: "input" }, | 
				
			||||
 | 
					      ], | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      addUrl: "/heart/icServiceOrg/add", | 
				
			||||
 | 
					      editUrl: "/heart/icServiceOrg/edit", | 
				
			||||
 | 
					      delUrl: "/heart/icServiceOrg/del", | 
				
			||||
 | 
					    }; | 
				
			||||
 | 
					  }, | 
				
			||||
 | 
					  components: { basePage }, | 
				
			||||
 | 
					  computed: {}, | 
				
			||||
 | 
					  watch: {}, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  async mounted() {}, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  methods: {}, | 
				
			||||
 | 
					}; | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style lang="scss" scoped></style> | 
				
			||||
					Loading…
					
					
				
		Reference in new issue