<template>
    <div class="main-contain">
        <div class="position">
            <bread-crumb :crumbs='crumbs'></bread-crumb>
        </div>
        <div class="app-container">
            <div class="nameTitle">患者基本信息:</div>
            <div class="formMain">
                <el-form class="basicForm" :model="form" :rules="rules" ref="form"  label-width="100px">
                    <el-form-item label="结算类型：">
                        <el-select v-model="form.settlementValue" placeholder="请选择">
                            <el-option
                            v-for="item in settlement"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item class="specialFormItem" label="医保卡号：">
                        <el-input v-model="form.medicalInsuranceCard"></el-input>
                        <el-button type="primary" @click="reading">读卡</el-button>
                    </el-form-item>
                    <el-form-item label="患者姓名：">
                        <el-input v-model="form.name"></el-input>
                    </el-form-item>
                    <el-form-item label="性别：">
                        <el-select v-model="form.sex" placeholder="请选择">
                            <el-option
                            v-for="item in sex"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="证件类型：">
                        <el-select v-model="form.certificates" placeholder="请选择">
                            <el-option
                            v-for="item in certificates"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="医疗类别：">
                        <el-select v-model="form.medicalCare" placeholder="请选择">
                            <el-option
                            v-for="item in medicalCare"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="出生日期：">
                        <el-date-picker v-model="form.birthday" type="date" @change="getBirthday" placeholder="选择日期"></el-date-picker>
                    </el-form-item>
                    <el-form-item label="年龄：">
                        <el-input v-model="form.age"></el-input>
                    </el-form-item>
                    <el-form-item label="证件号码：" required prop="idCard">
                        <el-input v-model="form.idCard"></el-input>
                        <!-- <div class="el-form-item__error" v-show="show">
                          请填写证件号码
                        </div> -->
                    </el-form-item>
   
                </el-form>
            </div>
            <div class="nameTitle">患者挂号信息:</div>
            <div class="formMain">
                <el-form class="basicForm" :model="form" :rules="rules" label-width="100px">
                    <el-form-item label="挂号类型："  prop="register">
                        <el-select v-model="form.register"  placeholder="请选择">
                            <el-option
                            v-for="item in register"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="医生："  prop="doctor" >
                        <el-select v-model="form.doctor" placeholder="请选择">
                            <el-option
                            v-for="item in doctorList"
                            :key="item.admin_user_id"
                            :label="item.user_name"
                            :value="item.admin_user_id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="科室："  prop="department">
                        <el-select v-model="form.department"  placeholder="请选择">
                            <el-option
                            v-for="item in departmentList"
                            :key="item.id"
                            :label="item.name"
                            :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item>
                        <el-checkbox v-model="form.costChecked">是否需要工本费</el-checkbox>
                    </el-form-item>
                    <el-form-item label="挂号费：">
                        <el-input v-model.number="form.registrationFee"></el-input>
                    </el-form-item>
                    <el-form-item label="诊疗费：">
                        <el-input v-model.number="form.medicalExpenses"></el-input>
                    </el-form-item>
                    <el-form-item label="工本费：">
                        <el-input v-model.number="form.cost" :readonly="!form.costChecked"></el-input>
                    </el-form-item>
                    <el-form-item label="合计：">
                        <el-input v-model.number="total" readonly></el-input>
                    </el-form-item>
                    <el-form-item>
                        <!-- <el-input v-model="form.name"></el-input> -->
                    </el-form-item>
                </el-form>
                <el-button style="float:right" @click="saveHisPatient('form')" type="primary">挂号</el-button>
            </div>
            
        </div>
    </div>
</template>

