<template>
  <div style="padding: 0 5px;">
    <div>
      <el-select v-model="diagnosis" placeholder="快速选择诊断疾病" size="small" filterable clearable remote automatic-dropdown
        :remote-method="remoteMethod" @change="quickChoosedDiag" default-first-option ref="diagnosises" value-key="id"
        style="width:250px;text-align: left;padding-right: 15px;">
        <el-option v-for="item in diagnosisesCur" :key="item.id" :value="item" :label="item.displayName" />
      </el-select>
    </div>
    <div>
      <el-table :data="sumDoctorCheck.diagnosisList" :height="window.pageHeight - 110" width="100%" size="small">
        <!-- temporaryselection   personnelUnit.nogroupselected-->
        <!--
        "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "diagnosisId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "sumSuggestionHeaderId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "displayOrder": 0,
        "diagnosisName": "string"
        -->
        <el-table-column type="index" label="序号" align="center" width="60" />
        <el-table-column label="诊断疾病" width="160" prop="diagnosisName" />
        <el-table-column fixed="right" label="操作" width="60">
          <template slot-scope="scope">
            <i class="el-icon-delete" @click="deleteRow(scope.$index)"
              style="font-size: 24px;color: red;cursor:pointer;"></i>
          </template>
        </el-table-column>
      </el-table>
    </div>
  </div>
</template>
<script>
import moment from "moment";
import { mapState, mapMutations } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce, deepCopy } from "@/utlis/proFunc";



export default {
  components: {
    
  },
  props: ['patientRegisterId'],
  data() {
    return {
      diagnosis: "",
      diagnosisesCur: [], //疾病列表数据
      diagnosisesAll: [], //疾病列表数据
    };
  },

  created() {
    this.dictInit();
    this.getDiagnosisList(this.patientRegisterId);
  },

  //挂载完成
  mounted() { },
  computed: {
    ...mapState(["window", "dict", "patientRegister", "customerOrg", "doctorCheck", "sumDoctorCheck", "report"]),
  },
  methods: {

    dictInit() {
      postapi('/api/app/diagnosis/getlistinsuggestion', {}).then(res => {
        if (res.code != -1) {
          this.diagnosisesCur = res.data
          this.diagnosisesAll = res.data
          //过滤已选的诊断
          this.filterDiagnosises()

        }
      })

    },

    //快速选择组合项目时，调整可按拼间简码及简称查找
    remoteMethod(keyWords) {
      //console.log('remoteMethod',this.dict.asbItemQuick)  
      if (keyWords) {
        this.diagnosisesCur = [];
        this.diagnosisesAll.forEach(item => {
          if (item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
            || item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1) {
            this.diagnosisesCur.push(item);
          }
        });
      } else {
        this.diagnosisesCur = deepCopy(this.diagnosisesAll)
      }

      //过滤已选的诊断
      this.filterDiagnosises()

    },

    //过滤已选诊断的
    filterDiagnosises(){
      let sumDiagnosises = deepCopy(this.sumDoctorCheck.diagnosisList)
      sumDiagnosises.forEach(e =>{
        e.id = e.diagnosisId
        return e
      })
      this.diagnosisesCur = arrayReduce(this.diagnosisesCur,sumDiagnosises,'id')
    },

    quickChoosedDiag(v) {
      if (!v) return
      console.log(v)

      this.sumDoctorCheck.diagnosisList.push({
        patientRegisterId: this.patientRegisterId,
        diagnosisId: v.id,
        diagnosisName: v.displayName,
      })

      let id = String(new Date().getTime())
      let details = []

      v.suggestions.forEach(e => {
        details.push({
          sumSuggestionHeaderId: id,
          suggestionContent: e.suggestionContent
        })
      })

      let pojo = {
        id: id,
        patientRegisterId: this.patientRegisterId,
        suggestionTitle: v.suggestionName || v.displayName,
        diagnosisId: v.id,
        details
      }

      this.sumDoctorCheck.suggestionList.push(pojo);

    },

    //查询
    getDiagnosisList(PatientRegisterId) {
      // /api/app/sumdiagnosis/getsumdiagnosislistinpatientregisterid?PatientRegisterId=3fa85f64-5717-4562-b3fc-2c963f66afa6
      getapi(`/api/app/sumdiagnosis/getsumdiagnosislistinpatientregisterid?PatientRegisterId=${PatientRegisterId}`)
        .then((res) => {
          if(res.code != - 1) this.sumDoctorCheck.diagnosisList = res.data
        });
    },


    deleteRow(index) {
      this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
        confirmButtonText: "是",
        cancelButtonText: "否",
        type: "warning",
      }).then(() => {
        //删除建议
        let count = this.sumDoctorCheck.suggestionList.length - 1
        for (let i = count; i > 0; i--) {
          //console.log(this.sumDoctorCheck.suggestionList[i].diagnosisId, this.sumDoctorCheck.diagnosisList[index].diagnosisId)
          if (this.sumDoctorCheck.suggestionList[i].diagnosisId == this.sumDoctorCheck.diagnosisList[index].diagnosisId) {
            this.sumDoctorCheck.suggestionList.splice(i, 1)
          }
        }

        this.sumDoctorCheck.diagnosisList.splice(index, 1)
      }).catch((err) => {
        //
      });

    },

  },

  //监听事件
  watch: {
    "patientRegisterId"(newVal, oldVal){
      if(newVal && newVal != oldVal){
        this.getDiagnosisList(newVal)
      }
    },
  },
};
</script>
<style scoped>
/* 输入框相关设置*/
::v-deep .el-input__inner {
  padding-left: 2px;
  padding-right: 15px;
}

::v-deep .el-input__icon {
  width: 15px;
  /* 输入框下拉箭头或清除图标 默认 25 */
}

::v-deep .el-input-group__append {
  padding: 0 5px;
  /* 控件默认 0 20px;*/
}

.box {
  display: flex;
}

.query {
  margin-left: 5px;
  margin-bottom: 2px;
}

.listBtn {
  margin-top: 10px;
}
</style>
