From 5e208a57c4ac9807f181d1557b35954eef4878c3 Mon Sep 17 00:00:00 2001 From: pengjun <158915633@qq.com> Date: Tue, 14 Apr 2026 12:15:49 +0800 Subject: [PATCH] seo --- public/pic/egSignMan.png | Bin 0 -> 4186 bytes src/components/common/AcceptTemplate.vue | 132 +++++-- src/router/index.js | 6 + .../basic-dictionary/acceptTempPlateList.vue | 369 ++++++++++++++++++ src/views/doctorCheck/resultImport.vue | 4 +- src/views/fee-settings/Asbitem.vue | 52 ++- 6 files changed, 517 insertions(+), 46 deletions(-) create mode 100644 public/pic/egSignMan.png create mode 100644 src/views/basic-dictionary/acceptTempPlateList.vue diff --git a/public/pic/egSignMan.png b/public/pic/egSignMan.png new file mode 100644 index 0000000000000000000000000000000000000000..1e4d1d1659b1418fc68d0c45029235487aadf345 GIT binary patch literal 4186 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
- +
注:${signMan} ${signDate} 为预设参数,由具体值代替。
- 确定 预置模版 预览 - {{designAble ? '设计':'应用'}} + {{ designAble ? + '设计' : '应用' }} + 确定
- +
+ 模板名称 + +
+
- +
@@ -32,6 +38,7 @@ import { VueEditor, Quill } from "vue2-editor"; import { mapState } from "vuex"; import moment from "moment"; +import { postapi } from "@/api/api"; const Size = Quill.import("attributors/style/size"); Size.whitelist = ["12px", "14px", "16px", "18px", "24px", "32px", "48px"]; @@ -57,11 +64,15 @@ Quill.register(Font, true) export default { components: { VueEditor }, - props: ['refParams'], + props: ['refParams', 'refFun'], data() { return { - content: '', - contentInit:'

CT检查知情同意书

尊敬的客户:

  欢迎您来到长城体检中心进行CT检查,在检查之前,您需要知晓以下事宜:辐射有害健康,请远离电离辐射

  1、人体受到放射线照射后,可能产生潜在的危害,产生有害的躯体效应和遗传效应,其中最敏感的器官或组织为:甲状腺、性腺、及胚胎组织。

  2、孕妇原则上禁止CT检查,如果您是孕妇,在CT检查前,请告知工作人员。

  3、如果您正处在备孕阶段,原则上我们不建议进行CT检查,请您提前告知工作人员。

  4、CT检查时只允许一名受检者进入机房,无关人员不得在机房内停留。

  5、建议受检者佩戴门诊部提供的防护用品,遮盖敏感部位。 家屋到扫描室外等候。









受检人签名:${signMan}


${signDate}

', + form: { + id: '', + displayName: "", + informedConsentTemplateFileContent: "" + }, + contentInit: '

CT检查知情同意书

尊敬的客户:

  欢迎您来到长城体检中心进行CT检查,在检查之前,您需要知晓以下事宜:辐射有害健康,请远离电离辐射

  1、人体受到放射线照射后,可能产生潜在的危害,产生有害的躯体效应和遗传效应,其中最敏感的器官或组织为:甲状腺、性腺、及胚胎组织。

  2、孕妇原则上禁止CT检查,如果您是孕妇,在CT检查前,请告知工作人员。

  3、如果您正处在备孕阶段,原则上我们不建议进行CT检查,请您提前告知工作人员。

  4、CT检查时只允许一名受检者进入机房,无关人员不得在机房内停留。

  5、建议受检者佩戴门诊部提供的防护用品,遮盖敏感部位。 家屋到扫描室外等候。









受检人签名:${signMan}


${signDate}

', // 自定义工具栏配置 customToolbar: [ // 字体大小控制(关键配置) @@ -98,16 +109,16 @@ export default { // 清除格式 ["clean"] ], - designAble:true, - contentDesign:'', - acceptTemplateShow:false, // 预览 - contentShow:'', // 预览 + designAble: true, + contentDesign: '', + acceptTemplateShow: false, // 预览 + contentShow: '', // 预览 }; }, //创建组件后 created() { - this.content = this.contentInit + this.form.informedConsentTemplateFileContent = this.contentInit }, //挂载组件完成 @@ -117,40 +128,87 @@ export default { computed: { ...mapState(["window", "dict", "dialogWin"]), - divHeight(){ - return this.window.pageHeight - 120 + divHeight() { + return this.window.pageHeight - 120 }, - autosize(){ - let rows = Math.floor((this.window.pageHeight - 70 - 6)/20) - return { minRows: rows, maxRows: rows} - } + autosize() { + let rows = Math.floor((this.window.pageHeight - 105 - 6) / 20) + return { minRows: rows, maxRows: rows } + } }, // 方法 methods: { - btnOk() { - console.log('content', this.content) - //this.dialogWin.acceptTemplate = false + + getAcceptTempPalte(informedConsentTemplateId) { + if (informedConsentTemplateId) { + postapi('/api/app/InformedConsentTemplate/Get', { informedConsentTemplateId }) + .then(res => { + if (res.code > -1) { + this.form = res.data + } + }) + .finally(() => { + this.contentDesign = this.form.informedConsentTemplateFileContent + this.designAble = true + }) + } else { + this.form.id = '' + this.form.displayName = '' + this.btnInit() + } + }, + + btnOk() { + if (!this.form.displayName){ + this.$message.warning({ showClose: true, message: '模板名称不能为空' }) + return + }else if(!this.form.informedConsentTemplateFileContent) { + this.$message.warning({ showClose: true, message: '模板内容不能为空' }) + return + } + + let url = '/api/app/InformedConsentTemplate/Create' + if (this.form.id) { + url = '/api/app/InformedConsentTemplate/Update' + } + + // 保存时,刷新列表 + postapi(url, this.form) + .then(res => { + if (res.code > -1) { + if (!this.form.id && res.data?.id) this.form.id = res.data.id + } + }) + .finally(() => { + // 刷新父主件 + try { + this.refFun(this.form.id) + } catch (error) { + console.error('知情同意书模板 refFun', error) + } + }) + }, - btnInit(){ - this.content = this.contentInit + btnInit() { + this.form.informedConsentTemplateFileContent = this.contentInit this.contentDesign = this.contentInit this.designAble = true }, // 查看效果 - btnPreview(){ + btnPreview() { this.acceptTemplateShow = true - let signMan = '' - let signDate = moment(new Date()).format('yyyy 年 MM 月 DD 日') - this.contentShow = this.content.replace('${signMan}', signMan).replace('${signDate}', signDate) + let signMan = '' + let signDate = moment(new Date()).format('yyyy 年 MM 月 DD 日') + this.contentShow = this.form.informedConsentTemplateFileContent.replace('${signMan}', signMan).replace('${signDate}', signDate) }, - btnDesign(){ - if(this.designAble){ - this.contentDesign = this.content.replace(/' '/g,' ') - }else{ - this.content = this.contentDesign + btnDesign() { + if (this.designAble) { + this.contentDesign = this.form.informedConsentTemplateFileContent + } else { + this.form.informedConsentTemplateFileContent = this.contentDesign } this.designAble = !this.designAble } @@ -158,13 +216,11 @@ export default { // 监听 watch: { - "refParams.queueTimes": { + "refParams.brushTimes": { // immediate:true, handler(newVal, oldVal) { console.log(`watch 模板 newVal: ${newVal}, oldVal: ${oldVal} `, this.refParams); - if (newVal != oldVal) { - - } + if (newVal != oldVal) this.getAcceptTempPalte(this.refParams.id) } }, }, diff --git a/src/router/index.js b/src/router/index.js index 3c9015f..2b2d115 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -183,6 +183,12 @@ const routes = [{ component: () => import ("../views/basic-dictionary/SampleContainer.vue"), }, + { + path: "/acceptTempPlate", + name: "知情同意书模板", + component: () => + import ("../views/basic-dictionary/acceptTempPlateList.vue"), + }, { path: "/customer-org-type", name: "客户单位类别", diff --git a/src/views/basic-dictionary/acceptTempPlateList.vue b/src/views/basic-dictionary/acceptTempPlateList.vue new file mode 100644 index 0000000..84242b7 --- /dev/null +++ b/src/views/basic-dictionary/acceptTempPlateList.vue @@ -0,0 +1,369 @@ + + + diff --git a/src/views/doctorCheck/resultImport.vue b/src/views/doctorCheck/resultImport.vue index 7adf589..2af6803 100644 --- a/src/views/doctorCheck/resultImport.vue +++ b/src/views/doctorCheck/resultImport.vue @@ -5,7 +5,7 @@
体检 / - 从文件导入检验结果 + 从文件导入检查结果
+
diff --git a/src/views/fee-settings/Asbitem.vue b/src/views/fee-settings/Asbitem.vue index f4fcbf9..baccb74 100644 --- a/src/views/fee-settings/Asbitem.vue +++ b/src/views/fee-settings/Asbitem.vue @@ -86,6 +86,9 @@ + + @@ -436,15 +439,13 @@ - + - - - - + + @@ -491,6 +492,21 @@ + + + + + + + + + + + + + + + @@ -939,6 +955,8 @@ export default { isOutsend: "N", isDiscount: "Y", medicalCenterId: null, + countDown:null, // 二次检查计时(如:C13、C14第二次吹气间隔时间) + informedConsentTemplateId:null //知情书模板 }, forSexId: [], //性别 forPregnantFlag: [ @@ -1138,11 +1156,13 @@ export default { acceptTemplateParams: { id: '', // 模板ID brushTimes: 0, //控制刷新 - } + }, + acceptTemplates:[], }; }, created() { // this.getlist(); + this.dictInit() this.gitprojectcategory(); }, mounted() { @@ -1165,6 +1185,17 @@ export default { }, methods: { dddw, + + + dictInit(){ + //获取模板 + postapi("/api/app/InformedConsentTemplate/GetList").then((res) => { + if (res.code > -1) { + this.acceptTemplates = res.data; + } + }); + }, + changeBox(type) { //赋值 if (this.form[type + "Box"]) { @@ -1922,8 +1953,12 @@ export default { // 知情同意书模板 btnAcceptTemplate() { + if(this.curRow?.informedConsentTemplateId){ + this.$message.warning({showClose:true,message:'该项目未设置知情同意书模板!'}) + return + } this.dialogWin.acceptTemplate2 = true - this.acceptTemplateParams.id = this.curRow.id + this.acceptTemplateParams.id = this.curRow.informedConsentTemplateId this.acceptTemplateParams.brushTimes++ }, @@ -1994,6 +2029,9 @@ export default { price: Number(this.form.price), }); if (!obj.medicalCenterId) delete obj.medicalCenterId + if (!obj.informedConsentTemplateId) delete obj.informedConsentTemplateId + if (!obj.countDown) obj.countDown = 0 + if (this.title == 1) { newcombination(obj).then((res) => { if (res.code != -1) {