chenyc
2024-11-08 ccf73d764231f2ff01a23154c33b26cd49f7ca17
添加导出和打印功能
8个文件已修改
486 ■■■■■ 已修改文件
package-lock.json 399 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.ts 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/editDietary.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/editDietary2.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/patient_file.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/components/pingubiao/editDietary4.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json
@@ -20,6 +20,7 @@
                "echarts-gl": "^2.0.9",
                "echarts-wordcloud": "^2.1.0",
                "element-plus": "^2.6.1",
                "html2pdf.js": "^0.10.2",
                "js-cookie": "^3.0.5",
                "js-table2excel": "^1.1.2",
                "jsplumb": "^2.15.6",
@@ -37,7 +38,8 @@
                "vue-demi": "^0.14.7",
                "vue-grid-layout": "^3.0.0-beta1",
                "vue-i18n": "^9.10.2",
                "vue-router": "^4.3.0"
                "vue-router": "^4.3.0",
                "vue3-print-nb": "^0.1.4"
            },
            "devDependencies": {
                "@types/node": "^20.11.28",
@@ -84,11 +86,11 @@
            }
        },
        "node_modules/@babel/runtime": {
            "version": "7.21.0",
            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
            "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
            "version": "7.26.0",
            "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.0.tgz",
            "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
            "dependencies": {
                "regenerator-runtime": "^0.13.11"
                "regenerator-runtime": "^0.14.0"
            },
            "engines": {
                "node": ">=6.9.0"
@@ -1075,6 +1077,12 @@
            "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==",
            "dev": true
        },
        "node_modules/@types/raf": {
            "version": "3.4.3",
            "resolved": "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz",
            "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==",
            "optional": true
        },
        "node_modules/@types/semver": {
            "version": "7.5.8",
            "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
@@ -1763,6 +1771,17 @@
            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
            "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
        },
        "node_modules/atob": {
            "version": "2.1.2",
            "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
            "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
            "bin": {
                "atob": "bin/atob.js"
            },
            "engines": {
                "node": ">= 4.5.0"
            }
        },
        "node_modules/axios": {
            "version": "1.6.8",
            "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
@@ -1778,6 +1797,14 @@
            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
            "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
            "dev": true
        },
        "node_modules/base64-arraybuffer": {
            "version": "1.0.2",
            "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
            "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==",
            "engines": {
                "node": ">= 0.6.0"
            }
        },
        "node_modules/batch-processor": {
            "version": "1.0.0",
@@ -1821,6 +1848,17 @@
                "node": ">=8"
            }
        },
        "node_modules/btoa": {
            "version": "1.2.1",
            "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz",
            "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
            "bin": {
                "btoa": "bin/btoa.js"
            },
            "engines": {
                "node": ">= 0.4.0"
            }
        },
        "node_modules/call-bind": {
            "version": "1.0.7",
            "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
@@ -1847,6 +1885,31 @@
            "engines": {
                "node": ">=6"
            }
        },
        "node_modules/canvg": {
            "version": "3.0.10",
            "resolved": "https://registry.npmmirror.com/canvg/-/canvg-3.0.10.tgz",
            "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==",
            "optional": true,
            "dependencies": {
                "@babel/runtime": "^7.12.5",
                "@types/raf": "^3.4.0",
                "core-js": "^3.8.3",
                "raf": "^3.4.1",
                "regenerator-runtime": "^0.13.7",
                "rgbcolor": "^1.0.1",
                "stackblur-canvas": "^2.0.0",
                "svg-pathdata": "^6.0.3"
            },
            "engines": {
                "node": ">=10.0.0"
            }
        },
        "node_modules/canvg/node_modules/regenerator-runtime": {
            "version": "0.13.11",
            "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
            "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
            "optional": true
        },
        "node_modules/chalk": {
            "version": "4.1.2",
@@ -1958,6 +2021,17 @@
            "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
            "dev": true
        },
        "node_modules/core-js": {
            "version": "3.39.0",
            "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz",
            "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==",
            "hasInstallScript": true,
            "optional": true,
            "funding": {
                "type": "opencollective",
                "url": "https://opencollective.com/core-js"
            }
        },
        "node_modules/countup.js": {
            "version": "2.8.0",
            "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.8.0.tgz",
@@ -1980,6 +2054,14 @@
            },
            "engines": {
                "node": ">= 8"
            }
        },
        "node_modules/css-line-break": {
            "version": "2.1.0",
            "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
            "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
            "dependencies": {
                "utrie": "^1.0.2"
            }
        },
        "node_modules/cssesc": {
@@ -2097,6 +2179,12 @@
                "ssr-window": "^3.0.0-alpha.1"
            }
        },
        "node_modules/dompurify": {
            "version": "2.5.7",
            "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.7.tgz",
            "integrity": "sha512-2q4bEI+coQM8f5ez7kt2xclg1XsecaV9ASJk/54vwlfRRNQfDqJz2pzQ8t0Ix/ToBpXlVjrRIx7pFC/o8itG2Q==",
            "optional": true
        },
        "node_modules/echarts": {
            "version": "5.5.0",
            "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz",
@@ -2212,6 +2300,11 @@
                "es5-ext": "^0.10.35",
                "es6-symbol": "^3.1.1"
            }
        },
        "node_modules/es6-promise": {
            "version": "4.2.8",
            "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
            "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
        },
        "node_modules/es6-symbol": {
            "version": "3.1.3",
@@ -2521,6 +2614,11 @@
            "dependencies": {
                "reusify": "^1.0.4"
            }
        },
        "node_modules/fflate": {
            "version": "0.8.2",
            "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz",
            "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
        },
        "node_modules/file-entry-cache": {
            "version": "6.0.1",
@@ -2833,6 +2931,28 @@
                "url": "https://github.com/sponsors/wooorm"
            }
        },
        "node_modules/html2canvas": {
            "version": "1.4.1",
            "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
            "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
            "dependencies": {
                "css-line-break": "^2.1.0",
                "text-segmentation": "^1.0.3"
            },
            "engines": {
                "node": ">=8.0.0"
            }
        },
        "node_modules/html2pdf.js": {
            "version": "0.10.2",
            "resolved": "https://registry.npmmirror.com/html2pdf.js/-/html2pdf.js-0.10.2.tgz",
            "integrity": "sha512-WyHVeMb18Bp7vYTmBv1GVsThH//K7SRfHdSdhHPkl4JvyQarNQXnailkYn0QUbRRmnN5rdbbmSIGEsPZtzPy2Q==",
            "dependencies": {
                "es6-promise": "^4.2.5",
                "html2canvas": "^1.0.0",
                "jspdf": "^2.3.1"
            }
        },
        "node_modules/i18next": {
            "version": "20.6.1",
            "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz",
@@ -3037,6 +3157,23 @@
            },
            "optionalDependencies": {
                "graceful-fs": "^4.1.6"
            }
        },
        "node_modules/jspdf": {
            "version": "2.5.2",
            "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz",
            "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==",
            "dependencies": {
                "@babel/runtime": "^7.23.2",
                "atob": "^2.1.2",
                "btoa": "^1.2.1",
                "fflate": "^0.8.1"
            },
            "optionalDependencies": {
                "canvg": "^3.0.6",
                "core-js": "^3.6.0",
                "dompurify": "^2.5.4",
                "html2canvas": "^1.0.0-rc.5"
            }
        },
        "node_modules/jsplumb": {
@@ -3407,6 +3544,12 @@
                "node": ">=8"
            }
        },
        "node_modules/performance-now": {
            "version": "2.1.0",
            "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
            "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
            "optional": true
        },
        "node_modules/picocolors": {
            "version": "1.0.0",
            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -3588,6 +3731,15 @@
                }
            ]
        },
        "node_modules/raf": {
            "version": "3.4.1",
            "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz",
            "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
            "optional": true,
            "dependencies": {
                "performance-now": "^2.1.0"
            }
        },
        "node_modules/readdirp": {
            "version": "3.6.0",
            "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -3601,9 +3753,9 @@
            }
        },
        "node_modules/regenerator-runtime": {
            "version": "0.13.11",
            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
            "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
            "version": "0.14.1",
            "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
            "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
        },
        "node_modules/resolve-from": {
            "version": "4.0.0",
@@ -3622,6 +3774,15 @@
            "engines": {
                "iojs": ">=1.0.0",
                "node": ">=0.10.0"
            }
        },
        "node_modules/rgbcolor": {
            "version": "1.0.1",
            "resolved": "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz",
            "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==",
            "optional": true,
            "engines": {
                "node": ">= 0.8.15"
            }
        },
        "node_modules/rimraf": {
@@ -3875,6 +4036,15 @@
            "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz",
            "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
        },
        "node_modules/stackblur-canvas": {
            "version": "2.7.0",
            "resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz",
            "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==",
            "optional": true,
            "engines": {
                "node": ">=0.1.14"
            }
        },
        "node_modules/strip-ansi": {
            "version": "6.0.1",
            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -3909,6 +4079,23 @@
            },
            "engines": {
                "node": ">=8"
            }
        },
        "node_modules/svg-pathdata": {
            "version": "6.0.3",
            "resolved": "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
            "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==",
            "optional": true,
            "engines": {
                "node": ">=12.0.0"
            }
        },
        "node_modules/text-segmentation": {
            "version": "1.0.3",
            "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
            "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
            "dependencies": {
                "utrie": "^1.0.2"
            }
        },
        "node_modules/text-table": {
@@ -4027,6 +4214,14 @@
            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
            "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
            "dev": true
        },
        "node_modules/utrie": {
            "version": "1.0.2",
            "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
            "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
            "dependencies": {
                "base64-arraybuffer": "^1.0.2"
            }
        },
        "node_modules/vite": {
            "version": "5.1.6",
@@ -4272,6 +4467,14 @@
                "vue": "^3.2.0"
            }
        },
        "node_modules/vue3-print-nb": {
            "version": "0.1.4",
            "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
            "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
            "dependencies": {
                "vue": "^3.0.5"
            }
        },
        "node_modules/which": {
            "version": "2.0.2",
            "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -4347,11 +4550,11 @@
            "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg=="
        },
        "@babel/runtime": {
            "version": "7.21.0",
            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
            "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
            "version": "7.26.0",
            "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.26.0.tgz",
            "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
            "requires": {
                "regenerator-runtime": "^0.13.11"
                "regenerator-runtime": "^0.14.0"
            }
        },
        "@ctrl/tinycolor": {
@@ -4937,6 +5140,12 @@
            "integrity": "sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==",
            "dev": true
        },
        "@types/raf": {
            "version": "3.4.3",
            "resolved": "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz",
            "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==",
            "optional": true
        },
        "@types/semver": {
            "version": "7.5.8",
            "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
@@ -5420,6 +5629,11 @@
            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
            "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
        },
        "atob": {
            "version": "2.1.2",
            "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz",
            "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
        },
        "axios": {
            "version": "1.6.8",
            "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
@@ -5435,6 +5649,11 @@
            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
            "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
            "dev": true
        },
        "base64-arraybuffer": {
            "version": "1.0.2",
            "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
            "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
        },
        "batch-processor": {
            "version": "1.0.0",
@@ -5472,6 +5691,11 @@
                "fill-range": "^7.0.1"
            }
        },
        "btoa": {
            "version": "1.2.1",
            "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz",
            "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g=="
        },
        "call-bind": {
            "version": "1.0.7",
            "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
@@ -5489,6 +5713,30 @@
            "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
            "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
            "dev": true
        },
        "canvg": {
            "version": "3.0.10",
            "resolved": "https://registry.npmmirror.com/canvg/-/canvg-3.0.10.tgz",
            "integrity": "sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==",
            "optional": true,
            "requires": {
                "@babel/runtime": "^7.12.5",
                "@types/raf": "^3.4.0",
                "core-js": "^3.8.3",
                "raf": "^3.4.1",
                "regenerator-runtime": "^0.13.7",
                "rgbcolor": "^1.0.1",
                "stackblur-canvas": "^2.0.0",
                "svg-pathdata": "^6.0.3"
            },
            "dependencies": {
                "regenerator-runtime": {
                    "version": "0.13.11",
                    "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
                    "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==",
                    "optional": true
                }
            }
        },
        "chalk": {
            "version": "4.1.2",
@@ -5576,6 +5824,12 @@
            "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
            "dev": true
        },
        "core-js": {
            "version": "3.39.0",
            "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.39.0.tgz",
            "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==",
            "optional": true
        },
        "countup.js": {
            "version": "2.8.0",
            "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.8.0.tgz",
@@ -5595,6 +5849,14 @@
                "path-key": "^3.1.0",
                "shebang-command": "^2.0.0",
                "which": "^2.0.1"
            }
        },
        "css-line-break": {
            "version": "2.1.0",
            "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
            "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
            "requires": {
                "utrie": "^1.0.2"
            }
        },
        "cssesc": {
@@ -5682,6 +5944,12 @@
            "requires": {
                "ssr-window": "^3.0.0-alpha.1"
            }
        },
        "dompurify": {
            "version": "2.5.7",
            "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.7.tgz",
            "integrity": "sha512-2q4bEI+coQM8f5ez7kt2xclg1XsecaV9ASJk/54vwlfRRNQfDqJz2pzQ8t0Ix/ToBpXlVjrRIx7pFC/o8itG2Q==",
            "optional": true
        },
        "echarts": {
            "version": "5.5.0",
@@ -5774,6 +6042,11 @@
                "es5-ext": "^0.10.35",
                "es6-symbol": "^3.1.1"
            }
        },
        "es6-promise": {
            "version": "4.2.8",
            "resolved": "https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz",
            "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
        },
        "es6-symbol": {
            "version": "3.1.3",
@@ -6024,6 +6297,11 @@
                "reusify": "^1.0.4"
            }
        },
        "fflate": {
            "version": "0.8.2",
            "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz",
            "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
        },
        "file-entry-cache": {
            "version": "6.0.1",
            "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -6235,6 +6513,25 @@
            "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz",
            "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A=="
        },
        "html2canvas": {
            "version": "1.4.1",
            "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
            "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
            "requires": {
                "css-line-break": "^2.1.0",
                "text-segmentation": "^1.0.3"
            }
        },
        "html2pdf.js": {
            "version": "0.10.2",
            "resolved": "https://registry.npmmirror.com/html2pdf.js/-/html2pdf.js-0.10.2.tgz",
            "integrity": "sha512-WyHVeMb18Bp7vYTmBv1GVsThH//K7SRfHdSdhHPkl4JvyQarNQXnailkYn0QUbRRmnN5rdbbmSIGEsPZtzPy2Q==",
            "requires": {
                "es6-promise": "^4.2.5",
                "html2canvas": "^1.0.0",
                "jspdf": "^2.3.1"
            }
        },
        "i18next": {
            "version": "20.6.1",
            "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz",
@@ -6397,6 +6694,21 @@
            "requires": {
                "graceful-fs": "^4.1.6",
                "universalify": "^2.0.0"
            }
        },
        "jspdf": {
            "version": "2.5.2",
            "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz",
            "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==",
            "requires": {
                "@babel/runtime": "^7.23.2",
                "atob": "^2.1.2",
                "btoa": "^1.2.1",
                "canvg": "^3.0.6",
                "core-js": "^3.6.0",
                "dompurify": "^2.5.4",
                "fflate": "^0.8.1",
                "html2canvas": "^1.0.0-rc.5"
            }
        },
        "jsplumb": {
@@ -6685,6 +6997,12 @@
            "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
            "dev": true
        },
        "performance-now": {
            "version": "2.1.0",
            "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
            "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
            "optional": true
        },
        "picocolors": {
            "version": "1.0.0",
            "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@@ -6782,6 +7100,15 @@
            "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
            "dev": true
        },
        "raf": {
            "version": "3.4.1",
            "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz",
            "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
            "optional": true,
            "requires": {
                "performance-now": "^2.1.0"
            }
        },
        "readdirp": {
            "version": "3.6.0",
            "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -6792,9 +7119,9 @@
            }
        },
        "regenerator-runtime": {
            "version": "0.13.11",
            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
            "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
            "version": "0.14.1",
            "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
            "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
        },
        "resolve-from": {
            "version": "4.0.0",
@@ -6807,6 +7134,12 @@
            "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
            "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
            "dev": true
        },
        "rgbcolor": {
            "version": "1.0.1",
            "resolved": "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz",
            "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==",
            "optional": true
        },
        "rimraf": {
            "version": "3.0.2",
@@ -6981,6 +7314,12 @@
            "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz",
            "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
        },
        "stackblur-canvas": {
            "version": "2.7.0",
            "resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz",
            "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==",
            "optional": true
        },
        "strip-ansi": {
            "version": "6.0.1",
            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@@ -7003,6 +7342,20 @@
            "dev": true,
            "requires": {
                "has-flag": "^4.0.0"
            }
        },
        "svg-pathdata": {
            "version": "6.0.3",
            "resolved": "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz",
            "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==",
            "optional": true
        },
        "text-segmentation": {
            "version": "1.0.3",
            "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
            "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
            "requires": {
                "utrie": "^1.0.2"
            }
        },
        "text-table": {
@@ -7094,6 +7447,14 @@
            "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
            "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
            "dev": true
        },
        "utrie": {
            "version": "1.0.2",
            "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
            "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
            "requires": {
                "base64-arraybuffer": "^1.0.2"
            }
        },
        "vite": {
            "version": "5.1.6",
@@ -7237,6 +7598,14 @@
                "@vue/devtools-api": "^6.5.1"
            }
        },
        "vue3-print-nb": {
            "version": "0.1.4",
            "resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
            "integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
            "requires": {
                "vue": "^3.0.5"
            }
        },
        "which": {
            "version": "2.0.2",
            "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
package.json
@@ -21,6 +21,7 @@
        "echarts-gl": "^2.0.9",
        "echarts-wordcloud": "^2.1.0",
        "element-plus": "^2.6.1",
        "html2pdf.js": "^0.10.2",
        "js-cookie": "^3.0.5",
        "js-table2excel": "^1.1.2",
        "jsplumb": "^2.15.6",
@@ -38,7 +39,8 @@
        "vue-demi": "^0.14.7",
        "vue-grid-layout": "^3.0.0-beta1",
        "vue-i18n": "^9.10.2",
        "vue-router": "^4.3.0"
        "vue-router": "^4.3.0",
        "vue3-print-nb": "^0.1.4"
    },
    "devDependencies": {
        "@types/node": "^20.11.28",
src/main.ts
@@ -5,7 +5,7 @@
import { directive } from '/@/directive/index';
import { i18n } from '/@/i18n/index';
import other from '/@/utils/other';
import print from 'vue3-print-nb'
import ElementPlus from 'element-plus';
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import '/@/theme/index.scss';
@@ -19,4 +19,4 @@
directive(app);
other.elSvg(app);
app.use(pinia).use(router).use(ElementPlus).use(i18n).use(VueGridLayout).mount('#app');
app.use(print).use(pinia).use(router).use(ElementPlus).use(i18n).use(VueGridLayout).mount('#app');
src/views/home/components/editDietary.vue
@@ -2,7 +2,7 @@
    <div class="dietarySurvey-item">
        <el-dialog  v-model="state.dialogTableVisible" title="膳食调查表" :fullscreen="true" width="100%">
            <div class="container" style="width: 100%; height: 100%;overflow: auto;">
                <div>
                <div id="printFrom1">
                    <div>
                        <el-form size="small">
                            <div style="width: 100%">
@@ -122,7 +122,7 @@
                                        </td>
                                    </tr>
                                    <tr>
                                        <td class="6">
                                        <td colspan="6">
                                            5.三天饮食记录表(食材、份量)
                                        </td>
                                    </tr>
@@ -314,6 +314,9 @@
                                                <el-input v-model="state.tableData.睡眠.input1" type="textarea"
                                                    :autosize="{ minRows: 1, maxRows: 6 }" placeholder="备注" />
                                            </el-form-item>
                                        </td>
                                        <td colspan="3">
                                        </td>
                                    </tr>
                                    <tr>
@@ -549,6 +552,15 @@
                    <el-button type="primary" @click="onSubmit">
                        保存
                    </el-button>
                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#printFrom1'">
                        <el-icon><Printer /></el-icon>
                        打印
                    </el-button>
                    <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF">
                        <el-icon><Position /></el-icon>
                        导出
                    </el-button>
                </div>
            </template>
        </el-dialog>
@@ -559,6 +571,7 @@
</template>
<script setup lang="ts" name="visualizingLinkDemo2">
import html2pdf from 'html2pdf.js';
import { reactive, onMounted, onUnmounted, ref } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
@@ -652,6 +665,22 @@
const funhui=()=>{
    state.dialogTableVisible=false
}
// 打印
const onPrint=()=>{
}
const generatePDF=()=> {
      const element = document.getElementById('printFrom1');
      const opt = {
        margin: 10,
        filename: `${state.tableData.表名}.pdf`,
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
      };
      html2pdf().set(opt).from(element).save();
}
const onSubmit = () => {
  console.log('submit!')
  console.log(state.tableData)
src/views/home/components/editDietary2.vue
@@ -2,7 +2,7 @@
    <div class="dietarySurvey-item">
        <el-dialog v-model="state.dialogTableVisible" title="营养膳食调查表" :fullscreen="true" width="100%">
            <div class="container" style="width: 100%; height: 100%;overflow: auto;">
                <div>
                <div id='printFrom2'>
                    <div>
                        <el-form size="small">
                            <div style="width: 100%">
@@ -682,6 +682,14 @@
                    <el-button type="primary" @click="onSubmit">
                        保存
                    </el-button>
                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#printFrom2'">
                        <el-icon><Printer /></el-icon>
                        打印
                    </el-button>
                    <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF">
                        <el-icon><Position /></el-icon>
                        导出
                    </el-button>
                </div>
            </template>
        </el-dialog>
@@ -692,6 +700,7 @@
</template>
<script setup lang="ts" name="visualizingLinkDemo2">
import html2pdf from 'html2pdf.js';
import { reactive, onMounted, onUnmounted, ref } from 'vue';
import { formatDate } from '/@/utils/formatTime';
import { NextLoading } from '/@/utils/loading';
@@ -881,6 +890,18 @@
const funhui = () => {
    state.dialogTableVisible = false
}
const generatePDF=()=> {
      const element = document.getElementById('printFrom2');
      const opt = {
        margin: 10,
        filename: `${state.tableData.表名}.pdf`,
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 2 },
        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
      };
      html2pdf().set(opt).from(element).save();
}
const onSubmit = () => {
    console.log('submit!')
@@ -1124,3 +1145,4 @@
    background-color: #ffffff;
}
</style>
src/views/home/components/patient_file.vue
@@ -17,12 +17,12 @@
                        </el-form-item>
                        <el-form-item label="自购套餐:" >
                            <el-row>
                                <el-col span='12'>
                                <el-col :span='12'>
                                    <el-input v-model="state.taochan.自购几月" :disabled="state.formdispl" placeholder="购买多少个月">
                                        <template #append>月</template>
                                    </el-input>
                                </el-col>
                                <el-col span='12'>
                                <el-col :span='12'>
                                    <el-input v-model="state.taochan.多少元套餐" :disabled="state.formdispl" placeholder="套餐金额">
                                        <template #append>元</template>
                                    </el-input>
@@ -31,10 +31,10 @@
                        </el-form-item>
                        <el-form-item label="自购产品名称">
                            <el-row>
                                <el-col span='12'>
                                <el-col :span='12'>
                                    <el-input v-model="state.taochan.产品名称" :disabled="state.formdispl" placeholder="产品名称"></el-input>
                                </el-col>
                                <el-col span='12'>
                                <el-col :span='12'>
                                    <el-input v-model="state.taochan.自购多少盒" :disabled="state.formdispl" placeholder="数量">
                                        <template #append>盒</template>
                                    </el-input>
src/views/home/components/pingubiao/editDietary4.vue
@@ -42,17 +42,7 @@
                                        <th colspan="2">性别:{{patientsInfo.patientGenderText}}</th>
                                    </tr>
                                    <tr>
                                        <td colspan="" class="tdInput" style="text-align: center;">
                                           血清白蛋白浓度(g/L)
                                        </td>
                                        <td colspan="1" style="text-align: center;" >
                                            打分
                                        </td>
                                    </tr>
                                    <tr>
                                   
                                        <td colspan="5" style="background-color: antiquewhite;">
src/views/home/index.vue
@@ -1,6 +1,6 @@
<template>
    <div class="home-container layout-pd ">
        <el-row gutter="10">
        <el-row :gutter="10">
            <el-col class="patTabel" :xs="6" :sm="6" :md="4" :lg="3" :xl="3" v-if="state.isTable">
                <el-table :data="state.filterTableData" stripe :height="state.tableHeight.left" size="default"
                    highlight-current-row @current-change="handleCurrentChange" style="width: 100%">