Browse Source

修改

master
刘灿 3 months ago
parent
commit
4f386da979
  1. 1
      .env.production
  2. 23
      npminstall-debug.log
  3. 22
      package.json
  4. 120
      package留存
  5. 563
      src/assets/scss/common.scss
  6. 152
      src/components/H5form/dialog-form.vue
  7. 4
      src/components/H5form/dzblLookFun.vue
  8. 418
      src/components/H5form/medZms.vue
  9. 8
      src/components/H5form/operaCheckLookPdfFun.vue
  10. 61
      src/components/H5form/operation-plan.vue
  11. 377
      src/components/H5form/operation-record-into.vue
  12. 2113
      src/components/H5form/operation-record-配置前.vue
  13. 1652
      src/components/H5form/operation-record.vue
  14. 51
      src/components/H5form/operationed-check-record.vue
  15. 4
      src/components/H5form/qg-dzbl.vue
  16. 2
      src/components/H5formOhter/h5formButton.vue
  17. 29
      src/mixins/alertParams.js
  18. 2
      src/mixins/jmjlDzbl.js
  19. 2
      src/mixins/jmjlOperaCheckRecord.js
  20. 4
      src/mixins/operationPlan.js
  21. 120
      src/mixins/operationRecord.js
  22. 2
      src/mixins/operationedCheckRecord.js
  23. 12
      src/mixins/publicFile.js
  24. 2
      src/mixins/qgdzbl.js
  25. 41
      src/page-subspecialty/main.js
  26. 10
      src/page-subspecialty/router/index.js
  27. 2
      src/page-subspecialty/views/modules/batchCaManagement/index.vue
  28. 4
      src/page-subspecialty/views/modules/chargeManagement/alertSet/add-or-update copy.vue
  29. 174
      src/page-subspecialty/views/modules/chargeManagement/alertSet/add-or-update.vue
  30. 33
      src/page-subspecialty/views/modules/chargeManagement/alertSet/index.vue
  31. 174
      src/page-subspecialty/views/modules/chargeManagement/zbNameSet/add-or-update.vue
  32. 94
      src/page-subspecialty/views/modules/chargeManagement/zbNameSet/index.vue
  33. 71
      src/page-subspecialty/views/modules/outpatientManagement/index.vue
  34. 12
      src/page-subspecialty/views/modules/seeDoctor/archives/index.vue
  35. 2
      src/page-subspecialty/views/modules/seeDoctor/archives/record-file.vue
  36. 23
      src/page-subspecialty/views/modules/seeDoctor/index.vue
  37. 140
      src/page-subspecialty/views/modules/seeDoctor/operaRecordInfo.vue
  38. 35
      src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue
  39. 34
      src/page-subspecialty/views/modules/surgicalManagement/operationOrder/index.vue
  40. 305
      src/page-subspecialty/views/modules/surgicalManagement/operationOrder/scheduled-order.vue
  41. 130
      src/page-subspecialty/views/modules/surgicalManagement/operationOrder/scheduled-tab.vue
  42. 160
      src/page-subspecialty/views/modules/systemManagement/formSet/addOperaSet.vue
  43. 499
      src/page-subspecialty/views/modules/systemManagement/formSet/operaRecordSet.vue
  44. 309
      src/page-subspecialty/views/modules/systemManagement/formSet/showConfig.vue
  45. 3
      src/page-subspecialty/views/modules/systemManagement/team/team-add-or-update.vue
  46. 2
      src/page-subspecialty/views/pages/luyin.vue
  47. 39
      vue.config.js

1
.env.production

@ -9,6 +9,7 @@ VUE_APP_LOGIN_URL='http://172.17.1.65:80'
# 公司内网环境
# VUE_APP_LOGIN_URL='http://192.168.0.35:8001'
# VUE_APP_LOGIN_URL='http://z1.huimucloud.com:8135'
# 后缀 -- 公司内部环境打开
# VUE_APP_BASE_HOUZHUI='/hz_qg'

23
npminstall-debug.log

@ -1,5 +1,5 @@
{
root: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg',
root: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg_HZ',
registry: 'https://registry.npmmirror.com',
pkgs: [],
production: false,
@ -17,6 +17,7 @@
npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node',
npm_config_r: 'https://registry.npmmirror.com',
COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
@ -30,6 +31,8 @@
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_CHROME_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
@ -41,12 +44,14 @@
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
npm_rootpath: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg',
INIT_CWD: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg'
npm_config_gl_binary_host: 'https://cdn.npmmirror.com/binaries/gl',
npm_rootpath: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg_HZ',
INIT_CWD: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg_HZ'
},
binaryMirrors: {
ENVS: {
COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
@ -60,6 +65,8 @@
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_CHROME_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
@ -70,7 +77,8 @@
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs'
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
npm_config_gl_binary_host: 'https://cdn.npmmirror.com/binaries/gl'
},
'@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' },
sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] },
@ -109,7 +117,10 @@
},
fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' },
nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' },
canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' },
canvas: {
host: 'https://cdn.npmmirror.com/binaries/canvas',
remote_path: 'v{version}'
},
'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' },
'flow-bin': {
replaceHost: 'https://github.com/facebook/flow/releases/download/v',
@ -177,7 +188,7 @@
disableFallbackStore: false,
workspacesMap: Map(0) {},
enableWorkspace: false,
workspaceRoot: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg',
workspaceRoot: 'D:\\慧目资料\\慧目项目\\quguang_front_wzysg_HZ',
isWorkspaceRoot: true,
isWorkspacePackage: false,
offline: false,

22
package.json

@ -18,34 +18,30 @@
"@tinymce/tinymce-vue": "^3.2.8",
"animejs": "^3.2.1",
"axios": "^0.21.1",
"cache-loader": "^4.1.0",
"core-js": "^3.6.5",
"babel-loader": "^8.4.1",
"cornerstone-core": "^2.3.0",
"cornerstone-math": "^0.1.10",
"cornerstone-tools": "^5.2.0",
"cornerstone-wado-image-loader": "^3.3.2",
"cornerstone-web-image-loader": "^2.1.1",
"css-loader": "^3.6.0",
"dicom-parser": "^1.8.7",
"docxtemplater": "^3.25.1",
"echarts": "^4.9.0",
"element-resize-detector": "^1.2.3",
"element-ui": "^2.15.4",
"esc-pos-encoder": "^2.0.1",
"file-saver": "^2.0.5",
"hammerjs": "^2.0.8",
"html2canvas": "^1.4.1",
"html2pdf.js": "^0.10.1",
"jquery": "^3.6.0",
"js-audio-recorder": "^1.0.7",
"js-base64": "^3.6.1",
"js-cookie": "^2.2.1",
"jsbarcode": "^3.11.5",
"jspdf": "^2.5.1",
"jszip-utils": "^0.1.0",
"lamejs": "^1.2.0",
"lodash": "^4.17.19",
"moment": "^2.29.1",
"node-sass": "^4.9.0",
"pdfjs-dist": "^2.0.943",
"pinyin": "^4.0.0-alpha.0",
"pinyin-match": "^1.2.4",
@ -54,29 +50,21 @@
"print-js": "^1.6.0",
"qrcodejs2": "^0.0.2",
"qs": "^6.9.4",
"quill": "^1.3.7",
"recorder-js": "^1.0.7",
"screenfull": "^4.2.1",
"sortablejs": "^1.10.2",
"svg-sprite-loader": "^5.0.0",
"tinymce": "^5.8.1",
"tui-color-picker": "^2.2.8",
"tui-image-editor": "^3.15.3",
"v-tooltip": "^2.1.3",
"vue": "^2.6.11",
"vue-chat-scroll": "^1.4.0",
"vue-cron": "^1.0.9",
"vue-cropper": "^0.5.8",
"vue-i18n": "^8.18.2",
"vue-pdf": "^4.3.0",
"vue-print-nb": "^1.7.4",
"vue-router": "^3.0.7",
"vue-split-table": "^1.0.1",
"vue-week-picker": "^1.1.8",
"vuedraggable": "^2.24.3",
"vuex": "^3.5.1",
"vxe-table": "^2.9.19",
"xe-utils": "^2.7.10"
"vuex": "^3.5.1"
},
"devDependencies": {
"@babel/core": "^7.25.2",
@ -93,10 +81,12 @@
"@vue/eslint-config-standard": "^5.1.2",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-loader": "^9.1.3",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-plugin-transform-remove-console": "^6.9.4",
"cache-loader": "^4.1.0",
"compression-webpack-plugin": "^6.1.1",
"copy-webpack-plugin": "^6.4.1",
"core-js": "^3.6.5",
"eslint": "6.7.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^11.1.0",

120
package留存

@ -0,0 +1,120 @@
{
"name": "security-enterprise-admin",
"version": "2.8.0",
"private": true,
"scripts": {
"local": "vue-cli-service serve --mode localhost",
"dev": "vue-cli-service serve --mode development",
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"build:stage": "vue-cli-service build --mode staging",
"build:prod": "vue-cli-service build --mode production",
"et": "node_modules/.bin/et",
"et:init": "node_modules/.bin/et -i",
"postinstall": "patch-package"
},
"dependencies": {
"@tinymce/tinymce-vue": "^3.2.8",
"animejs": "^3.2.1",
"axios": "^0.21.1",
"cornerstone-core": "^2.3.0",
"cornerstone-math": "^0.1.10",
"cornerstone-tools": "^5.2.0",
"cornerstone-wado-image-loader": "^3.3.2",
"cornerstone-web-image-loader": "^2.1.1",
"dicom-parser": "^1.8.7",
"docxtemplater": "^3.25.1",
"echarts": "^4.9.0",
"element-resize-detector": "^1.2.3",
"element-ui": "^2.15.4",
// "esc-pos-encoder": "^2.0.1", // 录音使用
"file-saver": "^2.0.5",
"hammerjs": "^2.0.8",
"html2canvas": "^1.4.1",
"html2pdf.js": "^0.10.1",
"jquery": "^3.6.0",
// "js-audio-recorder": "^1.0.7", // 录音使用
"js-base64": "^3.6.1",
"js-cookie": "^2.2.1",
"jsbarcode": "^3.11.5",
"jspdf": "^2.5.1",
"jszip-utils": "^0.1.0",
// "lamejs": "^1.2.0", // 录音使用
"lodash": "^4.17.19",
"moment": "^2.29.1",
"node-sass": "^4.9.0",
"pdfjs-dist": "^2.0.943",
"pinyin": "^4.0.0-alpha.0",
"pinyin-match": "^1.2.4",
"pinyin-pro": "^3.19.0",
"pizzip": "^3.1.1",
"print-js": "^1.6.0",
"qrcodejs2": "^0.0.2",
"qs": "^6.9.4",
// "quill": "^1.3.7",
// "recorder-js": "^1.0.7", // 录音使用
"screenfull": "^4.2.1",
// "sortablejs": "^1.10.2", // 拖拽库
"svg-sprite-loader": "^5.0.0",
"tinymce": "^5.8.1",
"tui-color-picker": "^2.2.8",
"tui-image-editor": "^3.15.3",
"v-tooltip": "^2.1.3",
"vue": "^2.6.11",
// "vue-chat-scroll": "^1.4.0",
"vue-cron": "^1.0.9",
"vue-cropper": "^0.5.8",
"vue-i18n": "^8.18.2",
"vue-pdf": "^4.3.0",
"vue-print-nb": "^1.7.4",
"vue-router": "^3.0.7",
// "vue-split-table": "^1.0.1", // 表格合并时引入的,暂时用不到
// "vue-week-picker": "^1.1.8",
"vuedraggable": "^2.24.3",
"vuex": "^3.5.1",
// "vxe-table": "^2.9.19", // 表格合并时引入的,暂时用不到
// "xe-utils": "^2.7.10" // 任意格式的日期转换函数
},
"devDependencies": {
"@babel/core": "^7.25.2",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@babel/plugin-proposal-private-methods": "^7.18.6",
"@babel/preset-env": "^7.25.3",
"@vue/babel-preset-app": "^5.0.8",
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-plugin-unit-jest": "4.4.6",
"@vue/cli-service": "4.4.6",
"@vue/eslint-config-standard": "^5.1.2",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-loader": "^9.1.3",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-plugin-transform-remove-console": "^6.9.4",
"copy-webpack-plugin": "^6.4.1",
"cache-loader": "^4.1.0",
"core-js": "^3.6.5",
"eslint": "6.7.2",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1",
"eslint-plugin-vue": "^6.2.2",
"natives": "^1.1.6",
"patch-package": "^6.5.1",
"postcss-plugin-px2rem": "^0.8.1",
"sass": "1.26.8",
"sass-loader": "8.0.2",
"vue-loader": "^15.9.8",
"vue-template-compiler": "^2.6.11",
"webpack": "^4.46.0"
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
}
}

563
src/assets/scss/common.scss

File diff suppressed because it is too large

152
src/components/H5form/dialog-form.vue

@ -1,70 +1,33 @@
<template>
<el-dialog
class="form-dialog"
:class="dialogFormVlisbleTitle==='手术记录' ? 'form-dialog-set' : ''"
:visible.sync="visible"
fullscreen
:show-close="false"
@close="closeDialog"
>
<el-dialog class="form-dialog" :class="dialogFormVlisbleTitle==='手术记录' ? 'form-dialog-set' : ''"
:visible.sync="visible" fullscreen :show-close="false" @close="closeDialog">
<div class="doalog-form-set">
<div class="form-setclass">
<safetyChecklist
v-if="dialogFormVlisbleTitle.includes('手术安全核查表')"
ref="safetyChecklistRef"
v-loading="loading"
page-title="手术列表"
:patient-id="patientId"
:opera-id="operaId"
:archive-case-c-r-f-item="currentInfo"
@load="loading=false"
@closeDialog="closeDialog"
/>
<operationNursingRecord
v-if="dialogFormVlisbleTitle.includes('手术护理记录单')"
ref="operationNursingRecordRef"
v-loading="loading"
page-title="手术列表"
:opera-id="operaId"
:patient-id="patientId"
:archive-case-c-r-f-item="currentInfo"
@load="loading=false"
@closeDialog="closeDialog"
/>
<operationRecord
v-if="dialogFormVlisbleTitle==='手术记录'"
ref="operationRecordRef"
v-loading="loading"
page-title="手术列表"
:opera-id="operaId"
:archive-case-c-r-f-item="currentInfo"
:patient-id="patientId"
@load="loading=false"
@closeDialog="closeDialog"
/>
<eyeQuestion
v-if="dialogFormVlisbleTitle.includes('问卷调查')"
ref="eyeQuestionRef"
page-title="问卷检索"
:form-content="formContent"
@closeDialog="closeDialog"
/>
<beforeOperationQuestion
v-if="dialogFormVlisbleTitle.includes('心理评估表')"
ref="beforeOperationQuestionRef"
page-title="问卷检索"
:form-content="formContent"
@closeDialog="closeDialog"
/>
<safetyChecklist v-if="dialogFormVlisbleTitle.includes('手术安全核查表')" ref="safetyChecklistRef" v-loading="loading"
page-title="手术列表" :patient-id="patientId" :opera-id="operaId" :archive-case-c-r-f-item="currentInfo"
@load="loading=false" @closeDialog="closeDialog" />
<operationNursingRecord v-if="dialogFormVlisbleTitle.includes('手术护理记录单')" ref="operationNursingRecordRef"
v-loading="loading" page-title="手术列表" :opera-id="operaId" :patient-id="patientId"
:archive-case-c-r-f-item="currentInfo" @load="loading=false" @closeDialog="closeDialog" />
<operationRecord v-if="dialogFormVlisbleTitle==='手术记录'" ref="operationRecordRef" v-loading="loading"
page-title="手术列表" :opera-id="operaId" :archive-case-c-r-f-item="currentInfo" :patient-id="patientId" :operaShowConfigList="operaShowConfigList"
@load="loading=false" @closeDialog="closeDialog" />
<eyeQuestion v-if="dialogFormVlisbleTitle.includes('问卷调查')" ref="eyeQuestionRef" page-title="问卷检索"
:form-content="formContent" @closeDialog="closeDialog" />
<beforeOperationQuestion v-if="dialogFormVlisbleTitle.includes('心理评估表')" ref="beforeOperationQuestionRef"
page-title="问卷检索" :form-content="formContent" @closeDialog="closeDialog" />
</div>
</div>
<template slot="footer">
<span slot="footer" class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button v-if="!dialogFormVlisbleTitle.includes('问卷调查') && !dialogFormVlisbleTitle.includes('心理评估表')" type="primary" @click="saveFormClick(1)"> </el-button>
<el-button v-if="dialogFormVlisbleTitle.includes('手术安全核查表')" type="success" @click="saveFormClick(2)">保存进入手术记录</el-button>
<el-button v-if="dialogFormVlisbleTitle.includes('手术安全核查表')" type="warning" @click="jumpOperationRecord(3)">进入手术记录</el-button>
<el-button v-if="!dialogFormVlisbleTitle.includes('问卷调查') && !dialogFormVlisbleTitle.includes('心理评估表')"
type="primary" @click="saveFormClick(1)"> </el-button>
<el-button v-if="dialogFormVlisbleTitle.includes('手术安全核查表')" type="success" @click="saveFormClick(2)">保存进入手术记录
</el-button>
<el-button v-if="dialogFormVlisbleTitle.includes('手术安全核查表')" type="warning" @click="jumpOperationRecord(3)">
进入手术记录</el-button>
</span>
</template>
</el-dialog>
@ -91,7 +54,11 @@ export default {
},
formContent: {
type: Object,
default: () => {}
default: () => { }
},
operaShowConfigList: {
type: Array,
default: () => []
},
dialogFormVlisbleTitle: {
type: String,
@ -137,52 +104,51 @@ export default {
}
</script>
<style lang="scss">
.form-dialog{
.form-dialog {
.doalog-form-set {
position: relative;
// padding: 0 50px;
background: #fff;
}
}
.el-dialog__header {
margin-bottom:12px;
margin-bottom: 12px;
padding: 0;
}
.el-date-editor.el-input, .el-date-editor.el-input__inner {
.el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100%;
}
.el-dialog {
background: #ccc;
}
.dialog-footer {
position: fixed;
right: 20px;
bottom: 20px;
}
.el-dialog__body {
width: 70%;
margin: auto;
min-width: 1000px;
}
.el-dialog {
background: #ccc;
}
.dialog-footer {
position: fixed;
right: 20px;
bottom: 20px;
}
.el-dialog__body {
width: 70%;
margin: auto;
min-width: 1000px;
}
}
.form-dialog-set {
.dialog-footer {
.el-button {
position: fixed;
right: 0px;
font-size: 24px !important;
}
.el-button:nth-child(1) {
bottom: 20px;
width: 120px;
height: 65px;
}
.el-button:nth-child(2) {
bottom: 95px;
width: 120px;
height: 65px;
}
.el-button {
position: fixed;
right: 0px;
font-size: 24px !important;
}
.el-button:nth-child(1) {
bottom: 20px;
width: 120px;
height: 65px;
}
.el-button:nth-child(2) {
bottom: 95px;
width: 120px;
height: 65px;
}
}
}
</style>

4
src/components/H5form/dzblLookFun.vue

@ -371,7 +371,7 @@
<span v-show="formListValue.lxdjcJintOd.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJintOd.length > 0">
晶体
<span v-for="(item, index) in formListValue.lxdjcJintOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJintOd.length-1 >index"> | </span>
</span>
@ -437,7 +437,7 @@
<span v-show="formListValue.lxdjcJintOs.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJintOs.length > 0">
晶体
<span v-for="(item, index) in formListValue.lxdjcJintOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJintOs.length-1 >index"> | </span>
</span>

418
src/components/H5form/medZms.vue

@ -0,0 +1,418 @@
<template>
<div class="fzbl-father">
<h5formButton ref="h5formButtonRef" :archive-case-c-r-f-item="archiveCaseCRFItem"
:get-save-eidt-title="saveEidtTitle" :bl-button-show="true"
:edit-save-button-show="positionName.join().includes('医生') && formListValue.isConfirm !== 1 ? true : false"
mzbl-title="复诊门诊病历" :cancel-ca-button-show="formListValue.isConfirm === 1 && saveEidtTitle!=='保存' ? true : false"
:sure-ca-button-show="saveEidtTitle === '编辑' && formListValue.isConfirm === 0 && caOpenStatus? true :false" />
<span v-show="!formListValue.createName && isGetFormValue" class="title-ts">(提示:此表单尚未保存)</span>
<!-- v-if="currentUrl.includes('192')" -->
<div id="printH5" class="fzbl form-setclass printSet1" style="width:900px">
<p style="color:#000000;font-size:32px;margin:0 0 20px 0;text-align:center;">
温州医科大学附属眼视光医院杭州院区</p>
<p style="color:#000000;font-size:32px;margin-bottom:30px;text-align:center;">
医疗证明书</p>
<el-form ref="form" :model="formListValue" :disabled="saveEidtTitle==='编辑' ? true : false">
<div class="patient">
<div class="patientInfo-one">
<span style="padding-right:10px;" class="width-100">
<span>PID</span>
<el-input v-model="formListValue.patientId" placeholder="PID" />
</span>
<span style="padding-right:10px;" class="width-100">
<span style="heigth:40px;">姓名</span>
<el-input v-model="formListValue.patientName" placeholder="姓名" />
</span>
<span style="padding-right:10px;" class="width-80">
<span>性别</span>
<el-input v-model="formListValue.patientSex" placeholder="性别" />
</span>
<span style="padding-right:10px;" class="width-80">
<span>年龄</span>
<el-input v-model="formListValue.patientAge" placeholder="年龄" />
</span>
<span style="padding-right:10px;" class="width-80">
<span>日期</span>
<el-date-picker v-model="formListValue.jzDate" value-format="yyyy-MM-dd" class="margin-right-6"
type="date" placeholder="选择日期" />
</span>
</div>
</div>
<div class="fzbl-content" :class="saveEidtTitle==='保存' ? '' : 'el-textarea-resize'">
<div class="flex-3 margin-top-10" @dblclick="saveEidtTitle==='保存' && templateLook('cbzd')">
<span class="cursor right" style="min-width:80px"><b style="font-family:MicrosoftYaHeiBold;"> </b></span>
<i v-show="saveEidtTitle==='保存'" class="el-icon-refresh cursor" @click="getNewZdInfo('cbzd')" />
<el-input
v-model="formListValue.cbzd"
class="zkjcInput flex1"
type="textarea"
:autosize="{ minRows: 1}"
placeholder=""
@focus="focusHandle('cbzd')"
/>
<!-- <span>{{ formListValue.cbzd }}</span> -->
</div>
<div class="flex-3 margin-top-10" @dblclick="saveEidtTitle==='保存' && templateLook('clyj')">
<span class="cursor" style="min-width:80px"> <b style="font-family:MicrosoftYaHeiBold;">处理意见</b></span>
<el-input v-model="formListValue.clyj" class="zkjcInput flex1" type="textarea" :autosize="{ minRows: 1}"
placeholder="" @focus="focusHandle('clyj')" />
</div>
</div>
</el-form>
<div style="width:900px;display: flex; justify-content: flex-end;">
<div style="text-align: left">
<div class="flex-7 margin-top-20">
医生签字
<span>
<span
v-if="!formListValue.createSign">{{ formListValue.createName ? formListValue.createName : '-' }}</span>
<img v-else :src="formListValue.createSign" alt="" width="120px"
style="display: block;break-inside: avoid">
</span>
</div>
<div v-if="formListValue.signDate" class="font-size-13 flex-7 margin-top-20">
签名日期
{{ formListValue.signDate ? formListValue.signDate : '-' }}
</div>
</div>
</div>
<div class="margin-top-10 left">建议病休时限必须大写不得涂改没有盖我院公章者无效</div>
</div>
<div class="saveInfo">
<span class="padding-right-10">保存人{{ formListValue.createName ? formListValue.createName : '-' }}</span>
<span>保存时间{{ formListValue.createDate ? formListValue.createDate : '-' }}</span>
</div>
<!-- 模板引入 -->
<intoTemplate v-if="intoTemplateVisible" ref="intoTemplateRef" :patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem" @yinruTemplateClick="yinruTemplateClick"
@closeDialog="historyDataVisible = false" />
<!-- 复诊病历留痕查看 -->
<fzblLook v-if="blLookVisible" ref="blLookRef" :current-url="currentUrl"
:archive-case-c-r-f-item="archiveCaseCRFItem" @closeDialog="blLookVisible=false" />
<!-- 复诊病历处理成pdf格式上传 -->
<fzblLookPdf ref="fzblLookPdf" :current-url="currentUrl" :archive-case-c-r-f-item="archiveCaseCRFItem"
class="patientBlPosition" />
</div>
</template>
<script>
import IntelligentFill from '@/mixins/IntelligentFill.js'
import refreshDate from '@/mixins/refreshDate'
import fzbl from '@/mixins/fzbl'
import signGet from '@/mixins/signGet'
import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
import intoTemplate from '@/components/H5form/intoTemplate'
import fzblLook from '@/components/H5form/fzblLook'
import fzblLookPdf from '@/components/H5form/fzblLookPdf'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
h5formButton,
intoTemplate,
fzblLook,
fzblLookPdf
},
mixins: [IntelligentFill, signGet, refreshDate, fzbl, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
default: () => { }
},
formContent: {
// type: Array,
default: () => []
},
currentUrl: {
type: String,
default: ''
},
pageTitle: {
type: String,
default: ''
},
operaId: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
},
patientInfoObj: {
type: Object,
default: () => { }
},
userData: {
type: Object,
default: () => { }
},
roleList: {
type: Array,
default: () => []
},
positionName: {
type: Array,
default: () => []
}
},
data() {
return {
saveEidtTitle: '编辑',
isGetFormValue: false,
formListValue: {
isConfirm: null, // 01
formName: '医疗证明书',
//
patientName: '',
patientId: '',
patientSex: '',
patientBirthday: '',
jzDate: '',
patientAge: '',
createName: '',
createDate: '',
zsAndBs: '',
zkjc: '',
fzjc: '',
cbzd: '',
clyj: '',
createSign: '',
ysSign:'',
signDate: ''
},
// 1:/() 2:3:/()4:,5:,6:,8:10:
formFlag: 5
}
},
watch: {
formContent: {
handler(value) {
console.log(value)
},
deep: true
}
},
created() {
console.log(12333333)
// ca CA
this.getSendCaStatus(this.archiveCaseCRFItem.formName)
},
mounted() {
},
destroyed() {
console.log('屈光手术安全核查表destroyed')
},
methods: {
init() {
console.log(123)
this.getInfo()
},
//
getSign() {
this.getSystomSign('ysSign', 'signDate', 'createCode', 'createName', 'createSign')
},
//
async getInfo() {
this.isGetFormValue = false
const { data: res } = await this.$http.get('/hz_quguang/fuzhen/emr/getInfo', {
params: {
formId: this.archiveCaseCRFItem.id,
formDate: this.archiveCaseCRFItem.formDate,
patientIdNumber: this.archiveCaseCRFItem.patientIdNumber,
patientId: this.patientId,
formName: this.archiveCaseCRFItem.formName
}
})
if (res.code === 0) {
this.$emit('load')
if (this.archiveCaseCRFItem.id === res.data.formId && this.pageTitle === '档案') {
// console.log(res.data)
Object.keys(res.data).forEach((item) => {
// console.log(res.data)
// data
this.formListValue[item] || typeof this.formListValue[item] === 'boolean' ? '' : this.formListValue[item] = ''
//
if ((res.data[item] && res.data[item] !== 'false' && res.data[item] !== 'true') || typeof res.data[item] === 'number') {
this.formListValue[item] = res.data[item]
}
if (res.data[item] && typeof res.data[item] !== 'number') {
res.data[item].includes('[') || res.data[item] === 'false' || res.data[item] === 'true' ? this.formListValue[item] = JSON.parse(res.data[item]) : ''
}
})
console.log(this.formListValue)
}
this.isGetFormValue = true
} else {
this.$message.error(res.msg)
}
},
//
saveAllForm(flag) {
// publicFile.js--
this.getUpSaveTime('/hz_quguang/fuzhen/emr/getInfo', flag)
},
//
saveAllForm(flag) {
// publicFile.js--
this.getUpSaveTime('/hz_quguang/fuzhen/emr/getInfo', flag)
},
async saveForm(flag) {
this.formListValue.createName = this.userData.realName
const formvalue = JSON.parse(JSON.stringify(this.formListValue))
Object.keys(formvalue).forEach(item => {
if (Array.isArray(formvalue[item])) {
formvalue[item] = JSON.stringify(formvalue[item])
}
})
const { data: res } = await this.$http.post('/hz_quguang/fuzhen/emr/saveInfo', formvalue)
if (res.code === 0) {
this.saveEidtTitle = '编辑'
// res.dataId
this.$message({
message: '您已保存成功',
type: 'success'
})
this.getInfo()
// res.dataId
this.$refs.fzblLookPdf.init(res.data, 'savepdf')
} else {
this.$message.error(res.msg)
}
},
// ca
sureCa() {
const userData = window.localStorage.getItem('hzqg-userData') ? JSON.parse(window.localStorage.getItem('hzqg-userData')) : ''
if (userData.realName !== this.formListValue.createName) {
return this.$message({
message: `此医疗证明书是${this.formListValue.createName}医生的,您不能操作其他医生的患者医疗证明书哦!`,
type: 'warning'
})
}
if (this.formListValue.zsAndBs && this.formListValue.cbzd && this.formListValue.clyj) {
this.$confirmFun('CA确认将会把最新一次医疗证明书发送至ca签名,您是否确认继续此操作?', '您已取消CA确认').then(() => {
// formFlag: 1:/() 2:3:/()4:,5:
// this.$refs.fzblLookPdf.init(this.formListValue.recordId, '5')
// caOpenStatus true CA
if (this.caOpenStatus) {
this.batchDataCa({
doctorCode: userData.employeeId,
ids: [this.formListValue.formId], // formId
}, () => {
this.getInfo()
})
}
})
} else {
this.$message.error('医疗证明书内容不完善,请补全后再进行CA确认吧!')
}
}
}
}
</script>
<style lang="scss">
.fzbl-father {
.saveInfo {
text-align: center;
position: absolute;
bottom: 0;
right: 50%;
transform: translateX(50%);
}
.patient {
border-bottom: 2px solid #6f6f6f;
margin-bottom: 10px;
}
}
.fzbl {
background: #fff;
// padding: 10px 20px 50px 20px;
height: 93%;
// overflow: auto;
.patientInfo-one {
margin-bottom: 16px;
text-align: left;
}
.fzbl-table {
width: 100%;
.operation-text {
font-weight: 700;
}
.sign {
cursor: pointer;
color: #46a1ff;
font-weight: 400;
}
}
.form-item {
margin-bottom: 20px;
}
.margin-right {
margin-right: 6px;
}
.el-input__inner {
text-align: center;
}
.patient {
.el-input__inner {
text-align: center;
}
}
.el-input__prefix {
display: none;
}
.el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: auto !important;
}
.el-input__suffix {
top: 2px;
}
.el-radio {
margin-right: 8px;
display: block;
}
.el-radio-group {
display: flex;
justify-content: flex-end;
}
//
.has-gutter {
.cell {
font-weight: 700;
}
}
.el-textarea__inner {
border: none;
padding: 0;
// border-radius: 0;
// border-bottom: 1px solid #ccc;
}
.el-textarea-resize {
.el-textarea__inner {
resize: none;
}
}
//
.el-input__icon {
line-height: 100% !important;
}
.el-table .el-table__cell.is-center {
vertical-align: baseline;
}
.el-table .el-table__cell.is-center {
vertical-align: inherit;
}
.flex1 {
flex: 1;
}
.fzbl-content {
width: 900px;
}
}
</style>

