gx
chenyc
2025-02-27 4afd7755b465829a21b238fc0ccb98d08a8381e6
src/views/home/components/fangAn/editDietary.vue
@@ -177,15 +177,88 @@
                                        <td class="htr" rowspan="7">营养师指导建议</td>
                                        <td rowspan="3">透析饮食指导</td>
                                        <td>能量</td>
                                        <td> <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.能量" placeholder="" />
                                        <td>
                                             <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.能量" placeholder="" >
                                                <template #append>
                                                    <span @click="state.centerDialogVisibleNL=true">计算</span>
                                                </template>
                                            </el-input>
                                            <el-dialog v-model="state.centerDialogVisibleNL" title="计算能量" width="400" center>
                                                <span>
                                                    <div style="text-align: center">
                                                        <span> 体重:{{state.最近一次体重}}</span>*
                                                        <span><el-input-number v-model="state.nljsz"></el-input-number> </span>
                                                        ={{nlValue}}
                                                    </div>
                                                </span>
                                                <template #footer>
                                                <div class="dialog-footer">
                                                    <el-button @click="state.centerDialogVisibleNL = false">取消</el-button>
                                                    <el-button type="primary" @click="nlqd">
                                                        确定
                                                    </el-button>
                                                </div>
                                                </template>
                                            </el-dialog>
                                        </td>
                                        <td>蛋白质</td>
                                        <td>
                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.蛋白质" placeholder="" />
                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.蛋白质" placeholder="">
                                                <template #append>
                                                    <span @click="state.centerDialogVisibleDBZ=true">计算</span>
                                                </template>
                                            </el-input>
                                            <el-dialog v-model="state.centerDialogVisibleDBZ" title="计算蛋白质" width="400" center>
                                                <span>
                                                    <div style="text-align: center">
                                                        <span> 体重:{{state.最近一次体重}}</span>*
                                                        <span><el-input-number :step="0.1" v-model="state.dbzjsz"></el-input-number> </span>
                                                        ={{dbzValue}}
                                                    </div>
                                                </span>
                                                <template #footer>
                                                <div class="dialog-footer">
                                                    <el-button @click="state.centerDialogVisibleDBZ = false">取消</el-button>
                                                    <el-button type="primary" @click="dbzqd">
                                                        确定
                                                    </el-button>
                                                </div>
                                                </template>
                                            </el-dialog>
                                        </td>
                                        <td>优质蛋白</td>
                                        <td>
                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.优质蛋白" placeholder="" />
                                            <el-input v-model="state.tableData.营养师指导建议.透析饮食指导.优质蛋白" placeholder="" >
                                                <template #append>
                                                    <span @click="state.centerDialogVisibleYZDBZ=true">计算</span>
                                                </template>
                                            </el-input>
                                            <el-dialog v-model="state.centerDialogVisibleYZDBZ" title="计算蛋白质" width="400" center>
                                                <span>
                                                    <div style="text-align: center">
                                                        <span> 蛋白质:{{state.tableData.营养师指导建议.透析饮食指导.蛋白质}}</span>*
                                                        <span><el-input-number :step="0.1" v-model="state.yzdbzjsz"></el-input-number> </span>
                                                        ={{yzdbzValue}}
                                                    </div>
                                                </span>
                                                <template #footer>
                                                <div class="dialog-footer">
                                                    <el-button @click="state.centerDialogVisibleYZDBZ = false">取消</el-button>
                                                    <el-button type="primary" @click="yzdbzqd">
                                                        确定
                                                    </el-button>
                                                </div>
                                                </template>
                                            </el-dialog>
                                        </td>
                                    </tr>
                                    <tr>
@@ -546,7 +619,7 @@
                        <el-icon>
                            <Position />
                        </el-icon>
                        导出22
                        导出
                    </el-button>
                </div>
