7 changed files with 1342 additions and 9 deletions
			
			
		@ -0,0 +1,446 @@ | 
				
			|||
<template> | 
				
			|||
  <div> | 
				
			|||
    <div class="dialog-h-content scroll-h"> | 
				
			|||
 | 
				
			|||
      <el-form ref="ref_form" | 
				
			|||
               :inline="true" | 
				
			|||
               :model="formData" | 
				
			|||
               :rules="dataRule" | 
				
			|||
               :disabled="formType === 'detail'" | 
				
			|||
               class="form"> | 
				
			|||
 | 
				
			|||
        <el-form-item label="场所区域" | 
				
			|||
                      prop="gridId" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.gridId" | 
				
			|||
                     placeholder="全部" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in gridList" | 
				
			|||
                       @click.native="handleChangeGrid" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="场所类型" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="ninePlaceVal"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.ninePlaceVal" | 
				
			|||
                     placeholder="请选择" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in placeTypeList" | 
				
			|||
                       @click.native="handleChangeType" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="场所名称" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="placeOrgId"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.placeOrgId" | 
				
			|||
                     placeholder="请选择" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in placesList" | 
				
			|||
                       :key="item.placeOrgId" | 
				
			|||
                       :label="item.placeOrgName" | 
				
			|||
                       :value="item.placeOrgId"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
        <el-form-item label="分队名称" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="placePatrolTeamId"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.placePatrolTeamId" | 
				
			|||
                     placeholder="请选择" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="(item,index) in teamsList" | 
				
			|||
                       @click.native="hancleChangeTeam(index)" | 
				
			|||
                       :key="item.teamId" | 
				
			|||
                       :label="item.teamName" | 
				
			|||
                       :value="item.teamId"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="检查人员" | 
				
			|||
                      prop="inspectorArray" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-checkbox-group class="item_width_1" | 
				
			|||
                             style="display:flex;flex-wrap:wrap" | 
				
			|||
                             v-model="formData.inspectorArray"> | 
				
			|||
            <el-checkbox v-for="item in inspectorsList" | 
				
			|||
                         :key="item.id" | 
				
			|||
                         :label="item.id">{{item.name}}</el-checkbox> | 
				
			|||
 | 
				
			|||
          </el-checkbox-group> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
        <el-form-item label="首次巡查时间" | 
				
			|||
                      style="display: block" | 
				
			|||
                      prop="firstTime" | 
				
			|||
                      label-width="150px"> | 
				
			|||
          <el-date-picker v-model="formData.firstTime" | 
				
			|||
                          value-format="yyyy-MM-dd HH:mm:ss" | 
				
			|||
                          type="date" | 
				
			|||
                          placeholder="选择日期"> | 
				
			|||
          </el-date-picker> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="隐患明细" | 
				
			|||
                      prop="detailed" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-input class="item_width_1" | 
				
			|||
                    type="textarea" | 
				
			|||
                    maxlength="500" | 
				
			|||
                    show-word-limit | 
				
			|||
                    :rows="3" | 
				
			|||
                    placeholder="请输入备注,不超过500字" | 
				
			|||
                    v-model="formData.detailed"></el-input> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="首次检查结论" | 
				
			|||
                      prop="firstResult" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.firstResult" | 
				
			|||
                     placeholder="全部" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in resultList" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="拟复查时间" | 
				
			|||
                      style="display: block" | 
				
			|||
                      prop="reviewTime" | 
				
			|||
                      label-width="150px"> | 
				
			|||
          <el-date-picker v-model="formData.reviewTime" | 
				
			|||
                          value-format="yyyy-MM-dd HH:mm:ss" | 
				
			|||
                          type="date" | 
				
			|||
                          placeholder="选择日期"> | 
				
			|||
          </el-date-picker> | 
				
			|||
        </el-form-item> | 
				
			|||
      </el-form> | 
				
			|||
 | 
				
			|||
    </div> | 
				
			|||
    <div class="div_btn"> | 
				
			|||
      <el-button size="small" | 
				
			|||
                 @click="handleCancle">取 消</el-button> | 
				
			|||
      <el-button size="small" | 
				
			|||
                 v-if="formType != 'detail'" | 
				
			|||
                 type="primary" | 
				
			|||
                 :disabled="btnDisable" | 
				
			|||
                 @click="handleComfirm">确 定</el-button> | 
				
			|||
    </div> | 
				
			|||
  </div> | 
				
			|||
</template> | 
				
			|||
 | 
				
			|||
<script> | 
				
			|||
import { mapGetters } from 'vuex' | 
				
			|||
import { Loading } from 'element-ui' // 引入Loading服务 | 
				
			|||
import { requestPost } from '@/js/dai/request' | 
				
			|||
 | 
				
			|||
let loading // 加载动画 | 
				
			|||