<script>
import BreadCrumb from '@/xt_pages/components/bread-crumb'
import { basename } from 'path'
import { getAllDoctorList,saveHisPatient } from "@/api/project/project"
const moment = require('moment')
export default {
    components:{
        BreadCrumb
    },
    data(){
        return{
            crumbs: [
                { path: false, name: '门诊挂号' },
                { path: false, name: '门诊挂号' }
            ],
            form:{
                settlementValue: '',
                medicalInsuranceCard:'',
                name:'',
                sex:'',
                certificates:'',
                medicalCare:'',
                birthday:'',
                age:'',
                idCard:'',
                register:'',
                doctor:'',
                department:'',
                costChecked:false,
                registrationFee:'',
                medicalExpenses:'',
                cost:'',
                total: '' 
            },
            settlement: [{
                value: 1,
                label: '医保'
                }, {
                value: 2,
                label: '自费'
            }],
            sex: [{
                value: 1,
                label: '男'
                }, {
                value: 2,
                label: '女'
            }],
            certificates: [{
                value: 1,
                label: '内地身份证'
                }, {
                value: 2,
                label: "社保卡"
                },{
                value: 3,
                label: "护照"
                },{
                value: 4,
                label: "军官证"
                },{
                value: 5,
                label: "台胞证"
                },{
                value: 6,
                label: "港澳地区身份证"
            }],
            medicalCare: [{
                value: 1,
                label: '职工基本医疗保险'
                }, {
                value: 2,
                label: "公务员医疗补助"
                },{
                value: 3,
                label: "大额医疗费用补助"
                },{
                value: 4,
                label: "离休人员医疗"
                },{
                value: 5,
                label: "城乡居民基本医疗保险"
                },{
                value: 6,
                label: "城乡居民大病医疗保险"
                },
                {
                value: 7,
                label: "生育保险"
            }],
            register: [{
                value: 1,
                label: '普通'
                }, {
                value: 2,
                label: "主治"
                },{
                value: 3,
                label: "主任"
                },{
                value: 4,
                label: "免收诊金"
                },{
                value: 5,
                label: "专家"
            }],
            baseinfo:{
                certno:"440221195903290027",
                psn_no:"0221201972",
                gend:"2",
                brdy:"1960-03-29",
                naty:"01",
                psn_cert_type:"01",
                psn_name:"杨美英",
                age:60.7
            },

            rules: {
              idCard: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
              register: [{ required: true, message: '请选择挂号类型' , trigger: 'blur' }],
              doctor: [{ required: true, message: '请选择医生' , trigger: 'blur' }],
              department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
           },
           doctorList:[],
           departmentList:[],
           check:0,
           show:false
        }
    },
    computed:{
        total(){
            if(this.form.registrationFee || this.form.medicalExpenses || this.form.cost){
                return parseFloat(this.form.registrationFee ? this.form.registrationFee : 0) + parseFloat(this.form.medicalExpenses ? this.form.medicalExpenses : 0) + parseFloat(this.form.cost ? this.form.cost : 0) 
            }
        }
    },
    methods:{
        reading(medicalInsuranceCard){
            this.form.name = this.baseinfo.psn_name
            this.form.sex = parseInt(this.baseinfo.gend)
            this.form.psn_cert_type = this.baseinfo.certificates
            this.form.birthday = this.baseinfo.brdy
            this.form.age = parseInt(this.baseinfo.age)
            this.form.idCard = this.baseinfo.certno
            this.form.certificates = 1
        },
        getBirthday(date){
            console.log(date)
            let curTime = moment(new Date(date)).format('YYYY-MM-DD')
            console.log("curTime22222",curTime)
           
            console.log(this.jsGetAge(curTime))

            this.form.age = this.jsGetAge(curTime)
        },
        jsGetAge(strBirthday) { //传入形式yyyy-MM-dd
            //strBirthday = util.formatTime(strBirthday);转换成yyyy-MM-dd形式
            var returnAge
            var strBirthdayArr = strBirthday.split('-')
            var birthYear = strBirthdayArr[0]
            var birthMonth = strBirthdayArr[1]
            var birthDay = strBirthdayArr[2]
            var d = new Date()
            var nowYear = d.getFullYear()
            var nowMonth = d.getMonth() + 1
            var nowDay = d.getDate()
            if (nowYear == birthYear) {
            returnAge = 0 //同年 则为0岁
            } else {
            var ageDiff = nowYear - birthYear //年之差
            if (ageDiff > 0) {
                if (nowMonth == birthMonth) {
                var dayDiff = nowDay - birthDay //日之差
                if (dayDiff < 0) {
                    returnAge = ageDiff - 1
                } else {
                    returnAge = ageDiff
                }
                } else {
                var monthDiff = nowMonth - birthMonth //月之差
                if (monthDiff < 0) {
                    returnAge = ageDiff - 1
                } else {
                    returnAge = ageDiff
                }
                }
            } else {
                returnAge = -1 //返回-1 表示出生日期输入错误 晚于今天
            }
            }
            return returnAge //返回周岁年龄
        },
        getForm(){
            this.form.total = this.total
            if(localStorage.getItem("temp")){
                let a = JSON.parse(localStorage.getItem("temp"))
                // let arr = []
                this.form.create_time = new Date(new Date().toLocaleDateString()).getTime() / 1000
                this.form.org_id = this.$store.getters.xt_user.org_id
                a.push(this.form)
                console.log(111,a)
                localStorage.setItem("temp",JSON.stringify(a));
                Object.keys(this.form).forEach((key)=>{
                    this.form[key] = ''
                })
                this.$message({message: '添加成功',type: 'success'});
            }else {
                let arr = []
                this.form.create_time = new Date(new Date().toLocaleDateString()).getTime() / 1000
                this.form.org_id = this.$store.getters.xt_user.org_id
                arr.push(this.form)
                localStorage.setItem("temp",JSON.stringify(arr));
                Object.keys(this.form).forEach((key)=>{
                    this.form[key] = ''
                })
                this.$message({message: '添加成功',type: 'success'});
            }
        },
        
        getAllDoctorList(){
           getAllDoctorList().then(response=>{
             if(response.data.state == 1){
               var doctor =  response.data.data.doctor
               this.doctorList = doctor
               var department = response.data.data.department
               console.log("department",department)
               this.departmentList = department
             }
           })   
        },
        saveHisPatient(formName){   
          this.$refs[formName].validate((valid)=>{
             if(valid){
                  if(this.form.costChecked == true){
                this.check = 1
                }
                if(this.form.costChecked == false){
                this.check = 2
                } 
                if(this.form.idCard == ""){
                   this.show = true
                }
                var params = {
                    settlementValue:this.form.settlementValue,
                    medicalInsuranceCard:this.form.medicalInsuranceCard,
                    name:this.form.name,
                    sex:this.form.sex,
                    certificates:this.form.certificates, 
                    medicalCare:this.form.medicalCare,
                    birthDay:moment(new Date(this.form.birthday)).format('YYYY-MM-DD'),
                    age:parseInt(this.form.age),
                    idCard:this.form.idCard,
                    register:this.form.register,
                    doctor:this.form.doctor,
                    department:this.form.department,
                    costChecked:this.check,
                    registrationFee:this.form.registrationFee,
                    medicalExpenses:this.form.medicalExpenses,
                    cost:this.form.cost,
                    total:this.total
                }
                console.log("params",params)
                saveHisPatient(params).then(response=>{
                   if(response.data.state == 1){
                     var patient =  response.data.data.patient
                     console.log("patient",patient)
                     this.$message.success("保存成功")
                     this.form.settlementValue = "",
                     this.form.medicalInsuranceCard = "",
                     this.form.name = "",
                     this.form.sex="",
                     this.form.certificates="",
                     this.form.medicalCare = "",
                     this.form.birthday ="",
                     this.form.age ="",
                     this.form.idCard = "",
                     this.form.register = "",
                     this.form.doctor = "",
                     this.form.department = "",
                     this.form.costChecked = false,
                     this.form.registrationFee = "",
                     this.form.medicalExpenses = "",
                     this.form.cost="",
                     this.form.total= "" 
                   } 
                })
             } 
          })
        },
      
    },
    created(){
      //获取当前机构有人员信息
      this.getAllDoctorList()   
    }
}
</script>

<style lang="scss" scoped>
.nameTitle{
    font-weight: bold;
    font-size: 16px;
}
.formMain{
    // padding: 10px 90px;
    width:80%;
    margin: 0 auto;
}
.basicForm{
    
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    .el-form-item{
        width: 260px;
    }
    .specialFormItem{
        width:625px;
        .el-input{
            min-width: 150px;
        }
    }
    .el-select{
        width: 180px;
    }
    .el-input{
        width: 180px;
    }
}
    .el-form-item__error{
        color: #F56C6C;
        font-size: 12px;
        line-height: 1;
        padding-top: 4px;
        position: absolute;
        top: 100%;
        left: 0;
    }
</style>