@@ -579,16 +652,17 @@
</template>
<script setup lang="ts" name="visualizingLinkDemo2">
import { Check } from '@element-plus/icons-vue'
import { Check,Edit } from '@element-plus/icons-vue'
import html2pdf from 'html2pdf.js';
import html2canvas from 'html2canvas';
import { jsPDF } from 'jspdf';
import { reactive, onMounted, onUnmounted, ref } from 'vue';
import { reactive, onMounted, onUnmounted, ref,computed} from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
import { useUserInfo } from '/@/stores/userInfo';
import { usePatientsInfo } from '/@/stores/patientsInfo';
const storesPat = usePatientsInfo();
import { getPatData} from '/@/api/Patients';
import { Add, update, deleteId, tiaochabiaoInfo, list } from '/@/api/tiaochabiao/index'
import { storeToRefs } from 'pinia';
import { useRoute, useRouter } from 'vue-router';
@@ -599,6 +673,13 @@
const router = useRouter()
const emit = defineEmits(["shuaxin"]);
const state = reactive({
    centerDialogVisibleYZDBZ:false,
    yzdbzjsz:2,
    centerDialogVisibleDBZ:false,
    dbzjsz:1.2,
    centerDialogVisibleNL:false,
    最近一次体重:0,
    nljsz:30,
    modeType:'',
    mobanlist:[
        '食材提前浸泡、焯水,可以去除1/2-2/3的磷钾;',
@@ -743,6 +824,59 @@
    }
})
const numberPart=(str:any)=>{
    if(str){
         // 使用正则表达式匹配数字
        const numberPart = str.match(/\d+/);
        // 将匹配到的数字字符串转换为数字
        const num = numberPart ? Number(numberPart[0]) : '';
        return num
    }else{
        return ''
    }
}
// 优质蛋白质确定
const yzdbzqd=()=>{
    state.centerDialogVisibleYZDBZ = false
    state.tableData.营养师指导建议.透析饮食指导.优质蛋白=yzdbzValue.value
}
const yzdbzValue= computed(() => {
    if(state.最近一次体重&&numberPart(state.tableData.营养师指导建议.透析饮食指导.蛋白质)){
        return Number(Number(numberPart(state.tableData.营养师指导建议.透析饮食指导.蛋白质))/state.yzdbzjsz).toFixed(0)+'g'
    }
    else{
        return ''
    }
})
const dbzValue= computed(() => {
    if(state.最近一次体重){
        return Number(Number(state.最近一次体重)*state.dbzjsz).toFixed(0)+'g'
    }
    else{
        return ''
    }
})
// 蛋白质确定
const dbzqd=()=>{
    state.centerDialogVisibleDBZ = false
    state.tableData.营养师指导建议.透析饮食指导.蛋白质=dbzValue.value
}
//能量计算
const nlValue= computed(() => {
    if(state.最近一次体重){
        return Number(Number(state.最近一次体重)*state.nljsz).toFixed(0)+'kcal'
    }
    else{
        return ''
    }
})
// 能量确定
const nlqd=()=>{
    state.centerDialogVisibleNL = false
    state.tableData.营养师指导建议.透析饮食指导.能量=nlValue.value
}
const Edit1=(mode)=>{
    state.innerVisible=true
    state.modeType=mode
@@ -988,9 +1122,14 @@
    
        console.log(from3Json)
    }
}
// 获取最近的一次体重
const getPatDatas= ()=>{
     getPatData({ patCode: patientsInfo.value.code }).then(res=>{
        if(res.data?.上一次透前体重){
            state.最近一次体重=res.data?.上一次透前体重
        }
     })
}
// 获取膳食调查表
const getFrom1 = async () => {
@@ -1037,6 +1176,8 @@
// 打开查看或者编辑明细
const openShow = (type: string, mode: tiaochabiaoInfo) => {
    console.log(type)
    console.log(patientsInfo.value)
    getPatDatas()
    if (type === 'add') {
        getPageInfo()
        state.dialogTableVisible = true
@@ -1062,7 +1203,7 @@
<style scoped lang="scss">
.gridtable {
    font-family: verdana, arial, sans-serif;
    font-size: 11px;
    color: #333333;
    border-width: 1px;
    border-color: #666666;