<template>
  <span>{{ value || "- -" }}</span>
</template>

<script>
export default {
  name: "ComputedInput",
  props: {
    // v-model
    value: {
      type: [Number, String],
      require: true,
    },
    // v-model
    formatter: {
      type: Function,
      default: () => {},
      require: true,
    },
    // 源数据
    source: {
      type: Object,
      require: true,
    },
  },
  data() {
    return {};
  },
  computed: {
    newSource() {
      return this.$props.source;
    },
  },
  watch: {
    newSource: {
      handler: function (newProp) {
        const { formatter } = this.$props;
        console.log("formatter", formatter);
        this.$emit("input", formatter(newProp));
      },
      deep: true,
      immediate: true,
    },
  },
  methods: {},
  created() {},
  mounted() {},
  destroyed() {},
};
</script>
<style scoped></style>