boundaryPoint.vue 7.24 KB
<template>
  <div class="boundaryPoint itemForm">
    <el-form :model="boundaryPoint" :rules="rules" ref="formList" label-width="113px" :key="key">
      <div v-for="(item, index) in boundaryPoint.ruleForm" :key="index" class="boundaryPoint-item">
        <p class="boundaryPoint-item-name">界址点{{ index + 1 }}</p>
        <div class="boundaryPoint-item-list">
          <el-row>
            <el-col :span="8">
              <el-form-item>
                <span slot="label">
                  标识码: <br />
                  <p class="label-detail">(BSM)</p>
                </span>
                <p :class="{ 'disabled': $store.state.business.Edit }">
                  {{ boundaryPoint.ruleForm[index].BSM }}
                </p>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.YSDM'" :rules="rules.YSDM">
                <span slot="label">
                  要素代码: <br />
                  <p class="label-detail">(YSDM)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].YSDM"
                  maxlength="10" placeholder="要素代码"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.ZDZHDM'" :rules="rules.ZDZHDM">
                <span slot="label">
                  宗地/宗海代码: <br />
                  <p class="label-detail">(ZDZHDM)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].ZDZHDM"
                  maxlength="19" placeholder="宗地/宗海代码"></el-input>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row>
            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.JZDH'" :rules="rules.JZDH">
                <span slot="label">
                  界址点号: <br />
                  <p class="label-detail">(JZDH)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].JZDH"
                  maxlength="10" placeholder="界址点号"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.SXH'" :rules="{ ...rules.SXH, ...typeNum }">
                <span slot="label">
                  顺序号: <br />
                  <p class="label-detail">(SXH)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryPoint.ruleForm[index].SXH"
                  type="number" v-only-number="{ max: 99999999999, min: 0, precision: 0 }" placeholder="顺序号"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.JBLX'" :rules="rules.JBLX">
                <span slot="label">
                  界标类型: <br />
                  <p class="label-detail">(JBLX)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].JBLX"
                  placeholder="界标类型">
                  <el-option v-for="item in dicData['A4']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row>
            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.JZDLX'" :rules="rules.JZDLX">
                <span slot="label">
                  界址点类型: <br />
                  <p class="label-detail">(JZDLX)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="boundaryPoint.ruleForm[index].JZDLX"
                  placeholder="界址点类型">
                  <el-option v-for="item in dicData['A5']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.XZBZ'" :rules="{ ...rules.XZBZ, ...typeNum }">
                <span slot="label">
                  X坐标值: <br />
                  <p class="label-detail">(XZBZ)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryPoint.ruleForm[index].XZBZ"
                  type="number" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
                  placeholder="X坐标值"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'ruleForm.' + index + '.YZBZ'" :rules="{ ...rules.YZBZ, ...typeNum }">
                <span slot="label">
                  Y坐标值: <br />
                  <p class="label-detail">(YZBZ)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model.number="boundaryPoint.ruleForm[index].YZBZ"
                  type="number" v-only-number="{ max: 999999999999999, min: 0, precision: 3 }"
                  placeholder="Y坐标值"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </div>
      </div>
    </el-form>
    <message-tips ref="msg" />
  </div>
</template>
<script>
// 界址点信息
import business from '@/api/business'
import ruleMixin from '@/mixins/ruleMixin.js'
export default {
  mixins: [ruleMixin],
  props: {
    bsmSjsb: {
      type: String,
      default: ''
    },
    dataTable: {
      type: String,
      default: ''
    }
  },
  data () {
    return {
      boundaryPoint: {
        ruleForm: [{
          BSM: '',
          YSDM: '',
          ZDZHDM: '',
          JZDH: '',
          SXH: '',
          JBLX: '',
          JZDLX: '',
          XZBZ: '',
          YZBZ: '',
        }]
      }
    }
  },
  methods: {
    async featchData () {
      try {
        let { result: res } = await business.getKttGyJzdById(this.bsmSjsb)
        this.boundaryPoint.ruleForm = res
        this.featchRule()
      } catch (error) {
        this.$refs.msg.messageShow()
      }
    },
    handleUpdateForm () {
      return new Promise(async (resolve) => {
        try {
          let res = await business.updateKttGyJzd(this.boundaryPoint.ruleForm)
          // this.$refs['formList'].resetFields();
          resolve(res.code)
        } catch (error) {
          this.$refs.msg.messageShow()
        }
      })
    }
  }
}
</script>
<style scoped lang="scss">
@import "./css/itemForm.scss";

.boundaryPoint-item {
  display: flex;
  height: 100%;
  margin-bottom: 15px;
  margin-right: 5px;

  &-name {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    padding: 10px 20px;
    line-height: 28px;
    border: 1px solid #ccc;
    margin-right: 15px;
    border-radius: 3px;
  }

  &-list {
    width: 100%;
    flex: 1;
    display: flex;
    justify-content: center;
    flex-direction: column;
  }
}
</style>