<template>
  <dialog-form
    width="750px"
    ref="dialog"
    :title="formEdit.id ? '编辑' : '新增'"
    :form-edit="formEdit"
    :form-data="formData"
    labelWidth="120px"
    @handleConfirm="handleConfirm"
  ></dialog-form>
</template>

<script>
import { feignField } from "@/api/field.js"
import { getCoopGroupList } from "@/api/coop-group.js"
export default {
  name: "DialogFormSelf",

  data() {
    return {
      formEdit: {},
      formData: [
        {
          label: "疾病名",
          prop: "diseaseName",
          spanCount: 12,
          type: "input",
        },
        {
          label: "机构名",
          prop: "orgName",
          spanCount: 12,
          type: "input",
        },
        {
          label: "协作组",
          prop: "groupId",
          type: "select",
          opts: [],
        },
        {
          label: "表单名",
          prop: "formName",
          spanCount: 12,
          type: "input",
        },
        {
          label: "表单id",
          prop: "formId",
          spanCount: 12,
          type: "input",
        },
        {
          label: "原表名",
          prop: "sourceTableName",
          spanCount: 12,
          type: "input",
        },
        {
          label: "原表code",
          prop: "sourceTableCode",
          spanCount: 12,
          type: "input",
        },
        {
          label: "原字段名",
          prop: "sourceFieldName",
          spanCount: 12,
          type: "input",
        },
        {
          label: "原字段code",
          prop: "sourceFieldCode",
          spanCount: 12,
          type: "input",
        },
        {
          label: "目标表名",
          spanCount: 12,
          type: "input",
          prop: "targetTableCode",
        },
        {
          label: "目标表名code",
          spanCount: 12,
          type: "input",
          prop: "targetTableName",
        },
        {
          label: "目标字段名",
          type: "input",
          spanCount: 12,
          prop: "targetFieldName",
        },
        {
          label: "目标字段名code",
          type: "input",
          spanCount: 12,
          prop: "targetFieldCode",
        },
        {
          label: "字典",
          type: "input",
          spanCount: 12,
          prop: "dictType",
        },
        {
          label: "创建人",
          prop: "createUser",
          spanCount: 12,
          type: "input",
        },
        {
          label: "格式化方式",
          prop: "formatType",
          spanCount: 12,
          type: "select",
          optsFormatter: () => {
            return this.dictMap && this.dictMap["data_format_type"]
          },
        },
      ],
    }
  },

  methods: {
    // 获得协作组列表
    getCoopGroupList() {
      getCoopGroupList().then((res) => {
        const d = res.data
        this.formData[2].opts = d.map((item) => {
          return {
            label: item.groupName,
            value: item.id,
          }
        })
      })
    },

    handleAdd(row) {
      this.formEdit = Object.assign({}, row)
      this.$refs.dialog.open()
    },
    handleConfirm(form) {
      const data = Object.assign({}, form)

      data.groupName = this.$handle.formatDicList(
        this.formData[2].opts,
        form.groupId
      )
      const msg = data.id ? "编辑成功" : "新增成功"
      feignField(data).then((res) => {
        if (res.code === 1) {
          this.$message.success(msg)
          this.$refs.dialog.close()
          this.$emit("handleConfirm")
        }
      })
    },
  },
  created() {
    this.getCoopGroupList()
  },
}
</script>

<style lang="scss" scoped>
.drawer__container {
  padding: 0 20px;
  .drawer__content {
    height: calc(100vh - #{"160px"});
    overflow-y: auto;
    &::-webkit-scrollbar {
      width: 0px;
      height: 0px;
    }
    &::-webkit-scrollbar-thumb {
      background-color: #fff;
    }
  }
  .footer {
    margin-top: 20px;
    display: flex;
    button {
      flex: 1;
    }
  }
}
</style>