Browse Source

fix:[填报表单]病历学家审核

ouqian
15881625488@163.com 1 month ago
parent
commit
56a227e90f
9 changed files with 499 additions and 29 deletions
  1. +27
    -0
      src/api/business/study/studyFormFill.js
  2. +4
    -0
      src/lang/en/business/study/studyFormFill.js
  3. +4
    -0
      src/lang/zh/business/study/studyFormFill.js
  4. +17
    -2
      src/views/business/form/drug/comp/tbbdList.vue
  5. +20
    -14
      src/views/business/form/nonTrial/comp/tbbdList.vue
  6. +93
    -8
      src/views/business/study/comp/tbbd/Bj.vue
  7. +290
    -0
      src/views/business/study/comp/tbbd/Blxjsh.vue
  8. +32
    -5
      src/views/business/study/comp/tbbdList.vue
  9. +12
    -0
      src/views/business/template/list.vue

+ 27
- 0
src/api/business/study/studyFormFill.js View File

@ -136,6 +136,33 @@ export function studyFormFill_gc(data) {
})
}
//提交病理学家审核
export function studyFormFill_tjblxjsh(data) {
return request({
url: '/system/business/studyFormFill/tjblxjsh',
method: 'post',
data: data
})
}
//病理学家审核通过
export function studyFormFill_blxjshtg(data) {
return request({
url: '/system/business/studyFormFill/blxjshtg',
method: 'post',
data: data
})
}
//病理学家审核拒绝
export function studyFormFill_blxjshjj(data) {
return request({
url: '/system/business/studyFormFill/blxjshjj',
method: 'post',
data: data
})
}
//复核通过
export function studyFormFill_fhtg(data) {
return request({

+ 4
- 0
src/lang/en/business/study/studyFormFill.js View File

@ -22,6 +22,8 @@ export default {
next: 'Next',
pre: 'Pre',
save: 'Save',
blxjshtg:'病历学家审核通过',
blxjshjj:'病历学家审核拒绝',
submit: 'Submit',
bdnr: 'Record Information',
qmxx: 'Signature information',
@ -31,6 +33,8 @@ export default {
bzyy: 'Comment/Reason',
jcgj: 'Track Record',
cjjl: 'Create Record',
tjsh:'Submit Audit',
blxjsh:'病理学家审核',
sfbl: 'Back Entry',
yes: 'Yes',
no: 'No',

+ 4
- 0
src/lang/zh/business/study/studyFormFill.js View File

@ -21,6 +21,8 @@ export default {
zc: '暂存',
next: '下一步',
pre: '上一步',
blxjshtg:'病历学家审核通过',
blxjshjj:'病历学家审核拒绝',
save: '保存',
submit: '提交',
bdnr: '表单内容',
@ -33,6 +35,8 @@ export default {
cjjl: '创建记录',
sfbl: '是否补录',
yes: '是',
blxjsh:'病理学家审核',
tjsh:'提交审核',
no: '否',
tjjl: '提交记录',
sqfz: '申请废止',

+ 17
- 2
src/views/business/form/drug/comp/tbbdList.vue View File

@ -31,7 +31,8 @@
:end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" style="width: 200px" />
</el-form-item>
<el-form-item :label="$t('page.business.study.studyFormFill.sfbl')">
<el-select v-model="searchForm.sfbl" :placeholder="$t('form.placeholderSelect')" style="width: 150px" clearable @change="search">
<el-select v-model="searchForm.sfbl" :placeholder="$t('form.placeholderSelect')" style="width: 150px"
clearable @change="search">
<el-option :label="$t('page.business.study.studyFormFill.yes')" value="是" />
<el-option :label="$t('page.business.study.studyFormFill.no')" value="否" />
</el-select>
@ -143,6 +144,8 @@
<Sy v-show="showAudit" key="Sy" ref="Sy" @close="syClose" />
<!-- 复核 -->
<Fh v-show="showFh" key="Fh" ref="Fh" @close="fhClose" />
<!-- 病理学家审核 -->
<Blxjsh v-show="showBlxjsh" key="Blxjsh" ref="Blxjsh" @close="blxjshClose" />
<!-- 废止 -->
<Fz key="Fz" ref="Fz" @callback="search" />
<!-- 确认废止 -->
@ -167,6 +170,7 @@ import Xq from "@/views/business/study/comp/tbbd/Xq";
import Sy from "@/views/business/study/comp/tbbd/Sy";
import Fz from "@/views/business/study/comp/tbbd/Fz";
import Fh from "@/views/business/study/comp/tbbd/Fh";
import Blxjsh from "@/views/business/study/comp/tbbd/Blxjsh";
import Qrfz from "@/views/business/study/comp/tbbd/Qrfz";
import Jq from "@/views/business/study/comp/tbbd/Jq";
import Ghgsr from "@/views/business/study/comp/tbbd/Ghgsr";
@ -206,13 +210,14 @@ export default {
deep: true
}
},
components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
components: { Ghgsr, Fh, Fz, Bj, Blxjsh, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
data() {
return {
isQa: false,
leader: null,
showFh: false,
showAudit: false,
showBlxjsh: false,
showEdit: false,
showDetail: false,
daterangetj: [],
@ -369,6 +374,11 @@ export default {
this.$emit('showDetail', this.showFh)
this.search()
},
blxjshClose() {
this.showBlxjsh = false
this.$emit('showDetail', this.showBlxjsh)
this.search()
},
detail(row) {
this.showDetail = true
this.$emit('showDetail', this.showDetail)
@ -384,6 +394,11 @@ export default {
this.$emit('showDetail', this.showFh)
this.$refs.Fh.show(row)
},
blxjsh(row) {
this.showBlxjsh = true
this.$emit('showDetail', this.showBlxjsh)
this.$refs.Blxjsh.show(row)
},
}
}
</script>

+ 20
- 14
src/views/business/form/nonTrial/comp/tbbdList.vue View File

@ -30,7 +30,8 @@
:end-placeholder="$t('page.business.form.endDate')" value-format="yyyy-MM-dd" style="width: 200px" />
</el-form-item>
<el-form-item :label="$t('page.business.study.studyFormFill.sfbl')">
<el-select v-model="searchForm.sfbl" :placeholder="$t('form.placeholderSelect')" style="width: 150px" clearable>
<el-select v-model="searchForm.sfbl" :placeholder="$t('form.placeholderSelect')" style="width: 150px"
clearable>
<el-option :label="$t('page.business.study.studyFormFill.yes')" value="是" />
<el-option :label="$t('page.business.study.studyFormFill.no')" value="否" />
</el-select>
@ -141,6 +142,8 @@
<Sy v-show="showAudit" key="Sy" ref="Sy" @close="syClose" />
<!-- 复核 -->
<Fh v-show="showFh" key="Fh" ref="Fh" @close="fhClose" />
<!-- 病理学家审核 -->
<Blxjsh v-show="showBlxjsh" key="Blxjsh" ref="Blxjsh" @close="blxjshClose" />
<!-- 废止 -->
<Fz key="Fz" ref="Fz" @callback="search" />
<!-- 确认废止 -->
@ -166,6 +169,7 @@ import Xq from "@/views/business/study/comp/tbbd/Xq";
import Sy from "@/views/business/study/comp/tbbd/Sy";
import Fz from "@/views/business/study/comp/tbbd/Fz";
import Fh from "@/views/business/study/comp/tbbd/Fh";
import Blxjsh from "@/views/business/study/comp/tbbd/Blxjsh";
import Qrfz from "@/views/business/study/comp/tbbd/Qrfz";
import Jq from "@/views/business/study/comp/tbbd/Jq";
import Ghgsr from "@/views/business/study/comp/tbbd/Ghgsr";
@ -205,13 +209,14 @@ export default {
deep: true
}
},
components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
components: { Ghgsr, Fh, Fz, Blxjsh, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
data() {
return {
isQa: false,
leader: null,
showFh: false,
showAudit: false,
showBlxjsh: false,
showEdit: false,
showDetail: false,
daterangetj: [],
@ -454,6 +459,11 @@ export default {
this.$emit('showDetail', this.showFh)
this.search()
},
blxjshClose() {
this.showBlxjsh = false
this.$emit('showDetail', this.showBlxjsh)
this.search()
},
detail(row) {
this.showDetail = true
this.$emit('showDetail', this.showDetail)
@ -465,18 +475,14 @@ export default {
this.$refs.Sy.show(row)
},
fh(row) {
this.$modal.loading()
studyMethod_getReadAllMethodStatus({ userId: this.id, studyId: this.searchForm.studyId }).then(response => {
if (response.data.toUrl) {
this.toRead(response.data)
} else {
this.showFh = true
this.$emit('showDetail', this.showFh)
this.$refs.Fh.show(row)
}
}).finally(() => {
this.$modal.closeLoading()
})
this.showFh = true
this.$emit('showDetail', this.showFh)
this.$refs.Fh.show(row)
},
blxjsh(row) {
this.showBlxjsh = true
this.$emit('showDetail', this.showBlxjsh)
this.$refs.Blxjsh.show(row)
},
}
}

+ 93
- 8
src/views/business/study/comp/tbbd/Bj.vue View File

@ -32,7 +32,10 @@
$t('page.business.study.studyFormFill.yjcc')
}}</el-button>
<el-button @click="showSave">{{ $t('page.business.study.studyFormFill.save') }}</el-button>
<el-button type="primary" @click="showApprove">{{ $t('page.business.study.studyFormFill.submit')
<el-button type="primary" v-if="form.blxjshzt != 10 && form.showBlxjsh == 10" @click="showTjsh">{{
$t('page.business.study.studyFormFill.tjsh')
}}</el-button>
<el-button type="primary" v-else @click="showApprove">{{ $t('page.business.study.studyFormFill.submit')
}}</el-button>
<el-button type="primary" @click="pre">{{ $t('page.business.study.studyFormFill.pre') }}</el-button>
</template>
@ -78,7 +81,7 @@
</el-row>
</el-form>
</div>
<div class="content" v-if="showIndex == 2&&templateData.templateId">
<div class="content" v-if="showIndex == 2 && templateData.templateId">
<TemplateTable emitName="onFillCallback" @onFillCallback="onFillCallback" ref="templateTable"
:sn="templateData.templateSn" :templateData="templateData" fillType="actFill" />
</div>
@ -124,7 +127,7 @@
</template>
</el-form-item>
</el-col>
<el-col :psna="24" >
<el-col :psna="24">
<el-form-item>
<div><el-checkbox v-model="formApprove.sfcc" @change="sfccChange">{{
$t('page.business.study.studyFormFill.cc') }}</el-checkbox>
@ -150,7 +153,8 @@
<div style="display: flex; margin-left: 10px;">
<div> 存储条件</div>
<div>
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" :multiple="true" style="width: 200px;">
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" :multiple="true"
style="width: 200px;">
</BusinessSelect>
</div>
</div>
@ -263,7 +267,8 @@
<div style="display: flex; margin-left: 10px;">
<div> 存储条件</div>
<div>
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" :multiple="true" style="width: 200px;">
<BusinessSelect v-model="citem.cctj" dictType="business_cctj" :multiple="true"
style="width: 200px;">
</BusinessSelect>
</div>
</div>
@ -369,12 +374,57 @@
<el-button @click="openSave = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
<el-dialog :title="$t('page.business.study.studyFormFill.tjsh')" :visible.sync="openTjsh" width="600px"
append-to-body :close-on-click-modal="false">
<el-form ref="formTjsh" :model="formTjsh" :rules="rulesTjsh" label-width="120px" v-if="openTjsh">
<div class="sbzdtcma"> <input type="text"> <input type="password" show-password> </div>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="formTjsh.qmyy" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.remark')" prop="remark">
<el-input type="textarea" v-model="formTjsh.remark" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<div class="sbzdtcma"> <input type="text"></div>
<el-input type="password" show-password v-model="formTjsh.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveTjsh">{{ $t('form.confirm') }}</el-button>
<el-button @click="openTjsh = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listData } from "@/api/system/dict/data"
import { studyFormFill_bc, studyFormFill_yjccFilter, studyFormFill_yjcc, studyFormFill_bcOnly, studyFormFill_updateBdnr, studyFormFill_tj, studyFormFill_info, studyFormFill_updateFhyjjl } from "@/api/business/study/studyFormFill"
import { studyFormFill_bc, studyFormFill_yjccFilter, studyFormFill_yjcc, studyFormFill_tjblxjsh, studyFormFill_bcOnly, studyFormFill_updateBdnr, studyFormFill_tj, studyFormFill_info, studyFormFill_updateFhyjjl } from "@/api/business/study/studyFormFill"
import { study_info } from "@/api/business/study/study"
import { mapGetters } from 'vuex'
import SelectTemplate from "@/views/business/comps/select/SelectTemplate";
@ -413,6 +463,7 @@ export default {
cclist: [],
cclistYj: [],
openSave: false,
openTjsh: false,
openApprove: false,
openYjcc: false,
formSave: {
@ -428,7 +479,7 @@ export default {
resource: '',
yqResource: '',
jcbList: '',
xbxj:'',
xbxj: '',
qmrmm: '',
sfcz: false,
czfs: '',
@ -454,6 +505,12 @@ export default {
ccwz: '',
ccids: '',
},
formTjsh: {
id: null,
qmyy: this.$t('page.business.study.studyFormFill.txbtjjl'),
remark: '',
qmrmm: '',
},
resourceYj: [],
resource: [],
yqResource: [],
@ -474,6 +531,13 @@ export default {
trigger: 'blur'
}]
},
rulesTjsh: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}]
},
rulesSave: {
qmrmm: [{
required: true,
@ -612,7 +676,7 @@ export default {
this.showIndex = 1
this.$modal.loading()
study_info({ id: params.studyId }).then(response => {
this.form = _.merge({}, this.form, { studySubjectId: params.studySubjectId, studyId: params.studyId, resourceStudy: response.data.resource, sftb: 1,studyMc:response.data.name,studySn:response.data.sn })
this.form = _.merge({}, this.form, { studySubjectId: params.studySubjectId, studyId: params.studyId, resourceStudy: response.data.resource, sftb: 1, studyMc: response.data.name, studySn: response.data.sn })
this.templateData = deepClone(this.form)
const obj = Object.assign({}, this.$route, { title: this.$t('page.business.study.studyFormFill.xzbd') })
this.$tab.updatePage(obj);
@ -718,6 +782,27 @@ export default {
that.$modal.msgError("没有可存储的药剂")
}
},
showTjsh() {
let that = this
that.formTjsh.id = that.form.id
that.formTjsh.remark = ''
that.formTjsh.qmrmm = ''
that.openTjsh = true
},
saveTjsh() {
let that = this
this.$refs["formTjsh"].validate(valid => {
if (valid) {
that.$modal.loading()
studyFormFill_tjblxjsh(that.formTjsh).then(response => {
that.openTjsh = false
that.cancelSave()
}).finally(() => {
that.$modal.closeLoading()
})
}
})
},
resetYjcc() {
this.formYjcc = {
id: null,

+ 290
- 0
src/views/business/study/comp/tbbd/Blxjsh.vue View File

@ -0,0 +1,290 @@
<template>
<div>
<div class="edit-container" v-if="open">
<div class="edit-top">
<div class="left-top">
<img src="@/assets/images/back.png" @click="cancel()" />
<div class="left-title"></div>
</div>
<div class="center-top">
</div>
<div class="right-top">
<el-button @click="cancel()">{{ $t('form.cancel') }}</el-button>
<el-button type="danger" @click="showApprove('病理学家审核拒绝')">{{ $t('page.business.study.studyFormFill.reject')
}}</el-button>
<el-button type="primary" @click="showApprove('病理学家审核通过')">{{ $t('page.business.study.studyFormFill.approve')
}}</el-button>
</div>
</div>
<div class="edit-content">
<div class="content-left">
<TemplateTable emitName="onFillFhCallback" @onFillFhCallback="onFillFhCallback" ref="templateTable"
:sn="form.templateSn" :templateData="form" fillType="blxj" />
<div class="content-title">
<div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.qmxx') }}</div>
</div>
<div class="pal">
<el-table :data="qmxxList" v-loading="loadingQmxx">
<el-table-column :label="$t('page.business.study.studyFormFill.qmr')" align="center" prop="qmrMc"
width="150px" />
<el-table-column :label="$t('page.business.study.studyFormFill.qmyy')" align="center" prop="qmyy"
width="150px" />
<el-table-column :label="$t('page.business.study.studyFormFill.qmsj')" align="center" prop="createTime"
width="150px" />
<el-table-column :label="$t('page.business.study.studyFormFill.bzyy')" align="center" prop="remark"
:show-overflow-tooltip="true" />
</el-table>
</div>
<div class="pal">
<pagination v-show="totalQmxx > 0" :total="totalQmxx" :page.sync="queryParamsQmxx.pageNum"
:limit.sync="queryParamsQmxx.pageSize" @pagination="getQmxxList" />
</div>
</div>
<div class="content-right">
<div class="content-title">
<div class="line"></div>
<div class="subtitle"> {{ $t('page.business.study.studyFormFill.jcgj') }}</div>
</div>
<JcgjList ref="jcgjList" @handleQuery="getJjcgjList" :showXg="true"/>
<pagination v-show="jcgjTotal > 0" small layout="prev, pager, next" :total="jcgjTotal"
@pagination="getJjcgjList" :page.sync="queryParamsJcgj.pageNum"
:limit.sync="queryParamsJcgj.pageSize"/>
</div>
</div>
</div>
<el-dialog :title="$t(openTitle)" :visible.sync="openApprove" width="500px" append-to-body
:close-on-click-modal="false">
<el-form ref="formApprove" :model="formApprove" :rules="rulesApprove" label-width="120px" v-if="openApprove">
<div class="sbzdtcma"> <input type="text"> <input type="password" show-password > </div>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.qmyy')" prop="qmyy">
<el-input type="text" :value="formApprove.qmyyMc" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="formApprove.qmyy == '病理学家审核拒绝'">
<el-col :span="24">
<el-form-item :label="$t('page.business.study.studyFormFill.reason')" prop="reason">
<el-input type="textarea" v-model="formApprove.reason" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-else>
<el-col :span="24">
<el-form-item :label="$t('form.remark')">
<el-input type="textarea" v-model="formApprove.remark" :rows="5" maxlength="500"
:placeholder="$t('form.placeholderInput')">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.signer')">
<el-input type="text" v-model="nickName" maxlength="50" disabled
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="$t('form.password')" prop="qmrmm">
<el-input type="password" show-password v-model="formApprove.qmrmm" maxlength="20"
:placeholder="$t('form.placeholderInput')" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="approve">{{ $t('form.confirm') }}</el-button>
<el-button @click="openApprove = false">{{ $t('form.cancel') }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { studyFormFill_blxjshtg, studyFormFill_blxjshjj, studyFormFill_updateZdgxjl, studyFormFill_updateFhyjjl, studyFormFill_info, studyFormFill_jcgj, studyFormFill_qmxx } from "@/api/business/study/studyFormFill"
import { mapGetters } from 'vuex'
import JcgjList from "@/views/business/comps/common/JcgjList";
import TemplateTable from '@/views/business/comps/template/TemplateTable';
export default {
name: "Blxjsh",
components: { TemplateTable, JcgjList },
data() {
return {
form: {},
open: false,
qmxxList: [],
totalQmxx: 0,
loadingQmxx: true,
queryParamsQmxx: {
formId: null,
pageNum: 1,
pageSize: 10
},
jcgjList: [],
jcgjTotal: 0,
queryParamsJcgj: {
pageNum: 1,
formId: null,
pageSize: 10,
},
openTitle: '',
openApprove: false,
formApprove: {},
rulesApprove: {
qmrmm: [{
required: true,
message: ' ',
trigger: 'blur'
}],
reason: [{
required: true,
message: ' ',
trigger: 'blur'
}],
}
}
},
computed: {
...mapGetters([
'nickName', 'name'
]),
},
created() {
},
methods: {
onFillFhCallback(data) {
console.log("data:" + JSON.stringify(data))
console.log("formdata:" + JSON.stringify(this.$refs.templateTable.getFilledFormData()))
if (data.type == 'checkbox') {
// {"type":"checkbox","fieldCheckObj":"{\"_methodCode\":{\"checked\":false}}"}
studyFormFill_updateZdgxjl(
{
id: this.form.id,
zdgxjl: data.fieldCheckObj
}
).then(response => {
})
}
else if (data.type == 'content') {
// {"type":"content","newRecord":{"userNameCn":"","userNameEn":"tf","key":"_versionNum","field":"-","title":"","time":"2026-01-14 20:23:30","content":"qweqe"},"resourceList":[{"userNameCn":"","userNameEn":"tf","key":"_versionNum","field":"-","title":"","time":"2026-01-14 20:23:30","content":"qweqe"},{"userNameCn":"","userNameEn":"tf","key":"_methodCode","field":"-","title":"","time":"2026-01-14 20:23:28","content":"qweqw"}]}
studyFormFill_updateFhyjjl(
{
id: this.form.id,
content: JSON.stringify(data.newRecord),
fhyjjl: JSON.stringify(data.resourceList)
}
).then(response => {
})
}
},
getJjcgjList(val) {
this.$modal.loading()
if(val){
this.queryParamsJcgj=_.merge({}, this.queryParamsJcgj, val)
}
studyFormFill_jcgj(this.queryParamsJcgj).then(response => {
this.jcgjList = response.rows
this.jcgjTotal = response.total
this.$refs.jcgjList.init(this.jcgjList)
}).finally(() => {
this.$modal.closeLoading()
})
},
getQmxxList() {
this.loadingQmxx = true
studyFormFill_qmxx(this.queryParamsQmxx).then(response => {
this.qmxxList = response.rows
this.totalQmxx = response.total
this.loadingQmxx = false
})
},
cancel() {
this.$emit('close')
this.open = false
},
reset() {
this.form = {}
this.resetForm("form")
},
show(row) {
this.reset()
this.$modal.loading()
this.queryParamsJcgj.formId = row.id
this.queryParamsQmxx.formId = row.id
studyFormFill_info({ id: row.id }).then(response => {
this.form = response.data
this.getQmxxList()
this.getJjcgjList()
this.saveSimpleLog({ jcmc: '填报表单审核', jcmcEn: '病历学家审核', name: this.form.bdmc + '(' + this.form.bdbh + ')', nameEn: this.form.bdmc + '(' + this.form.bdbh + ')' })
this.open = true
}).finally(() => {
this.$modal.closeLoading()
})
},
async showApprove(qmyy) {
let content = await this.$refs.templateTable.getFormData()
if (content) {
this.openApprove = true
this.resetApprove()
this.formApprove.id = this.form.id
this.formApprove.bdnr = JSON.stringify(content)
this.formApprove.qmyy = qmyy
if (qmyy == '病理学家审核通过') {
this.openTitle = 'page.business.study.studyFormFill.blxjshtg'
this.formApprove.qmyyMc = this.$t('page.business.study.studyFormFill.blxjshtg')
} else if (qmyy == '病理学家审核拒绝') {
this.openTitle = 'page.business.study.studyFormFill.blxjshjj'
this.formApprove.qmyyMc = this.$t('page.business.study.studyFormFill.blxjshjj')
}
}
},
resetApprove() {
this.formApprove = {
id: null,
qmyy: '',
qmyyMc: '',
bdnr: '',
remark: '',
reason: '',
qmrmm: '',
}
this.resetForm("formApprove")
},
approve() {
this.$refs["formApprove"].validate(valid => {
if (valid) {
this.$modal.loading()
if (this.formApprove.qmyy == '病理学家审核通过') {
studyFormFill_blxjshtg(this.formApprove).then(response => {
this.openApprove = false
this.$emit('close')
this.open = false
}).finally(() => {
this.$modal.closeLoading()
})
} else if (this.formApprove.qmyy == '病理学家审核拒绝') {
this.formApprove.remark = this.formApprove.reason
studyFormFill_blxjshjj(this.formApprove).then(response => {
this.openApprove = false
this.$emit('close')
this.open = false
}).finally(() => {
this.$modal.closeLoading()
})
}
}
})
}
}
}
</script>

+ 32
- 5
src/views/business/study/comp/tbbdList.vue View File

@ -1,6 +1,6 @@
<template>
<div>
<div class="tbbd-list" v-show="!showDetail && !showEdit && !showAudit && !showFh">
<div class="tbbd-list" v-show="!showDetail && !showEdit && !showAudit && !showFh &&!showBlxjsh">
<div class="tbbd-search">
<el-form :model="searchForm" ref="searchForm" :inline="true" >
@ -97,7 +97,7 @@
<template v-if="searchForm.studyStatus < 5">
<!-- 编辑 -->
<el-button type="text"
v-if="(scope.row.bdzt === 1 || scope.row.bdzt === 5 || scope.row.bdzt === 7) && id == scope.row.userId"
v-if="(scope.row.bdzt === 1 || scope.row.bdzt === 5 || scope.row.bdzt === 7) && id == scope.row.userId&&((scope.row.blxjshzt != 3 && scope.row.showBlxjsh == 10)||scope.row.showBlxjsh==1)"
@click="edit(scope.row)" v-hasPermi="['business:studyFormFill:bj']">{{
$t('form.edit') }}</el-button>
<!-- 复核 -->
@ -119,17 +119,21 @@
@click="sy(scope.row)" v-hasPermi="['business:studyFormFill:sy']">{{
$t('page.business.study.studyFormFill.sy') }}</el-button>
<!-- 废止 -->
<el-button type="text" v-if="scope.row.bdzt === 1 && id == scope.row.userId" @click="fz(scope.row)"
<el-button type="text" v-if="scope.row.bdzt === 1 && id == scope.row.userId&&((scope.row.blxjshzt != 3 && scope.row.showBlxjsh == 10)||scope.row.showBlxjsh==1)" @click="fz(scope.row)"
v-hasPermi="['business:studyFormFill:fz']">{{
$t('page.business.study.studyFormFill.fz') }}</el-button>
<!-- 确认废止 -->
<el-button type="text" v-if="scope.row.bdzt === 9 && id == leader" @click="qrfz(scope.row)"
v-hasPermi="['business:studyFormFill:qrfz']">{{
$t('page.business.study.studyFormFill.qrfz') }}</el-button>
<!-- 观察 todo 观察按钮只在系统模板为细胞复苏记录表才展示) -->
<!-- 观察 -->
<el-button type="text" v-if="scope.row.bdzt === 1 && scope.row.showGc == 10" @click="gc(scope.row)"
v-hasPermi="['business:studyFormFill:gc']">{{
$t('page.business.study.studyFormFill.gc') }}</el-button>
<!-- 提交病理学家审核 -->
<el-button type="text" v-if="scope.row.blxjshzt === 3 && scope.row.showBlxjsh == 10" @click="blxjsh(scope.row)"
v-hasPermi="['business:studyFormFill:blxjsh']">{{
$t('page.business.study.studyFormFill.blxjsh') }}</el-button>
</template>
</template>
</el-table-column>
@ -147,6 +151,8 @@
<Sy v-show="showAudit" key="Sy" ref="Sy" @close="syClose" />
<!-- 复核 -->
<Fh v-show="showFh" key="Fh" ref="Fh" @close="fhClose" />
<!-- 病理学家审核 -->
<Blxjsh v-show="showBlxjsh" key="Blxjsh" ref="Blxjsh" @close="blxjshClose" />
<!-- 废止 -->
<Fz key="Fz" ref="Fz" @callback="search" />
<!-- 确认废止 -->
@ -175,6 +181,7 @@ import Qrfz from "./tbbd/Qrfz";
import Jq from "./tbbd/Jq";
import Ghgsr from "./tbbd/Ghgsr";
import Gc from "./tbbd/Gc";
import Blxjsh from "./tbbd/Blxjsh";
import SelectDeptUser from '@/views/business/comps/select/SelectDeptUser';
import SelectDeptUserDialog from '@/views/business/comps/select/SelectDeptUserDialog';
import { caesarCipher } from "@/utils/index";
@ -228,7 +235,7 @@ export default {
//
EventBus.$off('onRefreshStudyTbbdList');
},
components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc, SelectDeptUser, SelectDeptUserDialog },
components: { Ghgsr, Fh, Fz, Bj, Xq, Qrfz, Sy, Jq, Gc,Blxjsh, SelectDeptUser, SelectDeptUserDialog },
data() {
return {
isMatchSubject: false,
@ -236,6 +243,7 @@ export default {
leader: null,
showFh: false,
showAudit: false,
showBlxjsh: false,
showEdit: false,
showDetail: false,
daterangetj: [],
@ -475,6 +483,11 @@ export default {
this.$emit('showDetail', this.showFh)
this.search()
},
blxjshClose() {
this.showBlxjsh = false
this.$emit('showDetail', this.showBlxjsh)
this.search()
},
detail(row) {
this.showDetail = true
this.$emit('showDetail', this.showDetail)
@ -498,6 +511,20 @@ export default {
}).finally(() => {
this.$modal.closeLoading()
})
},
blxjsh(row) {
this.$modal.loading()
studyMethod_getReadAllMethodStatus({ userId: this.id, studyId: this.searchForm.studyId, studySubjectId: this.searchForm.studySubjectId }).then(response => {
if (response.data.toUrl) {
this.toRead(response.data)
} else {
this.showBlxjsh = true
this.$emit('showDetail', this.showBlxjsh)
this.$refs.Blxjsh.show(row)
}
}).finally(() => {
this.$modal.closeLoading()
})
},
}
}

+ 12
- 0
src/views/business/template/list.vue View File

@ -138,6 +138,15 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="是否需要病理学家审核:" prop="showBlxjsh">
<el-select v-model="infoDialog.formData.showBlxjsh" :placeholder="$t('form.placeholderSelect')"
style="width:100%">
<el-option label="否" :value="1" />
<el-option label="是" :value="10" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所属试验类型:" prop="studyType">
<el-select v-model="studyTypeArr" multiple @change="studyTypeChange"
@ -261,6 +270,9 @@ export default {
showGc: [
{ required: true, message: '请选择', trigger: "blur" }
],
showBlxjsh: [
{ required: true, message: '请选择', trigger: "blur" }
],
sn: [
{ required: true, message: '请输入', trigger: "blur" }
],

Loading…
Cancel
Save