• liang's avatar
    init · dad95e78
    liang authored
    dad95e78
index.vue 2.61 KB
<template>
  <el-row class="vw-tooth-bit">
    <div class="title">咬合关系:</div>
    <div class="vw-tooth-bit-content">
      <div class="flex flex-wrap">
        <vw-tooth-bit-item
          v-model="value[item.prop]"
          :label="item.label"
          v-for="(item, index) in occlusalList"
          :key="index"
        ></vw-tooth-bit-item>
      </div>
    </div>
    <div class="title">其它:</div>
    <div class="vw-tooth-bit-content">
      <div class="flex flex-wrap">
        <vw-tooth-bit-item
          v-model="value[item.prop]"
          :label="item.label"
          v-for="(item, index) in otherList"
          :key="index"
        ></vw-tooth-bit-item>
      </div>
    </div>
  </el-row>
</template>
<script>
import VwToothBitItem from "./VwToothBitItem.vue"
import { isObject } from "@/utils/validate"
export default {
  name: "VwToothBit",
  components: { VwToothBitItem },
  props: {
    disabled: Boolean,
    value: Object,
  },
  data() {
    return {
      occlusalList: [
        {
          label: "深覆𬌗",
          prop: "deepoverhe",
        },
        {
          label: "深覆盖",
          prop: "deepcover",
        },
        {
          label: "错𬌗拥挤",
          prop: "crowded",
        },
        {
          label: "对刃𬌗",
          prop: "blade",
        },
        {
          label: "反𬌗",
          prop: "thehe",
        },
        {
          label: "开𬌗",
          prop: "andhe",
        },
        {
          label: "食物嵌塞/无接触点",
          prop: "plug",
        },
      ],
      otherList: [
        {
          label: "",
          prop: "caries",
        },
        {
          label: "楔状缺损",
          prop: "defect",
        },
        {
          label: "充填体悬突",
          prop: "suspended",
        },
        {
          label: "不良修复体",
          prop: "badRepair",
        },
      ],
    }
  },
  watch: {
    value() {
      this.init()
    },
  },
  methods: {
    init() {
      if (!isObject(this.value)) this.$emit("input", {})
      this.occlusalList.forEach((item) => {
        this.$set(this.value, item.prop, this.value[item.prop] || {})
      })
      this.otherList.forEach((item) => {
        this.$set(this.value, item.prop, this.value[item.prop] || {})
      })
    },
  },
  created() {
    this.init()
  },
}
</script>
<style lang="scss" scoped>
.vw-tooth-bit {
  padding: 20px 0;
  .title {
    float: left;
    width: 90px;
    margin-top: 25px;
    font-size: 16px;
    text-align: right;
    font-weight: bold;
    line-height: 1;
  }
  .vw-tooth-bit-content {
    overflow: hidden;
  }
}
</style>