部分问题修复

main
wangxiaoshuang 2024-04-19 11:09:02 +08:00
parent c102dbe9f2
commit 7c56ec3c6a
10 changed files with 489 additions and 444 deletions

View File

@ -4,6 +4,7 @@
placeholder="请选择" placeholder="请选择"
@visible-change="selectChange" @visible-change="selectChange"
@change="handleChange" @change="handleChange"
:disabled="disabled"
> >
<el-option <el-option
v-for="item in list" v-for="item in list"
@ -34,6 +35,9 @@ export default {
return {}; return {};
}, },
}, },
disabled: {
default: false,
},
modelData: { modelData: {
required: true, required: true,
}, },

View File

@ -4,7 +4,7 @@ import {
} from 'element-ui/src/utils/resize-event' } from 'element-ui/src/utils/resize-event'
// 设置表格高度 // 设置表格高度
const doResize = async(el, binding, vnode) => { const doResize = async (el, binding, vnode) => {
// 获取表格Dom对象 // 获取表格Dom对象
const { componentInstance: $table } = await vnode const { componentInstance: $table } = await vnode
// 获取调用传递过来的数据 // 获取调用传递过来的数据
@ -14,7 +14,10 @@ const doResize = async(el, binding, vnode) => {
if (!$table) return if (!$table) return
// 计算列表高度并设置 // 计算列表高度并设置
const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset
// $table.layout.setMaxHeight(height) // $table.layout.setMaxHeight(height) bodyHeight
console.log($table);
console.log($table.layout.bodyHeight)
$table.bodyWrapper.style.height = `${$table.layout.bodyHeight}px`
$table.layout.setHeight(height) $table.layout.setHeight(height)
// $table.maxHeight = height // $table.maxHeight = height
$table.doLayout() $table.doLayout()
@ -24,7 +27,7 @@ export default {
// 初始化设置 // 初始化设置
bind(el, binding, vnode) { bind(el, binding, vnode) {
// 设置resize监听方法 // 设置resize监听方法
el.resizeListener = async() => { el.resizeListener = async () => {
await doResize(el, binding, vnode) await doResize(el, binding, vnode)
} }
// 绑定监听方法到addResizeListener // 绑定监听方法到addResizeListener

View File

@ -141,6 +141,7 @@
<!--切换访视--> <!--切换访视-->
<visitSelect <visitSelect
:modelData.sync="scope.row.SubjectVisitId" :modelData.sync="scope.row.SubjectVisitId"
:disabled="Number(scope.row.SubmitState) > 1"
:loading="addLoading" :loading="addLoading"
:studyData="scope.row" :studyData="scope.row"
:list="visitList" :list="visitList"
@ -169,7 +170,9 @@
icon="el-icon-delete" icon="el-icon-delete"
:title="$t('common:button:remove')" :title="$t('common:button:remove')"
@click.stop="remove(scope.row)" @click.stop="remove(scope.row)"
:disabled="!scope.row.SubjectVisitId" :disabled="
!scope.row.SubjectVisitId || Number(scope.row.SubmitState) > 1
"
/> />
</template> </template>
</el-table-column> </el-table-column>
@ -464,6 +467,7 @@ export default {
let data = { let data = {
TrialId: this.submitMessage.TrialId, TrialId: this.submitMessage.TrialId,
SubjectVisitIdList: [], SubjectVisitIdList: [],
SubjectId: this.submitMessage.SubjectId,
}; };
this.tableSelectData.forEach((item) => { this.tableSelectData.forEach((item) => {
data.SubjectVisitIdList.push(item.SubjectVisitId); data.SubjectVisitIdList.push(item.SubjectVisitId);

View File

@ -1,79 +1,102 @@
<template> <template>
<div class="notice-marquee_wrapper"> <div class="notice-marquee_wrapper">
<marquee ref="mar" hspace="0" direction="left" width="500" @mouseout="start()" @mouseover="stop()"> <marquee
ref="mar"
hspace="0"
direction="left"
width="500"
@mouseout="start()"
@mouseover="stop()"
>
<!-- <i class="el-icon-message-solid" /> --> <!-- <i class="el-icon-message-solid" /> -->
<svg-icon v-if="noticeList.length > 0" icon-class="speaker" /> <svg-icon v-if="noticeList.length > 0" icon-class="speaker" />
<span v-for="item in noticeList" :key="item.Id" style="cursor:pointer;" @click="showDetail(item)"> <span
v-for="item in noticeList"
:key="item.Id"
style="cursor: pointer"
@click="showDetail(item)"
>
{{ item.Content }} {{ item.Content }}
</span> </span>
</marquee> </marquee>
</div> </div>
</template> </template>
<script> <script>
import { setSystemNoticeHaveRead } from '@/api/global' import { setSystemNoticeHaveRead } from "@/api/global";
import { getBasicDataSelects } from '@/api/dictionary/dictionary' import { getBasicDataSelects } from "@/api/dictionary/dictionary";
export default { export default {
name: 'NoticeMarquee', name: "NoticeMarquee",
data() { data() {
return { return {
noteType: [] noteType: [],
} };
}, },
computed: { computed: {
noticeList() { noticeList() {
return this.$store.state.global.noticeList || [] return this.$store.state.global.noticeList || [];
} },
}, },
mounted() { mounted() {
this.getDicData() this.getDicData();
}, },
methods: { methods: {
start() { start() {
this.$refs['mar'].start() this.$refs["mar"].start();
}, },
stop() { stop() {
this.$refs['mar'].stop() this.$refs["mar"].stop();
}, },
showDetail(item) { showDetail(item) {
var currentNoticeType = '' var currentNoticeType = "";
const i = this.noteType.findIndex(note => note.Code * 1 === item.NoticeTypeEnum) const i = this.noteType.findIndex(
(note) => note.Code * 1 === item.NoticeTypeEnum
);
if (i > -1) { if (i > -1) {
currentNoticeType = this.noteType[i].Value currentNoticeType = this.noteType[i].Value;
} }
const h = this.$createElement const h = this.$createElement;
this.$msgbox({ this.$msgbox({
title: currentNoticeType, title: currentNoticeType,
message: h('span', null, item.Content), message: h("span", null, item.Content),
beforeClose: (action, instance, done) => { beforeClose: (action, instance, done) => {
if (action === 'confirm') { if (action === "confirm") {
instance.confirmButtonLoading = true instance.confirmButtonLoading = true;
setSystemNoticeHaveRead(item.Id).then(async res => { setSystemNoticeHaveRead(item.Id)
if (res.IsSuccess) { .then(async (res) => {
await this.$store.dispatch('global/getNoticeList') if (res.IsSuccess) {
} await this.$store.dispatch("global/getNoticeList");
instance.confirmButtonLoading = false }
done() instance.confirmButtonLoading = false;
}).catch(() => { instance.confirmButtonLoading = false }) done();
})
.catch(() => {
instance.confirmButtonLoading = false;
});
} else { } else {
done() done();
} }
} },
}) });
}, },
getDicData() { getDicData() {
getBasicDataSelects(['NoteType']).then(res => { getBasicDataSelects(["NoteType"]).then((res) => {
this.noteType = res.Result.NoteType this.noteType = res.Result.NoteType;
}) });
} },
} },
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.notice-marquee_wrapper{ .notice-marquee_wrapper {
>>>.el-dialog__header{ display: flex;
align-items: center;
span {
font-size: 20px;
}
>>> .el-dialog__header {
padding: 10px; padding: 10px;
} }
>>>.el-dialog__body{ >>> .el-dialog__body {
padding: 10px 20px; padding: 10px 20px;
line-height: 25px; line-height: 25px;
} }

View File

@ -154,7 +154,7 @@
height="100" height="100"
@selection-change="handleSelectChange" @selection-change="handleSelectChange"
@sort-change="handleSortByColumn" @sort-change="handleSortByColumn"
:default-sort="{ prop: 'SubmitTime', order: 'descending' }" :default-sort="{ prop: 'StudyTime', order: 'ascending' }"
> >
<el-table-column type="selection" align="center" width="45" /> <el-table-column type="selection" align="center" width="45" />
<!--患者编号--> <!--患者编号-->
@ -243,7 +243,7 @@ const defaultSearchData = () => {
return { return {
EarliestStudyTime: null, EarliestStudyTime: null,
LatestStudyTime: null, LatestStudyTime: null,
Asc: false, Asc: true,
SortField: "StudyTime", SortField: "StudyTime",
PatientIdStr: null, PatientIdStr: null,
}; };

View File

@ -271,14 +271,14 @@
</el-button> </el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<!--影像数据--> <!--影像数据-->
<el-dropdown-item <!-- <el-dropdown-item
v-hasPermi="['trials:trials-panel:hirVisit:result']" v-hasPermi="['trials:trials-panel:hirVisit:result']"
disabled disabled
command="result" command="result"
>{{ >{{
$t("trials:trials-panel:hirVisit:ImageData") $t("trials:trials-panel:hirVisit:ImageData")
}}</el-dropdown-item }}</el-dropdown-item
> > -->
<!--评估报告--> <!--评估报告-->
<el-dropdown-item <el-dropdown-item
v-hasPermi="['trials:trials-panel:hirVisit:result']" v-hasPermi="['trials:trials-panel:hirVisit:result']"
@ -456,6 +456,7 @@ export default {
let data = { let data = {
TrialId: this.$route.query.trialId, TrialId: this.$route.query.trialId,
SubjectVisitIdList: [item.SubjectVisitId], SubjectVisitIdList: [item.SubjectVisitId],
SubjectId: item.SubjectId,
}; };
try { try {
this.loading = true; this.loading = true;

View File

@ -1,382 +1,396 @@
<template> <template>
<BaseContainer> <BaseContainer>
<div slot="search-container"> <el-tabs v-model="TrialReadingCriterionId" type="border-card">
<el-form :inline="true"> <el-tab-pane
<!-- 阅片标准 --> v-for="item of trialCriterionList"
<el-form-item :label="$t('trials:auditRecord:table:criterion')"> :key="item.TrialReadingCriterionId"
<el-select :label="item.TrialReadingCriterionName"
v-model="searchData.TrialReadingCriterionId" :name="item.TrialReadingCriterionId"
clearable
style="width: 120px"
>
<el-option
v-for="item of trialCriterionList"
:key="'TrialReadingCriterionId' + item.TrialReadingCriterionId"
:value="item.TrialReadingCriterionId"
:label="item.TrialReadingCriterionName"
/>
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width: 100px" />
</el-form-item>
<!-- 任务名称 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:taskName')"
>
<el-select
v-model="searchData.TaskName"
clearable
filterable
style="width: 120px"
>
<el-option
v-for="(item, index) of siteOptions"
:key="index"
:label="item.TrialSiteCode"
:value="item.SiteId"
/>
</el-select>
</el-form-item>
<!-- 阅片人 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:reviewTrack:table:reader')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- 任务状态 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:readTask:table:taskState')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- 审核结果 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:auditRecord:table:auditResult')"
>
<el-select
v-model="searchData.PIAuditState"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.PIAuditState"
:key="'PIAuditState' + item.label"
:value="item.value"
:label="item.label"
/>
</el-select>
</el-form-item>
<!-- 是否入组 -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:auditRecord:table:isEnrollment')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<!-- 是否PD -->
<el-form-item
style="margin-bottom: 10px"
:label="$t('trials:auditRecord:table:isPDConfirm')"
>
<el-select
v-model="searchData.DoctorUserId"
clearable
style="width: 120px"
>
<el-option
v-for="item of DoctorUserList"
:key="'DoctorUserId' + item.DoctorUserId"
:value="item.DoctorUserId"
:label="`${item.UserName}(${item.FullName})`"
/>
</el-select>
</el-form-item>
<el-form-item style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t("common:button:search") }}
</el-button>
<el-button
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t("common:button:reset") }}
</el-button>
</el-form-item>
</el-form>
</div>
<div slot="main-container">
<el-table
v-adaptive="{ bottomOffset: 75 }"
v-loading="loading"
:data="list"
ref="myTable"
stripe
height="100"
@sort-change="handleSortChange"
> >
<!-- 任务编号 --> <div v-if="TrialReadingCriterionId === item.TrialReadingCriterionId">
<el-table-column <div slot="search-container">
prop="TaskCode" <el-form :inline="true">
:label="$t('trials:reviewTrack:table:taskCode')" <!-- 受试者编号 -->
width="120" <el-form-item :label="$t('trials:reviewTrack:table:subjectCode')">
sortable="custom" <el-input
show-overflow-tooltip v-model="searchData.SubjectCode"
/> style="width: 100px"
<!-- 受试者编号 --> />
<el-table-column </el-form-item>
prop="SubjectCode" <!-- 任务名称 -->
:label="$t('trials:reviewTrack:table:subjectCode')" <el-form-item
min-width="120" style="margin-bottom: 10px"
sortable="custom" :label="$t('trials:reviewTrack:table:taskName')"
show-overflow-tooltip >
/> <el-select
<!-- 任务名称 --> v-model="searchData.TaskName"
<el-table-column clearable
prop="VisitTaskNum" filterable
:label="$t('trials:reviewTrack:table:taskName')" style="width: 120px"
width="140" >
sortable="custom" <el-option
show-overflow-tooltip v-for="(item, index) of siteOptions"
> :key="index"
<template slot-scope="scope"> :label="item.TrialSiteCode"
{{ scope.row.TaskName }} :value="item.SiteId"
</template> />
</el-table-column> </el-select>
<!-- 角色 --> </el-form-item>
<el-table-column <!-- 阅片人 -->
prop="SubjectCode" <el-form-item
:label="$t('trials:auditRecord:table:role')" style="margin-bottom: 10px"
min-width="120" :label="$t('trials:reviewTrack:table:reader')"
sortable="custom" >
show-overflow-tooltip <el-select
/> v-model="searchData.DoctorUserId"
<!-- 阅片人 --> clearable
<el-table-column style="width: 120px"
prop="UserName" >
:label="$t('trials:reviewTrack:table:reader')" <el-option
width="130" v-for="item of DoctorUserList"
sortable="custom" :key="'DoctorUserId' + item.DoctorUserId"
show-overflow-tooltip :value="item.DoctorUserId"
> :label="`${item.UserName}(${item.FullName})`"
<template v-if="scope.row.UserName" slot-scope="scope"> />
{{ scope.row.UserName }}({{ scope.row.FullName }}) </el-select>
</template> </el-form-item>
</el-table-column> <!-- 任务状态 -->
<!-- 任务状态 --> <el-form-item
<el-table-column style="margin-bottom: 10px"
prop="SubjectCode" :label="$t('trials:readTask:table:taskState')"
:label="$t('trials:readTask:table:taskState')" >
min-width="120" <el-select
sortable="custom" v-model="searchData.DoctorUserId"
show-overflow-tooltip clearable
/> style="width: 120px"
<!-- 阅片标准 --> >
<el-table-column <el-option
prop="TrialReadingCriterionName" v-for="item of DoctorUserList"
:label="$t('trials:reviewTrack:table:criterionName')" :key="'DoctorUserId' + item.DoctorUserId"
min-width="180" :value="item.DoctorUserId"
sortable="custom" :label="`${item.UserName}(${item.FullName})`"
show-overflow-tooltip />
/> </el-select>
<!-- 阅片完成时间 --> </el-form-item>
<el-table-column <!-- 审核结果 -->
prop="SignTime" <el-form-item
:label="$t('trials:reviewTrack:table:signTime')" style="margin-bottom: 10px"
min-width="180" :label="$t('trials:auditRecord:table:auditResult')"
sortable="custom" >
show-overflow-tooltip <el-select
/> v-model="searchData.PIAuditState"
<!-- 创建人 --> clearable
<el-table-column style="width: 120px"
prop="FirstAuditUserName" >
:label="$t('trials:auditRecord:table:creator')" <el-option
width="130" v-for="item of $d.PIAuditState"
sortable="custom" :key="'PIAuditState' + item.label"
show-overflow-tooltip :value="item.value"
/> :label="item.label"
<!-- 创建时间 --> />
<el-table-column </el-select>
prop="FirstAuditTime" </el-form-item>
:label="$t('trials:auditRecord:table:createTime')" <!-- 是否入组 -->
width="130" <el-form-item
sortable="custom" style="margin-bottom: 10px"
show-overflow-tooltip :label="$t('trials:auditRecord:table:isEnrollment')"
/> >
<!-- 审核结果 --> <el-select
<el-table-column v-model="searchData.DoctorUserId"
prop="PIAuditState" clearable
:label="$t('trials:auditRecord:table:auditResult')" style="width: 120px"
min-width="140" >
sortable="custom" <el-option
show-overflow-tooltip v-for="item of DoctorUserList"
> :key="'DoctorUserId' + item.DoctorUserId"
<template slot-scope="scope"> :value="item.DoctorUserId"
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{ :label="`${item.UserName}(${item.FullName})`"
$fd("PIAuditState", scope.row.PIAuditState) />
}}</el-tag> </el-select>
<el-tag v-else-if="scope.row.PIAuditState === 1" type="primary">{{ </el-form-item>
$fd("PIAuditState", scope.row.PIAuditState) <!-- 是否PD -->
}}</el-tag> <el-form-item
<el-tag v-else-if="scope.row.PIAuditState === 2" type="warning" style="margin-bottom: 10px"
>{{ $fd("PIAuditState", scope.row.PIAuditState) }} :label="$t('trials:auditRecord:table:isPDConfirm')"
</el-tag> >
<span v-else>{{ <el-select
$fd("PIAuditState", scope.row.PIAuditState) v-model="searchData.DoctorUserId"
}}</span> clearable
</template> style="width: 120px"
</el-table-column> >
<el-table-column <el-option
prop="item.QuestionId" v-for="item of DoctorUserList"
:label="item.QuestionName" :key="'DoctorUserId' + item.DoctorUserId"
min-width="140" :value="item.DoctorUserId"
v-for="(item, index) of QuestionList" :label="`${item.UserName}(${item.FullName})`"
:key="'QuestionId' + index" />
show-overflow-tooltip </el-select>
> </el-form-item>
<template slot-scope="scope"> <el-form-item style="margin-bottom: 10px">
{{ <el-button
item.DictionaryCode type="primary"
? $fd( icon="el-icon-search"
item.DictionaryCode, @click="handleSearch"
parseInt( >
scope.row.PIReadingResultList.find( {{ $t("common:button:search") }}
(v) => v.QuestionId === item.QuestionId </el-button>
).Answer <el-button
) type="primary"
) icon="el-icon-refresh-left"
: scope.row.PIReadingResultList.find( @click="handleReset"
(v) => v.QuestionId === item.QuestionId >
).Answer {{ $t("common:button:reset") }}
}} </el-button>
</template> </el-form-item>
</el-table-column> </el-form>
<!-- 是否入组 --> </div>
<el-table-column <div slot="main-container">
prop="IsEnrollment" <el-table
:label="$t('trials:auditRecord:table:isEnrollment')" v-adaptive="{ bottomOffset: 75 }"
min-width="110" v-loading="loading"
sortable="custom" :data="list"
show-overflow-tooltip ref="myTable"
> stripe
<template slot-scope="scope"> @sort-change="handleSortChange"
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
</el-tag>
<el-tag
v-else-if="scope.row.IsEnrollment === false"
type="danger"
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
> >
</template> <!-- 任务编号 -->
</el-table-column> <el-table-column
<!-- 是否PD --> prop="TaskCode"
<el-table-column :label="$t('trials:reviewTrack:table:taskCode')"
prop="IsPDConfirm" width="120"
:label="$t('trials:auditRecord:table:isPDConfirm')" sortable="custom"
min-width="110" show-overflow-tooltip
sortable="custom" />
show-overflow-tooltip <!-- 受试者编号 -->
> <el-table-column
<template slot-scope="scope"> prop="SubjectCode"
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary"> :label="$t('trials:reviewTrack:table:subjectCode')"
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }} min-width="120"
</el-tag> sortable="custom"
<el-tag v-else-if="scope.row.IsPDConfirm === false" type="danger">{{ show-overflow-tooltip
$fd("YesOrNo", scope.row.IsPDConfirm) />
}}</el-tag> <!-- 任务名称 -->
</template> <el-table-column
</el-table-column> prop="VisitTaskNum"
<!-- 最新回复人 --> :label="$t('trials:reviewTrack:table:taskName')"
<el-table-column width="140"
prop="LatestReplyUserName" sortable="custom"
:label="$t('trials:auditRecord:table:latestReplyUserName')" show-overflow-tooltip
width="130" >
sortable="custom" <template slot-scope="scope">
show-overflow-tooltip {{ scope.row.TaskName }}
/> </template>
<!-- 最新回复时间 --> </el-table-column>
<el-table-column <!-- 角色 -->
prop="LatestReplyTime" <el-table-column
:label="$t('trials:auditRecord:table:latestReplyTime')" prop="SubjectCode"
width="130" :label="$t('trials:auditRecord:table:role')"
sortable="custom" min-width="120"
show-overflow-tooltip sortable="custom"
/> show-overflow-tooltip
<el-table-column />
fixed="right" <!-- 阅片人 -->
:label="$t('common:action:action')" <el-table-column
width="200" prop="UserName"
> :label="$t('trials:reviewTrack:table:reader')"
<template slot-scope="scope"> width="130"
<!-- 阅片结果 --> sortable="custom"
<el-button show-overflow-tooltip
circle >
icon="el-icon-view" <template v-if="scope.row.UserName" slot-scope="scope">
:title="$t('trials:auditRecord:table:readingResult')" {{ scope.row.UserName }}({{ scope.row.FullName }})
@click="handleView(scope.row)" </template>
</el-table-column>
<!-- 任务状态 -->
<el-table-column
prop="SubjectCode"
:label="$t('trials:readTask:table:taskState')"
min-width="120"
sortable="custom"
show-overflow-tooltip
/>
<!-- 阅片标准 -->
<el-table-column
prop="TrialReadingCriterionName"
:label="$t('trials:reviewTrack:table:criterionName')"
min-width="180"
sortable="custom"
show-overflow-tooltip
/>
<!-- 阅片完成时间 -->
<el-table-column
prop="SignTime"
:label="$t('trials:reviewTrack:table:signTime')"
min-width="180"
sortable="custom"
show-overflow-tooltip
/>
<!-- 创建人 -->
<el-table-column
prop="FirstAuditUserName"
:label="$t('trials:auditRecord:table:creator')"
width="130"
sortable="custom"
show-overflow-tooltip
/>
<!-- 创建时间 -->
<el-table-column
prop="FirstAuditTime"
:label="$t('trials:auditRecord:table:createTime')"
width="130"
sortable="custom"
show-overflow-tooltip
/>
<!-- 审核结果 -->
<el-table-column
prop="PIAuditState"
:label="$t('trials:auditRecord:table:auditResult')"
min-width="140"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.PIAuditState === 0" type="danger">{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</el-tag>
<el-tag
v-else-if="scope.row.PIAuditState === 1"
type="primary"
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}</el-tag
>
<el-tag
v-else-if="scope.row.PIAuditState === 2"
type="warning"
>{{ $fd("PIAuditState", scope.row.PIAuditState) }}
</el-tag>
<span v-else>{{
$fd("PIAuditState", scope.row.PIAuditState)
}}</span>
</template>
</el-table-column>
<el-table-column
:label="$t('trials:globalReview:table:evaluationRes')"
align="center"
v-if="QuestionList.length > 0"
>
<el-table-column
prop="item.QuestionId"
:label="item.QuestionName"
min-width="140"
v-for="(item, index) of QuestionList"
:key="'QuestionId' + index"
show-overflow-tooltip
>
<template slot-scope="scope">
{{
item.DictionaryCode
? $fd(
item.DictionaryCode,
parseInt(
scope.row.PIReadingResultList.find(
(v) => v.QuestionId === item.QuestionId
).Answer
)
)
: scope.row.PIReadingResultList.find(
(v) => v.QuestionId === item.QuestionId
).Answer
}}
</template>
</el-table-column>
</el-table-column>
<!-- 是否入组 -->
<el-table-column
prop="IsEnrollment"
:label="$t('trials:auditRecord:table:isEnrollment')"
min-width="110"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsEnrollment === true" type="primary">
{{ $fd("YesOrNo", scope.row.IsEnrollment) }}
</el-tag>
<el-tag
v-else-if="scope.row.IsEnrollment === false"
type="danger"
>{{ $fd("YesOrNo", scope.row.IsEnrollment) }}</el-tag
>
</template>
</el-table-column>
<!-- 是否PD -->
<el-table-column
prop="IsPDConfirm"
:label="$t('trials:auditRecord:table:isPDConfirm')"
min-width="110"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope">
<el-tag v-if="scope.row.IsPDConfirm === true" type="primary">
{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}
</el-tag>
<el-tag
v-else-if="scope.row.IsPDConfirm === false"
type="danger"
>{{ $fd("YesOrNo", scope.row.IsPDConfirm) }}</el-tag
>
</template>
</el-table-column>
<!-- 最新回复人 -->
<el-table-column
prop="LatestReplyUserName"
:label="$t('trials:auditRecord:table:latestReplyUserName')"
width="130"
sortable="custom"
show-overflow-tooltip
/>
<!-- 最新回复时间 -->
<el-table-column
prop="LatestReplyTime"
:label="$t('trials:auditRecord:table:latestReplyTime')"
width="130"
sortable="custom"
show-overflow-tooltip
/>
<el-table-column
fixed="right"
:label="$t('common:action:action')"
width="200"
>
<template slot-scope="scope">
<!-- 阅片结果 -->
<el-button
circle
icon="el-icon-view"
:title="$t('trials:auditRecord:table:readingResult')"
@click="handleView(scope.row)"
/>
<!-- 审核记录 -->
<el-button
circle
icon="el-icon-tickets"
:disabled="
scope.row.TaskState !== 0 || scope.row.PIAuditState === 0
"
:title="$t('trials:auditRecord:table:auditRecords')"
@click="handleAuditRecords(scope.row)"
/>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/> />
<!-- 审核记录 --> </div>
<el-button </div>
circle </el-tab-pane>
icon="el-icon-tickets" </el-tabs>
:disabled="
scope.row.TaskState !== 0 || scope.row.PIAuditState === 0
"
:title="$t('trials:auditRecord:table:auditRecords')"
@click="handleAuditRecords(scope.row)"
/>
</template>
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
class="page"
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
</div>
<!-- 审核记录 --> <!-- 审核记录 -->
<el-dialog <el-dialog
v-if="auditRecordVisible" v-if="auditRecordVisible"
@ -453,13 +467,13 @@ export default {
} }
}, },
}, },
beforeUpdate() { // beforeUpdate() {
this.$nextTick(() => { // this.$nextTick(() => {
if(this.$refs.myTable){ // if (this.$refs.myTable) {
this.$refs.myTable.doLayout(); // this.$refs.myTable.doLayout();
} // }
}); // });
}, // },
mounted() { mounted() {
this.trialId = this.$route.query.trialId; this.trialId = this.$route.query.trialId;
this.getTrialCriterionList(); this.getTrialCriterionList();
@ -475,15 +489,8 @@ export default {
.then((res) => { .then((res) => {
this.loading = false; this.loading = false;
this.QuestionList = res.OtherInfo.OtherObj; this.QuestionList = res.OtherInfo.OtherObj;
this.$nextTick(() => { this.list = res.Result.CurrentPageData;
setTimeout(() => { this.total = res.Result.TotalCount;
this.list = res.Result.CurrentPageData;
}, 100);
this.total = res.Result.TotalCount;
if(this.$refs.myTable){
this.$refs.myTable.doLayout();
}
});
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false;

View File

@ -708,7 +708,7 @@ export default {
this.trialId = this.$route.query.trialId; this.trialId = this.$route.query.trialId;
this.getTrialCriterionList(); this.getTrialCriterionList();
// this.getList() // this.getList()
this.getSite(); // this.getSite();
this.getDoctorUserSelectList(); this.getDoctorUserSelectList();
}, },
methods: { methods: {

View File

@ -64,7 +64,9 @@
</div> </div>
<div> <div>
<el-form-item :label="$t('trials:study:tabpane:bindPatient')"> <el-form-item :label="$t('trials:study:tabpane:bindPatient')">
<span v-if="bindPatientTip">{{ bindPatientTip }}</span> <span v-if="bindPatientTip">{{
bindPatientTip.map((item) => item.PatientIdStr).join(", ")
}}</span>
</el-form-item> </el-form-item>
</div> </div>
<!--患者--> <!--患者-->
@ -176,7 +178,7 @@ export default {
} }
}); });
if (PatientList.length <= 0) return false; if (PatientList.length <= 0) return false;
return PatientList.map((item) => item.PatientIdStr).join(", "); return PatientList;
}, },
}, },
created() { created() {
@ -220,7 +222,8 @@ export default {
if (res.IsSuccess) { if (res.IsSuccess) {
this.submitMessage.SubjectId = res.Result; this.submitMessage.SubjectId = res.Result;
this.submitMessage.TrialId = data.TrialId; this.submitMessage.TrialId = data.TrialId;
this.Patient.PatientId = data.PatientIdList; let patient = this.bindPatientTip.map((item) => item.PatientId);
this.Patient.PatientId = [...data.PatientIdList, ...patient];
this.$message.success(this.$t("common:message:addedSuccessfully")); this.$message.success(this.$t("common:message:addedSuccessfully"));
this.$emit("getList"); this.$emit("getList");
this.status = "visit"; this.status = "visit";

View File

@ -4,7 +4,7 @@
<template slot="search-container"> <template slot="search-container">
<el-form :inline="true"> <el-form :inline="true">
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item :label="$t('trials:crcQuestion:table:subjectId')"> <el-form-item :label="$t('trials:subject:table:subjectId')">
<el-input v-model="searchData.Code" style="width: 130px" clearable /> <el-input v-model="searchData.Code" style="width: 130px" clearable />
</el-form-item> </el-form-item>
<!-- 患者编号 --> <!-- 患者编号 -->
@ -211,13 +211,13 @@
@click="handleEdit(scope.row)" @click="handleEdit(scope.row)"
/> />
<!-- 修改状态 --> <!-- 修改状态 -->
<!-- <el-button <el-button
v-hasPermi="['trials:trials-panel:subject:status']" v-hasPermi="['trials:trials-panel:subject:status']"
circle circle
:title="$t('trials:subject:action:status')" :title="$t('trials:subject:action:status')"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleEditStatus(scope.row)" @click="handleEditStatus(scope.row)"
/> --> />
<!-- 删除 --> <!-- 删除 -->
<el-button <el-button
v-hasPermi="['trials:trials-panel:subject:delete']" v-hasPermi="['trials:trials-panel:subject:delete']"
@ -333,7 +333,7 @@ export default {
watch: { watch: {
list() { list() {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.subjectList&&this.$refs.subjectList.doLayout(); this.$refs.subjectList && this.$refs.subjectList.doLayout();
}); });
}, },
}, },