8
src/components/H5form/operaCheckLookPdfFun.vue

@ -134,7 +134,7 @@
formListValue.ykjcJintOd.length>0"></span>
</span>
<span v-if="formListValue.ykjcJintOd.length>0">
晶体
<span v-for="(item,index) in formListValue.ykjcJintOd" :key="index">{{ item }}
<span v-if="formListValue.ykjcJintOd.length-1 >index"> | </span>
</span>
@ -183,7 +183,7 @@
<span v-show="formListValue.ykjcJintOs.length>0"></span>
</span>
<span v-if="formListValue.ykjcJintOs.length>0">
晶体
<span v-for="(item,index) in formListValue.ykjcJintOs" :key="index">{{ item }}
<span v-if="formListValue.ykjcJintOs.length-1 >index"> | </span>
</span>
@ -334,8 +334,8 @@ export default {
})
if (res.code === 0) {
//
const zsOdcheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsQt、其它']
const zsOscheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsQt、其它']
const zsOdcheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsWugan、雾感','zsQt、其它']
const zsOscheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsWugan、雾感','zsQt、其它']
this.zsOdcheckArr = []
this.zsOscheckArr = []
zsOdcheck.forEach(item => {

61
src/components/H5form/operation-plan.vue

@ -545,28 +545,28 @@ export default {
}
}
},
watch: {
'formListValue.ssfsOs': {
handler(newV, oldV) {
this.formListValue.qtOs = newV
? newV.includes('SMILE')
? ['Visumax']
: ['Amaris']
: ['空']
},
immediate: true
},
'formListValue.ssfsOd': {
handler(newV, oldV) {
this.formListValue.qtOd = newV
? newV.includes('SMILE')
? ['Visumax']
: ['Amaris']
: ['空']
},
immediate: true
}
},
// watch: {
// 'formListValue.ssfsOs': {
// handler(newV, oldV) {
// this.formListValue.qtOs = newV
// ? newV.includes('SMILE')
// ? ['Visumax']
// : ['Amaris']
// : ['']
// },
// immediate: true
// },
// 'formListValue.ssfsOd': {
// handler(newV, oldV) {
// this.formListValue.qtOd = newV
// ? newV.includes('SMILE')
// ? ['Visumax']
// : ['Amaris']
// : ['']
// },
// immediate: true
// }
// },
created() {
this.getSendCaStatus()
this.getOperaList()
@ -651,16 +651,13 @@ export default {
res.data[item] === 'true'
? (this.formListValue[item] = JSON.parse(res.data[item]))
: ''
this.formListValue.qtOd = this.formListValue.ssfsOd
? this.formListValue.ssfsOd.includes('SMILE')
? ['Visumax']
: ['Amaris']
: ['空']
this.formListValue.qtOs = this.formListValue.ssfsOs
? this.formListValue.ssfsOs.includes('SMILE')
? ['Visumax']
: ['Amaris']
: ['空']
this.formListValue.qtOd.length > 0 ? '' :
(this.formListValue.qtOd = this.formListValue.ssfsOd ?
(this.formListValue.ssfsOd.includes('SMILE') ? ['Visumax'] : ['Amaris']) : '')
this.formListValue.qtOs.length > 0 ? '' :
(this.formListValue.qtOs = this.formListValue.ssfsOs ?
(this.formListValue.ssfsOs.includes('SMILE') ? ['Visumax'] : ['Amaris']) : '')
}
})
}

377
src/components/H5form/operation-record-into.vue

