K2
-
+
/
K1
- @
-
+ @
+
ACD
@@ -1976,6 +1976,8 @@ import dzblLook from '@/components/H5form/dzblLook'
import dzblLookPdf from '@/components/H5form/dzblLookPdf'
import intoTemplate from '@/components/H5form/intoTemplate'
import bldb from '@/components/H5formOhter/bldb'
+import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
+import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
imgEditor,
@@ -1986,7 +1988,7 @@ export default {
bldb,
intoTemplate
},
- mixins: [qgdzbl, base64Img, signGet, publicFile, refreshDate, clearContent],
+ mixins: [qgdzbl, base64Img, signGet, publicFile, refreshDate, clearContent, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@@ -2510,7 +2512,7 @@ export default {
},
created() {
// 获取ca开启状态 判断是否启用“确认CA”按钮
- this.getSendCaStatus(this.archiveCaseCRFItem.formName)
+ this.getSendCaStatus()
this.getOperaList()
},
mounted() {
@@ -2557,7 +2559,7 @@ export default {
}
})
if (res.code === 0) {
- this.rowShow()
+ this.rowShow(res.data)
this.$emit('load')
if (this.archiveCaseCRFItem.id === res.data.formId) {
Object.keys(res.data).forEach((item) => {
@@ -2689,14 +2691,16 @@ export default {
// 是否显示对比敏感度
checkDbmgd() {
console.log(this.formListValue.isShowdbmgd);
- this.rowShow()
+ this.rowShow(this.formListValue)
},
// 行显示隐藏
rowShow(data) {
let tableData = JSON.parse(JSON.stringify(this.tableData))
- if (this.formListValue.isShowdbmgd) {
+ if (data.isShowdbmgd) {
this.tableDataNew = this.tableData
+ console.log('行显示隐藏1');
} else {
+ console.log('行显示隐藏2');
this.tableDataNew = tableData.filter(item => item.name !== 'dbmgdAn' && item.name !== 'dbmgdDi' && item.name !== 'dbmgdGao' && item.name !== 'dbmgdLiang')
}
},
@@ -2881,10 +2885,12 @@ export default {
// res.data:病历最新的记录Id
this.blRecordid = res.data
this.$message({
- message: '表单已保存',
+ message: '您已保存成功',
type: 'success'
})
this.getInfo()
+ // res.data:病历最新的记录Id
+ this.$refs.blLookRefPdf.init(res.data, 'savepdf')
} else {
this.$message.error(res.msg)
}
@@ -2901,7 +2907,18 @@ export default {
if ((this.archiveCaseCRFItem.formName.includes('复诊') && this.formListValue.zsandBs && this.formListValue.zd && this.formListValue.clyj) ||
!this.archiveCaseCRFItem.formName.includes('复诊') && (this.formListValue.jsEyetypeRadio || this.formListValue.jsTimeInput) && this.formListValue.zd && this.formListValue.clyj) {
this.$confirmFun('CA确认将会把最新一次标准病历文书发送至ca签名,您是否确认继续此操作?', '您已取消CA确认').then(() => {
- this.$refs.blLookRefPdf.init(this.formListValue.recordId, '1')
+ // this.$refs.blLookRefPdf.init(this.formListValue.recordId, 'sureCa')
+
+ // caOpenStatus true 说明已开启CA
+ if (this.caOpenStatus) {
+ this.batchDataCa({
+ doctorCode: userData.employeeId,
+ ids: [this.formListValue.formId], // 表单的formId
+ }, () => {
+ this.getInfo()
+ })
+ }
+
})
} else {
this.$message.error('标准病历文书内容不完善,请补全后再进行CA确认吧!')
diff --git a/src/components/H5form/shouquanBook.vue b/src/components/H5form/shouquanBook.vue
index f1fcff9..8ebfa65 100644
--- a/src/components/H5form/shouquanBook.vue
+++ b/src/components/H5form/shouquanBook.vue
@@ -385,13 +385,14 @@ import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
+import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import visitFile from '@/components/H5formOhter/visitFile'
export default {
components: {
h5formButton,
visitFile
},
- mixins: [signGet, publicFile, htmlToPdfToBlob],
+ mixins: [signGet, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
diff --git a/src/components/H5form/talk-record.vue b/src/components/H5form/talk-record.vue
index 8a87f56..d3c2347 100644
--- a/src/components/H5form/talk-record.vue
+++ b/src/components/H5form/talk-record.vue
@@ -28,7 +28,7 @@
margin: 0 0 30px 0;
text-align: center;
">
- 激光手术同意书
+ 激光角膜屈光手术同意书
@@ -453,6 +453,7 @@ import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
// import recordFile from '@/page-subspecialty/views/modules/seeDoctor/archives/record-file'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
+import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import { Base64 } from 'js-base64'
export default {
@@ -461,7 +462,7 @@ export default {
crfEditor
// recordFile
},
- mixins: [signGet, publicFile, htmlToPdfToBlob],
+ mixins: [signGet, publicFile, htmlToPdfToBlob,yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@@ -508,7 +509,7 @@ export default {
// 表单id
formId: '',
// 表单名称
- formName: '激光手术同意书',
+ formName: '激光角膜屈光手术同意书',
// 表单日期
formDate: '',
// 就诊号
@@ -655,7 +656,7 @@ export default {
}
},
destroyed() {
- console.log('激光手术同意书destroyed')
+ console.log('激光角膜屈光手术同意书destroyed')
// this.$store.commit('clearSignDate', 'lhOperaRecord')
// this.$parent.deleteErmUpdating(this.archiveCaseCRFItem.id)
},
@@ -885,12 +886,24 @@ export default {
message: '您已保存成功',
type: 'success'
})
+ this.statusHandle()
this.getSendCaStatus()
// this.$store.commit('clearSignDate', 'lhOperaRecord')
} else {
this.$message.error(res.msg)
}
},
+ // -4:等待签到,-3:等待验光/等待谈话,-2:等待验光,-1:等待谈话
+ async statusHandle() {
+ const { data: res } = await this.$http.post('/quguang/pda/updateOperaStatus', {
+ operaId: this.formListValue.operaId,
+ status: -2
+ })
+ if (res.code === 0) {
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
// 是否开启了CA认证表单状态
async getSendCaStatus() {
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
diff --git a/src/components/hm-crf/index.vue b/src/components/hm-crf/index.vue
index 3cbed3e..627a32c 100644
--- a/src/components/hm-crf/index.vue
+++ b/src/components/hm-crf/index.vue
@@ -177,19 +177,19 @@ export default {
},
mounted() {
// Cookies.set('qg-token', '9def6f4db676363e9f01990d56e62929')
- this.$http.get(`/quguang/sys/table/dict/getList`, {
- params: {
- isCrf: 1
- }
- }).then(({ data: res }) => {
- if (res.code === 0) {
- const data = res.data
- window.localStorage.setItem('dictField', JSON.stringify(data))
- }
- })
+ // this.$http.get(`/quguang/sys/table/dict/getList`, {
+ // params: {
+ // isCrf: 1
+ // }
+ // }).then(({ data: res }) => {
+ // if (res.code === 0) {
+ // const data = res.data
+ // window.localStorage.setItem('dictField', JSON.stringify(data))
+ // }
+ // })
- this.$nextTick(() => {
- })
+ // this.$nextTick(() => {
+ // })
},
methods: {
// 添加相关的事件,可用的事件参照文档=> https://github.com/tinymce/tinymce-vue => All available events
diff --git a/src/components/item-select/display.vue b/src/components/item-select/display.vue
index 4a23da2..298bf5d 100644
--- a/src/components/item-select/display.vue
+++ b/src/components/item-select/display.vue
@@ -124,8 +124,8 @@ export default {
this.options_kpi = window.SITE_CONFIG['dict_colSearch']
} else {
// 检索字典表
- const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }})
- this.options_kpi = res.data
+ // const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }})
+ // this.options_kpi = res.data
}
}
}
diff --git a/src/components/item-select/index.vue b/src/components/item-select/index.vue
index adbd063..261d828 100644
--- a/src/components/item-select/index.vue
+++ b/src/components/item-select/index.vue
@@ -237,9 +237,9 @@ export default {
this.options_kpi = window.SITE_CONFIG['dict_colSearch']
} else {
// 检索字典表
- this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
- this.options_kpi = res.data
- })
+ // this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
+ // this.options_kpi = res.data
+ // })
}
}
}
diff --git a/src/components/kpi-select/display.vue b/src/components/kpi-select/display.vue
index 8e6638c..59c8604 100644
--- a/src/components/kpi-select/display.vue
+++ b/src/components/kpi-select/display.vue
@@ -57,8 +57,8 @@ export default {
} else if (this.type === 2 && window.SITE_CONFIG.dict_colChart) {
this.options_kpi = window.SITE_CONFIG.dict_colChart
} else {
- const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: this.type }})
- this.options_kpi = res.data
+ // const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: this.type }})
+ // this.options_kpi = res.data
}
}
}
diff --git a/src/mixins/htmlToPdfToBlob.js b/src/mixins/htmlToPdfToBlob.js
index be11b1a..9e3bf44 100644
--- a/src/mixins/htmlToPdfToBlob.js
+++ b/src/mixins/htmlToPdfToBlob.js
@@ -2,7 +2,6 @@ import('@/assets/fonts/SimHei-normal')
import('@/assets/fonts/MicrosoftYaHeiBold-normal')
// import('@/assets/fonts/MicrosoftYaHei-normal')
import('@/assets/fonts/msyh-normal')
-
// import html2pdf from 'html2pdf.js'
// import jsPDF from 'jspdf'
// import html2canvas from 'html2canvas'
@@ -13,10 +12,21 @@ export default {
base64Flag: false,
baseImg: '',
loading: null,
- patientCaUploadParams: {},
- signUsers: null
}
},
+ mounted() {
+ setTimeout(() => {
+ if (this.$el.querySelectorAll) {
+ // 查找所有 el-input 和 el-select 组件的 input 标签
+ const inputElements = this.$el.querySelectorAll('.el-input input, .el-select input, .el-checkbox .el-input .el-input__inner, .el-date-picker input, textarea');
+ // console.log('inputElements', inputElements);
+ // 批量设置样式
+ inputElements.forEach(input => {
+ input.style.fontFamily = 'msyh';
+ });
+ }
+ }, 1000);
+ },
methods: {
// url转base64可用图片
convertImageToBase64(url, text) {
@@ -56,6 +66,7 @@ export default {
isHaveDoctorSign: true, // 是否有医生签名 有医生签字走医生签字接口,没有医生签字走调取患者平板签名接口
manyPatientSign: false, // 患者是否为多人签名
isJavaTransformPdf: true, // 是否java转换pdf
+ isDataSign: false, // 是否数据签
htmlBase: null, // 前端获取的HTML传给后端
marginStyle: '',
...customParam
@@ -64,18 +75,14 @@ export default {
const elementName = customParams.customElementId ? customParams.customElementId : 'printA5'
// console.log('elementName', elementName)
const element = document.getElementById(elementName)
- console.log('element', element)
+ console.log('ELEMENT', element.innerHTML);
customParams.isPdfLoad ? this.loading.close() : this.$emit('load')
- console.log('customParam.isJavaTransformPdf',customParam.isJavaTransformPdf);
if (customParam.isJavaTransformPdf) {
this.$message('您提交的病历CA已异步处理,无需继续等待。')
- console.log('后端转');
this.caSign('', customParam)
} else {
- console.log('前端转',this.isJavaTransformPdf);
customParam.isHtml2canvas ? this.convertHtmlToImage(customParams, element) : this.jspdfFun(customParams, element)
}
-
// const styles = window.getComputedStyle(element)
},
// 转为可选的pdf
@@ -113,7 +120,12 @@ export default {
const pdfBase64Split = pdfBase64.split(',')
console.log(pdfBase64Split)
// substring(6)
- customParams.isHaveDoctorSign ? this.caSign(pdfBase64Split[1], customParams) : this.padPatientSign(pdfBase64Split[1], customParams)
+ if (customParams.isDataSign) {
+ // 如果是数据签的其他表单走前端转pdf并上传
+ this.uploadFormPdf(pdfBase64Split[1])
+ } else {
+ customParams.isHaveDoctorSign ? this.caSign(pdfBase64Split[1], customParams) : this.padPatientSign(pdfBase64Split[1], customParams)
+ }
// pdf.save(123 + '.pdf')
},
margin: [15, 15],
@@ -209,164 +221,6 @@ export default {
}
})
},
- // CA医生签名接口调取-单医生/quguang/caSign-多医生/quguang/caSign/multiCaSign
- async caSign(base64, customParams, caBack) {
- uni.postMessage({
- data: {
- text: '开始CA签'
- }
- })
- console.log('customParams', customParams)
- console.log('CA医生签名接口调取base64', base64)
- // console.log('customParams.caParams.signUrl', customParams.caParams.signUrl)
- const url = caBack ? (caBack.signUrl ? caBack.signUrl : '/quguang/caSign') : (customParams.caParams.signUrl ? customParams.caParams.signUrl : 'quguang/caSign')
- const { data: res } = await this.$http.post(url, caBack || {
- // 待签名文件(Base64/string)
- fileData: base64 || '',
- htmlBase: customParams.htmlBase ? customParams.htmlBase : '',
- marginStyle: customParams.marginStyle || '',
- // 类型名称,类型值包括:PDF、HTML,除PDF外的其他格式,系统自动转换成PDF格式然后电子签名
- fileType: 'PDF',
- ...customParams.caParams,
- // 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效. 1:附加;0:不附加 (默认);
- timestamp: '1'
- })
- if (res.code === 0) {
- // 成功
- // console.log('成功', customParams.isPadPatientSign)
- // return
- customParams.isPadPatientSign ? this.padPatientSign(base64, customParams) : ''
- this.caRefresh ? this.caRefresh() : ''
- customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
- uni.postMessage({
- data: {
- text: 'CA保存成功'
- }
- })
- } else {
- // this.$message.error(res.msg)
- // console.log(JSON.parse(res.msg))
- const resParse = res.msg.includes('[') ? JSON.parse(res.msg) : null
- console.log('resParse', resParse)
- const text = resParse ? `${resParse[0].patientName}-${resParse[0].patientId}-${resParse[0].fileName}-CA签失败,${resParse[1]},请您重新提交此患者CA!` : res.msg
- uni.postMessage({
- data: {
- text: 'CA保存失败',
- msg: text
- }
- })
- this.$confirmFun(text, '您已取消').then(() => {
- // this.caSign('', '', resParse[0])
- })
- // // 自定义按钮
- // const h = this.$createElement
- // const confirmButtonText = '定位患者'
- // const cancelButtonText = '取消'
- // const customButtonText = '重新提交'
- // this.$confirm('这是一条消息', '提示', {
- // confirmButtonText,
- // cancelButtonText,
- // // 使用message属性来自定义MessageBox的内容
- // message: h('p', null, [
- // h('span', null, `${resParse[0].patientName}患者CA签失败,${resParse[1]},您是否重新提交此患者CA签?`),
- // h('el-button', {
- // props: {
- // size: 'small',
- // type: 'warning'
- // },
- // on: {
- // click: () => {
- // // 点击“重新提交”按钮的逻辑
- // this.caSign('', '', resParse[0])
- // }
- // }
- // }, customButtonText)
- // ])
- // }).then((res) => {
- // console.log(res)
- // if (res === 'confirm') {
- // console.log(444444444444)
- // const currentPathName = this.$router.currentRoute.name
- // console.log('currentPathName', currentPathName === 'surgicalManagement-operationList')
- // if (currentPathName === 'surgicalManagement-operationList') {
- // // this.dataForm.patientId = resParse[0].patientId
- // } else {
- // // this.$router.push({
- // // name: 'surgicalManagement-operationList',
- // // params: {
- // // patientId: resParse[0].patientId,
- // // patientIdNumber: resParse[0].patientIdNumber
- // // }
- // // })
- // }
- // }
- // }).catch(() => {
-
- // })
- customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
- }
- },
- // 患者CA平板无线签-上传代签名的文件接口给CA
- async padPatientSign(base64, customParams) {
- const { data: res } = await this.$http.post('/quguang/caSign/uploadCaSignBase', {
- fileData: customParams.isHaveDoctorSign ? '' : base64, // 待签名文件(Base64/string) 有医生签:后端生成有签名的pdf,没有医生签:需传base64文件
- fileName: customParams.caParams.fileName, // 文件名称
- formFlag: customParams.caParams.formFlag, // 标志位,8:告知书,9:基因检测同意书,10:联合手术同意书 13:告知书/授权书
- formId: customParams.caParams.formId, // 表单ID
- userId: this.userData.employeeId
- })
- if (res.code === 0) {
- this.patientCaUploadParams = res.data
- // 成功
- customParams.manyPatientSign ? this.setPatientParamsInfo(customParams) : this.signFileByPad(customParams)
- customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
- } else {
- this.$message.error(res.msg)
- customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
- }
- },
- // 患者CA平板无线签-调取成功后可发送PDF文件到PAD
- async signFileByPad(customParams) {
- const url = process.env.NODE_ENV === 'development' ? '/customProxyCa/patient/api/v3.0/sign/signFileByPad'
- : 'http://192.168.2.32:83/ca-server/patient/api/v3.0/sign/signFileByPad'
- const signUsers = [{
- signerType: '3', // 签名类型 3:患者; 4:家属; 5:见证人
- patientName: this.formListValue.patientName, // 患者姓名
- patientIdcard: this.formListValue.patientIdNumber, // 患者身份证号
- description: '患者',
- signFiles: [{
- fileCode: this.patientCaUploadParams.fileCode,
- // 签署位置集合
- positions: customParams.patientSignPositionsParams
- }]
- }]
- const { data: res } = await this.$http.post(`${url}?accessToken=${this.patientCaUploadParams.accessToken}`, {
- transactionId: this.patientCaUploadParams.transactionId,
- orderName: customParams.caParams.fileName, // 表单名称
- signMethod: 6, // 签署方法:6:智能指纹签名屏 一般都是6 8:普通平板电脑(非指纹屏)
- createUserId: this.userData.employeeId, // 创建表单工号
- isVoiceRecord: 0,
- callbackURL: 'http://192.168.2.32:83/quguang/caSign/patientCaSignCallBack',
- redirectURL: '',
- isCallbackSignatureImg: '',
- imageFormat: 'JPG',
- signUsers: customParams.manyPatientSign ? this.signUsers : signUsers,
- // 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效. 1:附加;0:不附加 (默认);
- timestamp: '1'
- })
- if (res.status === '0') {
- this.callbackUpdataeOrderCode(customParams, res.data)
- } else {
- this.$message.error(res.msg)
- }
- },
- // 把返回的code传给后端
- async callbackUpdataeOrderCode(customParams, resData) {
- const { data: res } = await this.$http.post('/quguang/caSign/updateOrderCode', {
- formId: customParams.caParams.formId,
- orderCode: resData.orderCode
- })
- },
// formFlag: 1:屈光电子病历/屈光电子病历(复诊) 2:术后检查记录表,3:角膜交联病历/角膜交联病历(复诊),4:角膜交联术后检查记录单,5:复诊病历
uploadPdf(formData) {
console.log('-----------')
@@ -387,6 +241,30 @@ export default {
this.$message.error(res.msg)
}
})
- }
+ },
+ // html转pdf 后端接口
+ async html2Pdf(customParams, callback) {
+ const { data: res } = await this.$http.post('/quguang/caSign/html2Pdf', {
+ htmlBase: customParams.htmlBase ? customParams.htmlBase : '',
+ marginStyle: customParams.marginStyle || '',
+ pageSize: customParams.paperSize ? customParams.paperSize : 'A5', // 页面大小:A4
+ })
+ if (res.code === 0) {
+ callback ? callback() : ''
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
+ // 前端转pdf后传给后端
+ async uploadFormPdf(pdfBase) {
+ const { data: res } = await this.$http.post('/quguang/caSign/uploadFormPdf', {
+ pdfBase: pdfBase,
+ })
+ if (res.code === 0) {
+
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
}
}
diff --git a/src/mixins/operationPlan.js b/src/mixins/operationPlan.js
index dcb8ec6..8c23603 100644
--- a/src/mixins/operationPlan.js
+++ b/src/mixins/operationPlan.js
@@ -20,7 +20,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
- patientorDlrSign:'',
+ patientOrDlrSign:'',
}, {
name: '预留屈光度',
nameClass: 'ylqgd',
@@ -39,7 +39,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
- patientorDlrSign:'',
+ patientOrDlrSign:'',
}, {
name: '预期矫正度数',
nameClass: 'yqjzds',
@@ -58,7 +58,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
- patientorDlrSign:'',
+ patientOrDlrSign:'',
}, {
name: '手术方式',
nameClass: 'ssfs',
@@ -77,7 +77,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
- patientorDlrSign:'',
+ patientOrDlrSign:'',
}, {
name: '其他',
nameClass: 'qt',
@@ -96,7 +96,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
- patientorDlrSign:'',
+ patientOrDlrSign:'',
}, {
name: '备注',
nameClass: 'bz',
@@ -115,7 +115,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
- patientorDlrSign:'',
+ patientOrDlrSign:'',
}],
otherList: [{
name: 'Visumax'
diff --git a/src/mixins/publicFile.js b/src/mixins/publicFile.js
index 96ff511..b4391b4 100644
--- a/src/mixins/publicFile.js
+++ b/src/mixins/publicFile.js
@@ -13,8 +13,6 @@ export default {
mrzYrEye: '',
signText: '',
dateText: '',
- // ca开启状态
- caOpenStatus: false
}
},
methods: {
@@ -248,43 +246,6 @@ export default {
closeblInfoDrawer() {
this.blDataVisible = false
},
- // 是否开启了CA认证表单状态
- async getSendCaStatus() {
- const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
- params: {
- name: this.archiveCaseCRFItem.formName
- }
- })
- if (res.code === 0) {
- this.caOpenStatus = res.data !== 0
- } else {
- this.$message.error(res.msg)
- }
- },
- // 取消ca
- async cancelCa() {
- const userData = window.localStorage.getItem('qg-userData') ? JSON.parse(window.localStorage.getItem('qg-userData')) : ''
- if (userData.realName !== this.formListValue.createName) {
- return this.$message({
- message: `此病历是${this.formListValue.createName}医生创建的,您不能操作其他医生的患者病历哦!`,
- type: 'warning'
- })
- }
- const { data: res } = await this.$http.post('/quguang/caSign/cancelCa', {
- formFlag: this.formFlag,
- formId: this.archiveCaseCRFItem.id
- })
- if (res.code === 0) {
- this.$message({
- message: '取消提交成功',
- type: 'success'
- })
- } else {
- this.$message.error(res.msg)
- }
- this.formListValue.isConfirm = 0
- this.saveEidtTitle = '编辑'
- },
// 获取上次保存时间--防止同时编辑表单导致的表单覆盖情况
async getUpSaveTime(url, params) {
const { data: res } = await this.$http.get(url, {
diff --git a/src/mixins/signGet.js b/src/mixins/signGet.js
index b4f5c5c..e35df4c 100644
--- a/src/mixins/signGet.js
+++ b/src/mixins/signGet.js
@@ -4,27 +4,26 @@ export default {
}
},
methods: {
+
// 获取授权签字-通过当前登录人的token判断当前人有没有被授权
- async getZdDoctorSign(zdSign, date, zdCode, zdName) {
+ async getZdDoctorSign(sign, date, code, name) {
const loading = this.$loading({
lock: true,
text: '获取中请稍等',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
})
- console.log('this.operaId',this.operaId);
- console.log('this.archiveCaseCRFItem.operaId',this.archiveCaseCRFItem.operaId);
+ console.log('this.operaId', this.operaId);
+ console.log('this.archiveCaseCRFItem.operaId', this.archiveCaseCRFItem.operaId);
const { data: res } = await this.$http.get('/quguang/sys/doctor/empower/getMainDoctorSign', {
params: {
operaPatientId: this.operaId ? this.operaId : this.archiveCaseCRFItem.operaId
}
})
if (res.code === 0) {
+ console.log('获取授权签字ca已开启');
loading.close()
- date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD') : ''
- this.formListValue[zdSign] = res.data.signImgBase
- this.formListValue[zdCode] = res.data.employeeId
- this.formListValue[zdName] = res.data.realName
+ this.getCaUserSignImg(sign, date, code, name, res.data)
} else {
this.$message.error(res.msg)
loading.close()
@@ -34,11 +33,24 @@ export default {
getSystomSign(sign, date, code, name) {
console.log(date)
const userData = JSON.parse(window.localStorage.getItem('qg-userData'))
- sign ? this.formListValue[sign] = userData.signImgBase : ''
- name ? this.formListValue[name] = userData.realName : ''
- code ? this.formListValue[code] = userData.employeeId : '' // 工号
-
- date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD HH:mm') : ''
+ this.getCaUserSignImg(sign, date, code, name, userData)
+ },
+ // 获取ca签名图片
+ async getCaUserSignImg(sign, date, code, name, resData) {
+ console.log('8888888888');
+ const { data: res } = await this.$http.get('/quguang/caSign/getCaUserSignImg', {
+ params: {
+ userId: resData.employeeId
+ }
+ })
+ if (res.code === 0) {
+ date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD') : ''
+ sign ? this.formListValue[sign] = res.data.signImgBase : ''
+ code ? this.formListValue[code] = res.data.employeeId : ''
+ name ? this.formListValue[name] = res.data.realName : ''
+ } else {
+ this.$message.error(res.msg)
+ }
},
// 手术记录获取系统签字--技师
getSystomSign1(beforeJsSign, beforeJsCode, beforeJsName, centerJsSign, centerJsCode, centerJsName, backJsSign, backJsCode, backJsName) {
diff --git a/src/mixins/yiXinQianSign.js b/src/mixins/yiXinQianSign.js
new file mode 100644
index 0000000..e3ca238
--- /dev/null
+++ b/src/mixins/yiXinQianSign.js
@@ -0,0 +1,194 @@
+export default {
+ data() {
+ return {
+ // ca开启状态
+ caOpenStatus: false,
+ patientCaUploadParams: {},
+ signUsers: null
+ }
+ },
+ methods: {
+ // 是否开启了CA认证表单状态
+ async getSendCaStatus(toParams, callback, operaTextFlag) {
+ const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
+ params: {
+ name: this.archiveCaseCRFItem.formName ? this.archiveCaseCRFItem.formName : this.formListValue.formName
+ }
+ })
+ if (res.code === 0) {
+ this.caOpenStatus = res.data !== 0
+ console.log('caOpenStatus', this.caOpenStatus);
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
+
+ // --------------------文件签----------------------
+ // CA医生签名接口调取-单医生/quguang/caSign-多医生/quguang/caSign/multiCaSign
+ async caSign(base64, customParams, caBack) {
+ uni.postMessage({
+ data: {
+ text: '开始CA签'
+ }
+ })
+ console.log('customParams', customParams)
+ console.log('CA医生签名接口调取base64', base64)
+ // console.log('customParams.caParams.signUrl', customParams.caParams.signUrl)
+ const url = caBack ? (caBack.signUrl ? caBack.signUrl : '/quguang/caSign') : (customParams.caParams.signUrl ? customParams.caParams.signUrl : 'quguang/caSign')
+ const { data: res } = await this.$http.post(url, caBack || {
+ // 待签名文件(Base64/string)
+ fileData: base64 || '',
+ htmlBase: customParams.htmlBase ? customParams.htmlBase : '',
+ marginStyle: customParams.marginStyle || '',
+ // 类型名称,类型值包括:PDF、HTML,除PDF外的其他格式,系统自动转换成PDF格式然后电子签名
+ fileType: 'PDF',
+ ...customParams.caParams,
+ // 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效. 1:附加;0:不附加 (默认);
+ timestamp: '1'
+ })
+ if (res.code === 0) {
+ // 成功
+ // console.log('成功', customParams.isPadPatientSign)
+ // return
+ customParams.isPadPatientSign ? this.padPatientSign(base64, customParams) : ''
+ this.caRefresh ? this.caRefresh() : ''
+ customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
+ uni.postMessage({
+ data: {
+ text: 'CA保存成功'
+ }
+ })
+ } else {
+ // this.$message.error(res.msg)
+ // console.log(JSON.parse(res.msg))
+ const resParse = res.msg.includes('[') ? JSON.parse(res.msg) : null
+ console.log('resParse', resParse)
+ const text = resParse ? `${resParse[0].patientName}-${resParse[0].patientId}-${resParse[0].fileName}-CA签失败,${resParse[1]},请您重新提交此患者CA!` : res.msg
+ uni.postMessage({
+ data: {
+ text: 'CA保存失败',
+ msg: text
+ }
+ })
+ this.$confirmFun(text, '您已取消').then(() => {
+ // this.caSign('', '', resParse[0])
+ })
+ customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
+ }
+ },
+ // 患者CA平板无线签-上传代签名的文件接口给CA
+ async padPatientSign(base64, customParams) {
+ const { data: res } = await this.$http.post('/quguang/caSign/uploadCaSignBase', {
+ fileData: customParams.isHaveDoctorSign ? '' : base64, // 待签名文件(Base64/string) 有医生签:后端生成有签名的pdf,没有医生签:需传base64文件
+ fileName: customParams.caParams.fileName, // 文件名称
+ formFlag: customParams.caParams.formFlag, // 标志位,8:告知书,9:基因检测同意书,10:联合手术同意书 13:告知书/授权书
+ formId: customParams.caParams.formId, // 表单ID
+ userId: this.userData.employeeId
+ })
+ if (res.code === 0) {
+ this.patientCaUploadParams = res.data
+ // 成功
+ customParams.manyPatientSign ? this.setPatientParamsInfo(customParams) : this.signFileByPad(customParams)
+ customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
+ } else {
+ this.$message.error(res.msg)
+ customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load')
+ }
+ },
+ // 患者CA平板无线签-调取成功后可发送PDF文件到PAD
+ async signFileByPad(customParams) {
+ const url = process.env.NODE_ENV === 'development' ? '/customProxyCa/patient/api/v3.0/sign/signFileByPad'
+ : 'http://192.168.2.32:83/ca-server/patient/api/v3.0/sign/signFileByPad'
+ const signUsers = [{
+ signerType: '3', // 签名类型 3:患者; 4:家属; 5:见证人
+ patientName: this.formListValue.patientName, // 患者姓名
+ patientIdcard: this.formListValue.patientIdNumber, // 患者身份证号
+ description: '患者',
+ signFiles: [{
+ fileCode: this.patientCaUploadParams.fileCode,
+ // 签署位置集合
+ positions: customParams.patientSignPositionsParams
+ }]
+ }]
+ const { data: res } = await this.$http.post(`${url}?accessToken=${this.patientCaUploadParams.accessToken}`, {
+ transactionId: this.patientCaUploadParams.transactionId,
+ orderName: customParams.caParams.fileName, // 表单名称
+ signMethod: 6, // 签署方法:6:智能指纹签名屏 一般都是6 8:普通平板电脑(非指纹屏)
+ createUserId: this.userData.employeeId, // 创建表单工号
+ isVoiceRecord: 0,
+ callbackURL: 'http://192.168.2.32:83/quguang/caSign/patientCaSignCallBack',
+ redirectURL: '',
+ isCallbackSignatureImg: '',
+ imageFormat: 'JPG',
+ signUsers: customParams.manyPatientSign ? this.signUsers : signUsers,
+ // 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效. 1:附加;0:不附加 (默认);
+ timestamp: '1'
+ })
+ if (res.status === '0') {
+ this.callbackUpdataeOrderCode(customParams, res.data)
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
+ // 把返回的code传给后端
+ async callbackUpdataeOrderCode(customParams, resData) {
+ const { data: res } = await this.$http.post('/quguang/caSign/updateOrderCode', {
+ formId: customParams.caParams.formId,
+ orderCode: resData.orderCode
+ })
+ },
+
+ // --------------------数据签-----------------------
+ // CA门诊批量数据签
+ async batchDataCa(params, callback) {
+ const { data: res } = await this.$http.post('/quguang/caSign/batchDataCa', params)
+ if (res.code === 0) {
+ this.$message({
+ message: '此表单已CA成功',
+ type: 'success'
+ })
+ callback ? callback() : ''
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
+ // CA其他表单批量数据签
+ async operaFormDataCaSign(params, callback) {
+ const { data: res } = await this.$http.post('/quguang/caSign/operaFormDataCaSign', params)
+ if (res.code === 0) {
+ // this.$message({
+ // message: '此表单已CA成功',
+ // type: 'success'
+ // })
+ callback ? callback() : ''
+ } else {
+ this.$message.error(res.msg)
+ }
+ },
+ // 取消ca
+ async cancelCa() {
+ console.log('取消ca');
+ const userData = window.localStorage.getItem('qg-userData') ? JSON.parse(window.localStorage.getItem('qg-userData')) : ''
+ if (userData.realName !== this.formListValue.createName) {
+ return this.$message({
+ message: `此病历是${this.formListValue.createName}医生创建的,您不能操作其他医生的患者病历哦!`,
+ type: 'warning'
+ })
+ }
+ const { data: res } = await this.$http.post('/quguang/caSign/cancelCa', {
+ formFlag: this.formFlag,
+ formId: this.archiveCaseCRFItem.id
+ })
+ if (res.code === 0) {
+ this.$message({
+ message: '取消提交成功',
+ type: 'success'
+ })
+ } else {
+ this.$message.error(res.msg)
+ }
+ this.formListValue.isConfirm = 0
+ this.saveEidtTitle = '编辑'
+ },
+ }
+}
\ No newline at end of file
diff --git a/src/page-subspecialty/router/index.js b/src/page-subspecialty/router/index.js
index 120d07d..f6af228 100644
--- a/src/page-subspecialty/router/index.js
+++ b/src/page-subspecialty/router/index.js
@@ -157,7 +157,7 @@ export function addDynamicRoute(routeParams, router) {
const createRouter = () => new Router({
mode: 'history',
- // base: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', // 公司内部环境打开--浏览器基础路径
+ base: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', // 公司内部环境打开--浏览器基础路径
scrollBehavior: () => ({ y: 0 }),
routes: pageRoutes.concat(moduleRoutes)
})
@@ -228,9 +228,9 @@ router.beforeEach((to, from, next) => {
return next({ name: 'login' })
})
// 获取【字段字典表】, 添加并全局变量保存
- http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
- window.SITE_CONFIG['dict_colSearch'] = res.data
- })
+ // http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
+ // window.SITE_CONFIG['dict_colSearch'] = res.data
+ // })
}
})
diff --git a/src/page-subspecialty/views/modules/seeDoctor/archives/index.vue b/src/page-subspecialty/views/modules/seeDoctor/archives/index.vue
index fbd1f7b..518e6bb 100644
--- a/src/page-subspecialty/views/modules/seeDoctor/archives/index.vue
+++ b/src/page-subspecialty/views/modules/seeDoctor/archives/index.vue
@@ -114,7 +114,7 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
-
- {{ scope.row.patientId }}
-
-
-
-
- {{ scope.row.patientName }}
-
-
-
-
- {{ scope.row.mainDoctorName }}
-
-
-
-
-
- {{ scope.row.operaRoom }}
-
-
-
-
-
- {{ item.eyeType }} :
-
- {{ itex.operationName }}
-
-
-
-
-
-
-
-
-
-
-
- 等待呼叫
-
-
-
- 呼叫中
-
-
-
- 术前准备
-
-
-
- 手术中
-
-
-
- 手术完成
-
-
-
-
-
- 档案
-
- 呼叫
-
-
-
- 表单
-
-
- 屈光手术安全核查表
- 屈光手术护理记录单
- 手术记录
- 生命体征录入
-
-
-
-
- 更多
-
-
- 取消手术
- 状态回滚
- 条码
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue b/src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue
index 0f9aad1..aaba668 100644
--- a/src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue
+++ b/src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue
@@ -4,76 +4,33 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
@@ -83,15 +40,8 @@
-
+
{{ scope.row.patientId }}
@@ -102,29 +52,13 @@
{{ scope.row.patientName }}
-
+
{{ scope.row.mainDoctorName }}
-
-
+
+
{{ scope.row.operaRoom }}
@@ -140,20 +74,30 @@
-
+
{{ scope.row.operaMoney}}
-
+
-
+
+
+
+ 等待签到
+
+
+
+ 等待验光/等待谈话
+
+
+
+ 等待验光
+
+
+
+ 等待谈话
+
等待呼叫
@@ -176,15 +120,17 @@
-
+
+
+ 签到
档案
呼叫
+ class="call" @click="callHandle(scope.row)">呼叫
@@ -210,31 +156,14 @@
-
+
-
-
+
+
-
+
-
-
diff --git a/src/page-subspecialty/views/modules/systemManagement/formSet/index copy.vue b/src/page-subspecialty/views/modules/systemManagement/formSet/index copy.vue
deleted file mode 100644
index 028ebf4..0000000
--- a/src/page-subspecialty/views/modules/systemManagement/formSet/index copy.vue
+++ /dev/null
@@ -1,495 +0,0 @@
-
-
-
-
-
-
diff --git a/src/page-subspecialty/views/modules/systemManagement/formSet/index.vue b/src/page-subspecialty/views/modules/systemManagement/formSet/index.vue
index 324dc25..566a35b 100644
--- a/src/page-subspecialty/views/modules/systemManagement/formSet/index.vue
+++ b/src/page-subspecialty/views/modules/systemManagement/formSet/index.vue
@@ -4,7 +4,7 @@
-
+
@@ -72,7 +72,7 @@ export default {
display: flex;
}
.el-tabs--left .el-tabs__header.is-left {
- width: 175px !important;
+ width: 240px !important;
}
.el-tabs--left .el-tabs__item.is-left {
text-align: left;
diff --git a/vue.config.js b/vue.config.js
index 4ec29bc..afdb6e9 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -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')