47 changed files with 5967 additions and 2073 deletions
@ -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": {} |
|||
} |
|||
} |
|||
} |
File diff suppressed because it is too large
@ -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, // 0:未确认,1:已确认 |
|||
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.data:病历最新的记录Id |
|||
this.$message({ |
|||
message: '您已保存成功', |
|||
type: 'success' |
|||
}) |
|||
this.getInfo() |
|||
// res.data:病历最新的记录Id |
|||
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> |
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -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> |
@ -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> |
@ -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> |
@ -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> |
|||
|
@ -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> |
|||
|
Loading…
Reference in new issue