@ -5,163 +5,177 @@
<p class="title-w">{{ item.title }}</p>
<div class="flex">
<div class="li-content">
<div v-show="item.sslxOd" class="margin-bottom-10 width-160 left">
<span>手术类型</span>
<span>{{ item.sslxOd }}</span>
</div>
<div v-show="item.msOd" class="margin-bottom-10 width-160 left">
<span>模式</span>
<span>{{ item.msOd }}</span>
</div>
<!-- 光学/治疗区直径 -->
<div v-show="item.gxOd || item.zlqzjOd" class="margin-bottom-10 width-90 left">
<span>光学/治疗区直径</span>
{{ item.gxOd ? item.gxOd : '-' }} / {{ item.zlqzjOd ? item.zlqzjOd : '-' }} mm
</div>
<!--帽厚度 -->
<div v-show="item.mhdOd" class="margin-bottom-10 width-160 left">
<span>帽厚度</span>
<span>{{ item.mhdOd }}</span> μm
</div>
<!-- 吸引环参数 -->
<div
v-show="item.xyhOd"
class="margin-bottom-10 width-160 left"
>
<span>吸引环参数</span>
<span>{{ item.xyhOd }}</span> mm
</div>
<!--瓣厚度 -->
<div
v-show="item.bhdOd"
class="margin-bottom-10 width-160 left"
>
<span>瓣厚度</span>
<span>{{ item.bhdOd }}</span> μm
</div>
<!-- 切削深度 -->
<div v-show="item.xqsdOd" class="margin-bottom-10 width-120 left">
<span>切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 剩余基质厚度 -->
<div v-show="item.syjzhdOd" class="margin-bottom-10 width-120 left">
<span>剩余基质厚度</span>
<span>{{ item.syjzhdOd }}</span> μm
</div>
<!-- 上皮中央/周边厚度 -->
<div v-show="item.spzyOd || item.zbhdOd" class="margin-bottom-10 width-100 left">
<span>上皮中央/周边厚度</span>
<span>{{ item.spzyOd ? item.spzyOd : '-' }} / {{ item.zbhdOd ? item.zbhdOd : '-' }}</span> μm
</div>
<!-- 总切削深度 -->
<div v-show="item.xqsdOd" class="margin-bottom-10 width-120 left">
<span>总切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 移心量 -->
<div v-show="mrzFormValue.yxlOd1 || item.yxlOd2" class="margin-bottom-10 width-100 left">
<span>移心量</span>
r <span>{{ mrzFormValue.yxlOd1 ? mrzFormValue.yxlOd1 : '-' }}</span> mm/Angle
<span>{{ item.yxlOd2 ? item.yxlOd2 : '-' }}</span> °
</div>
<!-- SCC -->
<div v-show="item.sccOd" class="margin-bottom-10 width-160 left">
<span>SCC</span>
<span>{{ item.sccOd }}</span> °
</div>
<!-- MCC -->
<div
v-show="item.mmcOd"
class="margin-bottom-10 width-160 left"
>
<span>MMC</span>
<span>{{ item.mmcOd }}</span> s
</div>
<!-- Tr -->
<div
v-show="item.trOd"
class="margin-bottom-10 width-160 left"
>
<span>Tr</span>
<span>{{ item.trOd }}</span> J/cm2
</div>
<!-- Ts -->
<div
v-show="item.tsOd"
class="margin-bottom-10 width-160 left"
>
<span>Ts</span>
<span>{{ item.tsOd }}</span> s
</div>
<!-- ADD -->
<div v-show="item.addOd" class="margin-bottom-10 width-160 left">
<span>ADD</span>
<span>{{ item.addOd }}</span> D
</div>
<!-- 核黄素类型 -->
<div v-show="item.hhslxOd" class="margin-bottom-10 width-120 left">
<span>核黄素类型</span>
<span>{{ item.hhslxOd }}</span>
</div>
<!-- 渗透时间 -->
<div v-show="item.stsjOd" class="margin-bottom-10 width-120 left">
<span>渗透时间</span>
<span>{{ item.stsjOd }}</span> min
</div>
<!-- 渗透评估 -->
<div v-show="item.stpgOd" class="margin-bottom-10 width-120 left">
<span>渗透评估</span>
<span>{{ item.stpgOd }}</span>
</div>
<!-- 角膜厚度 -->
<div v-show="item.jmhdOd1 || item.jmhdOd2 || item.jmhdOd3 || item.jmhdOd4" class="margin-bottom-10 width-60 left">
<span>角膜厚度</span>
<span>{{ item.jmhdOd1 ? item.jmhdOd1 : '-' }}</span> /
<span>{{ item.jmhdOd2 ? item.jmhdOd2 : '-' }}</span> /
<span>{{ item.jmhdOd3 ? item.jmhdOd3 : '-' }}</span> /
<span>{{ item.jmhdOd4 ? item.jmhdOd4 : '-' }}</span> μm
</div>
<!-- 角膜厚度照射后 -->
<div v-show="item.jmhdzshOd" class="margin-bottom-10 width-160 left">
<span>角膜厚度照射后</span>
<span>{{ item.jmhdzshOd }}</span> μm
</div>
<!-- 照射模式 -->
<div v-show="item.zsmsOd" class="margin-bottom-10 width-160 left">
<span>照射模式</span>
<span>{{ item.zsmsOd }}</span>
</div>
<!-- 照射直径 -->
<div v-show="item.zszjOd " class="margin-bottom-10 width-160 left">
<span>照射直径</span>
<span>{{ item.zszjOd }}</span> mm
</div>
<!-- 辐照度 -->
<div v-show="item.fzdOd" class="margin-bottom-10 width-160 left">
<span>辐照度</span>
<span>{{ item.fzdOd }}</span> mW/cm
</div>
<!-- 照射时间 -->
<div v-show="item.zssjOd1 || item.zssjOd2" class="margin-bottom-10 width-120 left">
<span>照射时间</span>
<span>{{ item.zssjOd1 ? item.zssjOd1 : '-' }}</span> min
<span>{{ item.zssjOd2 ? item.zssjOd2 : '-' }}</span> s
</div>
<!-- 总能量 -->
<div v-show="item.znlOd" class="margin-bottom-10 width-160 left">
<span>总能量</span>
<span>{{ item.znlOd }}</span> J/cm
</div>
<!-- 术中情况 -->
<div v-show="item.szqkOd" class="margin-bottom-10 width-240 left">
<span>术中情况</span>
<span>{{ item.szqkOd }}</span>
</div>
<!-- 手术仪器 -->
<div v-show="item.ssyqOd" class="margin-bottom-10 left flex-2 width-160">
<span>手术仪器</span>
<span>{{ item.ssyqOd }}</span>
<div v-for="(iten,index) in operaParamsList" :key="index" class="sortClass">
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='nomo' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>nomo</span>
<span>{{ item.nomoOd1 ? item.nomoOd1 : '-' }} / {{ item.nomoOd2 ? item.nomoOd2 : '-' }}</span>
</div>
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='sslx' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>手术类型</span>
<span>{{ item.sslxOd }}</span>
</div>
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='moshi' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>模式</span>
<span>{{ item.msOd }}</span>
</div>
<!-- 光学/治疗区直径 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='gxzlqzj' && iten.checked"
class="margin-bottom-10 width-90 left">
<span>光学/治疗区直径</span>
{{ item.gxOd ? item.gxOd : '-' }} / {{ item.zlqzjOd ? item.zlqzjOd : '-' }} mm
</div>
<!--帽厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='mhoudu' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>帽厚度</span>
<span>{{ item.mhdOd }}</span> μm
</div>
<!-- 吸引环参数 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='xyhcs' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>吸引环参数</span>
<span>{{ item.xyhOd }}</span> mm
</div>
<!--瓣厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='bhoudu' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>瓣厚度</span>
<span>{{ item.bhdOd }}</span> μm
</div>
<!-- 切削深度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='qxsd' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 剩余基质厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='syjzhd' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>剩余基质厚度</span>
<span>{{ item.syjzhdOd }}</span> μm
</div>
<!-- 上皮中央/周边厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='spzyzbhd' && iten.checked"
class="margin-bottom-10 width-100 left">
<span>上皮中央/周边厚度</span>
<span>{{ item.spzyOd ? item.spzyOd : '-' }} / {{ item.zbhdOd ? item.zbhdOd : '-' }}</span> μm
</div>
<!-- 总切削深度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zqxsd' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>总切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 移心量 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='yxinl' && iten.checked"
class="margin-bottom-10 width-100 left">
<span>移心量</span>
r <span>{{ mrzFormValue.yxlOd1 ? mrzFormValue.yxlOd1 : '-' }}</span> mm/Angle
<span>{{ item.yxlOd2 ? item.yxlOd2 : '-' }}</span> °
</div>
<!-- MCC -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='mmc' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>MMC</span>
<span>{{ item.mmcOd }}</span> s
</div>
<!-- Tr -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='tr' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>Tr</span>
<span>{{ item.trOd }}</span> J/cm2
</div>
<!-- Ts -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='ts' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>Ts</span>
<span>{{ item.tsOd }}</span> s
</div>
<!-- ADD -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='add' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>ADD</span>
<span>{{ item.addOd }}</span> D
</div>
<!-- 核黄素类型 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='hhslx' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>核黄素类型</span>
<span>{{ item.hhslxOd }}</span>
</div>
<!-- 渗透时间 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='stsj' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>渗透时间</span>
<span>{{ item.stsjOd }}</span> min
</div>
<!-- 渗透评估 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='stpg' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>渗透评估</span>
<span>{{ item.stpgOd }}</span>
</div>
<!-- 角膜厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='jmhd' && iten.checked"
class="margin-bottom-10 width-60 left">
<span>角膜厚度</span>
<span>{{ item.jmhdOd1 ? item.jmhdOd1 : '-' }}</span> /
<span>{{ item.jmhdOd2 ? item.jmhdOd2 : '-' }}</span> /
<span>{{ item.jmhdOd3 ? item.jmhdOd3 : '-' }}</span> /
<span>{{ item.jmhdOd4 ? item.jmhdOd4 : '-' }}</span> μm
</div>
<!-- 角膜厚度照射后 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='jmhdzsh' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>角膜厚度照射后</span>
<span>{{ item.jmhdzshOd }}</span> μm
</div>
<!-- 照射模式 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zsms' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>照射模式</span>
<span>{{ item.zsmsOd }}</span>
</div>
<!-- 照射直径 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zszj' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>照射直径</span>
<span>{{ item.zszjOd }}</span> mm
</div>
<!-- 辐照度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='fzhaodu' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>辐照度</span>
<span>{{ item.fzdOd }}</span> mW/cm
</div>
<!-- 照射时间 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zssj' && iten.checked"
class="margin-bottom-10 width-120 left">
<span>照射时间</span>
<span>{{ item.zssjOd1 ? item.zssjOd1 : '-' }}</span> min
<span>{{ item.zssjOd2 ? item.zssjOd2 : '-' }}</span> s
</div>
<!-- 总能量 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='znengl' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>总能量</span>
<span>{{ item.znlOd }}</span> J/cm
</div>
<!-- 术中情况 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='szqk' && iten.checked"
class="margin-bottom-10 width-240 left">
<span>术中情况</span>
<span>{{ item.szqkOd }}</span>
</div>
<!-- 手术仪器 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='ssyq' && iten.checked"
class="margin-bottom-10 left flex-2 width-160">
<span>手术仪器</span>
<span>{{ item.ssyqOd }}</span>
</div>
</div>
</div>
<span class="buttonli">
@ -190,7 +204,8 @@ export default {
mrzFormValue: {},
operaList: [],
mrzOperaNameList: [],
operaValue: ''
operaValue: '',
operaParamsList:[]
}
},
computed: {
@ -208,6 +223,7 @@ export default {
init(currentOpera) {
this.currentList = currentOpera
this.getFormList()
this.getShowConfig()
},
//
async getFormList() {
@ -222,6 +238,26 @@ export default {
this.$message.error(res.msg)
}
},
//
async getShowConfig() {
const { data: res } = await this.$http.get('/hz_quguang/opera/record/conf/getInfo', {
params: {
operaName: this.currentList.operaName
}
})
if (res.code === 0) {
if (res.data) {
this.operaParamsList = res.data.operaParamsList
this.operaParamsList.forEach((item, index) => {
item.checked = JSON.parse(item.checked)
})
} else {
this.operaParamsList = null
}
} else {
this.$message.error(res.msg)
}
},
//
yinruMrzClick(item) {
this.$emit('yinruMrzClick', item)
@ -232,20 +268,20 @@ export default {
<style lang="scss" scoped>
.opera-record-into {
flex: 1;
height: calc(100vh);
position: relative;
overflow-x: auto;
height: calc(100vh);
position: relative;
overflow-x: auto;
.formList-li {
padding: 10px;
border-bottom: 1px solid #ccc;
}
.li-content {
padding-left: 10px;
padding-top: 10px;
}
padding: 10px;
border-bottom: 1px solid #ccc;
}
.li-content {
padding-left: 10px;
padding-top: 10px;
}
.formList-li:hover {
background: #f5f7fa;
}
background: #f5f7fa;
}
.left-title {
padding-left: 10px;
font-size: 18px;
@ -264,5 +300,4 @@ export default {
}
</style>
<style lang="scss">
</style>

2113
src/components/H5form/operation-record-配置前.vue

File diff suppressed because it is too large

1652
src/components/H5form/operation-record.vue

File diff suppressed because it is too large

51
src/components/H5form/operationed-check-record.vue

@ -42,11 +42,12 @@
<span class=" flex-2">
<div class="width-660 select-width-auto input_inner-left">
<template v-if="(saveEidtTitle==='编辑' && formListValue.ssOuOperaName) || saveEidtTitle==='保存'">
<div v-show="!formListValue.ssOdOperaName && !formListValue.ssOsOperaName"
<!-- v-show="!formListValue.ssOdOperaName && !formListValue.ssOsOperaName" -->
<div
class="flex-4 margin-right-6">
<span>OU</span>
<!-- :disabled="formListValue.ssOdOperaName.length>0 || formListValue.ssOsOperaName.length>0" -->
<el-select v-model="yyssfs.ouList" clearable multiple value-key="id"
:disabled="formListValue.ssOdOperaName.length>0 || formListValue.ssOsOperaName.length>0"
placeholder="请选择" @change="operaSelectChange($event,'ssOuOperaName','ssOuOperaBieM')">
<el-option v-for="(item,index) in operaList" :key="index" :label="item.operaName"
:value="item" />
@ -59,10 +60,12 @@
</div>
</template>
<template v-if="(saveEidtTitle==='编辑' && formListValue.ssOdOperaName) || saveEidtTitle==='保存'">
<div v-show="!formListValue.ssOuOperaName" class="flex-4 margin-right-6">
<!-- v-show="!formListValue.ssOuOperaName" -->
<div class="flex-4 margin-right-6">
<span>OD</span>
<!-- :disabled="formListValue.ssOuOperaName.length>0" -->
<el-select ref="odListRef" v-model="yyssfs.odList" clearable value-key="id" multiple
:disabled="formListValue.ssOuOperaName.length>0" placeholder="请选择"
placeholder="请选择"
@change="operaSelectChange($event,'ssOdOperaName','ssOdOperaBieM')">
<el-option v-for="(item,index) in operaList" :key="index" :label="item.operaName"
:value="item" />
@ -75,10 +78,12 @@
</div>
</template>
<template v-if="(saveEidtTitle==='编辑' && formListValue.ssOsOperaName) || saveEidtTitle==='保存'">
<div v-show="!formListValue.ssOuOperaName" class="flex-4">
<!-- v-show="!formListValue.ssOuOperaName" -->
<div class="flex-4">
<span>OS</span>
<!-- :disabled="formListValue.ssOuOperaName.length>0" -->
<el-select v-model="yyssfs.osList" clearable multiple value-key="id"
:disabled="formListValue.ssOuOperaName.length>0" placeholder="请选择"
placeholder="请选择"
@change="operaSelectChange($event,'ssOsOperaName','ssOsOperaBieM')">
<el-option v-for="(item,index) in operaList" :key="index" :label="item.operaName"
:value="item" />
@ -242,6 +247,13 @@
</el-form>
</div>
<el-form ref="form" label-width="80px" :disabled="formListValue.zsWbsCheckOd ? true:false">
<div class="row-five width-250" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsWuganCheckOd">雾感</el-checkbox>
<el-input v-model="formListValue.zsWuganRemarkOd" placeholder=""
:disabled="formListValue.zsWuganCheckOd ? false:true" />
</span>
</div>
<div class="row-two width-80" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsYwgCheckOd">异物感</el-checkbox>
@ -254,7 +266,7 @@
:disabled="formListValue.zsYgssCheckOd ? false:true" />
</span>
</div>
<div class="row-three width-120" style="padding-top:6px">
<div class="row-three width-110" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsWgCheckOd">畏光</el-checkbox>
<el-input v-model="formListValue.zsWgRemarkOd" placeholder=""
@ -572,7 +584,7 @@
<div class="flex">
<span class="left" :class="saveEidtTitle==='保存' ? 'cursor title-width-70':'title-width-60'"
@dblclick="saveEidtTitle==='保存' && templateLook('ykjcJintOd','array')">
晶体
<!-- <i v-show="saveEidtTitle==='保存'" class="el-icon-s-operation" /> -->
</span>
<el-select v-model="formListValue.ykjcJintOd" multiple allow-create filterable
@ -658,7 +670,15 @@
</span>
</el-form>
</div>
<el-form ref="form" label-width="80px" :disabled="formListValue.zsWbsCheckOs ? true:false">
<div class="row-five width-250" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsWuganCheckOs">雾感</el-checkbox>
<el-input v-model="formListValue.zsWuganRemarkOs" placeholder=""
:disabled="formListValue.zsWuganCheckOs ? false:true" />
</span>
</div>
<div class="row-two width-80" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsYwgCheckOs">异物感</el-checkbox>
@ -671,7 +691,7 @@
:disabled="formListValue.zsYgssCheckOs ? false:true" />
</span>
</div>
<div class="row-three width-120" style="padding-top:6px">
<div class="row-three width-110" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsWgCheckOs">畏光</el-checkbox>
<el-input v-model="formListValue.zsWgRemarkOs" placeholder=""
@ -684,7 +704,7 @@
</span>
</div>
<div class="row-four width-120" style="padding-top:6px">
<div class="row-four width-110" style="padding-top:6px">
<span>
<el-checkbox v-model="formListValue.zsYzCheckOs">眼胀</el-checkbox>
<el-input v-model="formListValue.zsYzRemarkOs" placeholder=""
@ -920,7 +940,7 @@
<div class="flex">
<span class="left" :class="saveEidtTitle==='保存' ? 'cursor title-width-70':'title-width-60'"
@dblclick="saveEidtTitle==='保存' && templateLook('ykjcJintOs','array')">
晶体
<!-- <i v-show="saveEidtTitle==='保存'" class="el-icon-s-operation" /> -->
</span>
<el-select v-model="formListValue.ykjcJintOs" multiple allow-create filterable
@ -1142,6 +1162,11 @@ export default {
zsCyRemarkOd: '',
zsCyCheckOs: '',
zsCyRemarkOs: '',
// --
zsWuganCheckOd:'',
zsWuganRemarkOd:'',
zsWuganCheckOs:'',
zsWuganRemarkOs:'',
// --
zsQtCheckOd: '',
zsQtRemarkOd: '',
@ -1672,8 +1697,8 @@ export default {
// CA便
zsSplit(index) {
//
const zsOdcheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsQt、其它']
const zsOscheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsQt、其它']
const zsOdcheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsWugan、雾感','zsQt、其它']
const zsOscheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsWugan、雾感','zsQt、其它']
this.zsOdcheckArr = []
this.zsOscheckArr = []
zsOdcheck.forEach(item => {

4
src/components/H5form/qg-dzbl.vue

@ -983,7 +983,7 @@
<div class="flex-2">
<span class="left" :class="saveEidtTitle==='保存' ? 'cursor title-width-70':'title-width-60'"
@dblclick="saveEidtTitle==='保存' && templateLook('lxdjcJintOd','array')">
晶体
<!-- <i v-show="saveEidtTitle==='保存'" class="el-icon-s-operation" /> -->
</span>
<el-select v-model="formListValue.lxdjcJintOd" multiple allow-create filterable
@ -1434,7 +1434,7 @@
<div class="flex-2">
<span class="left" :class="saveEidtTitle==='保存' ? 'cursor title-width-70':'title-width-60'"
@dblclick="saveEidtTitle==='保存' && templateLook('lxdjcJintOs','array')">
晶体
<!-- <i v-show="saveEidtTitle==='保存'" class="el-icon-s-operation" /> -->
</span>
<el-select v-model="formListValue.lxdjcJintOs" multiple allow-create filterable

2
src/components/H5formOhter/h5formButton.vue

@ -268,7 +268,7 @@ export default {
fjShow: {
type: Boolean,
default: false
}
},
},
data() {
return {

29
src/mixins/alertParams.js

@ -1,7 +1,8 @@
export default {
data() {
return {
alertSetList: [{
alertSetList:[],
alertSetList1: [{
name: '裸眼远-明',
key: '',
keyOd: 'slLyYuanMingOd',
@ -612,20 +613,7 @@ export default {
equal: '', // 等于
id: 41,
status: 1, // 1:开启 0:关闭
}, {
name: 'offset-Y',
key: '',
keyOd: 'offsetYOd',
keyOs: 'offsetYOs',
keyOu: '',
greaterThan: '', // 大于
lessThan: 11, // 小于
greaterThenEqual: '', // 大于等于
lessThanEqual: '', // 小于等于
equal: '', // 等于
id: 42,
status: 1, // 1:开启 0:关闭
}, {
}, {
name: 'offset-R',
key: '',
keyOd: 'offsetROd1',
@ -792,7 +780,7 @@ export default {
let alertParams = this.getAlertItem(key,keyType)
// console.log('alertParams',alertParams);
// return 'colorInputRed'
return alertParams ? (alertParams.status === 1 && ((alertParams.greaterThan ? formListValueItem > alertParams.greaterThan : '') ||
return alertParams ? (alertParams.flag === 1 && ((alertParams.greaterThan ? formListValueItem > alertParams.greaterThan : '') ||
(alertParams.lessThan ? formListValueItem < alertParams.lessThan : '') ||
(alertParams.greaterThenEqual ? formListValueItem >= alertParams.greaterThenEqual : '') ||
(alertParams.lessThanEqual ? formListValueItem <= alertParams.lessThanEqual : '') ||
@ -805,8 +793,13 @@ export default {
},
methods: {
// 获取质控接口参数
getAlertSetList() {
this.alertSetList = this.alertSetList // 模拟接口获取
async getAlertSetList() {
const { data: res } = await this.$http.get('/hz_quguang/bd/target/getList')
if (res.code === 0) {
this.alertSetList = res.data
} else {
this.$message.error(res.msg)
}
},
// 单个查询调取
getAlertItem(key,keyType) {

2
src/mixins/jmjlDzbl.js

@ -3053,7 +3053,7 @@ export default {
// 瞳孔
tongKongList: ['ERRL', '虹膜残膜', 'MG(+)'],
// 晶体
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊'],
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊','密度增加','IOL在位'],
// 眼睑
yanjianList: ['无倒睫', '倒睫', '睑内翻', '睑板腺开口阻塞'],
// 视盘

2
src/mixins/jmjlOperaCheckRecord.js

@ -960,7 +960,7 @@ export default {
// 前房
QianFangList: ['深清', '浅', '闪辉', '积血', '积脓'],
// 晶体
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊'],
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊','密度增加','IOL在位'],
// 眼睑
yanjianList: ['无倒睫', '倒睫', '睑内翻', '睑板腺开口阻塞'],
// 诊断1

4
src/mixins/operationPlan.js

@ -146,7 +146,9 @@ export default {
}, {
name: 'Amaris'
}, {
name: '空'
name: 'ATOS',
},{
name: '空',
}]
}
}

120
src/mixins/operationRecord.js

@ -90,7 +90,7 @@ export default {
// Ts
tsList: ['90', '100', '110', '120 '],
// 手术仪器
ssyq: ['Ziemer8', 'Visumax', 'Intralase', 'Amaris'],
ssyq: ['Ziemer8', 'Visumax', 'Intralase', 'Amaris', 'ATOS'],
// 手术类型
sslx: ['去上皮CXL', '保留上皮CXL'],
formSetValue: {
@ -158,123 +158,7 @@ export default {
// 备注
bz: ''
},
operaParamsList: [{
name:'nomo',
sort:1,
checked: false,
},{
name:'手术类型',
sort:2,
checked: false,
},{
name:'模式',
sort:3,
checked: false,
},{
name:'矫正度数',
sort:4,
checked: false,
},{
name:'光学/治疗区直径',
sort:5,
checked: false,
},{
name:'帽厚度',
sort:6,
checked: false,
},{
name:'吸引环参数',
sort:7,
checked: false,
},{
name:'瓣厚度',
sort:8,
checked: false,
},{
name:'切削深度',
sort:9,
checked: false,
},{
name:'剩余基质厚度',
sort:10,
checked: false,
},{
name:'上皮中央/周边厚度',
sort:11,
checked: false,
},{
name:'总切削深度',
sort:12,
checked: false,
},{
name:'移心量',
sort:13,
checked: false,
},{
name:'MCC',
sort:14,
checked: false,
},{
name:'Tr',
sort:15,
checked: false,
},{
name:'Ts',
sort:16,
checked: false,
},{
name:'ADD',
sort:17,
checked: false,
},{
name:'核黄素类型',
sort:18,
checked: false,
},{
name:'渗透时间',
sort:19,
checked: false,
},{
name:'渗透评估',
sort:20,
checked: false,
},{
name:'角膜厚度',
sort:21,
checked: false,
},{
name:'角膜厚度照射后',
sort:22,
checked: false,
},{
name:'照射模式',
sort:23,
checked: false,
},{
name:'照射直径',
sort:24,
checked: false,
},{
name:'辐照度',
sort:25,
checked: false,
},{
name:'照射时间',
sort:26,
checked: false,
},{
name:'总能量',
sort:27,
checked: false,
},{
name:'术中情况',
sort:28,
checked: false,
},{
name:'手术仪器',
sort:29,
checked: false,
}],
}
}
}

2
src/mixins/operationedCheckRecord.js

@ -1143,7 +1143,7 @@ export default {
// 前房
QianFangList: ['深清', '浅', '闪辉', '积血', '积脓'],
// 晶体
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊'],
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊','密度增加','IOL在位'],
// 眼睑
yanjianList: ['无倒睫', '倒睫', '睑内翻', '睑板腺开口阻塞'],
// 空

12
src/mixins/publicFile.js

@ -215,7 +215,17 @@ export default {
}
this.closeFormSetDrawer()
this.$nextTick(() => {
this.mrzYrEye.includes('左眼') ? this.$refs.autoFocusOsRef.focus() : this.$refs.autoFocusOdRef.focus()
console.log('this.$refs.autoFocusOsRef',this.$refs.autoFocusOsRef);
// 光标定位
if(this.mrzYrEye.includes('左眼')) {
this.$refs.autoFocusOsRef.forEach(item=>{
item.focus()
})
} else {
this.$refs.autoFocusOdRef.forEach(item=>{
item.focus()
})
}
})
},
// 主觉验光如果输入的是整数,设置为保留一位小数 如果是两位小数保持不变

2
src/mixins/qgdzbl.js

@ -3040,7 +3040,7 @@ export default {
// 瞳孔
tongKongList: ['ERRL', '虹膜残膜', 'MG(+)'],
// 晶体
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊'],
JingTiList: ['透明', '前囊膜色素', 'ICL位正', '点状混浊', '轻度混浊', '混浊','密度增加','IOL在位'],
// 眼睑
yanjianList: ['无倒睫', '倒睫', '睑内翻', '睑板腺开口阻塞'],
// 视盘

41
src/page-subspecialty/main.js

@ -24,17 +24,21 @@ import '@/assets/scss/aui.scss'
import '@/assets/scss/reset.scss'
import i18n from '@/i18n'
import * as filters from '@/filters'
import renRadioGroup from '@/components/ren-radio-group'
import renDeptTree from '@/components/ren-dept-tree'
// 暂时没用到
// import renRadioGroup from '@/components/ren-radio-group'
// import renDeptTree from '@/components/ren-dept-tree'
import { hasPermission, getDictLabel } from '@/utils'
import cloneDeep from 'lodash/cloneDeep'
import 'xe-utils'
import VXETable from 'vxe-table'
import 'vxe-table/lib/index.css'
// import 'xe-utils'
// 暂时没用到
// import VXETable from 'vxe-table'
// import 'vxe-table/lib/index.css'
// import echarts from 'echarts'
import * as echarts from 'echarts'
import moment from 'moment'
import VueChatScroll from 'vue-chat-scroll'
// import VueChatScroll from 'vue-chat-scroll'
import Cookies from 'js-cookie'
// import jsNSV from '@/utils/js-NSV.js'
import '@/assets/scss/simhei.css'
@ -72,14 +76,15 @@ Vue.use(VueCropper)
import JsBarcode from 'jsbarcode'
Vue.prototype.$JsBarcode = JsBarcode
import Recorder from 'js-audio-recorder'
const recorder = new Recorder({
sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
numChannels: 1 // 声道,支持 1 或 2, 默认是1
// compiling: false,(0.x版本中生效,1.x增加中) // 是否边录边转换,默认是false
})
Vue.prototype.$recorder = recorder
// 录音以前的需求--现在用不到了--引用的组件也都注释掉了
// import Recorder from 'js-audio-recorder'
// const recorder = new Recorder({
// sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
// sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
// numChannels: 1 // 声道,支持 1 或 2, 默认是1
// // compiling: false,(0.x版本中生效,1.x增加中) // 是否边录边转换,默认是false
// })
// Vue.prototype.$recorder = recorder
import htmlToPdf from '@/mixins/htmlToPdf.js'
// 使用Vue.use()方法就会调用工具方法中的install方法
@ -104,10 +109,10 @@ Object.keys(filters).forEach(key => {
})
// 全局组件
Vue.use(renRadioGroup)
Vue.use(renDeptTree)
Vue.use(VueChatScroll)
Vue.use(VXETable)
// Vue.use(renRadioGroup)
// Vue.use(renDeptTree)
// Vue.use(VueChatScroll)
// Vue.use(VXETable)
// DICOM
import cornerstone from 'cornerstone-core'

10
src/page-subspecialty/router/index.js

@ -37,11 +37,11 @@ export const pageRoutes = [
meta: { title: '登录' }
},
// 录音
{
path: '/luyin',
name: 'luyin',
component: () => import('@/page-subspecialty/views/pages/luyin')
},
// {
// path: '/luyin',
// name: 'luyin',
// component: () => import('@/page-subspecialty/views/pages/luyin')
// },
// 日程安排
{
path: '/schedule',

2
src/page-subspecialty/views/modules/batchCaManagement/index.vue

@ -116,6 +116,8 @@ export default {
}
},
created() {
this.dataForm.beginDate = this.dataForm.endDate = this.$moment().format('YYYY-MM-DD')
this.startEndTime = [this.dataForm.beginDate, this.dataForm.endDate]
this.isShowPatient = !(this.$route.matched.length > 2)
window.localStorage.getItem('hzqg-userData') ? this.userData = JSON.parse(window.localStorage.getItem('hzqg-userData')) : ''
this.dataForm.doctorCode = this.userData ? this.userData.employeeId : ''

4
src/page-subspecialty/views/modules/chargeManagement/alertSet/add-or-update copy.vue

@ -240,8 +240,8 @@ export default {
<style lang="scss">
.alert-setting {
.paramsSet {
display: flex;
align-items: center;
// display: flex;
// align-items: center;
}
.company {
display: inline-block;

174
src/page-subspecialty/views/modules/chargeManagement/alertSet/add-or-update.vue

@ -2,10 +2,10 @@
<el-dialog class="alert-setting" :visible.sync="visible" width="60%" :title="dataForm.id ? '修改预警条件':'新增预警条件'"
@close="closeDialog">
<el-form ref="dataForm" :model="dataForm" :rules="dataRule">
<el-form-item label="指标名称:" label-width="100px" prop="name">
<el-select v-model="dataForm.name " placeholder="请选择指标名称" clearable>
<el-option v-for="(item,index) in targetNameList " :key="index" :value="item.name" :label="item.name"
@click.native="selectOptionHandle(item)" />
<el-form-item label="指标名称:" label-width="100px" prop="targetNameId">
<el-select v-model="dataForm.targetNameId" placeholder="请选择指标名称" clearable filterable>
<el-option v-for="(item,index) in list_filtered " :key="index" :value="item.targetNameId"
:label="item.targetName" @click.native="selectOptionHandle(item)" />
</el-select>
</el-form-item>
<div class="paramsSet">
@ -25,7 +25,7 @@
<el-input v-model="dataForm.equal" placeholder="请填写值" />
</el-form-item>
<el-form-item label="启用" label-width="90px">
<el-switch v-model="dataForm.status" :active-value="1" :inactive-value="0" />
<el-switch v-model="dataForm.flag" :active-value="1" :inactive-value="0" />
</el-form-item>
</div>
</el-form>
@ -42,106 +42,13 @@ export default {
data() {
return {
visible: false,
targetNameList: [{
name: '患者年龄',
keyOd: '',
keyOs: '',
keyOu: '',
key: 'patientSex',
},{
name: '裸眼视力远-明',
keyOd: 'slLyYuanMingOd',
keyOs: 'slLyYuanMingOs',
keyOu: '',
key: '',
}, {
name: '裸眼视力近-明',
keyOd: 'slLyJinMingOd',
keyOs: 'slLyJinMingOs',
keyOu: '',
key: '',
}, {
name: '常用戴镜视力-明',
keyOd: 'slDjMingOd',
keyOs: 'slDjMingOs',
keyOu: '',
key: '',
}, {
name: '裸眼视力远-暗',
keyOd: 'slLyYuanAnOd',
keyOs: 'slLyYuanAnOs',
keyOu: '',
key: '',
}, {
name: '裸眼视力近-暗',
keyOd: 'slLyJinAnOd',
keyOs: 'slLyJinAnOs',
keyOu: '',
key: '',
}, {
name: '常用戴镜视力-暗',
keyOd: 'slDjAnOd',
keyOs: 'slDjAnOs',
keyOu: '',
key: '',
}, {
name: '现镜度数1',
keyOd: 'xjdsOd1',
keyOs: 'xjdsOs1',
keyOu: '',
key: '',
}, {
name: '现镜度数2',
keyOd: 'xjdsOd2',
keyOs: 'xjdsOs2',
keyOu: '',
key: '',
}, {
name: '现镜度数3',
keyOd: 'xjdsOd3',
keyOs: 'xjdsOs3',
keyOu: '',
key: '',
},{
name: '电脑验光小瞳1',
keyOd: 'dnygXtOd1',
keyOs: 'dnygXtOs1',
keyOu: '',
key: '',
},{
name: '电脑验光小瞳2',
keyOd: 'dnygXtOd2',
keyOs: 'dnygXtOs2',
keyOu: '',
key: '',
},{
name: '电脑验光小瞳3',
keyOd: 'dnygXtOd3',
keyOs: 'dnygXtOs3',
keyOu: '',
key: '',
},{
name: '电脑验光散瞳1',
keyOd: 'dnygStOd1',
keyOs: 'dnygStOs1',
keyOu: '',
key: '',
},{
name: '电脑验光散瞳2',
keyOd: 'dnygStOd2',
keyOs: 'dnygStOs2',
keyOu: '',
key: '',
},{
name: '电脑验光散瞳3',
keyOd: 'dnygStOd3',
keyOs: 'dnygStOs3',
keyOu: '',
key: '',
}],
targetNameList: [],
list_filtered:[],
dataForm: {
name: '',
key:'',
createDate: '',
targetNameId: '',
targetName: '',
key: '',
keyOd: '',
keyOs: '',
keyOu: '',
@ -151,14 +58,14 @@ export default {
lessThanEqual: '', //
equal: '', //
id: '',
status: 1, // 1 0
flag: 1, // 1 0
},
}
},
computed: {
dataRule() {
return {
name: [
targetNameId: [
{ required: true, message: '请选择指标名称', trigger: 'change' }
]
}
@ -172,7 +79,7 @@ export default {
init() {
this.visible = true
this.$nextTick(() => {
// this.getTargetName()
this.getTargetName()
this.$refs.dataForm.resetFields() //
if (this.dataForm.id) {
this.getInfo()
@ -181,9 +88,22 @@ export default {
},
//
async getTargetName() {
const { data: res } = await this.$http.get('/hz_quguang/sys/target/selectTarget')
const { data: res } = await this.$http.get('/hz_quguang/dict/target/name/getList')
if (res.code === 0) {
this.targetNameList = res.data
//keykey
res.data.map(item => {
let obj = {
targetName: item.name,
targetNameId: item.id,
key: item.key,
keyOd: item.keyOd,
keyOs: item.keyOs,
keyOu: item.keyOu
}
this.targetNameList.push(obj);
this.list_filtered.push(obj);
})
} else {
this.$message.error(res.msg)
@ -191,8 +111,8 @@ export default {
},
//
selectOptionHandle(item) {
console.log('item',item)
Object.keys(item).forEach(key=>{
console.log('item', item)
Object.keys(item).forEach(key => {
this.dataForm[key] = item[key]
})
},
@ -200,11 +120,15 @@ export default {
// switchHandle(e) {
// // 1 0
// console.log(e)
// this.dataForm.status = e ? 1 : 0
// this.dataForm.flag = e ? 1 : 0
// },
//
getInfo() {
this.$http.get(`/hz_quguang/sys/target/${this.dataForm.id}`).then(({ data: res }) => {
this.$http.get(`/hz_quguang/bd/target/getInfo`, {
params: {
id: this.dataForm.id
}
}).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -221,7 +145,7 @@ export default {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('/hz_quguang/sys/target', this.dataForm).then(({ data: res }) => {
this.$http[!this.dataForm.id ? 'post' : 'put']('/hz_quguang/bd/target', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -237,6 +161,28 @@ export default {
}).catch(() => { })
})
}, 1000, { leading: true, trailing: false }),
matchPinyinSearch(searchContent) {
// console.log('searchContent', searchContent);
if (searchContent) {
let result = [];
this.targetNameList.forEach((item) => {
// console.log('item', item);
// matchResult true/false
let matchResult = this.$pinYinMatch.match(item.targetName, searchContent);
// console.log('matchResult', matchResult);
if (matchResult) {
result.push(item);
// console.log('result', result);
}
});
this.list_filtered = result
} else {
this.list_filtered = this.targetNameList
}
},
clearPinyinSearch() {
this.list_filtered = this.targetNameList
},
//
closeDialog() {
this.$emit('closeDialog', false)

33
src/page-subspecialty/views/modules/chargeManagement/alertSet/index.vue

@ -8,7 +8,7 @@
<el-table ref="multipleTable" :data="dataList" tooltip-effect="dark" style="width: 100%" :height="tableHeight">
<el-table-column label="指标名称">
<template slot-scope="scope">
<span>{{ scope.row.name }}</span>
<span>{{ scope.row.targetName }}</span>
</template>
</el-table-column>
<el-table-column prop="greaterThan" label="值大于" />
@ -19,7 +19,7 @@
<el-table-column label="状态">
<template slot-scope="scope">
<!-- 1开启 0关闭 -->
<el-switch :value="scope.row.status == 1 ? true : false" @change="switchHandle(scope.row,$event)" />
<el-switch :value="scope.row.flag == 1 ? true : false" @change="changeStatus(scope.row,scope.$index)" />
</template>
</el-table-column>
<el-table-column prop="operation" label="操作">
@ -30,7 +30,7 @@
</el-table-column>
</el-table>
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @closeDialog="addOrUpdateVisible=false"/>
<!-- <el-pagination background layout="prev, pager, next" :total="total" @current-change="pageCurrentChangeHandle" /> -->
<el-pagination background layout="prev, pager, next" :total="total" @current-change="pageCurrentChangeHandle" />
</div>
</template>
<script>
@ -47,25 +47,28 @@ export default {
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/hz_quguang/sys/target/targetList',
deleteURL: '/hz_quguang/sys/target'
getDataListURL: '/hz_quguang/bd/target/page',
getDataListIsPage:true,
deleteURL: '/hz_quguang/bd/target/delete'
},
dataForm:{
name:''
}
}
},
created() {
},
methods: {
//
async switchHandle(scopeRow, e) {
console.log(scopeRow, e)
// 1 0
const { data: res } = await this.$http.post('/hz_quguang/sys/target/switchStatus', {
id: scopeRow.id,
status: e === false ? 0 : 1
})
//
async changeStatus(scopeRow, index) {
console.log('状态是否开启',scopeRow, index);
scopeRow.flag = scopeRow.flag == 1 ? 0 : 1
const { data: res } = await this.$http.put('/hz_quguang/bd/target', scopeRow)
if (res.code === 0) {
this.getDataListInitial()
this.$message({
message: this.dataList[index].flag == 1 ? '当前状态已开启' : '当前状态已关闭',
type: this.dataList[index].flag == 1 ? 'success' : 'warning'
})
} else {
this.$message.error(res.msg)
}

174
src/page-subspecialty/views/modules/chargeManagement/zbNameSet/add-or-update.vue

@ -0,0 +1,174 @@
<template>
<el-dialog class="alert-setting" :visible.sync="visible" width="60%" :title="dataForm.id ? '修改指标名称':'新增指标名称'"
@close="closeDialog">
<el-form ref="dataForm" :model="dataForm" :rules="dataRule">
<el-form-item label="指标名称:" label-width="100px" prop="name">
<el-input v-model="dataForm.name" placeholder="指标名称" />
</el-form-item>
<div class="paramsSet">
<el-form-item label="key:" prop="key" label-width="100px">
<el-input v-model="dataForm.key" placeholder="请填写key" />
</el-form-item>
<el-form-item label="keyOu:" label-width="100px" prop="keyOu">
<el-input v-model="dataForm.keyOu" placeholder="请填写keyOu" />
</el-form-item>
<el-form-item label="keyOd:" label-width="100px" prop="keyOd">
<el-input v-model="dataForm.keyOd" placeholder="请填写keyOd" />
</el-form-item>
<el-form-item label="keyOs:" label-width="100px" prop="keyOs">
<el-input v-model="dataForm.keyOs" placeholder="请填写keyOs" />
</el-form-item>
<el-form-item label="排序:" label-width="100px" prop="sortIndex">
<el-input v-model="dataForm.sortIndex" placeholder="排序" />
</el-form-item>
<el-form-item label="启用" label-width="90px">
<el-switch v-model="dataForm.flag" :active-value="1" :inactive-value="0" />
</el-form-item>
</div>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
export default {
data() {
return {
visible: false,
dataForm: {
createDate:'',
name: '',
key: '',
keyOd: '',
keyOs: '',
keyOu: '',
flag:'', // 1 0
sortIndex: 1,
id:''
},
}
},
computed: {
dataRule() {
return {
name: [
{ required: true, message: '请选择指标名称', trigger: 'change' }
]
}
}
},
created() {
},
methods: {
//
init() {
this.visible = true
this.$nextTick(() => {
// this.getTargetName()
this.$refs.dataForm.resetFields() //
if (this.dataForm.id) {
this.getInfo()
}
})
},
//
selectOptionHandle(item) {
console.log('item', item)
Object.keys(item).forEach(key => {
this.dataForm[key] = item[key]
})
},
//
// switchHandle(e) {
// // 1 0
// console.log(e)
// this.dataForm.status = e ? 1 : 0
// },
//
getInfo() {
this.$http.get(`/hz_quguang/dict/target/name/getInfo`,{
params:{
id:this.dataForm.id
}
}).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.dataForm = {
...this.dataForm,
...res.data
}
}).catch(() => { })
},
//
dataFormSubmitHandle: debounce(function () {
console.log(this.dataForm)
this.$refs.dataForm.validate((valid) => {
if (!valid) {
return false
}
this.$http[!this.dataForm.id ? 'post' : 'put']('/hz_quguang/dict/target/name', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => { })
})
}, 1000, { leading: true, trailing: false }),
//
closeDialog() {
this.$emit('closeDialog', false)
}
}
}
</script>
<style lang="scss">
.alert-setting {
.company {
display: inline-block;
width: 60px;
padding-left: 5px;
}
.el-form-item__content {
display: flex;
}
.el-dialog__header {
margin-bottom: 12px;
}
.el-dialog__body {
padding-right: 30px;
}
.formItemOne .el-form-item__content {
display: flex;
}
.el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100%;
}
.el-select {
display: block;
width: 100%;
}
.el-input-number {
display: block;
width: 100%;
}
.el-switch {
line-height: 40px;
display: block;
}
}
</style>

94
src/page-subspecialty/views/modules/chargeManagement/zbNameSet/index.vue

@ -0,0 +1,94 @@
<template>
<div class="charge-management">
<!-- 模板列表 -->
<head-template head-left="指标名称">
<el-button type="primary" size="small" icon="el-icon-plus" @click="addOrUpdateHandle()">新增</el-button>
</head-template>
<!-- 模板内容 -->
<el-table ref="multipleTable" :data="dataList" tooltip-effect="dark" style="width: 100%" :height="tableHeight">
<el-table-column prop="name" label="指标名称" />
<el-table-column prop="key" label="key" />
<el-table-column prop="keyOd" label="keyOd" />
<el-table-column prop="keyOs" label="keyOs" />
<el-table-column prop="keyOu" label="keyOu" />
<el-table-column prop="sortIndex" label="排序" />
<el-table-column label="是否开启">
<template slot-scope="scope">
<!-- 1开启 0关闭 -->
<el-switch :value="scope.row.flag == 1 ? true : false" @change="changeStatus(scope.row,scope.$index)" />
</template>
</el-table-column>
<el-table-column prop="operation" label="操作" align="center">
<template slot-scope="scope">
<span style="color: #1890ff; padding-right: 8px" class="details" @click="addOrUpdateHandle(scope.row.id,'')">修改</span>
<span style="color: #ff4d4f" class="delete" @click="deleteHandle(scope.row.id)">删除</span>
</template>
</el-table-column>
</el-table>
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" @closeDialog="addOrUpdateVisible=false"/>
<el-pagination background layout="prev, pager, next" :total="total" @current-change="pageCurrentChangeHandle" />
</div>
</template>
<script>
import headTemplate from '@/components/head'
import addOrUpdate from './add-or-update.vue'
import mixinViewModule from '@/mixins/view-module'
import tableAutoHeight from '@/mixins/tableAutoHeight'
export default {
components: {
headTemplate,
addOrUpdate
},
mixins: [mixinViewModule, tableAutoHeight],
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/hz_quguang/dict/target/name/page',
deleteURL: '/hz_quguang/dict/target/name/delete',
getDataListIsPage: true
}
}
},
created() {
},
methods: {
//
async changeStatus(scopeRow, index) {
console.log('状态是否开启',scopeRow, index);
scopeRow.flag = scopeRow.flag == 1 ? 0 : 1
const { data: res } = await this.$http.put('/hz_quguang/dict/target/name', scopeRow)
if (res.code === 0) {
this.$message({
message: this.dataList[index].flag == 1 ? '当前状态已开启' : '当前状态已关闭',
type: this.dataList[index].flag == 1 ? 'success' : 'warning'
})
} else {
this.$message.error(res.msg)
}
}
}
}
</script>
<style lang="scss" scoped>
.charge-management {
background: #fff;
padding: 20px;
min-height: calc(calc(100vh - 50px - 30px) - 2px);
.defaultButton {
display: inline-block;
border: 1px solid #1E79FF;
color: #1E79FF;
font-size: 12px;
padding: 0 10px;
border-radius: 16px;
margin-left: 10px;
}
.details,
.delete {
cursor: pointer;
}
.el-icon-more {
margin-left: 6px;
}
}
</style>

71
src/page-subspecialty/views/modules/outpatientManagement/index.vue

@ -6,15 +6,16 @@
<el-form :inline="true" :model="dataForm" class="demo-form-inline">
<el-form-item prop="dateRange" label="就诊日期" class="min-width-80 range_inner-220" label-width="80px">
<el-date-picker v-model="startEndTime" size="small" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" @change="dateChange" />
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions"
@change="dateChange" />
</el-form-item>
<el-form-item label="PID:" >
<el-input v-model="dataForm.patientId" size="small" clearable placeholder=""
@clear="getDataListInitial()" @keyup.enter.native="getDataListInitial('patientId')" />
<el-form-item label="PID:">
<el-input v-model="dataForm.patientId" size="small" clearable placeholder="" @clear="getDataListInitial()"
@keyup.enter.native="getDataListInitial('patientId')" />
</el-form-item>
<el-form-item label="患者姓名:" label-width="90px" class="min-width-90">
<el-input v-model="dataForm.patientName" placeholder="" size="small" clearable
@clear="getDataListInitial()" @keyup.enter.native="getDataListInitial('patientName')" />
<el-input v-model="dataForm.patientName" placeholder="" size="small" clearable @clear="getDataListInitial()"
@keyup.enter.native="getDataListInitial('patientName')" />
</el-form-item>
<!-- <el-form-item label="身份证:" label-width="80px" class="min-width-65 min-width-inner-180">
<el-input
@ -27,8 +28,8 @@
/>
</el-form-item> -->
<el-form-item label="接诊医生:" label-width="90px" class="min-width-90">
<el-select v-model="dataForm.employeeId" placeholder="" size="small" clearable
@clear="getDataListInitial()" @change="getDataListInitial()">
<el-select v-model="dataForm.employeeId" placeholder="" size="small" clearable @clear="getDataListInitial()"
@change="getDataListInitial()">
<el-option v-for="(item,index) in doctorList" :key="index" :label="item.doctorName"
:value="item.doctorCode" />
</el-select>
@ -62,7 +63,14 @@
</el-form>
</div>
<div class="patient-info-content">
<head-template head-left="门诊管理" />
<div class="flex-2 margin-bottom-10">
<span>门诊管理</span>
<!-- <el-radio-group v-model="dataForm.isReservation" size="small" class="margin-left-10">
<el-radio-button label="全部"></el-radio-button>
<el-radio-button label="已预约"></el-radio-button>
<el-radio-button label="未预约"></el-radio-button>
</el-radio-group> -->
</div>
<el-table ref="multipleTable" :height="tableHeight" :data="dataList" tooltip-effect="dark" style="width: 100%">
<!-- <el-table-column v-if="dataForm.drgsName=='眼视光'" prop="patType" label="患者类别" header-align="center" align="center" width="140" /> -->
<el-table-column prop="patientId" label="PID " header-align="center" align="center" />
@ -85,17 +93,17 @@
{{ scope.row.updateDate ?scope.row.updateDate : '-' }}
</template>
</el-table-column>
<el-table-column label="初病保存人" header-align="center" align="center">
<el-table-column label="初病保存人" header-align="center" align="center">
<template slot-scope="scope">
{{ scope.row.czEmrSaveName ?scope.row.czEmrSaveName : '-' }}
</template>
</el-table-column>
<el-table-column label="初病保存时间" header-align="center" align="center">
<el-table-column label="初病保存时间" header-align="center" align="center">
<template slot-scope="scope">
{{ scope.row.czEmrSaveDate ? scope.row.czEmrSaveDate : '-' }}
</template>
</el-table-column>
<el-table-column label="复病保存人" header-align="center" align="center">
<el-table-column label="复病保存人" header-align="center" align="center">
<template slot-scope="scope">
{{ scope.row.fzEmrSaveName ?scope.row.fzEmrSaveName : '-' }}
</template>
@ -103,13 +111,18 @@
<el-table-column label="复病保存时间" header-align="center" align="center">
<template slot-scope="scope">
{{ scope.row.fzEmrSaveDate ? scope.row.fzEmrSaveDate : '-' }}
</template>他三系
</template>
</el-table-column>
<el-table-column label="备注" header-align="center" align="center">
<template slot-scope="scope">
{{ scope.row.remark ? scope.row.remark : '- ' }}
</template>
</el-table-column>
<!-- <el-table-column label="预约情况" header-align="center" align="center">
<template slot-scope="scope">
{{ scope.row.remark ? scope.row.remark : '- ' }}
</template>
</el-table-column> -->
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="180">
<template slot-scope="scope">
<span style="color: #1890ff; padding-right: 8px" class="operation-details"
@ -140,7 +153,7 @@ import tableAutoHeight from '@/mixins/tableAutoHeight'
import detailView from '@/components/360View' // 360
import hotPrint from '@/components/H5formOhter/hotPrint'
export default {
name:'outpatientManagement',
name: 'outpatientManagement',
components: {
headTemplate,
detailView,
@ -157,6 +170,33 @@ export default {
startEndTime: [],
isShowPatient: true,
detailViewVisible: false,
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
dataForm: {
patientId: '',
patientName: '',
@ -168,7 +208,8 @@ export default {
// slBeginDate: '',
// slEndDate: '',
// diagNoseName: '',
patientIdNumber: ''
patientIdNumber: '',
isReservation:'全部',
},
doctorList: [],
// 123

12
src/page-subspecialty/views/modules/seeDoctor/archives/index.vue

@ -152,6 +152,11 @@
:patient-id="patientId" :archive-case-c-r-f-item="archiveCaseCRFItem" :patient-info-obj="patientInfoObj"
:user-data="userData" :role-list="roleList" :position-name="positionName" :current-url="currentUrl"
@load="loading=false" />
<medZms v-if="archiveCaseCRFItem.formName==='医疗证明书'&& formFlag===0" ref="medZmsRef"
:patient-inifo-h5="patientInifoH5" page-title="档案" :save-eidt-title="saveEidtTitle"
:patient-id="patientId" :archive-case-c-r-f-item="archiveCaseCRFItem" :patient-info-obj="patientInfoObj"
:user-data="userData" :role-list="roleList" :position-name="positionName" :current-url="currentUrl"
@load="loading=false" />
</div>
</div>
</div>
@ -172,7 +177,6 @@
<span @click="closeDialogClick">取消</span>
</span>
</el-dialog>
</div>
</template>
<script>
@ -194,6 +198,7 @@ import consenBookZfzJgzl from '@/components/H5form/consent-book-zfz-jgzl.vue'
import consentBookJmjl from '@/components/H5form/consent-book-jmjl.vue'
import shouquanBook from '@/components/H5form/shouquanBook'
import payDemandNote from '@/components/H5form/payDemandNote'
import medZms from '@/components/H5form/medZms.vue'
import signNSV from '@/mixins/sign-NSV'
export default {
components: {
@ -212,7 +217,8 @@ export default {
consenBookZfzJgzl,
consentBookJmjl,
shouquanBook,
payDemandNote
payDemandNote,
medZms
},
mixins: [IntelligentFill, signNSV],
props: {
@ -408,6 +414,8 @@ export default {
this.$refs.shouquanBookRef.init()
} else if (this.dataForm.formName === '特需医疗服务患者知情同意书') {
this.$refs.payDemandNoteRef.init()
} else if(this.dataForm.formName === '医疗证明书') {
this.$refs.medZmsRef.init()
}
}, 200)
}

2
src/page-subspecialty/views/modules/seeDoctor/archives/record-file.vue

@ -59,7 +59,7 @@
</div>
</template>
<script>
import lamejs from 'lamejs'
// import lamejs from 'lamejs'
import AudioPlayer from './audioplayer.vue'
const audio = new Audio()
export default {

23
src/page-subspecialty/views/modules/seeDoctor/index.vue

@ -26,14 +26,18 @@
<svg-icon icon-class="icon-referral" style="font-size:24px;" />
<div class="text">转诊</div>
</div> -->
<div class="icons" @click="changeRecordHandle">
<!-- <div class="icons" @click="changeRecordHandle">
<svg-icon icon-class="icon-change" style="font-size:24px;" />
<div class="text">随访变更</div>
</div>
</div> -->
<div class="icons" @click="followUpRecordHandle">
<svg-icon icon-class="icon-message-two" style="font-size:24px;" />
<div class="text">随访记录</div>
</div>
<div class="icons" @click="operaRecordHandle">
<svg-icon icon-class="icon-message-two" style="font-size:24px;" />
<div class="text">手术详情</div>
</div>
</div>
</div>
<!-- 详细信息 -->
@ -107,6 +111,8 @@
<!-- 随访周期更改下次来访更改弹框 -->
<edit-follow-unit-visit v-if="followUnitVisitVisible" ref="followUnitVisitRef" :title="followUnitVisitTitle" @closeDialog="followUnitVisitVisible=false" @refreshDataList="getPatientInfo" />
<warn-list v-if="warnListVisible" ref="warnListRef" @closeDialog="warnListVisible=false" />
<!-- 手术记录 -->
<operaRecordInfo v-if="operaRecordInfoVisible" ref="operaRecordInfoRef" :patient-id-number="patientIdNumber" :patient-id="patientInfoObj.patientId" :patient-centre-id="patientCentreId" @closeDialog="operaRecordInfoVisible=false" />
</template>
<router-view v-else />
</div>
@ -117,6 +123,7 @@ import archives from './archives/index.vue' // 随访
import changeRecord from './changeRecord.vue' //
import followUpRecordList from './followUpRecord/followUpRecordList.vue' // 访
import editFollowUnitVisit from './edit-follow-unit-visit.vue' // 访
import operaRecordInfo from './operaRecordInfo.vue'
import detailView from '@/components/360View' // 360
import addArchivs from './archives/add-archivs.vue' //
import warnList from './warnList.vue'
@ -128,7 +135,8 @@ export default {
changeRecord,
followUpRecordList,
editFollowUnitVisit,
warnList
warnList,
operaRecordInfo,
},
mixins: [mixinViewModule],
data() {
@ -138,6 +146,7 @@ export default {
changeRecordVisible: false, //
followUpRecordVisible: false, // 访
followUnitVisitVisible: false, // 访
operaRecordInfoVisible:false, //
addArchivsVisible: false, //
warnListVisible: false, //
patientInfoShow: false,
@ -343,7 +352,13 @@ export default {
this.$refs.followUpRecordRef.init()
})
},
//
operaRecordHandle() {
this.operaRecordInfoVisible = true
this.$nextTick(() => {
this.$refs.operaRecordInfoRef.init()
})
},
// 访-访
editFollowUnitVisit(item) {
this.followUnitVisitVisible = true

140
src/page-subspecialty/views/modules/seeDoctor/operaRecordInfo.vue

@ -0,0 +1,140 @@
<template>
<!-- 手术记录 -->
<el-dialog :visible.sync="visible" width="90%" title="手术记录" class="operaRecordInfo" @close="closeDialog">
<div element-loading-background="rgba(255, 255, 255, 1)">
<!-- 手术详情-->
<el-table :data="operaRecordInfoList" tooltip-effect="dark" size="small" :height="tableHeight">
<el-table-column prop="patientName" label="患者姓名" />
<el-table-column prop="patientIdNumber" label="PID" />
<el-table-column prop="operaNameList" label="手术名称" width="350"/>
<el-table-column prop="mazui" label="麻醉方式" />
<el-table-column prop="mainDoctorName" label="主刀医生" />
<el-table-column prop="operaRoom" label="手术间" />
<el-table-column prop="operationScheduleTime" label="手术日期" />
<el-table-column label="手术状态" prop="status" header-align="center" align="center">
<template slot-scope="scope">
<!-- // 4:-3:/-2:-1:0:1:2:3:4 -->
<div v-show="scope.row.status == -4">
<span class="circle-status circle-blue" />
<span>等待签到</span>
</div>
<div v-show="scope.row.status == -3">
<span class="circle-status circle-blue" />
<span>等待验光/等待谈话</span>
</div>
<div v-show="scope.row.status == -2">
<span class="circle-status circle-blue" />
<span>等待验光</span>
</div>
<div v-show="scope.row.status == -1">
<span class="circle-status circle-blue" />
<span>等待谈话</span>
</div>
<div v-show="scope.row.status == 0">
<span class="circle-status circle-blue" />
<span>等待呼叫</span>
</div>
<div v-show="scope.row.status == 1">
<span class="circle-status circle-red" />
<span>呼叫中</span>
</div>
<div v-show="scope.row.status == 2">
<span class="circle-status circle-blue" />
<span>术前准备</span>
</div>
<div v-show="scope.row.status == 3">
<span class="circle-status circle-yellow" />
<span>手术中</span>
</div>
<div v-show="scope.row.status == 4">
<span class="circle-status circle-grey" />
<span>手术完成</span>
</div>
</template>
</el-table-column>
<el-table-column prop="patientRemark" label="备注" />
</el-table>
<el-pagination background layout="total,prev,pager,next" :total="total" :current-page.sync="page"
@current-change="pageCurrentChangeHandle" />
</div>
</el-dialog>
</template>
<script>
export default {
props: {
patientIdNumber: {
type: String,
default: ''
},
patientCentreId: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
}
},
inject: ['refresh'],
data() {
return {
visible: false,
operaRecordInfoList: [],
tableHeight: '400',
limit: 10,
page: 1,
total:0
}
},
methods: {
init() {
this.visible = true
this.$nextTick(() => {
console.log('height',this.$('.operaRecordInfo').height())
this.tableHeight = this.$('.operaRecordInfo').height() - 200
this.operaRecordInfo()
})
},
// ,
pageCurrentChangeHandle(val) {
this.page = val
this.operaRecordInfo()
},
//
async operaRecordInfo() {
const { data: res } = await this.$http.get('/hz_quguang/his/opera/schedule/getList', {
params: {
limit: this.limit,
page: this.page,
patientIdNumber: this.patientIdNumber,
}
})
if (res.code === 0) {
this.operaRecordInfoList = res.data.list
this.total = res.data.total
} else {
this.$message.error(res.msg)
}
},
//
closeDialog() {
//
// eventBus.$emit('getArchiveCaseList')
this.$emit('closeDialog', false)
}
}
}
</script>
<style lang="scss" scoped>
.operaRecordInfo {
}
</style>
<style lang="scss">
.follow-up-record {
.el-dialog {
height: 88vh;
margin-top: 7vh !important;
}
}
</style>

35
src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue

@ -42,6 +42,7 @@
<div class="scheduled-patient-content">
<el-table ref="multipleTable" :height="tableHeight" :data="dataList" tooltip-effect="dark" style="width: 100%"
@sort-change="sortChange" @row-dblclick="dbclick">
<el-table-column type="index" width="50" :index="indexMethod"></el-table-column>
<el-table-column label="PID" header-align="center" align="center" class="boldColumn">
<template slot-scope="scope">
<span class="boldColumn">{{ scope.row.patientId }}</span>
@ -120,7 +121,7 @@
</div>
</template>
</el-table-column>
<el-table-column label="手术备注" prop="remark" header-align="center" align="center" />
<el-table-column label="备注" prop="patientRemark" header-align="center" align="center" />
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="220px">
<template slot-scope="scope">
<!-- -4:等待签到-3:等待验光/等待谈话-2:等待验光-1:等待谈话 -->
@ -161,7 +162,7 @@
<el-pagination background layout="total,prev,pager,next" :total="total" :current-page.sync="page"
@current-change="pageCurrentChangeHandle" />
</div>
<dialogForm v-if="dialogFormVisible" ref="dialogFormRef" title="手术列表" :current-info="currentPatientInfo"
<dialogForm v-if="dialogFormVisible" ref="dialogFormRef" title="手术列表" :current-info="currentPatientInfo" :operaShowConfigList="operaShowConfigList"
:patient-id="currentPatientInfo.patientId" :opera-id="currentPatientInfo.id"
:dialog-form-vlisble-title="dialogFormVlisbleTitle" @closeformDialog="closeformDialog" />
<el-dialog title="生命体征录入" :visible.sync="lifeDialogVlisble" width="40%" class="life-dialog"
@ -194,7 +195,7 @@ import dialogForm from '@/components/H5form/dialog-form.vue'
import hotPrint from '@/components/H5formOhter/hotPrint'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
export default {
name:'operationList',
name: 'operationList',
components: {
life,
printCode,
@ -238,10 +239,10 @@ export default {
statusList: [{
status: -4,
name: '等待签到'
},{
}, {
status: -3,
name: '等待验光/等待谈话'
},{
}, {
status: -2,
name: '等待验光'
}, {
@ -275,8 +276,9 @@ export default {
orderCancleVisible: false,
hotPrintVisible: false,
operaStatus: '',
userData:{},
positionName:[]
userData: {},
positionName: [],
operaShowConfigList:[]
}
},
watch: {
@ -288,6 +290,7 @@ export default {
created() {
// console.log(11111111111,this.$route)
// console.log(this.$route.params)
this.getShowConfigList()
this.today = this.$moment().format('YYYY-MM-DD')
this.dataForm.searchDate = this.$moment().format('YYYY-MM-DD')
window.localStorage.getItem('hzqg-userData') ? this.userData = JSON.parse(window.localStorage.getItem('hzqg-userData')) : ''
@ -304,6 +307,9 @@ export default {
document.title = ''
},
methods: {
indexMethod(index) {
return this.page === 1 ? index + 1 : (this.page - 1) * 10 + (index + 1)
},
//
dateChange(e) {
this.dataForm.startTime = e ? e[0] : ''
@ -504,12 +510,12 @@ export default {
// -4:-3:/-2:-1:
async signHandle(scopeRow) {
let newStatus = scopeRow.status + 1
console.log('newstatus',newStatus);
console.log('newstatus', newStatus);
const { data: res } = await this.$http.post('/hz_quguang/pda/updateOperaStatus', {
operaId: scopeRow.id,
status: newStatus
})
if(res.code === 0) {
if (res.code === 0) {
this.$message({
message: '签到成功',
type: 'success',
@ -526,7 +532,7 @@ export default {
operaId: scopeRow.id,
status: 0
})
if(res.code === 0) {
if (res.code === 0) {
this.$message({
message: '签到成功',
type: 'success',
@ -563,6 +569,15 @@ export default {
this.$message.error(res.msg)
}
},
//
async getShowConfigList() {
const { data: res } = await this.$http.get('/hz_quguang/opera/record/conf/getList')
if (res.code === 0) {
this.operaShowConfigList = res.data
} else {
this.$message.error(res.msg)
}
},
//
closeformDialog(flag, currentInfo) {
console.log('124443', flag)

34
src/page-subspecialty/views/modules/surgicalManagement/operationOrder/index.vue

@ -1,7 +1,8 @@
<template>
<!-- 手术列表 -->
<div class="operation-order">
<div class="hzyy" @click="scheduledClick">患者预约</div>
<div class="fixed hzyy" @click="scheduledClick">患者预约</div>
<!-- <div class="fixed print" v-print="printObj">打印</div> -->
<el-tabs @tab-click="tabClick">
<el-tab-pane label="未预约">
<!-- <svg-icon icon-class="icon-no-scheduled" style="font-size:13px;" /> -->
@ -13,6 +14,7 @@
<span slot="label" class="no-schedule-tab"><i class="el-icon-time" /> 待审核</span>
<!-- 0:未预约1:待审核2:已预约 -->
<scheduledTab ref="scheduledTabRefTwo" :status="1" title="待审核" />
</el-tab-pane>
<el-tab-pane label="已预约">
<span slot="label" class="no-schedule-tab"><i class="el-icon-date" /> 已预约</span>
@ -20,13 +22,8 @@
<scheduledTab ref="scheduledTabRefThree" :status="2" title="已预约" />
</el-tab-pane>
</el-tabs>
<scheduledOrder
v-if="scheduledOrderVisible"
ref="scheduledOrderRef"
:is-search="true"
@refreshDataList="getDataList"
@closeDialog="scheduledOrderVisible=false"
/>
<scheduledOrder v-if="scheduledOrderVisible" ref="scheduledOrderRef" :is-search="true"
@refreshDataList="getDataList" @closeDialog="scheduledOrderVisible=false" />
</div>
</template>
<script>
@ -43,7 +40,11 @@ export default {
mixins: [mixinViewModule],
data() {
return {
scheduledOrderVisible: false
scheduledOrderVisible: false,
printObj: {
id: 'printH5',
extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>,<style> #printId { width: 100%; !important; } <style>'
},
}
},
created() {
@ -56,6 +57,7 @@ export default {
this.$refs.scheduledTabRefOne.getDataList()
} else if (e.label === '待审核') {
this.$refs.scheduledTabRefTwo.getDataList()
this.$refs.scheduledTabRefTwo.getList()
} else if (e.label === '已预约') {
this.$refs.scheduledTabRefThree.getDataList()
}
@ -68,32 +70,34 @@ export default {
this.$refs.scheduledOrderRef.title = '未预约'
this.$refs.scheduledOrderRef.scheduledList(5)
})
}
},
print() { }
}
}
</script>
<style lang="scss" scoped>
.operation-order {
background: #fff;
}
</style>
<style lang="scss">
.operation-order {
.hzyy{
.fixed {
position: fixed;
right: 10px;
top: 40%;
z-index: 1;
writing-mode:tb-rl;
writing-mode: tb-rl;
display: flex;
flex-direction: column;
justify-content: center;
width: 40px;
padding: 12px 6px;
cursor: pointer;
}
.hzyy {
top: 40%;
background: #1e79ff;
color: #fff;
cursor: pointer;
}
.el-tabs {
padding: 10px 20px 0 20px;

305
src/page-subspecialty/views/modules/surgicalManagement/operationOrder/scheduled-order.vue

@ -1,16 +1,11 @@
<template>
<!-- 预约手术弹框 -->
<el-dialog class="scheduled-order" :visible.sync="visible" :title="title" width="70%" top="50px" @close="closeDialog">
<el-form v-if="isSearch" :inline="true" :model="dataForm" class="demo-form-inline searchForm" @submit.native.prevent>
<el-form v-if="isSearch" :inline="true" :model="dataForm" class="demo-form-inline searchForm"
@submit.native.prevent>
<el-form-item label="PID:" class="pidform" label-width="60px">
<el-input
v-model="searchPatientId"
class="margin-right-10"
size="small"
clearable
placeholder="PID"
@keyup.enter.native="getOperaInfoByPatientId"
/>
<el-input v-model="searchPatientId" class="margin-right-10" size="small" clearable placeholder="PID"
@keyup.enter.native="getOperaInfoByPatientId" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="small" @click="getOperaInfoByPatientId()">查询</el-button>
@ -79,7 +74,8 @@
<div class="margin-bottom-10">
<span>主术式</span>
<el-radio-group v-model="dataForm.mainOperaEye" size="medium">
<el-radio-button v-for="(item,index) in patientInfo.operaTypeList" :key="index" :label="item.eyeType" />
<el-radio-button v-for="(item,index) in patientInfo.operaTypeList" :key="index"
:label="item.eyeType" />
</el-radio-group>
</div>
<div class="opera-fs">
@ -89,13 +85,8 @@
<span v-if="item.operaEntityList.length>0" class="opera-tag-OD">
<!-- 未预约和修改预约术士可以编辑 -->
<template v-if="title==='未预约' || title==='修改预约'">
<el-tag
v-for="(tag,i) in item.operaEntityList"
:key="i"
class="operation-way"
closable
@close="tagCloseHandle(tag,item.eyeType,index,i)"
>
<el-tag v-for="(tag,i) in item.operaEntityList" :key="i" class="operation-way" closable
@close="tagCloseHandle(tag,item.eyeType,index,i)">
{{ tag.operationName }}
</el-tag>
</template>
@ -111,37 +102,22 @@
<span v-show="item.operaEntityList.length>0">此眼别暂无手术,可在此重新选择</span>
<el-select
:value="item.eyeType==='OD' ? operaValue.OD : (item.eyeType==='OS' ? operaValue.OS : (item.eyeType==='OU' ? operaValue.OU : ''))"
placeholder="请选择"
clearable
@clear="clearSelectOpera(item.eyeType,index)"
>
<el-option
v-for="(optionItem,optionI) in operaList"
:key="optionI"
:label="optionItem.operationName"
:value="optionItem.operationName"
@click.native="selectOperaChange(item,index,optionItem,optionI)"
/>
placeholder="请选择" clearable @clear="clearSelectOpera(item.eyeType,index)">
<el-option v-for="(optionItem,optionI) in operaList" :key="optionI"
:label="optionItem.operationName" :value="optionItem.operationName"
@click.native="selectOperaChange(item,index,optionItem,optionI)" />
</el-select>
</span>
</div>
<div class="operation-level">
<span>手术切口等级</span>
<el-select
clearable
<el-select clearable
:value="item.eyeType==='OD' ? operatlevelValue.OD.cutGradeName : (item.eyeType==='OS' ? operatlevelValue.OS.cutGradeName : (item.eyeType==='OU' ? operatlevelValue.OU.cutGradeName : ''))"
size="small"
placeholder="请选择"
size="small" placeholder="请选择"
:disabled="title==='待审核' || item.operaEntityList.length <=0 || item.operaEntityList.length > 1? true : false"
@clear="clearLevelSelectOpera(item.eyeType,index)"
>
<el-option
v-for="levelIten in operatlevelList"
:key="levelIten.id"
:label="levelIten.name"
:value="levelIten.id"
@click.native="cutGradeOptionsChange(levelIten,item,index)"
/>
@clear="clearLevelSelectOpera(item.eyeType,index)">
<el-option v-for="levelIten in operatlevelList" :key="levelIten.id" :label="levelIten.name"
:value="levelIten.id" @click.native="cutGradeOptionsChange(levelIten,item,index)" />
</el-select>
</div>
</div>
@ -160,101 +136,44 @@
<div v-show="!searchOperaOd && !searchOperaOs">
<span class="text-span">OU</span>
<el-select
v-model="searchOperaOu"
placeholder="请选择"
clearable
@clear="searchClearSelectOpera('ouOpera')"
>
<el-option
v-for="(optionItem,index) in operaList"
:key="index"
:label="optionItem.operationName"
:value="optionItem.operationName"
@click.native="searchSelectOperaChange('ouOpera',optionItem)"
/>
<el-select v-model="searchOperaOu" placeholder="请选择" clearable
@clear="searchClearSelectOpera('ouOpera')">
<el-option v-for="(optionItem,index) in operaList" :key="index" :label="optionItem.operationName"
:value="optionItem.operationName" @click.native="searchSelectOperaChange('ouOpera',optionItem)" />
</el-select>
<p class="margin-top-10">手术切口等级</p>
<el-select
v-if="ouOpera && ouOpera.operaId"
v-model="ouOpera.cutGradeId"
clearable
size="small"
placeholder="请选择"
>
<el-option
v-for="levelIten in operatlevelList"
:key="levelIten.id"
:label="levelIten.name"
:value="levelIten.id"
@click.native="searchCutGradeOptionsChange('ouOpera',levelIten)"
/>
<el-select v-if="ouOpera && ouOpera.operaId" v-model="ouOpera.cutGradeId" clearable size="small"
placeholder="请选择">
<el-option v-for="levelIten in operatlevelList" :key="levelIten.id" :label="levelIten.name"
:value="levelIten.id" @click.native="searchCutGradeOptionsChange('ouOpera',levelIten)" />
</el-select>
</div>
<div v-show="!searchOperaOu">
<span class="text-span">OD</span>
<el-select
v-model="searchOperaOd"
placeholder="请选择"
clearable
@clear="searchClearSelectOpera('odOpera')"
>
<el-option
v-for="(optionItem,index) in operaList"
:key="index"
:label="optionItem.operationName"
:value="optionItem.operationName"
@click.native="searchSelectOperaChange('odOpera',optionItem)"
/>
<el-select v-model="searchOperaOd" placeholder="请选择" clearable
@clear="searchClearSelectOpera('odOpera')">
<el-option v-for="(optionItem,index) in operaList" :key="index" :label="optionItem.operationName"
:value="optionItem.operationName" @click.native="searchSelectOperaChange('odOpera',optionItem)" />
</el-select>
<p class="margin-top-10">手术切口等级</p>
<el-select
v-if="odOpera && odOpera.operaId"
v-model="odOpera.cutGradeId"
clearable
size="small"
placeholder="请选择"
>
<el-option
v-for="levelIten in operatlevelList"
:key="levelIten.id"
:label="levelIten.name"
:value="levelIten.id"
@click.native="searchCutGradeOptionsChange('odOpera',levelIten)"
/>
<el-select v-if="odOpera && odOpera.operaId" v-model="odOpera.cutGradeId" clearable size="small"
placeholder="请选择">
<el-option v-for="levelIten in operatlevelList" :key="levelIten.id" :label="levelIten.name"
:value="levelIten.id" @click.native="searchCutGradeOptionsChange('odOpera',levelIten)" />
</el-select>
</div>
<div v-show="!searchOperaOu">
<span class="text-span">OS</span>
<el-select
v-model="searchOperaOs"
placeholder="请选择"
clearable
@clear="searchClearSelectOpera('osOpera')"
>
<el-option
v-for="(optionItem,index) in operaList"
:key="index"
:label="optionItem.operationName"
:value="optionItem.operationName"
@click.native="searchSelectOperaChange('osOpera',optionItem)"
/>
<el-select v-model="searchOperaOs" placeholder="请选择" clearable
@clear="searchClearSelectOpera('osOpera')">
<el-option v-for="(optionItem,index) in operaList" :key="index" :label="optionItem.operationName"
:value="optionItem.operationName" @click.native="searchSelectOperaChange('osOpera',optionItem)" />
</el-select>
<p class="margin-top-10">手术切口等级</p>
<el-select
v-if="osOpera && osOpera.operaId"
v-model="osOpera.cutGradeId"
clearable
size="small"
placeholder="请选择"
>
<el-option
v-for="levelIten in operatlevelList"
:key="levelIten.id"
:label="levelIten.name"
:value="levelIten.id"
@click.native="searchCutGradeOptionsChange('osOpera',levelIten)"
/>
<el-select v-if="osOpera && osOpera.operaId" v-model="osOpera.cutGradeId" clearable size="small"
placeholder="请选择">
<el-option v-for="levelIten in operatlevelList" :key="levelIten.id" :label="levelIten.name"
:value="levelIten.id" @click.native="searchCutGradeOptionsChange('osOpera',levelIten)" />
</el-select>
</div>
</div>
@ -284,13 +203,8 @@
<span>{{ patientInfo.mainDoctorInfo && patientInfo.mainDoctorInfo.serialNo ? patientInfo.mainDoctorInfo.serialNo : '-' }}</span>
</span>
</div>
<el-button
v-if="title=='未预约' || title=='修改预约'"
type="primary"
size="small"
class="choose-button"
@click="chooseScheduledCheckClick('选择手术日期')"
>选择手术日期</el-button>
<el-button v-if="title=='未预约' || title=='修改预约'" type="primary" size="small" class="choose-button"
@click="chooseScheduledCheckClick('选择手术日期')">选择手术日期</el-button>
</div>
<!-- <div class="choose-check">
<div class="choose-check-top">
@ -322,66 +236,47 @@
</div> -->
</div>
<div class="content-three">
<el-form
ref="dataForm"
:model="dataForm"
:rules="dataRule"
class="demo-form-inline"
>
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" class="demo-form-inline">
<div class="form-one">
<el-form-item label="手术间:" prop="operaRoomId">
<el-select v-model="dataForm.operaRoomId" placeholder="请选择" size="small" :disabled="title==='待审核' ? true : false">
<el-option
v-for="(item,index) in OperatingRoomList"
:key="index"
:label="item.name"
:value="item.id"
/>
<el-select v-model="dataForm.operaRoomId" placeholder="请选择" size="small"
:disabled="title==='待审核' ? true : false">
<el-option v-for="(item,index) in OperatingRoomList" :key="index" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="预估刀时:" class="form-time" prop="operaDuration">
<el-input v-model="dataForm.operaDuration" size="small" placeholder="请输入预估刀时" :disabled="title==='待审核' ? true : false" />
<el-input v-model="dataForm.operaDuration" size="small" placeholder="请输入预估刀时"
:disabled="title==='待审核' ? true : false" />
<p class="time">分钟</p>
</el-form-item>
</div>
<div class="form-two">
<el-form-item label="麻醉方式:" prop="narcosis">
<el-select v-model="dataForm.narcosis" placeholder="请选择" size="small" :disabled="title==='待审核' ? true : false">
<el-option
v-for="(item,index) in narcosisList"
:key="index"
:label="item.name"
:value="item.name"
@click.native="narcosisOptionsChange(item)"
/>
<el-select v-model="dataForm.narcosis" placeholder="请选择" size="small"
:disabled="title==='待审核' ? true : false">
<el-option v-for="(item,index) in narcosisList" :key="index" :label="item.name" :value="item.name"
@click.native="narcosisOptionsChange(item)" />
</el-select>
</el-form-item>
<el-form-item label="麻醉会诊:" class="form-diagnosis" prop="narcosisDiscuss">
<el-select v-model="dataForm.narcosisDiscuss" placeholder="请选择" size="small" :disabled="title==='待审核' ? true : false">
<el-option
v-for="(item,index) in narcosisDiscussList"
:key="index"
:label="item.name"
:value="item.name"
/>
<el-select v-model="dataForm.narcosisDiscuss" placeholder="请选择" size="small"
:disabled="title==='待审核' ? true : false">
<el-option v-for="(item,index) in narcosisDiscussList" :key="index" :label="item.name"
:value="item.name" />
</el-select>
</el-form-item>
</div>
<div class="form-three">
<el-form-item v-if="title=='待审核'" label="手术ID:" prop="hisOperaId">
<el-select v-model="dataForm.hisOperaId" placeholder="请选择手术ID" size="small">
<el-option
v-for="(item,index) in hisOperIdList"
:key="index"
:label="item.Id"
:value="item.Id"
/>
<el-option v-for="(item,index) in hisOperIdList" :key="index" :label="item.Id" :value="item.Id" />
</el-select>
</el-form-item>
</div>
<div class="form-three">
<el-form-item label="备注:" prop="remark">
<el-input v-model="dataForm.remark" type="textarea" :rows="1" />
<el-form-item label="备注:" prop="patientRemark">
<el-input v-model="dataForm.patientRemark" type="textarea" :rows="1" />
</el-form-item>
</div>
</el-form>
@ -397,7 +292,8 @@
</div>
<div v-if="title=='未预约' || title=='修改预约'" class="button">
<el-button @click="visible = false">取消</el-button>
<el-button v-if="!isSearch" type="primary" @click="dataFormSubmitHandle()">{{ title=='修改预约' ? '修改' : '确认' }}</el-button>
<el-button v-if="!isSearch" type="primary" @click="dataFormSubmitHandle()">{{ title=='修改预约' ? '修改' : '确认' }}
</el-button>
<el-button v-if="isSearch" type="primary" @click="saveOperaReservationForPatient()">确认</el-button>
</div>
<div v-if="title=='待审核'" class="button">
@ -405,22 +301,11 @@
<el-button type="primary" @click="examineHandle(1)">通过</el-button>
</div>
</template>
<chooseScheduledData
v-if="chooseScheduledVisible"
ref="chooseScheduledRef"
@closeDialog="chooseScheduledVisible=false"
@rowList="rowList"
/>
<chooseScheduledData v-if="chooseScheduledVisible" ref="chooseScheduledRef"
@closeDialog="chooseScheduledVisible=false" @rowList="rowList" />
<!-- 详情页 -->
<detail-view
v-if="detailViewVisible"
:id="detailId"
ref="viewRef"
:patient-id-number="patientInfo.patientIdNumber"
:patient-id="patientInfo.patientId"
is-search=""
@detailViewVisible="detailViewVisible=false"
/>
<detail-view v-if="detailViewVisible" :id="detailId" ref="viewRef" :patient-id-number="patientInfo.patientIdNumber"
:patient-id="patientInfo.patientId" is-search="" @detailViewVisible="detailViewVisible=false" />
</el-dialog>
</template>
@ -454,7 +339,8 @@ export default {
hisOperaId: '', // id
mainOperaEye: '', // ismaintrue
cutGradeId: '', // ID
remark: '',
patientRemark:'',
// remark: '',
examine: '' //
},
patientInfo: {}, //
@ -647,7 +533,7 @@ export default {
this.dataForm.narcosis = res.data.narcosis ? res.data.narcosis : '表面麻醉'
this.dataForm.narcosisDiscuss = res.data.narcosisDiscuss ? res.data.narcosisDiscuss : '无'
this.dataForm.operaDuration = res.data.operaDuration ? res.data.operaDuration : '10'
this.dataForm.remark = res.data.remark ? res.data.remark : ''
this.dataForm.patientRemark = res.data.patientRemark ? res.data.patientRemark : ''
res.data.narcosisCode ? this.dataForm.narcosisCode = res.data.narcosisCode : ''
this.patientInfo.operaTypeList ? this.patientInfo.operaTypeList.forEach(item => {
if (item.operaEntityList[0].cutGradeId) {
@ -780,7 +666,7 @@ export default {
// if (!this.patientInfo.checkDoctorInfo || !this.patientInfo.mainDoctorInfo) {
// return this.$message.error('')
// }
this.$refs.dataForm.validate(async(valid) => {
this.$refs.dataForm.validate(async (valid) => {
if (!valid) {
return false
}
@ -812,16 +698,28 @@ export default {
const url = this.title === '未预约' ? '/hz_quguang/opera/reservation/saveOperaReservation' : '/hz_quguang/opera/reservation/updateOperaReservation'
const { data: res } = await this.$http.post(url, params)
if (res.code === 0) {
this.$emit('refreshDataList')
this.visible = false
this.savePatientInfo()
} else {
this.$message.error(res.msg)
}
})
},
//
async savePatientInfo() {
const { data: res } = await this.$http.post('/hz_quguang/patient/manage/updatePatientRemark', {
patientIdNumber: this.patientInfo.patientIdNumber,
patientRemark: this.dataForm.patientRemark
})
if (res.code === 0) {
this.$emit('refreshDataList')
this.visible = false
} else {
this.$message.error(res.msg)
}
},
//
async saveOperaReservationForPatient() {
this.$refs.dataForm.validate(async(valid) => {
this.$refs.dataForm.validate(async (valid) => {
if (!valid) {
return false
}
@ -837,8 +735,7 @@ export default {
}
const { data: res } = await this.$http.post('/hz_quguang/opera/reservation/saveOperaReservationForPatient', params)
if (res.code === 0) {
this.$emit('refreshDataList')
this.visible = false
this.savePatientInfo()
} else {
this.$message.error(res.msg)
}
@ -1021,7 +918,8 @@ export default {
height: auto;
}
.form-one,
.form-two,.form-three {
.form-two,
.form-three {
border-bottom: 1px dashed #d6d6d6;
}
.form-one,
@ -1038,7 +936,6 @@ export default {
.searchForm {
display: flex;
.el-form {
}
.pidform {
display: flex;
@ -1050,17 +947,17 @@ export default {
}
.scheduled-order-patient {
.el-form-item {
margin: 8px 0;
}
.el-form-item--default,
.el-form-item__content,
.form-one,
.form-two,
.form-three {
display: flex;
align-items: center;
flex: 1;
}
margin: 8px 0;
}
.el-form-item--default,
.el-form-item__content,
.form-one,
.form-two,
.form-three {
display: flex;
align-items: center;
flex: 1;
}
}
.el-dialog__header {
@ -1071,7 +968,7 @@ export default {
.el-dialog__body {
padding: 0;
border-bottom: 1px solid #e8e8e8;
margin-top:6px;
margin-top: 6px;
}
.el-select {
display: block;

130
src/page-subspecialty/views/modules/surgicalManagement/operationOrder/scheduled-tab.vue

@ -1,6 +1,7 @@
<template>
<!-- 未预约 -->
<div class="no-scheduled-tab">
<div class="fixed print" v-print="printObj" v-if="status == 1 ">打印</div>
<div class="scheduled-patient-head">
<el-form :inline="true" :model="dataForm" class="demo-form-inline">
<div>
@ -48,10 +49,10 @@
</div>
<div class="scheduled-patient-content">
<el-table ref="multipleTable" :data="dataList" :height="tableHeight" tooltip-effect="dark" style="width: 100%"
:row-class-name="tableRowClassName" @selection-change="handleSelectionChange">
:row-class-name="tableRowClassName" @selection-change="handleSelectionChange" @sort-change="sortChange">
<template v-if="status == 1">
<el-table-column type="selection" width="55" />
<el-table-column label="日期" prop="appointmentDate" header-align="center" align="center" />
<el-table-column sortable="OP.APPOINTMENT_DATE" label="日期" prop="appointmentDate" header-align="center" align="center" />
<el-table-column label="时间" prop="appointmentTime" header-align="center" align="center" />
</template>
<el-table-column prop="patientId" label="PID" width="100px" />
@ -60,9 +61,9 @@
<el-table-column v-if="status !== 2" label="年龄" prop="patientAge" header-align="center" align="center" />
<el-table-column v-if="status !== 2" label="出生日期" prop="patientBirthday" header-align="center" align="center" />
<el-table-column v-if="status !== 2" label="电话号码" prop="patientPhone" header-align="center" align="center" />
<el-table-column v-if="status == 1 || status == 2" prop="mainDoctorName" label="主刀医生" header-align="center"
<el-table-column sortable="OP.MAIN_DOCTOR_NAME" v-if="status == 1 || status == 2" prop="mainDoctorName" label="主刀医生" header-align="center"
align="center" />
<el-table-column v-if="status == 2" label="手术日期" prop="appointmentDate" header-align="center" align="center" />
<el-table-column sortable="OP.APPOINTMENT_DATE" v-if="status == 2" label="手术日期" prop="appointmentDate" header-align="center" align="center" />
<el-table-column v-if="status == 2" label="手术时间" prop="appointmentTime" header-align="center" align="center" />
<el-table-column v-if="status == 2" label="操作时间" prop="yuyueDate" header-align="center" align="center" />
<!-- prefixName 前缀
@ -86,13 +87,13 @@
<div v-for="(item,index) in scope.row.operaTypeList" :key="index">
<span>{{ item.eyeType }} : </span>
<span v-for="(itex,i) in item.operaEntityList" :key="i">
{{ itex.operationName }}
{{ itex.bieMing ? itex.bieMing : itex.operationName}}
</span>
</div>
</template>
</el-table-column>
<el-table-column v-if="status == 1" label="麻醉方式" prop="narcosis" header-align="center" align="center" />
<el-table-column v-if="status == 1 || status == 2" label="手术备注" prop="remark" header-align="center" align="center" />
<el-table-column label="备注" prop="patientRemark" header-align="center" align="center" />
<!-- <el-table-column v-if="status == 2" label="核查日期" prop="checkDate" header-align="center" align="center" />
<el-table-column v-if="status == 2" label="核查时间" prop="checkTime" header-align="center" align="center" /> -->
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="180px">
@ -102,12 +103,11 @@
<span
v-if="status==0 && (positionName.join().includes('管理员') || positionName.join().includes('护士长') || positionName.join().includes('主任'))"
style="color: #fd4d4f; padding-right: 8px" class="call" @click="deleteScheduledClick(scope.row)">删除</span>
<!-- syncStatus:-----0:未同步1:已同步 0 的时候显示修改 1 的时候不显示 scope.row.syncStatus===0-->
<!-- && scope.row.syncStatus===0 -->
<template v-if="status==1 || status==2">
<span v-if="status==1" class="call"
@click="examineEditClick(scope.row)">{{ scope.row.status === 2 ? '修改' : '审核' }}</span>
<!-- syncStatus:-----0:未同步1:已同步 0 的时候显示修改 1 的时候不显示 scope.row.syncStatus===0-->
<span v-if="status==2 && scope.row.syncStatus===0" class="call"
@click="examineEditClick(scope.row)">修改</span>
<span v-if="status==1 || status==2" class="call" @click="examineEditClick(scope.row,'修改')">修改</span>
<span v-if="status==1" class="call" @click="examineEditClick(scope.row,'审核')">审核</span>
<span v-if="positionName.join().includes('护士长')" class="call" style="color: #fd4d4f; padding-right: 8px"
@click="cancleOrderHandle(scope.row)">取消</span>
<span class="call" style="color: #e6a23c; padding-right: 8px" @click="logHandle(scope.row)">日志</span>
@ -117,9 +117,35 @@
</el-table>
<el-pagination background layout="total,prev, pager, next" :total="total" :current-page.sync="page"
@current-change="pageCurrentChangeHandle" />
<scheduledOrder v-if="scheduledOrderVisible" ref="scheduledOrderRef" @refreshDataList="getDataList"
<scheduledOrder v-if="scheduledOrderVisible" ref="scheduledOrderRef" @refreshDataList="getDataListInfo"
@closeDialog="scheduledOrderVisible=false" />
</div>
<!-- 打印 -->
<div style="position: fixed;left: -10000px;">
<div v-if="status==1" id="printH5" style="width:900px;transform: scale(0.8);transform-origin: left top;">
<el-table :data="dataListPrint" tooltip-effect="dark">
<el-table-column label="日期" prop="appointmentDate" header-align="center" align="center" width="110" />
<el-table-column prop="patientId" label="PID" width="90" header-align="center" align="center" />
<el-table-column prop="patientName" label="姓名" header-align="center" align="center" width="110" />
<el-table-column label="性别" prop="patientSex" header-align="center" align="center" width="60" />
<el-table-column label="年龄" prop="patientAge" header-align="center" align="center" width="60" />
<el-table-column label="电话" prop="patientPhone" header-align="center" align="center" />
<el-table-column prop="mainDoctorName" label="主刀" header-align="center" align="center" />
<el-table-column label="拟手术" header-align="center" align="center">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.operaTypeList" :key="index">
<span>{{ item.eyeType }} : </span>
<span v-for="(itex,i) in item.operaEntityList" :key="i">
{{ itex.bieMing ? itex.bieMing : itex.operationName}}
</span>
</div>
</template>
</el-table-column>
<el-table-column label="备注" prop="patientRemark" header-align="center" align="center" />
</el-table>
</div>
</div>
<!-- 底部全选反选 -->
<checked-footer v-if="status == 1" ref="checkfooter" table-ref="multipleTable"
:current-table-list="currentTableList" :data-list="dataList">
@ -130,7 +156,7 @@
</div>
</div>
</checked-footer>
<el-dialog title="审核意见" :visible.sync="examineReviewVisible" width="50%">
<el-input v-model="examine" placeholder="请输入审核意见" type="textarea" :rows="5" />
<span slot="footer" class="dialog-footer">
@ -147,7 +173,7 @@
</div>
</el-dialog>
<logDIalog v-if="logVisible" ref="logRef" @closeDialog="logVisible=false"/>
<logDIalog v-if="logVisible" ref="logRef" @closeDialog="logVisible=false" />
</div>
</template>
<script>
@ -176,14 +202,19 @@ export default {
},
data() {
return {
printObj: {
id: 'printH5',
extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>,<style> #printId { width: 100%; !important;} <style>'
},
mixinViewModuleOptions: {
getDataListURL: '/hz_quguang/opera/patient/page',
getDataListIsPage: true,
createdIsNeed: false
createdIsNeed: false,
},
// limit:100,
scheduledOrderVisible: false,
examineReviewVisible: false,
logVisible:false,
logVisible: false,
nextVisitTime: [],
cheackAllFooter: false,
currentTableList: [],
@ -196,6 +227,7 @@ export default {
searchDate: '',
doctorCode: ''
},
dataListPrint: [],
examine: '',
examineStatus: '',
operaPatientIdArr: [],
@ -207,12 +239,13 @@ export default {
tableHeight: '500',
userData: {},
positionName: [],
logOrderList:{}
logOrderList: {}
}
},
created() {
this.dataForm.searchDate = this.status === 0 ? this.$moment().format('YYYY-MM-DD') : ''
this.getDataList()
this.getList()
this.getOperaList()
this.getDoctorList()
},
@ -230,6 +263,42 @@ export default {
this.tableHeight = this.status === 1 ? this.$(document).height() - this.$('.el-table').offset().top - 100 : this.$(document).height() - this.$('.el-table').offset().top - 60 // 80
}
},
getDataListInfo() {
this.getList()
this.getDataList()
},
//
getDataListInitial(text) {
this.page = 1
this.getList()
this.getDataList(text)
},
//
sortChange(e) {
// console.log(e)
this.orderType = e.order === 'descending' ? 'desc' : 'asc'
this.orderColumn = e.column.sortable
this.getDataListInfo()
},
//
async getList() {
console.log('getList刷新');
const { data: res } = await this.$http.get('/hz_quguang/opera/patient/page', {
params: {
orderType: this.orderType,
orderColumn: this.orderColumn,
page: this.page,
limit: 1000,
...this.dataForm
}
})
if (res.code === 0) {
this.dataListPrint = res.data.list
} else {
this.$message.error(res.msg)
}
},
//
// type 1 2
async getDoctorList() {
@ -276,6 +345,7 @@ export default {
type: 'success'
})
this.getDataList()
this.getList()
} else {
this.$message.error(res.msg)
}
@ -331,11 +401,12 @@ export default {
})
this.orderCancleVisible = false
this.getDataList()
this.getList()
} else {
this.$message.error(res.msg)
}
},
//
logHandle(scopeRow) {
this.logVisible = true
@ -345,10 +416,11 @@ export default {
})
},
//
examineEditClick(scopeRow) {
examineEditClick(scopeRow, text) {
//
// syncStatus0:1: 0 1
if (scopeRow.status === 2 || (scopeRow.syncStatus === 0 && this.status === 2)) {
// scopeRow.status 0 1 2
if (text === '修改') {
this.scheduledOrderVisible = true
this.$nextTick(() => {
this.$refs.scheduledOrderRef.title = '修改预约'
@ -384,6 +456,7 @@ export default {
})
if (res.code === 0) {
this.getDataList()
this.getList()
this.examineReviewVisible = false
} else {
this.$message.error(res.msg)
@ -399,6 +472,23 @@ export default {
padding-top: 25px;
margin-bottom: 60px;
}
.fixed {
position: fixed;
right: 10px;
z-index: 1;
writing-mode: tb-rl;
display: flex;
flex-direction: column;
justify-content: center;
width: 40px;
padding: 12px 6px;
cursor: pointer;
}
.print {
top: 53%;
background: #e6a23c;
color: #fff;
}
.form-one,
.form-two {
display: flex;

160
src/page-subspecialty/views/modules/systemManagement/formSet/addOperaSet.vue

@ -0,0 +1,160 @@
<template>
<el-dialog :title="currentList.bieMing + '默认值设置'" :visible.sync="visible" destroy-on-close width="70%"
@close="closeDialog" class="add-operaSet">
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="auto">
<el-form-item prop="title" label="默认值名称">
<el-input v-model="dataForm.title" placeholder="默认值名称" size="small" />
</el-form-item>
</el-form>
<operationRecord ref="operationRecordRef" page-title="表单设置"/>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="saveFormSetHandle"> </el-button>
</span>
</el-dialog>
</template>
<script>
import operationRecord from '@/components/H5form/operation-record'
export default {
components: {
operationRecord
},
props: {
pageTitle: {
type: String,
default: '表单设置'
},
currentList: {
type: Object,
default: () => { }
},
operaParamsList: {
type: Array,
default: () => []
}
},
data() {
return {
visible: false,
dataForm: {
title: ''
},
mrzFormValue: {}
}
},
computed: {
dataRule() {
return {
title: [
{ title: true, message: '请输入内容', trigger: 'blur' }
]
}
}
},
created() {
},
methods: {
init(item) {
this.visible = true
this.$nextTick(() => {
this.$refs.operationRecordRef.init()
this.$refs.operationRecordRef.setSaveEidtTitle('保存')
this.$refs.operationRecordRef.selectOperaChange('ssfsOd', 'ssfsBmOd', this.currentList)
item ? this.editFormSet(item) : ''
})
},
async editFormSet(item) {
const { data: res } = await this.$http.get('/hz_quguang/opera/record/temp/getInfo', {
params: {
id: item.id
}
})
if (res.code === 0) {
this.dataForm.title = res.data.title
this.$refs.operationRecordRef.editFormSet(res.data)
} else {
this.$message.error(res.msg)
}
},
//
async saveFormSetHandle() {
const formListValue = this.$refs.operationRecordRef.formListValue
console.log('formListValue', formListValue)
const osArr = JSON.parse(JSON.stringify(formListValue).replace(/Od/g, 'Os'))
console.log('osArr',osArr)
// return
this.mrzFormValue = { ...formListValue, ...osArr }
console.log('mrzFormValue',this.mrzFormValue)
// return
const { data: res } = await this.$http.post('/hz_quguang/opera/record/temp/saveOrUpdate', {
...this.mrzFormValue, ...this.dataForm
})
if (res.code === 0) {
this.$message({
message: '您已保存成功',
type: 'success'
})
this.visible = false
this.$emit('refreshDataList')
} else {
this.$message.error(res.msg)
}
},
//
closeDialog() {
this.$emit('closeDialog', false)
}
}
}
</script>
<style lang="scss" scoped>
.opera-record-set {
.form-set-left {
width: 300px;
height: calc(100vh - 50px - 50px);
min-width: 180px;
padding: 10px 0;
}
.form-set-left-content {
height: 100%;
overflow-x: auto;
}
.form-set-right-content {
flex: 1;
height: calc(100vh - 130px);
position: relative;
overflow-x: auto;
.formList-li {
padding: 10px;
border-bottom: 1px solid #ccc;
}
.li-content {
padding-left: 10px;
padding-top: 10px;
}
}
.formList-li:hover {
background: #f5f7fa;
}
.left-title {
padding-left: 10px;
font-size: 18px;
font-weight: 700;
}
.title-w {
font-weight: 700;
font-size: 18px;
}
.form-set-save {
position: fixed;
right: 30px;
bottom: 30px;
}
.el-form-item {
margin-bottom: 0 !important;
}
}
</style>

499
src/page-subspecialty/views/modules/systemManagement/formSet/operaRecordSet.vue

@ -3,220 +3,217 @@
<div v-if="pageTitle=='表单设置'" class="margin-bottom-10">
手术方式
<el-select v-model="operaValue" placeholder="请选择手术方式">
<el-option
v-for="(item,index) in operaList"
:key="index"
:label="item.bieMing"
:value="item.bieMing"
@click.native="selectClick(item)"
/>
<el-option v-for="(item,index) in operaList" :key="index" :label="item.bieMing" :value="item.bieMing"
@click.native="selectClick(item)" />
</el-select>
</div>
<div class="form-set-right-content">
<div v-if="mrzOperaNameList.length>0" class="formList">
<div v-for="(item,index) in mrzOperaNameList" :key="index" class="formList-li" @dblclick="yinruMrzClick(item)">
<p class="title-w">{{ item.title }}</p>
<div class="flex">
<div class="li-content">
<div v-show="item.sslxOd" class="margin-bottom-10 width-160 left">
<span>手术类型</span>
<span>{{ item.sslxOd }}</span>
</div>
<div v-show="item.msOd" class="margin-bottom-10 width-160 left">
<span>模式</span>
<span>{{ item.msOd }}</span>
</div>
<!-- 光学/治疗区直径 -->
<div v-show="item.gxOd || item.zlqzjOd" class="margin-bottom-10 width-90 left">
<span>光学/治疗区直径</span>
{{ item.gxOd ? item.gxOd : '-' }} / {{ item.zlqzjOd ? item.zlqzjOd : '-' }} mm
</div>
<!--帽厚度 -->
<div v-show="item.mhdOd" class="margin-bottom-10 width-160 left">
<span>帽厚度</span>
<span>{{ item.mhdOd }}</span> μm
</div>
<!-- 吸引环参数 -->
<div
v-show="item.xyhOd"
class="margin-bottom-10 width-160 left"
>
<span>吸引环参数</span>
<span>{{ item.xyhOd }}</span> mm
</div>
<!--瓣厚度 -->
<div
v-show="item.bhdOd"
class="margin-bottom-10 width-160 left"
>
<span>瓣厚度</span>
<span>{{ item.bhdOd }}</span> μm
</div>
<!-- 切削深度 -->
<div v-show="item.xqsdOd" class="margin-bottom-10 width-120 left">
<span>切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 剩余基质厚度 -->
<div v-show="item.syjzhdOd" class="margin-bottom-10 width-120 left">
<span>剩余基质厚度</span>
<span>{{ item.syjzhdOd }}</span> μm
</div>
<!-- 上皮中央/周边厚度 -->
<div v-show="item.spzyOd || item.zbhdOd" class="margin-bottom-10 width-100 left">
<span>上皮中央/周边厚度</span>
<span>{{ item.spzyOd ? item.spzyOd : '-' }} / {{ item.zbhdOd ? item.zbhdOd : '-' }}</span> μm
</div>
<!-- 总切削深度 -->
<div v-show="item.xqsdOd" class="margin-bottom-10 width-120 left">
<span>总切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 移心量 -->
<div v-show="mrzFormValue.yxlOd1 || item.yxlOd2" class="margin-bottom-10 width-100 left">
<span>移心量</span>
r <span>{{ mrzFormValue.yxlOd1 ? mrzFormValue.yxlOd1 : '-' }}</span> mm/Angle
<span>{{ item.yxlOd2 ? item.yxlOd2 : '-' }}</span> °
</div>
<!-- SCC -->
<div v-show="item.sccOd" class="margin-bottom-10 width-160 left">
<span>SCC</span>
<span>{{ item.sccOd }}</span> °
</div>
<!-- MCC -->
<div
v-show="item.mmcOd"
class="margin-bottom-10 width-160 left"
>
<span>MMC</span>
<span>{{ item.mmcOd }}</span> s
</div>
<!-- Tr -->
<div
v-show="item.trOd"
class="margin-bottom-10 width-160 left"
>
<span>Tr</span>
<span>{{ item.trOd }}</span> J/cm2
</div>
<!-- Ts -->
<div
v-show="item.tsOd"
class="margin-bottom-10 width-160 left"
>
<span>Ts</span>
<span>{{ item.tsOd }}</span> s
</div>
<!-- ADD -->
<div v-show="item.addOd" class="margin-bottom-10 width-160 left">
<span>ADD</span>
<span>{{ item.addOd }}</span> D
</div>
<!-- 核黄素类型 -->
<div v-show="item.hhslxOd" class="margin-bottom-10 width-120 left">
<span>核黄素类型</span>
<span>{{ item.hhslxOd }}</span>
</div>
<!-- 渗透时间 -->
<div v-show="item.stsjOd" class="margin-bottom-10 width-120 left">
<span>渗透时间</span>
<span>{{ item.stsjOd }}</span> min
</div>
<!-- 渗透评估 -->
<div v-show="item.stpgOd" class="margin-bottom-10 width-120 left">
<span>渗透评估</span>
<span>{{ item.stpgOd }}</span>
</div>
<!-- 角膜厚度 -->
<div v-show="item.jmhdOd1 || item.jmhdOd2 || item.jmhdOd3 || item.jmhdOd4" class="margin-bottom-10 width-60 left">
<span>角膜厚度</span>
<span>{{ item.jmhdOd1 ? item.jmhdOd1 : '-' }}</span> /
<span>{{ item.jmhdOd2 ? item.jmhdOd2 : '-' }}</span> /
<span>{{ item.jmhdOd3 ? item.jmhdOd3 : '-' }}</span> /
<span>{{ item.jmhdOd4 ? item.jmhdOd4 : '-' }}</span> μm
</div>
<!-- 角膜厚度照射后 -->
<div v-show="item.jmhdzshOd" class="margin-bottom-10 width-160 left">
<span>角膜厚度照射后</span>
<span>{{ item.jmhdzshOd }}</span> μm
</div>
<!-- 照射模式 -->
<div v-show="item.zsmsOd" class="margin-bottom-10 width-160 left">
<span>照射模式</span>
<span>{{ item.zsmsOd }}</span>
</div>
<!-- 照射直径 -->
<div v-show="item.zszjOd " class="margin-bottom-10 width-160 left">
<span>照射直径</span>
<span>{{ item.zszjOd }}</span> mm
</div>
<!-- 辐照度 -->
<div v-show="item.fzdOd" class="margin-bottom-10 width-160 left">
<span>辐照度</span>
<span>{{ item.fzdOd }}</span> mW/cm
</div>
<!-- 照射时间 -->
<div v-show="item.zssjOd1 || item.zssjOd2" class="margin-bottom-10 width-120 left">
<span>照射时间</span>
<span>{{ item.zssjOd1 ? item.zssjOd1 : '-' }}</span> min
<span>{{ item.zssjOd2 ? item.zssjOd2 : '-' }}</span> s
</div>
<!-- 总能量 -->
<div v-show="item.znlOd" class="margin-bottom-10 width-160 left">
<span>总能量</span>
<span>{{ item.znlOd }}</span> J/cm
</div>
<!-- 术中情况 -->
<div v-show="item.szqkOd" class="margin-bottom-10 width-240 left">
<span>术中情况</span>
<span>{{ item.szqkOd }}</span>
</div>
<!-- 手术仪器 -->
<div v-show="item.ssyqOd" class="margin-bottom-10 left flex-2 width-160">
<span>手术仪器</span>
<span>{{ item.ssyqOd }}</span>
<el-tabs v-model="activeName">
<el-tab-pane label="默认值配置" name="1">
<div v-if="mrzOperaNameList.length>0" class="formList">
<div v-for="(item,index) in mrzOperaNameList" :key="index" class="formList-li"
@dblclick="yinruMrzClick(item)">
<p class="title-w">{{ item.title }}</p>
<div class="flex">
<div class="li-content">
<div v-for="(iten,index) in operaParamsList" :key="index" class="sortClass">
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='nomo' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>nomo</span>
<span>{{ item.nomoOd1 ? item.nomoOd1 : '-' }} / {{ item.nomoOd2 ? item.nomoOd2 : '-' }}</span>
</div>
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='sslx' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>手术类型</span>
<span>{{ item.sslxOd }}</span>
</div>
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='moshi' && iten.checked"
class="margin-bottom-10 width-160 left">
<span>模式</span>
<span>{{ item.msOd }}</span>
</div>
<!-- 光学/治疗区直径 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='gxzlqzj' && iten.checked" class="margin-bottom-10 width-90 left">
<span>光学/治疗区直径</span>
{{ item.gxOd ? item.gxOd : '-' }} / {{ item.zlqzjOd ? item.zlqzjOd : '-' }} mm
</div>
<!--帽厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='mhoudu' && iten.checked" class="margin-bottom-10 width-160 left">
<span>帽厚度</span>
<span>{{ item.mhdOd }}</span> μm
</div>
<!-- 吸引环参数 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='xyhcs' && iten.checked" class="margin-bottom-10 width-160 left">
<span>吸引环参数</span>
<span>{{ item.xyhOd }}</span> mm
</div>
<!--瓣厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='bhoudu' && iten.checked" class="margin-bottom-10 width-160 left">
<span>瓣厚度</span>
<span>{{ item.bhdOd }}</span> μm
</div>
<!-- 切削深度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='qxsd' && iten.checked" class="margin-bottom-10 width-120 left">
<span>切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 剩余基质厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='syjzhd' && iten.checked" class="margin-bottom-10 width-120 left">
<span>剩余基质厚度</span>
<span>{{ item.syjzhdOd }}</span> μm
</div>
<!-- 上皮中央/周边厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='spzyzbhd' && iten.checked" class="margin-bottom-10 width-100 left">
<span>上皮中央/周边厚度</span>
<span>{{ item.spzyOd ? item.spzyOd : '-' }} / {{ item.zbhdOd ? item.zbhdOd : '-' }}</span> μm
</div>
<!-- 总切削深度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zqxsd' && iten.checked" class="margin-bottom-10 width-120 left">
<span>总切削深度</span>
<span>{{ item.xqsdOd }}</span> μm
</div>
<!-- 移心量 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='yxinl' && iten.checked" class="margin-bottom-10 width-100 left">
<span>移心量</span>
r <span>{{ mrzFormValue.yxlOd1 ? mrzFormValue.yxlOd1 : '-' }}</span> mm/Angle
<span>{{ item.yxlOd2 ? item.yxlOd2 : '-' }}</span> °
</div>
<!-- MCC -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='mmc' && iten.checked" class="margin-bottom-10 width-160 left">
<span>MMC</span>
<span>{{ item.mmcOd }}</span> s
</div>
<!-- Tr -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='tr' && iten.checked" class="margin-bottom-10 width-160 left">
<span>Tr</span>
<span>{{ item.trOd }}</span> J/cm2
</div>
<!-- Ts -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='ts' && iten.checked" class="margin-bottom-10 width-160 left">
<span>Ts</span>
<span>{{ item.tsOd }}</span> s
</div>
<!-- ADD -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='add' && iten.checked" class="margin-bottom-10 width-160 left">
<span>ADD</span>
<span>{{ item.addOd }}</span> D
</div>
<!-- 核黄素类型 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='hhslx' && iten.checked" class="margin-bottom-10 width-120 left">
<span>核黄素类型</span>
<span>{{ item.hhslxOd }}</span>
</div>
<!-- 渗透时间 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='stsj' && iten.checked" class="margin-bottom-10 width-120 left">
<span>渗透时间</span>
<span>{{ item.stsjOd }}</span> min
</div>
<!-- 渗透评估 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='stpg' && iten.checked" class="margin-bottom-10 width-120 left">
<span>渗透评估</span>
<span>{{ item.stpgOd }}</span>
</div>
<!-- 角膜厚度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='jmhd' && iten.checked"
class="margin-bottom-10 width-60 left">
<span>角膜厚度</span>
<span>{{ item.jmhdOd1 ? item.jmhdOd1 : '-' }}</span> /
<span>{{ item.jmhdOd2 ? item.jmhdOd2 : '-' }}</span> /
<span>{{ item.jmhdOd3 ? item.jmhdOd3 : '-' }}</span> /
<span>{{ item.jmhdOd4 ? item.jmhdOd4 : '-' }}</span> μm
</div>
<!-- 角膜厚度照射后 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='jmhdzsh' && iten.checked" class="margin-bottom-10 width-160 left">
<span>角膜厚度照射后</span>
<span>{{ item.jmhdzshOd }}</span> μm
</div>
<!-- 照射模式 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zsms' && iten.checked" class="margin-bottom-10 width-160 left">
<span>照射模式</span>
<span>{{ item.zsmsOd }}</span>
</div>
<!-- 照射直径 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zszj' && iten.checked" class="margin-bottom-10 width-160 left">
<span>照射直径</span>
<span>{{ item.zszjOd }}</span> mm
</div>
<!-- 辐照度 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='fzhaodu' && iten.checked" class="margin-bottom-10 width-160 left">
<span>辐照度</span>
<span>{{ item.fzdOd }}</span> mW/cm
</div>
<!-- 照射时间 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='zssj' && iten.checked" class="margin-bottom-10 width-120 left">
<span>照射时间</span>
<span>{{ item.zssjOd1 ? item.zssjOd1 : '-' }}</span> min
<span>{{ item.zssjOd2 ? item.zssjOd2 : '-' }}</span> s
</div>
<!-- 总能量 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='znengl' && iten.checked" class="margin-bottom-10 width-160 left">
<span>总能量</span>
<span>{{ item.znlOd }}</span> J/cm
</div>
<!-- 术中情况 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='szqk' && iten.checked" class="margin-bottom-10 width-240 left">
<span>术中情况</span>
<span>{{ item.szqkOd }}</span>
</div>
<!-- 手术仪器 -->
<div :style="{ order: iten.sort }" v-show="iten.bieMing==='ssyq' && iten.checked" class="margin-bottom-10 left flex-2 width-160">
<span>手术仪器</span>
<span>{{ item.ssyqOd }}</span>
</div>
</div>
</div>
<span v-if="pageTitle=='表单设置'" class="buttonli">
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="editAddHandle(item)">编辑</span>
<span style="color: #ff4d4f;" class="cursor" @click="deleteFormSet(item)">删除</span>
</span>
<span v-else class="buttonli">
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="yinruMrzClick(item)">引入</span>
</span>
</div>
</div>
<span v-if="pageTitle=='表单设置'" class="buttonli">
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="editAddHandle(item)">编辑</span>
<span style="color: #ff4d4f;" class="cursor" @click="deleteFormSet(item)">删除</span>
</span>
<span v-else class="buttonli">
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="yinruMrzClick(item)">引入</span>
</div>
<img v-if="mrzOperaNameList.length <=0" src="@/assets/img/nodata.png" alt="" class="nodata" width="500px">
</el-tab-pane>
<el-tab-pane label="显示配置" name="2">
<div class="formList-li flex" v-if="operaParamsList">
<div>
<p v-for="(item,index) in operaParamsList" :key="index">
<span v-if="item.checked">{{item.name}}</span>
</p>
</div>
<span>
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="showConfigEditAddHandle">编辑</span>
<span style="color: #ff4d4f;" class="cursor" @click="deleteShowConfig">删除</span>
</span>
</div>
</div>
</div>
<img v-if="mrzOperaNameList.length <=0" src="@/assets/img/nodata.png" alt="" class="nodata" width="500px">
<img v-else src="@/assets/img/nodata.png" alt="" class="nodata" width="500px">
</el-tab-pane>
</el-tabs>
<!-- <el-button type="primary" class="form-set-save" @click="saveMrzHandle">保存</el-button> -->
<el-button v-if="pageTitle=='表单设置'" type="primary" class="form-set-save" icon="el-icon-plus" circle @click="editAddHandle()" />
<el-button v-if="pageTitle=='表单设置' && activeName == 1" type="primary" class="form-set-save" icon="el-icon-plus"
circle @click="editAddHandle()" />
<el-button v-if="pageTitle=='表单设置' && activeName == 2 && !operaParamsList" type="primary" class="form-set-save"
icon="el-icon-plus" circle @click="showConfigEditAddHandle()" />
</div>
<el-dialog
v-if="addFormSetVisible"
:title="currentList.bieMing + '默认值设置'"
:visible.sync="addFormSetVisible"
width="70%"
@close="closeDialog"
>
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="auto">
<el-form-item prop="title" label="默认值名称">
<el-input v-model="dataForm.title" placeholder="默认值名称" size="small" />
</el-form-item>
</el-form>
<operationRecord ref="operationRecordRef" page-title="表单设置" />
<span slot="footer" class="dialog-footer">
<el-button @click="addFormSetVisible = false"> </el-button>
<el-button type="primary" @click="saveFormSetHandle"> </el-button>
</span>
</el-dialog>
<addOperaSet ref="addOperaSetRef" v-if="addFormSetVisible" @refreshDataList="getFormList" :currentList="currentList"
:pageTitle="pageTitle" @closeDialog="addFormSetVisible=false" :operaParamsList="operaParamsList"></addOperaSet>
<showConfig ref="showConfigRef" v-if="showConfigVisible" @refreshDataList="getShowConfig" :currentList="currentList"
:pageTitle="pageTitle" @closeDialog="showConfigVisible=false"></showConfig>
</div>
</template>
<script>
import operationRecord from '@/components/H5form/operation-record'
import addOperaSet from './addOperaSet.vue'
import showConfig from './showConfig.vue'
import draggable from 'vuedraggable'
export default {
components: {
operationRecord
draggable,
addOperaSet,
showConfig
},
props: {
pageTitle: {
@ -227,6 +224,7 @@ export default {
data() {
return {
addFormSetVisible: false,
showConfigVisible: false,
currentList: {},
dataForm: {
title: ''
@ -237,6 +235,8 @@ export default {
mrzOperaNameList: [],
eyeYrFlag: 0,
operaValue: '',
activeName: '1',
operaParamsList: {}
}
},
computed: {
@ -257,6 +257,7 @@ export default {
this.defaultActive = currentOpera.bieMing
this.currentList = currentOpera
this.getFormList()
this.getShowConfig()
},
handleClick(tab, event) {
console.log(tab, event)
@ -270,12 +271,13 @@ export default {
this.currentList = res.data[0]
this.operaValue = res.data[0].bieMing
this.getFormList()
this.getShowConfig()
}
} else {
this.$message.error(res.msg)
}
},
//
//
async getFormList() {
const { data: res } = await this.$http.get('/hz_quguang/opera/record/temp/getListByName', {
params: {
@ -288,63 +290,68 @@ export default {
this.$message.error(res.msg)
}
},
//
editAddHandle(item) {
this.addFormSetVisible = true
this.$nextTick(() => {
this.$refs.operationRecordRef.init()
this.$refs.operationRecordRef.setSaveEidtTitle('保存')
this.$refs.operationRecordRef.selectOperaChange('ssfsOd', 'ssfsBmOd', this.currentList)
item ? this.editFormSet(item) : ''
})
},
async editFormSet(item) {
const { data: res } = await this.$http.get('/hz_quguang/opera/record/temp/getInfo', {
//
async getShowConfig() {
const { data: res } = await this.$http.get('/hz_quguang/opera/record/conf/getInfo', {
params: {
id: item.id
operaName: this.currentList.operaName
}
})
if (res.code === 0) {
this.dataForm.title = res.data.title
this.$refs.operationRecordRef.editFormSet(res.data)
if (res.data) {
this.operaParamsList = res.data.operaParamsList
this.operaParamsList.forEach((item, index) => {
item.checked = JSON.parse(item.checked)
})
} else {
this.operaParamsList = null
}
} else {
this.$message.error(res.msg)
}
},
//
deleteShowConfig() {
this.$confirmFun('您确定要删除配置吗?删除后手术记录的此手术方式则不再展示内容!', '您已取消删除').then(async () => {
const { data: res } = await this.$http.delete(`/hz_quguang/opera/record/conf/delete/${this.currentList.operaName}`)
if (res.code === 0) {
this.$message({
message: '您已删除成功',
type: 'success'
})
this.getShowConfig()
} else {
this.$message.error(res.msg)
}
})
},
//
editAddHandle(item) {
this.addFormSetVisible = true
this.$nextTick(() => {
this.$refs.addOperaSetRef.init(item)
})
},
showConfigEditAddHandle() {
this.showConfigVisible = true
this.$nextTick(() => {
this.$refs.showConfigRef.init()
})
},
//
selectClick(item) {
console.log(item)
this.currentList = item
this.getFormList()
this.getShowConfig()
},
//
yinruMrzClick(item) {
this.$emit('yinruMrzClick', item)
},
//
async saveFormSetHandle() {
const formListValue = this.$refs.operationRecordRef.formListValue
console.log('formListValue', formListValue)
const osArr = JSON.parse(JSON.stringify(formListValue).replace(/Od/g, 'Os'))
this.mrzFormValue = { ...formListValue, ...osArr }
console.log(this.mrzFormValue)
const { data: res } = await this.$http.post('/hz_quguang/opera/record/temp/saveOrUpdate', {
...this.mrzFormValue, ...this.dataForm
})
if (res.code === 0) {
this.$message({
message: '您已保存成功',
type: 'success'
})
this.addFormSetVisible = false
this.getFormList()
} else {
this.$message.error(res.msg)
}
},
//
deleteFormSet(item) {
this.$confirmFun('您确定要删除此默认值设置吗', '您已取消删除').then(async() => {
this.$confirmFun('您确定要删除此默认值设置吗', '您已取消删除').then(async () => {
const { data: res } = await this.$http.delete('/hz_quguang/opera/record/temp', {
params: {
id: item.id
@ -360,10 +367,6 @@ export default {
this.$message.error(res.msg)
}
})
},
closeDialog() {
console.log(123)
this.addFormSetVisible = false
}
}
}
@ -395,8 +398,8 @@ export default {
}
}
.formList-li:hover {
background: #f5f7fa;
}
background: #f5f7fa;
}
.left-title {
padding-left: 10px;
font-size: 18px;
@ -417,4 +420,12 @@ export default {
}
}
</style>
<style lang="scss">
.opera-record-set {
.el-tabs__header,
.is-top {
margin: 0 !important;
}
}
</style>

309
src/page-subspecialty/views/modules/systemManagement/formSet/showConfig.vue

@ -0,0 +1,309 @@
<template>
<el-dialog :title="currentList.bieMing + '显示项设置'" :visible.sync="visible" destroy-on-close width="30%"
@close="closeDialog" class="add-operaSet">
<draggable tag="ul" :list="operaParamsList" class="list-group" @end="onDragEnd">
<el-checkbox v-for="(item,index) in operaParamsList" :key="index" :label="item.name" v-model="item.checked">
{{item.name}}
</el-checkbox>
</draggable>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button>
<el-button type="primary" @click="saveOperaRecordConfig"> </el-button>
</span>
</el-dialog>
</template>
<script>
import draggable from 'vuedraggable'
export default {
components: {
draggable
},
props: {
pageTitle: {
type: String,
default: '表单设置'
},
currentList: {
type: Object,
default: () => { }
},
},
data() {
return {
visible: false,
dataForm: {
title: ''
},
operaParamsList: [{
name: 'nomo',
bieMing:'nomo',
sortIndex: 1,
checked: false,
}, {
name: '手术类型',
bieMing:'sslx',
sortIndex: 2,
checked: false,
}, {
name: '模式',
bieMing:'moshi',
sortIndex: 3,
checked: false,
}, {
name: '矫正度数',
bieMing:'jzds',
sortIndex: 4,
checked: false,
}, {
name: '光学/治疗区直径',
bieMing:'gxzlqzj',
sortIndex: 5,
checked: false,
}, {
name: '帽厚度',
bieMing:'mhoudu',
sortIndex: 6,
checked: false,
}, {
name: '吸引环参数',
bieMing:'xyhcs',
sortIndex: 7,
checked: false,
}, {
name: '瓣厚度',
bieMing:'bhoudu',
sortIndex: 8,
checked: false,
}, {
name: '切削深度',
bieMing:'qxsd',
sortIndex: 9,
checked: false,
}, {
name: '剩余基质厚度',
bieMing:'syjzhd',
sortIndex: 10,
checked: false,
}, {
name: '上皮中央/周边厚度',
bieMing:'spzyzbhd',
sortIndex: 11,
checked: false,
}, {
name: '总切削深度',
bieMing:'zqxsd',
sortIndex: 12,
checked: false,
}, {
name: '移心量',
bieMing:'yxinl',
sortIndex: 13,
checked: false,
}, {
name: 'MMC',
bieMing:'mmc',
sortIndex: 14,
checked: false,
}, {
name: 'Tr',
bieMing:'tr',
sortIndex: 15,
checked: false,
}, {
name: 'Ts',
bieMing:'ts',
sortIndex: 16,
checked: false,
}, {
name: 'ADD',
bieMing:'add',
sortIndex: 17,
checked: false,
}, {
name: '核黄素类型',
bieMing:'hhslx',
sortIndex: 18,
checked: false,
}, {
name: '渗透时间',
bieMing:'stsj',
sortIndex: 19,
checked: false,
}, {
name: '渗透评估',
bieMing:'stpg',
sortIndex: 20,
checked: false,
}, {
name: '角膜厚度',
bieMing:'jmhd',
sortIndex: 21,
checked: false,
}, {
name: '角膜厚度(照射后)',
bieMing:'jmhdzsh',
sortIndex: 22,
checked: false,
}, {
name: '照射模式',
bieMing:'zsms',
sortIndex: 23,
checked: false,
}, {
name: '照射直径',
bieMing:'zszj',
sortIndex: 24,
checked: false,
}, {
name: '辐照度',
bieMing:'fzhaodu',
sortIndex: 25,
checked: false,
}, {
name: '照射时间',
bieMing:'zssj',
sortIndex: 26,
checked: false,
}, {
name: '总能量',
bieMing:'znengl',
sortIndex: 27,
checked: false,
}, {
name: '术中情况',
bieMing:'szqk',
sortIndex: 28,
checked: false,
}, {
name: '手术仪器',
bieMing:'ssyq',
sortIndex: 29,
checked: false,
}],
}
},
computed: {
dataRule() {
return {
title: [
{ title: true, message: '请输入内容', trigger: 'blur' }
]
}
}
},
created() {
},
methods: {
init() {
this.visible = true
this.$nextTick(() => {
this.getInfo()
})
},
//
getInfo() {
this.$http.get(`/hz_quguang/opera/record/conf/getInfo`, {
params: {
operaName: this.currentList.operaName,
}
}).then(({ data: res }) => {
if (res.code === 0) {
if (res.data) {
this.operaParamsList = res.data.operaParamsList
this.operaParamsList.forEach((item, index) => {
item.checked = JSON.parse(item.checked)
})
}
}
else {
this.$message.error(res.msg)
}
}).catch(() => { })
},
// sort
onDragEnd(evt) {
console.log('evt', evt);
this.operaParamsList.forEach((item, index) => {
item.sortIndex = index + 1
})
console.log('this.operaParamsList', this.operaParamsList);
},
//
async saveOperaRecordConfig() {
let operaParamsList = JSON.parse(JSON.stringify(this.operaParamsList))
operaParamsList.forEach((item, index) => {
item.checked = JSON.stringify(item.checked)
})
// type 1 2
const { data: res } = await this.$http.post('/hz_quguang/opera/record/conf/save', {
operaName: this.currentList.operaName,
operaParamsList: operaParamsList
})
if (res.code === 0) {
this.visible = false
this.$emit('refreshDataList')
} else {
this.$message.error(res.msg)
}
},
//
closeDialog() {
this.$emit('closeDialog', false)
}
}
}
</script>
<style lang="scss" scoped>
.opera-record-set {
.form-set-left {
width: 300px;
height: calc(100vh - 50px - 50px);
min-width: 180px;
padding: 10px 0;
}
.form-set-left-content {
height: 100%;
overflow-x: auto;
}
.form-set-right-content {
flex: 1;
height: calc(100vh - 130px);
position: relative;
overflow-x: auto;
.formList-li {
padding: 10px;
border-bottom: 1px solid #ccc;
}
.li-content {
padding-left: 10px;
padding-top: 10px;
}
}
.formList-li:hover {
background: #f5f7fa;
}
.left-title {
padding-left: 10px;
font-size: 18px;
font-weight: 700;
}
.title-w {
font-weight: 700;
font-size: 18px;
}
.form-set-save {
position: fixed;
right: 30px;
bottom: 30px;
}
.el-form-item {
margin-bottom: 0 !important;
}
.el-checkbox {
display: block;
}
}
</style>

3
src/page-subspecialty/views/modules/systemManagement/team/team-add-or-update.vue

@ -61,6 +61,9 @@
/>
<p style="color:red;">( 选择角色后为其分配不同的菜单权限 roleList )</p>
</el-form-item>
<!-- <el-form-item label="排序:" label-width="100px" prop="DOCTOR SORT">
<el-input v-model="dataForm.DOCTOR_SORT" placeholder="请排序" />
</el-form-item> -->
<el-form-item label="签名:" label-width="100px" prop="signImgBase" class="sign-form">
<div v-if="dataForm.signImgBase" class="img-div">
<img :src="dataForm.signImgBase" alt="" height="70px" @click="handlePictureCardPreview">

2
src/page-subspecialty/views/pages/luyin.vue

@ -23,7 +23,7 @@
</template>
<script>
import lamejs from 'lamejs'
// import lamejs from 'lamejs'
export default {
data() {
return {

39
vue.config.js

@ -6,7 +6,7 @@
const path = require('path')
// const defaultSettings = require('./src/settings.js')
const CopyPlugin = require('copy-webpack-plugin')
const CompressionPlugin = require('compression-webpack-plugin');
function resolve(dir) {
return path.join(__dirname, dir)
}
@ -14,7 +14,7 @@ function resolve(dir) {
module.exports = {
parallel: false,
publicPath: '/', // 其他正式环境
// publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', //公司内部环境
// publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', //公司内部环境打开
assetsDir: 'static',
chainWebpack: config => {
const svgRule = config.module.rule('svg')
@ -74,6 +74,26 @@ module.exports = {
}
},
configureWebpack: {
optimization: {
splitChunks: {
chunks: 'all', // 所有模块都参与分割
cacheGroups: {
vendors: {
name: 'chunk-vendors',
test: /[\\/]node_modules[\\/]/,
priority: -10,
chunks: 'initial'
},
common: {
name: 'chunk-common',
minChunks: 2,
priority: -20,
chunks: 'initial',
reuseExistingChunk: true
}
}
}
},
resolve: {
alias: {
'vue': 'vue/dist/vue.esm.js',
@ -85,9 +105,18 @@ module.exports = {
// new CopyPlugin([
// { from: path.resolve(__dirname, './static'), to: 'static' }
// ])
new CopyPlugin({ patterns: [
{ from: path.resolve(__dirname, 'static'), to: 'static' }
] })
new CopyPlugin({
patterns: [
{ from: path.resolve(__dirname, 'static'), to: 'static' }
]
}),
new CompressionPlugin({
test: /\.(js|css|html|svg)$/, // 压缩类型
threshold: 10240, // 超过 10kb 的文件才压缩
minRatio: 0.8, // 压缩比大于 0.8 才压缩
algorithm: 'gzip',
deleteOriginalAssets: false // 保留源文件
})
],
// externals: {
// 'pdfjs-dist': 'pdfjsLib'

Loading…
Cancel
Save