export default { | 
				
			|||
  data () { | 
				
			|||
    return { | 
				
			|||
      formType: 'add', //表单操作类型 add新增,edit编辑,detail详情 | 
				
			|||
      btnDisable: false, | 
				
			|||
 | 
				
			|||
      placesList: [],//场景列表 | 
				
			|||
      teamsList: [],//分队列表 | 
				
			|||
      inspectorsList: [],//检查人员列表 | 
				
			|||
 | 
				
			|||
      placePatrolRecordId: '', | 
				
			|||
      formData: { | 
				
			|||
        gridId: '',//网格Id	 | 
				
			|||
        ninePlaceVal: '',//九小场所类型value值	 | 
				
			|||
        placeOrgId: '',//场所下的组织Id-场所名称	 | 
				
			|||
        placePatrolTeamId: '',//场所下分队Id	 | 
				
			|||
        inspectorArray: [],//检查人员数组 | 
				
			|||
        inspectors: '',//检查人员Id,逗号分隔 | 
				
			|||
        firstTime: '',//首次巡查时间	 | 
				
			|||
        detailed: '',//隐患明细	 | 
				
			|||
        firstResult: '',//首次检查结果【0:合格 1:不合格】	 | 
				
			|||
        reviewTime: '',//拟复查时间	 | 
				
			|||
      }, | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  components: {}, | 
				
			|||
  mounted () { | 
				
			|||
 | 
				
			|||
  }, | 
				
			|||
 | 
				
			|||
  methods: { | 
				
			|||
 | 
				
			|||
    async initForm (type, placePatrolRecordId) { | 
				
			|||
      this.$refs.ref_form.resetFields(); | 
				
			|||
      this.startLoading() | 
				
			|||
      await this.loadPlaces() | 
				
			|||
      await this.loadTeams() | 
				
			|||
 | 
				
			|||
      this.formType = type | 
				
			|||
      if (placePatrolRecordId) { | 
				
			|||
        this.placePatrolRecordId = placePatrolRecordId | 
				
			|||
        this.formData.placePatrolRecordId = placePatrolRecordId | 
				
			|||
        await this.loadFormData() | 
				
			|||
        await this.loadInspectors() | 
				
			|||
      } | 
				
			|||
      this.endLoading() | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    //改变场所区域 | 
				
			|||
    handleChangeGrid () { | 
				
			|||
      this.formData.placeOrgId = '' | 
				
			|||
      this.loadPlaces() | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    //改变场所类型 | 
				
			|||
    handleChangeType () { | 
				
			|||
      this.formData.placeOrgId = '' | 
				
			|||
      this.loadPlaces() | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    //加载场所 | 
				
			|||
    async loadPlaces () { | 
				
			|||
      const url = '/gov/org/placeorg/getlist' | 
				
			|||
 | 
				
			|||
      let params = { | 
				
			|||
        gridId: this.formData.gridId,//场所区域【网格Id】	 | 
				
			|||
        ninePlaceVal: this.formData.ninePlaceVal,//场所类型【九小场所Value值】	 | 
				
			|||
        isPage: false | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.placesList = data.list | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    //加载分队 | 
				
			|||
    async loadTeams () { | 
				
			|||
      const url = '/gov/org/placepatrolteam/getlist' | 
				
			|||
      // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/getlist' | 
				
			|||
      let params = { | 
				
			|||
        isPage: false | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.teamsList = data.list | 
				
			|||
        if (this.teamsList.length > 0) { | 
				
			|||
          this.formData.placePatrolTeamId = this.teamsList[0].teamId | 
				
			|||
 | 
				
			|||
          this.hancleChangeTeam(0) | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    //点击分队切换人员 | 
				
			|||
    async hancleChangeTeam (index) { | 
				
			|||
      let array = [] | 
				
			|||
      this.formData.inspectorArray = [...array] | 
				
			|||
      // this.formData.placePatrolTeamId = this.teamsList[index].teamId | 
				
			|||
      await this.loadInspectors() | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    //加载分队下人员 | 
				
			|||
    async loadInspectors () { | 
				
			|||
      const url = '/gov/org/placepatrolteamstaff/getlist' | 
				
			|||
      // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteamstaff/getlist' | 
				
			|||
      let params = { | 
				
			|||
        teamId: this.formData.placePatrolTeamId | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.inspectorsList = data | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
    //加载form | 
				
			|||
    async loadFormData () { | 
				
			|||
      const url = '/gov/org/placepatrolrecord/detail' | 
				
			|||
 | 
				
			|||
      let params = { | 
				
			|||
        placePatrolRecordId: this.placePatrolRecordId | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        data.inspectorArray = data.inspectors.split(',') | 
				
			|||
        this.formData = { ...data } | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    async handleComfirm () { | 
				
			|||
 | 
				
			|||
      this.btnDisable = true | 
				
			|||
      setTimeout(() => { | 
				
			|||
        this.btnDisable = false | 
				
			|||
      }, 10000) | 
				
			|||
      this.$refs['ref_form'].validate((valid, messageObj) => { | 
				
			|||
        if (!valid) { | 
				
			|||
          app.util.validateRule(messageObj) | 
				
			|||
          this.btnDisable = false | 
				
			|||
        } else { | 
				
			|||
          this.addRecord() | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
      }) | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
    async addRecord () { | 
				
			|||
 | 
				
			|||
      let url = "/gov/org/placepatrolrecord/add" | 
				
			|||
      // let url = "http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolrecord/add" | 
				
			|||
      this.formData.inspectors = this.formData.inspectorArray.join(',') | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, this.formData) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.$message({ | 
				
			|||
          type: 'success', | 
				
			|||
          message: '操作成功' | 
				
			|||
        }) | 
				
			|||
        this.resetData() | 
				
			|||
        this.$emit('dialogOk') | 
				
			|||
        this.btnDisable = false | 
				
			|||
      } else { | 
				
			|||
        this.btnDisable = false | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    handleCancle () { | 
				
			|||
 | 
				
			|||
      this.resetData() | 
				
			|||
      this.$emit('dialogCancle') | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    resetData () { | 
				
			|||
      this.formData = { | 
				
			|||
        gridId: '',//网格Id	 | 
				
			|||
        ninePlaceVal: '',//九小场所类型value值	 | 
				
			|||
        placeOrgId: '',//场所下的组织Id-场所名称	 | 
				
			|||
        placePatrolTeamId: '',//场所下分队Id	 | 
				
			|||
        inspectorArray: [],//检查人员数组 | 
				
			|||
        inspectors: '',//检查人员Id,逗号分隔 | 
				
			|||
        firstTime: '',//首次巡查时间	 | 
				
			|||
        detailed: '',//隐患明细	 | 
				
			|||
        firstResult: '',//首次检查结果【0:合格 1:不合格】	 | 
				
			|||
        reviewTime: '',//拟复查时间	 | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
    // 开启加载动画 | 
				
			|||
    startLoading () { | 
				
			|||
      loading = Loading.service({ | 
				
			|||
        lock: true, // 是否锁定 | 
				
			|||
        text: '正在加载……', // 加载中需要显示的文字 | 
				
			|||
        background: 'rgba(0,0,0,.7)' // 背景颜色 | 
				
			|||
      }) | 
				
			|||
    }, | 
				
			|||
    // 结束加载动画 | 
				
			|||
    endLoading () { | 
				
			|||
      // clearTimeout(timer); | 
				
			|||
      if (loading) { | 
				
			|||
        loading.close() | 
				
			|||
      } | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  computed: { | 
				
			|||
    dataRule () { | 
				
			|||
      return { | 
				
			|||
 | 
				
			|||
        gridId: [ | 
				
			|||
          { required: true, message: '场所网格不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        ninePlaceVal: [ | 
				
			|||
          { required: true, message: '场所类型不能为空', trigger: 'blur' }, | 
				
			|||
        ], | 
				
			|||
        placeOrgId: [ | 
				
			|||
          { required: true, message: '场所名称不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        placePatrolTeamId: [ | 
				
			|||
          { required: true, message: '分队不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
 | 
				
			|||
        inspectorArray: [ | 
				
			|||
          { required: true, message: '巡检人员不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        firstTime: [ | 
				
			|||
          { required: true, message: '首次巡查时间不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        detailed: [ | 
				
			|||
          { required: true, message: '隐患明细不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        firstResult: [ | 
				
			|||
          { required: true, message: '首次巡查结果不能为空', trigger: 'blur' } | 
				
			|||
        ] | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
  }, | 
				
			|||
  props: { | 
				
			|||
 | 
				
			|||
    gridList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
    resultList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
    placeTypeList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
</script> | 
				
			|||
 | 
				
			|||
<style lang="scss" scoped > | 
				
			|||
@import "@/assets/scss/modules/visual/communityManageForm.scss"; | 
				
			|||
</style> | 
				
			|||
 | 
				
			|||
@ -0,0 +1,350 @@ | 
				
			|||
<template> | 
				
			|||
  <div> | 
				
			|||
    <div class="dialog-h-content scroll-h"> | 
				
			|||
 | 
				
			|||
      <el-form ref="ref_form" | 
				
			|||
               :inline="true" | 
				
			|||
               :model="formData" | 
				
			|||
               :rules="dataRule" | 
				
			|||
               :disabled="formType === 'detail'" | 
				
			|||
               class="form"> | 
				
			|||
 | 
				
			|||
        <el-form-item label="场所类型" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="ninePlaceVal"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.ninePlaceVal" | 
				
			|||
                     placeholder="请选择" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in placeTypeList" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="场所区域" | 
				
			|||
                      prop="gridId" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.gridId" | 
				
			|||
                     placeholder="全部" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in gridList" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="场所名称" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="placeOrgName"> | 
				
			|||
          <el-input v-model="formData.placeOrgName" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入九小场所名称"> | 
				
			|||
          </el-input> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
        <el-form-item label="场所地址" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="address"> | 
				
			|||
          <el-input v-model="formData.address" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入场所地址"> | 
				
			|||
          </el-input> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="规模" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="scale"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.scale" | 
				
			|||
                     placeholder="请选择" | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in scaleList" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
        <el-form-item label="负责人" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="personInCharge"> | 
				
			|||
          <el-input v-model="formData.personInCharge" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入负责人姓名"> | 
				
			|||
          </el-input> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
        <el-form-item label="联系电话" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="mobile"> | 
				
			|||
          <el-input v-model="formData.mobile" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    type='number' | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入电话"> | 
				
			|||
          </el-input> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
      </el-form> | 
				
			|||
 | 
				
			|||
    </div> | 
				
			|||
    <div class="div_btn"> | 
				
			|||
      <el-button size="small" | 
				
			|||
                 @click="handleCancle">取 消</el-button> | 
				
			|||
      <el-button size="small" | 
				
			|||
                 v-if="formType != 'detail'" | 
				
			|||
                 type="primary" | 
				
			|||
                 :disabled="btnDisable" | 
				
			|||
                 @click="handleComfirm">确 定</el-button> | 
				
			|||
    </div> | 
				
			|||
  </div> | 
				
			|||
</template> | 
				
			|||
 | 
				
			|||
<script> | 
				
			|||
import { mapGetters } from 'vuex' | 
				
			|||
import { Loading } from 'element-ui' // 引入Loading服务 | 
				
			|||
import { requestPost } from '@/js/dai/request' | 
				
			|||
 | 
				
			|||
let loading // 加载动画 | 
				
			|||
export default { | 
				
			|||
  data () { | 
				
			|||
    return { | 
				
			|||
      formType: 'add', //表单操作类型 add新增,edit编辑,detail详情 | 
				
			|||
 | 
				
			|||
      btnDisable: false, | 
				
			|||
 | 
				
			|||
      placeOrgId: '', | 
				
			|||
      formData: { | 
				
			|||
        gridId: '', | 
				
			|||
        ninePlaceVal: '', | 
				
			|||
        placeOrgName: '', | 
				
			|||
        address: '', | 
				
			|||
        scale: '', | 
				
			|||
        personInCharge: '', | 
				
			|||
        mobile: '' | 
				
			|||
      }, | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  components: {}, | 
				
			|||
  mounted () { | 
				
			|||
 | 
				
			|||
  }, | 
				
			|||
 | 
				
			|||
  methods: { | 
				
			|||
 | 
				
			|||
    async initForm (type, placeOrgId) { | 
				
			|||
      this.$refs.ref_form.resetFields(); | 
				
			|||
      this.loadGrid() | 
				
			|||
 | 
				
			|||
      this.formType = type | 
				
			|||
      if (placeOrgId) { | 
				
			|||
        this.placeOrgId = placeOrgId | 
				
			|||
        this.formData.placeOrgId = placeOrgId | 
				
			|||
        await this.loadFormData() | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
      async loadGrid () { | 
				
			|||
      const url = "/gov/org/customergrid/gridoption" | 
				
			|||
 | 
				
			|||
      let params = { | 
				
			|||
        agencyId: this.agencyId, | 
				
			|||
        purpose:"addorupdate" | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.gridList = data | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    //加载组织 | 
				
			|||
    async loadFormData () { | 
				
			|||
      const url = '/gov/org/placeorg/detail' | 
				
			|||
      // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placeorg/detail' | 
				
			|||
      let params = { | 
				
			|||
        placeOrgId: this.placeOrgId | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.formData = data | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    async handleComfirm () { | 
				
			|||
 | 
				
			|||
      this.btnDisable = true | 
				
			|||
      setTimeout(() => { | 
				
			|||
        this.btnDisable = false | 
				
			|||
      }, 10000) | 
				
			|||
      this.$refs['ref_form'].validate((valid, messageObj) => { | 
				
			|||
        if (!valid) { | 
				
			|||
          app.util.validateRule(messageObj) | 
				
			|||
          this.btnDisable = false | 
				
			|||
        } else { | 
				
			|||
          this.addPlace() | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
      }) | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
    async addPlace () { | 
				
			|||
      // const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //手机号码 | 
				
			|||
      // if (regPhone.test(this.formData.mobile) === false) { | 
				
			|||
      //   this.btnDisable = false | 
				
			|||
      //   this.$message({ | 
				
			|||
      //     type: 'warning', | 
				
			|||
      //     message: '请输入正确的手机号码' | 
				
			|||
      //   }) | 
				
			|||
      //   return false; | 
				
			|||
      // } | 
				
			|||
 | 
				
			|||
      let url = '' | 
				
			|||
 | 
				
			|||
      if (this.formType === 'edit') { | 
				
			|||
        url = '/gov/org/placeorg/edit' | 
				
			|||
        // url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placeorg/edit' | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        url = "/gov/org/placeorg/add" | 
				
			|||
        // url = "http://yapi.elinkservice.cn/mock/245/gov/org/placeorg/add" | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, this.formData) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.$message({ | 
				
			|||
          type: 'success', | 
				
			|||
          message: '操作成功' | 
				
			|||
        }) | 
				
			|||
        this.resetData() | 
				
			|||
        this.$emit('dialogOk') | 
				
			|||
        this.btnDisable = false | 
				
			|||
      } else { | 
				
			|||
        this.btnDisable = false | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    handleCancle () { | 
				
			|||
 | 
				
			|||
      this.resetData() | 
				
			|||
      this.$emit('dialogCancle') | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    resetData () { | 
				
			|||
      this.placeOrgId = '' | 
				
			|||
      this.formData = { | 
				
			|||
        gridId: '', | 
				
			|||
        ninePlaceVal: '', | 
				
			|||
        placeOrgName: '', | 
				
			|||
        address: '', | 
				
			|||
        scale: '', | 
				
			|||
        personInCharge: '', | 
				
			|||
        mobile: '' | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
    // 开启加载动画 | 
				
			|||
    startLoading () { | 
				
			|||
      loading = Loading.service({ | 
				
			|||
        lock: true, // 是否锁定 | 
				
			|||
        text: '正在加载……', // 加载中需要显示的文字 | 
				
			|||
        background: 'rgba(0,0,0,.7)' // 背景颜色 | 
				
			|||
      }) | 
				
			|||
    }, | 
				
			|||
    // 结束加载动画 | 
				
			|||
    endLoading () { | 
				
			|||
      // clearTimeout(timer); | 
				
			|||
      if (loading) { | 
				
			|||
        loading.close() | 
				
			|||
      } | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  computed: { | 
				
			|||
    dataRule () { | 
				
			|||
      return { | 
				
			|||
        gridId: [ | 
				
			|||
          { required: true, message: '所属网格不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        ninePlaceVal: [ | 
				
			|||
          { required: true, message: '场所类型不能为空', trigger: 'blur' }, | 
				
			|||
        ], | 
				
			|||
        placeOrgName: [ | 
				
			|||
          { required: true, message: '场所名称不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
 | 
				
			|||
        address: [ | 
				
			|||
          { required: true, message: '场所地址不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        scale: [ | 
				
			|||
          { required: true, message: '场所规模不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        personInCharge: [ | 
				
			|||
          { required: true, message: '负责人不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        mobile: [ | 
				
			|||
          { required: true, message: '联系电话不能为空', trigger: 'blur' } | 
				
			|||
        ] | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
  }, | 
				
			|||
  props: { | 
				
			|||
 | 
				
			|||
    scaleList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
    placeTypeList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
    agencyId: { | 
				
			|||
      type: String, | 
				
			|||
      default: "" | 
				
			|||
    }, | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
</script> | 
				
			|||
<style scoped> | 
				
			|||
.div_searchmap { | 
				
			|||
  z-index: 5000; | 
				
			|||
  position: absolute; | 
				
			|||
  top: 5px; | 
				
			|||
  left: 5px; | 
				
			|||
} | 
				
			|||
</style> | 
				
			|||
 | 
				
			|||
<style lang="scss" scoped > | 
				
			|||
@import "@/assets/scss/modules/visual/communityManageForm.scss"; | 
				
			|||
</style> | 
				
			|||
@ -0,0 +1,480 @@ | 
				
			|||
<template> | 
				
			|||
  <div> | 
				
			|||
    <div class="dialog-h-content scroll-h"> | 
				
			|||
 | 
				
			|||
      <el-form ref="ref_form" | 
				
			|||
               :inline="true" | 
				
			|||
               :model="formData" | 
				
			|||
               :rules="dataRule" | 
				
			|||
               :disabled="formType === 'detail'" | 
				
			|||
               class="form"> | 
				
			|||
 | 
				
			|||
        <el-form-item label="分队名称" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="teamName"> | 
				
			|||
          <el-input v-model="formData.teamName" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入分队名称"> | 
				
			|||
          </el-input> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="负责区域" | 
				
			|||
                      prop="gridIdArray" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-select class="item_width_1" | 
				
			|||
                     v-model="formData.gridIdArray" | 
				
			|||
                     placeholder="全部" | 
				
			|||
                     multiple | 
				
			|||
                     clearable> | 
				
			|||
            <el-option v-for="item in gridList" | 
				
			|||
                       :key="item.value" | 
				
			|||
                       :label="item.label" | 
				
			|||
                       :value="item.value"> | 
				
			|||
            </el-option> | 
				
			|||
          </el-select> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="负责场所类型" | 
				
			|||
                      prop="ninePlaceArray" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-checkbox-group class="item_width_1" | 
				
			|||
                             style="display:flex;flex-wrap:wrap" | 
				
			|||
                             v-model="formData.ninePlaceArray"> | 
				
			|||
            <el-checkbox v-for="item in placeTypeList" | 
				
			|||
                         :key="item.value" | 
				
			|||
                         :label="item.value">{{item.label}}</el-checkbox> | 
				
			|||
 | 
				
			|||
          </el-checkbox-group> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="巡查计划" | 
				
			|||
                      prop="plan" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      style="display: block"> | 
				
			|||
          <el-input class="item_width_1" | 
				
			|||
                    type="textarea" | 
				
			|||
                    maxlength="500" | 
				
			|||
                    show-word-limit | 
				
			|||
                    :rows="3" | 
				
			|||
                    placeholder="请输入备注,不超过500字" | 
				
			|||
                    v-model="formData.plan"></el-input> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="创建时间" | 
				
			|||
                      style="display: block" | 
				
			|||
                      prop="time" | 
				
			|||
                      label-width="150px"> | 
				
			|||
          <el-date-picker v-model="formData.time" | 
				
			|||
                          value-format="yyyy-MM-dd HH:mm:ss" | 
				
			|||
                          type="date" | 
				
			|||
                          placeholder="选择日期"> | 
				
			|||
          </el-date-picker> | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="负责人" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="personInCharge"> | 
				
			|||
          <el-input v-model="formData.personInCharge" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入负责人姓名"> | 
				
			|||
          </el-input> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
        <el-form-item label="联系电话" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="mobile"> | 
				
			|||
          <el-input v-model="formData.mobile" | 
				
			|||
                    class="item_width_1" | 
				
			|||
                    type='number' | 
				
			|||
                    clearable | 
				
			|||
                    placeholder="请输入电话"> | 
				
			|||
          </el-input> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
 | 
				
			|||
        <el-form-item label="成员" | 
				
			|||
                      label-width="150px" | 
				
			|||
                      prop="member"> | 
				
			|||
          <el-button v-if="formType != 'detail'" | 
				
			|||
                     type="primary" | 
				
			|||
                     size="mini" | 
				
			|||
                     icon="el-icon-plus" | 
				
			|||
                     @click="handleAddPerson"></el-button> | 
				
			|||
          <div v-for="(item,index) in memberList" | 
				
			|||
               :key="index" | 
				
			|||
               class="div_person_list" | 
				
			|||
               :class="[{'margin10':formType !== 'detail'}]"> | 
				
			|||
            <span class="div_person_list_title">姓名</span> | 
				
			|||
            <el-input v-if="item.isSet" | 
				
			|||
                      v-model="item.name" | 
				
			|||
                      class="item_width_3" | 
				
			|||
                      clearable | 
				
			|||
                      placeholder="请输入姓名"> | 
				
			|||
            </el-input> | 
				
			|||
            <span class="item_width_span_3" | 
				
			|||
                  v-else>{{item.name}}</span> | 
				
			|||
 | 
				
			|||
            <span class="div_person_list_title2">联系电话</span> | 
				
			|||
            <el-input v-if="item.isSet" | 
				
			|||
                      v-model="item.mobile" | 
				
			|||
                      class="item_width_4" | 
				
			|||
                      clearable | 
				
			|||
                      placeholder="请输入电话"> | 
				
			|||
            </el-input> | 
				
			|||
            <span class="item_width_span_4" | 
				
			|||
                  v-else>{{item.mobile}}</span> | 
				
			|||
 | 
				
			|||
            <el-button v-if="formType !== 'detail'" | 
				
			|||
                       style="margin-left:30px" | 
				
			|||
                       type="red" | 
				
			|||
                       size="mini" | 
				
			|||
                       @click="handleDelPerson(index)">删除</el-button> | 
				
			|||
          </div> | 
				
			|||
 | 
				
			|||
        </el-form-item> | 
				
			|||
      </el-form> | 
				
			|||
 | 
				
			|||
    </div> | 
				
			|||
    <div class="div_btn"> | 
				
			|||
      <el-button size="small" | 
				
			|||
                 @click="handleCancle">取 消</el-button> | 
				
			|||
      <el-button size="small" | 
				
			|||
                 v-if="formType != 'detail'" | 
				
			|||
                 type="primary" | 
				
			|||
                 :disabled="btnDisable" | 
				
			|||
                 @click="handleComfirm">确 定</el-button> | 
				
			|||
    </div> | 
				
			|||
  </div> | 
				
			|||
</template> | 
				
			|||
 | 
				
			|||
<script> | 
				
			|||
import { mapGetters } from 'vuex' | 
				
			|||
import { Loading } from 'element-ui' // 引入Loading服务 | 
				
			|||
import { requestPost } from '@/js/dai/request' | 
				
			|||
 | 
				
			|||
 | 
				
			|||
let loading // 加载动画 | 
				
			|||
export default { | 
				
			|||
  data () { | 
				
			|||
    return { | 
				
			|||
      formType: 'add', //表单操作类型 add新增,edit编辑,detail详情 | 
				
			|||
 | 
				
			|||
      btnDisable: false, | 
				
			|||
 | 
				
			|||
      teamId: '', | 
				
			|||
      formData: { | 
				
			|||
        agencyId: '',//组织Id | 
				
			|||
        teamName: '',//分队名称	 | 
				
			|||
        gridIds: '',//负责区域,多个值逗号分隔	 | 
				
			|||
        ninePlaceArray: [], | 
				
			|||
        ninePlaceVals: '',//负责场所类型,多个值逗号分隔	 | 
				
			|||
        gridIdArray: [], | 
				
			|||
        plan: '',//巡查计划	 | 
				
			|||
        time: '',//时间 | 
				
			|||
        personInCharge: '',//负责人	 | 
				
			|||
        mobile: '',//联系电话	 | 
				
			|||
        memberList: [],//成员信息集合	 | 
				
			|||
        member: '1'//成员信息集合	 | 
				
			|||
      }, | 
				
			|||
 | 
				
			|||
      memberList: [], | 
				
			|||
 | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  components: {}, | 
				
			|||
  mounted () { | 
				
			|||
 | 
				
			|||
  }, | 
				
			|||
 | 
				
			|||
  methods: { | 
				
			|||
 | 
				
			|||
    async initForm (type, teamId, agencyId) { | 
				
			|||
      this.$refs.ref_form.resetFields(); | 
				
			|||
      this.formData.agencyId = agencyId | 
				
			|||
      this.formType = type | 
				
			|||
      if (teamId) { | 
				
			|||
        this.teamId = teamId | 
				
			|||
        this.formData.teamId = teamId | 
				
			|||
        await this.loadFormData() | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    //加载组织 | 
				
			|||
    async loadFormData () { | 
				
			|||
      const url = '/gov/org/placepatrolteam/detail' | 
				
			|||
      // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/detail' | 
				
			|||
      let params = { | 
				
			|||
        teamId: this.teamId | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, params) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
 | 
				
			|||
        data.ninePlaceArray = data.ninePlaceVals.split(',') | 
				
			|||
        data.gridIdArray = data.gridIds.split(',') | 
				
			|||
        data.member = '1' | 
				
			|||
        this.formData = { ...data } | 
				
			|||
 | 
				
			|||
        this.memberList = this.formData.memberList | 
				
			|||
 | 
				
			|||
        this.memberList.forEach(item => { | 
				
			|||
          item.isSet = false | 
				
			|||
        }); | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    async handleComfirm () { | 
				
			|||
 | 
				
			|||
      this.btnDisable = true | 
				
			|||
      setTimeout(() => { | 
				
			|||
        this.btnDisable = false | 
				
			|||
      }, 10000) | 
				
			|||
      this.$refs['ref_form'].validate((valid, messageObj) => { | 
				
			|||
        if (!valid) { | 
				
			|||
          app.util.validateRule(messageObj) | 
				
			|||
          this.btnDisable = false | 
				
			|||
        } else { | 
				
			|||
          this.addTeam() | 
				
			|||
        } | 
				
			|||
 | 
				
			|||
      }) | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
    handleAddPerson () { | 
				
			|||
      let obj = { | 
				
			|||
        name: '', | 
				
			|||
        mobile: '', | 
				
			|||
        isSet: true | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      this.memberList.push(obj) | 
				
			|||
    }, | 
				
			|||
    handleDelPerson (index) { | 
				
			|||
      this.memberList.splice(index, 1) | 
				
			|||
    }, | 
				
			|||
    async addTeam () { | 
				
			|||
      const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //手机号码 | 
				
			|||
      if (regPhone.test(this.formData.mobile) === false) { | 
				
			|||
        this.btnDisable = false | 
				
			|||
        this.$message({ | 
				
			|||
          type: 'warning', | 
				
			|||
          message: '请输入正确的手机号码' | 
				
			|||
        }) | 
				
			|||
        return false; | 
				
			|||
      } | 
				
			|||
      if (this.formData.gridIdArray.length > 0) { | 
				
			|||
        this.formData.gridIds = this.formData.gridIdArray.join(',') | 
				
			|||
      } else { | 
				
			|||
        return false | 
				
			|||
      } | 
				
			|||
      if (this.formData.ninePlaceArray.length > 0) { | 
				
			|||
        this.formData.ninePlaceVals = this.formData.ninePlaceArray.join(',') | 
				
			|||
      } else { | 
				
			|||
        return false | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      let msgMember = this.validataMemeberList() | 
				
			|||
      if (msgMember) { | 
				
			|||
        this.$message({ | 
				
			|||
          type: 'warning', | 
				
			|||
          message: msgMember | 
				
			|||
        }) | 
				
			|||
        this.btnDisable = false | 
				
			|||
        return false | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      this.formData.memberList = this.memberList | 
				
			|||
 | 
				
			|||
      let url = '' | 
				
			|||
 | 
				
			|||
      if (this.formType === 'edit') { | 
				
			|||
        url = '/gov/org/placepatrolteam/edit' | 
				
			|||
        // url = 'http://yapi.elinkservice.cn/mock/245/gov/org/placeorg/edit' | 
				
			|||
 | 
				
			|||
      } else { | 
				
			|||
        url = "/gov/org/placepatrolteam/add" | 
				
			|||
        // url = "http://yapi.elinkservice.cn/mock/245/gov/org/placepatrolteam/add" | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      const { data, code, msg } = await requestPost(url, this.formData) | 
				
			|||
 | 
				
			|||
      if (code === 0) { | 
				
			|||
        this.$message({ | 
				
			|||
          type: 'success', | 
				
			|||
          message: '操作成功' | 
				
			|||
        }) | 
				
			|||
        this.resetData() | 
				
			|||
        this.$emit('dialogOk') | 
				
			|||
        this.btnDisable = false | 
				
			|||
      } else { | 
				
			|||
        this.btnDisable = false | 
				
			|||
        this.$message.error(msg) | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    validataMemeberList () { | 
				
			|||
      if (this.memberList.length === 0) { | 
				
			|||
        return '成员列表不能为空' | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      for (let item of this.memberList) { | 
				
			|||
        if (!item.mobile || !item.name) { | 
				
			|||
          return '成员的姓名和电话不能为空' | 
				
			|||
        } else { | 
				
			|||
          const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //手机号码 | 
				
			|||
          if (regPhone.test(item.mobile) === false) { | 
				
			|||
            return '请输入正确的手机号码'; | 
				
			|||
          } | 
				
			|||
        } | 
				
			|||
      } | 
				
			|||
 | 
				
			|||
      return '' | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    handleCancle () { | 
				
			|||
 | 
				
			|||
      this.resetData() | 
				
			|||
      this.$emit('dialogCancle') | 
				
			|||
 | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    resetData () { | 
				
			|||
      this.teamId = '' | 
				
			|||
      this.formData = { | 
				
			|||
        agencyId: '',//组织Id | 
				
			|||
        teamName: '',//分队名称	 | 
				
			|||
        gridIds: '',//负责区域,多个值逗号分隔	 | 
				
			|||
        gridIdArray: [], | 
				
			|||
        ninePlaceVals: '',//负责场所类型,多个值逗号分隔	 | 
				
			|||
        ninePlaceArray: [], | 
				
			|||
        plan: '',//巡查计划	 | 
				
			|||
        time: '',//时间 | 
				
			|||
        personInCharge: '',//负责人	 | 
				
			|||
        mobile: '',//联系电话	 | 
				
			|||
        member: '1'//成员信息集合	 | 
				
			|||
      } | 
				
			|||
      this.memberList = [] | 
				
			|||
    }, | 
				
			|||
    // 开启加载动画 | 
				
			|||
    startLoading () { | 
				
			|||
      loading = Loading.service({ | 
				
			|||
        lock: true, // 是否锁定 | 
				
			|||
        text: '正在加载……', // 加载中需要显示的文字 | 
				
			|||
        background: 'rgba(0,0,0,.7)' // 背景颜色 | 
				
			|||
      }) | 
				
			|||
    }, | 
				
			|||
    // 结束加载动画 | 
				
			|||
    endLoading () { | 
				
			|||
      // clearTimeout(timer); | 
				
			|||
      if (loading) { | 
				
			|||
        loading.close() | 
				
			|||
      } | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  computed: { | 
				
			|||
    dataRule () { | 
				
			|||
      return { | 
				
			|||
        teamName: [ | 
				
			|||
          { required: true, message: '分队名称不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        gridIdArray: [ | 
				
			|||
          { required: true, message: '负责区域不能为空', trigger: 'blur' }, | 
				
			|||
        ], | 
				
			|||
        ninePlaceArray: [ | 
				
			|||
          { required: true, message: '场所类型不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
 | 
				
			|||
        plan: [ | 
				
			|||
          { required: true, message: '巡查计划	不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        personInCharge: [ | 
				
			|||
          { required: true, message: '负责人不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        mobile: [ | 
				
			|||
          { required: true, message: '联系电话不能为空', trigger: 'blur' } | 
				
			|||
        ], | 
				
			|||
        member: [ | 
				
			|||
          { required: true, message: '成员不能为空', trigger: 'blur' } | 
				
			|||
        ] | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
  }, | 
				
			|||
  props: { | 
				
			|||
    gridList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    placeTypeList: { | 
				
			|||
      type: Array, | 
				
			|||
      default: [] | 
				
			|||
    }, | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
</script> | 
				
			|||
 | 
				
			|||
<style lang="scss" scoped > | 
				
			|||
@import "@/assets/scss/modules/visual/communityManageForm.scss"; | 
				
			|||
</style> | 
				
			|||
 | 
				
			|||
<style lang="scss"  scoped> | 
				
			|||
@import "@/assets/scss/buttonstyle.scss"; | 
				
			|||
.item_width_1 { | 
				
			|||
  width: 500px; | 
				
			|||
} | 
				
			|||
.item_width_2 { | 
				
			|||
  width: 400px; | 
				
			|||
} | 
				
			|||
.item_width_3 { | 
				
			|||
  margin-left: 10px; | 
				
			|||
  width: 120px; | 
				
			|||
} | 
				
			|||
.item_width_4 { | 
				
			|||
  margin-left: 10px; | 
				
			|||
  width: 150px; | 
				
			|||
} | 
				
			|||
.item_width_span_3 { | 
				
			|||
  margin-left: 10px; | 
				
			|||
  width: 160px; | 
				
			|||
} | 
				
			|||
.item_width_span_4 { | 
				
			|||
  margin-left: 10px; | 
				
			|||
  width: 150px; | 
				
			|||
} | 
				
			|||
.margin10 { | 
				
			|||
  margin-top: 10px; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.div_person_list { | 
				
			|||
  width: 500px; | 
				
			|||
  display: flex; | 
				
			|||
 | 
				
			|||
  .div_person_list_title { | 
				
			|||
    width: 40px; | 
				
			|||
    font-weight: bold; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .div_person_list_title2 { | 
				
			|||
    width: 90px; | 
				
			|||
    font-weight: bold; | 
				
			|||
    margin-left: 20px; | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
</style> | 
				
			|||
 | 
				
			|||
<style lang="scss" scoped > | 
				
			|||
@import "@/assets/scss/modules/visual/communityManageForm.scss"; | 
				
			|||
</style> | 
				
			|||
					Loading…
					
					
				
		Reference in new issue