影像质控拍片日期修改
continuous-integration/drone/push Build is passing Details

uat_us
wangxiaoshuang 2024-11-18 10:46:49 +08:00
parent 629816217c
commit 6cb544117c
1 changed files with 230 additions and 215 deletions

View File

@ -144,7 +144,7 @@
<el-form-item> <el-form-item>
<!-- 查询 --> <!-- 查询 -->
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">
{{ $t("common:button:search") }} {{ $t('common:button:search') }}
</el-button> </el-button>
<!-- 重置 --> <!-- 重置 -->
<el-button <el-button
@ -152,7 +152,7 @@
icon="el-icon-refresh-left" icon="el-icon-refresh-left"
@click="handleReset" @click="handleReset"
> >
{{ $t("common:button:reset") }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!-- 导出 --> <!-- 导出 -->
<el-button <el-button
@ -161,7 +161,7 @@
:loading="exportLoading" :loading="exportLoading"
@click="handleExport" @click="handleExport"
> >
{{ $t("common:button:export") }} {{ $t('common:button:export') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -229,7 +229,7 @@
:disabled="!(userTypeEnumInt === 1 || userTypeEnumInt === 3)" :disabled="!(userTypeEnumInt === 1 || userTypeEnumInt === 3)"
@click="handleUrgentStatus(scope.row)" @click="handleUrgentStatus(scope.row)"
> >
{{ $fd("YesOrNo", scope.row.IsUrgent) }} {{ $fd('YesOrNo', scope.row.IsUrgent) }}
</el-button> </el-button>
<el-button <el-button
v-else-if=" v-else-if="
@ -241,14 +241,14 @@
:disabled="!(userTypeEnumInt === 1 || userTypeEnumInt === 3)" :disabled="!(userTypeEnumInt === 1 || userTypeEnumInt === 3)"
@click="handleUrgentStatus(scope.row)" @click="handleUrgentStatus(scope.row)"
> >
{{ $fd("YesOrNo", scope.row.IsUrgent) }} {{ $fd('YesOrNo', scope.row.IsUrgent) }}
</el-button> </el-button>
<span v-else> <span v-else>
<el-tag v-if="scope.row.IsUrgent" type="danger"> <el-tag v-if="scope.row.IsUrgent" type="danger">
{{ $fd("YesOrNo", scope.row.IsUrgent) }} {{ $fd('YesOrNo', scope.row.IsUrgent) }}
</el-tag> </el-tag>
<el-tag v-else type="primary"> <el-tag v-else type="primary">
{{ $fd("YesOrNo", scope.row.IsUrgent) }} {{ $fd('YesOrNo', scope.row.IsUrgent) }}
</el-tag> </el-tag>
</span> </span>
</template> </template>
@ -290,22 +290,22 @@
</span> </span>
<!-- PD --> <!-- PD -->
<span v-if="scope.row.PDState" class="status-primary-circle"> <span v-if="scope.row.PDState" class="status-primary-circle">
{{ $t("trials:crcUpload:label:pd") }} {{ $t('trials:crcUpload:label:pd') }}
</span> </span>
<!-- --> <!-- -->
<span v-if="scope.row.IsLostVisit" class="status-primary-circle"> <span v-if="scope.row.IsLostVisit" class="status-primary-circle">
{{ $t("trials:crcUpload:label:lostVisit") }} {{ $t('trials:crcUpload:label:lostVisit') }}
</span> </span>
<!-- --> <!-- -->
<span v-if="scope.row.IsFinalVisit" class="status-primary-circle"> <span v-if="scope.row.IsFinalVisit" class="status-primary-circle">
{{ $t("trials:crcUpload:label:finalVisit") }} {{ $t('trials:crcUpload:label:finalVisit') }}
</span> </span>
<!-- --> <!-- -->
<span <span
v-if="scope.row.IsEnrollmentConfirm" v-if="scope.row.IsEnrollmentConfirm"
class="status-primary-circle" class="status-primary-circle"
> >
{{ $t("trials:crcUpload:label:enrollmentConfirm") }} {{ $t('trials:crcUpload:label:enrollmentConfirm') }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
@ -320,7 +320,7 @@
<el-tooltip placement="bottom"> <el-tooltip placement="bottom">
<div slot="content"> <div slot="content">
<span <span
>{{ $t("trials:crcUpload:label:dicom") }}: >{{ $t('trials:crcUpload:label:dicom') }}:
{{ scope.row.DicomStudyCount }}, {{ scope.row.DicomStudyCount }},
</span> </span>
<span <span
@ -330,16 +330,16 @@
" "
> >
<span <span
>{{ $t("trials:crcUpload:label:noneDicom") }}: >{{ $t('trials:crcUpload:label:noneDicom') }}:
{{ scope.row.NoneDicomStudyCount }}, {{ scope.row.NoneDicomStudyCount }},
</span> </span>
<span <span
>{{ $t("trials:crcUpload:label:clinicalData") }}: >{{ $t('trials:crcUpload:label:clinicalData') }}:
{{ scope.row.IsHaveClinicalData ? "w/" : "w/o" }}</span {{ scope.row.IsHaveClinicalData ? 'w/' : 'w/o' }}</span
> >
</span> </span>
<span v-else <span v-else
>{{ $t("trials:crcUpload:label:noneDicom") }}: >{{ $t('trials:crcUpload:label:noneDicom') }}:
{{ scope.row.NoneDicomStudyCount }}</span {{ scope.row.NoneDicomStudyCount }}</span
> >
</div> </div>
@ -350,19 +350,19 @@
? [ ? [
scope.row.DicomStudyCount, scope.row.DicomStudyCount,
scope.row.NoneDicomStudyCount, scope.row.NoneDicomStudyCount,
scope.row.IsHaveClinicalData ? "w/" : "w/o", scope.row.IsHaveClinicalData ? 'w/' : 'w/o',
].join(", ") ].join(', ')
: [ : [
scope.row.DicomStudyCount, scope.row.DicomStudyCount,
scope.row.NoneDicomStudyCount, scope.row.NoneDicomStudyCount,
].join(", ") ].join(', ')
}} }}
</span> </span>
</el-tooltip> </el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
<!-- 最早拍片日期 --> <!-- 最早拍片日期 -->
<el-table-column <!-- <el-table-column
prop="EarliestScanDate" prop="EarliestScanDate"
:label="$t('trials:qcCheck:table:eScanDate')" :label="$t('trials:qcCheck:table:eScanDate')"
show-overflow-tooltip show-overflow-tooltip
@ -376,7 +376,7 @@
: "" : ""
}} }}
</template> </template>
</el-table-column> </el-table-column> -->
<!-- 最晚拍片日期 --> <!-- 最晚拍片日期 -->
<el-table-column <el-table-column
prop="LatestScanDate" prop="LatestScanDate"
@ -386,11 +386,28 @@
sortable="custom" sortable="custom"
> >
<template slot-scope="scope"> <template slot-scope="scope">
{{ <el-tooltip
scope.row.LatestScanDate class="item"
? moment(scope.row.LatestScanDate).format("YYYY-MM-DD") effect="dark"
: "" :content="`${
}} scope.row.EarliestScanDate
? moment(scope.row.EarliestScanDate).format('YYYY-MM-DD')
: ''
} ~ ${
scope.row.LatestScanDate
? moment(scope.row.LatestScanDate).format('YYYY-MM-DD')
: ''
}`"
placement="top"
>
<span>
{{
scope.row.LatestScanDate
? moment(scope.row.LatestScanDate).format('YYYY-MM-DD')
: ''
}}
</span>
</el-tooltip>
</template> </template>
</el-table-column> </el-table-column>
<!-- 提交时间 --> <!-- 提交时间 -->
@ -420,7 +437,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.AuditState * 1 === 0">--</span> <span v-if="scope.row.AuditState * 1 === 0">--</span>
<el-tag v-else-if="scope.row.AuditState * 1 === 3" type="warning">{{ <el-tag v-else-if="scope.row.AuditState * 1 === 3" type="warning">{{
$fd("AuditStatePE", scope.row.AuditState * 1) $fd('AuditStatePE', scope.row.AuditState * 1)
}}</el-tag> }}</el-tag>
<el-tag <el-tag
v-else-if=" v-else-if="
@ -428,7 +445,7 @@
" "
type="warning" type="warning"
> >
{{ $fd("AuditStatePE", scope.row.AuditState * 1) }} {{ $fd('AuditStatePE', scope.row.AuditState * 1) }}
</el-tag> </el-tag>
<el-tag <el-tag
v-else-if=" v-else-if="
@ -436,7 +453,7 @@
" "
type="warning" type="warning"
> >
{{ $fd("AuditStateRC", scope.row.AuditState * 1) }} {{ $fd('AuditStateRC', scope.row.AuditState * 1) }}
</el-tag> </el-tag>
<el-tag <el-tag
v-else-if=" v-else-if="
@ -444,7 +461,7 @@
" "
type="warning" type="warning"
> >
{{ $fd("AuditStateRC", scope.row.AuditState * 1) }} {{ $fd('AuditStateRC', scope.row.AuditState * 1) }}
</el-tag> </el-tag>
<el-tag <el-tag
v-else-if=" v-else-if="
@ -452,13 +469,13 @@
" "
type="warning" type="warning"
> >
{{ $fd("AuditStateRC", scope.row.AuditState * 1) }} {{ $fd('AuditStateRC', scope.row.AuditState * 1) }}
</el-tag> </el-tag>
<el-tag v-else-if="scope.row.AuditState * 1 === 7" type="danger"> <el-tag v-else-if="scope.row.AuditState * 1 === 7" type="danger">
{{ $fd("AuditStateRC", scope.row.AuditState * 1) }}</el-tag {{ $fd('AuditStateRC', scope.row.AuditState * 1) }}</el-tag
> >
<el-tag v-else-if="scope.row.AuditState * 1 === 8" type="primary"> <el-tag v-else-if="scope.row.AuditState * 1 === 8" type="primary">
{{ $fd("AuditStateRC", scope.row.AuditState * 1) }}</el-tag {{ $fd('AuditStateRC', scope.row.AuditState * 1) }}</el-tag
> >
</template> </template>
</el-table-column> </el-table-column>
@ -503,7 +520,7 @@
" "
class="status-primary-circle" class="status-primary-circle"
> >
{{ $t("trials:qcCheck:label:preliminary") }} {{ $t('trials:qcCheck:label:preliminary') }}
</span> </span>
<span v-if="scope.row.ReviewAuditUserName"> , </span> <span v-if="scope.row.ReviewAuditUserName"> , </span>
<!-- <span>{{ scope.row.ReviewAuditUserName }}</span> --> <!-- <span>{{ scope.row.ReviewAuditUserName }}</span> -->
@ -520,7 +537,7 @@
" "
class="status-primary-circle" class="status-primary-circle"
> >
{{ $t("trials:qcCheck:label:review") }} {{ $t('trials:qcCheck:label:review') }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
@ -662,33 +679,33 @@
</template> </template>
<div class="remark"> <div class="remark">
<span class="status-primary-circle"> <span class="status-primary-circle">
{{ $t("trials:crcUpload:label:finalVisit") }} {{ $t('trials:crcUpload:label:finalVisit') }}
</span> </span>
<span>: {{ $t("trials:crcUpload:label:finalVisitDetail") }}</span> <span>: {{ $t('trials:crcUpload:label:finalVisitDetail') }}</span>
<span class="status-primary-circle" style="margin-left: 10px"> <span class="status-primary-circle" style="margin-left: 10px">
{{ $t("trials:crcUpload:label:lostVisit") }} {{ $t('trials:crcUpload:label:lostVisit') }}
</span> </span>
<span>: {{ $t("trials:crcUpload:label:lostVisitDetail") }}</span> <span>: {{ $t('trials:crcUpload:label:lostVisitDetail') }}</span>
<span class="status-primary-circle" style="margin-left: 10px"> <span class="status-primary-circle" style="margin-left: 10px">
{{ $t("trials:crcUpload:label:pd") }} {{ $t('trials:crcUpload:label:pd') }}
</span> </span>
<span>: {{ $t("trials:crcUpload:label:pdDetail") }}</span> <span>: {{ $t('trials:crcUpload:label:pdDetail') }}</span>
<span class="status-primary-circle" style="margin-left: 10px"> <span class="status-primary-circle" style="margin-left: 10px">
{{ $t("trials:crcUpload:label:enrollmentConfirm") }} {{ $t('trials:crcUpload:label:enrollmentConfirm') }}
</span> </span>
<span>: {{ $t("trials:crcUpload:label:enrollmentConfirmDetail") }}</span> <span>: {{ $t('trials:crcUpload:label:enrollmentConfirmDetail') }}</span>
<span <span
v-if="OtherInfo.QCProcessEnum === 2" v-if="OtherInfo.QCProcessEnum === 2"
class="status-primary-circle" class="status-primary-circle"
style="margin-left: 10px" style="margin-left: 10px"
> >
{{ $t("trials:qcCheck:label:preliminary") }} {{ $t('trials:qcCheck:label:preliminary') }}
</span> </span>
<span v-if="OtherInfo.QCProcessEnum === 2" <span v-if="OtherInfo.QCProcessEnum === 2"
>: {{ $t("trials:qcCheck:label:preliminaryAudit") }}</span >: {{ $t('trials:qcCheck:label:preliminaryAudit') }}</span
> >
<span <span
@ -696,10 +713,10 @@
class="status-primary-circle" class="status-primary-circle"
style="margin-left: 10px" style="margin-left: 10px"
> >
{{ $t("trials:qcCheck:label:review") }} {{ $t('trials:qcCheck:label:review') }}
</span> </span>
<span v-if="OtherInfo.QCProcessEnum === 2" <span v-if="OtherInfo.QCProcessEnum === 2"
>: {{ $t("trials:qcCheck:label:reviewAudit") }}</span >: {{ $t('trials:qcCheck:label:reviewAudit') }}</span
> >
</div> </div>
<!-- 指控 --> <!-- 指控 -->
@ -753,7 +770,7 @@
:fullscreen="isFullscreen" :fullscreen="isFullscreen"
> >
<span slot="title" class="dialog-footer"> <span slot="title" class="dialog-footer">
<span>{{ $t("trials:reading:button:handbooks") }}</span> <span>{{ $t('trials:reading:button:handbooks') }}</span>
<span style="position: absolute; right: 20px"> <span style="position: absolute; right: 20px">
<svg-icon <svg-icon
:icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'" :icon-class="isFullscreen ? 'exit-fullscreen' : 'fullscreen'"
@ -843,7 +860,7 @@
</el-form> </el-form>
<div> <div>
<!-- DICOM影像 --> <!-- DICOM影像 -->
<h4 class="box-title">{{ $t("trials:audit:tab:dicoms") }}</h4> <h4 class="box-title">{{ $t('trials:audit:tab:dicoms') }}</h4>
<el-card class="box-card"> <el-card class="box-card">
<DicomFiles v-if="rowData.Id" :data="rowData" /> <DicomFiles v-if="rowData.Id" :data="rowData" />
</el-card> </el-card>
@ -852,7 +869,7 @@
<div> <div>
<!-- 非DICOM影像 --> <!-- 非DICOM影像 -->
<h4 class="box-title" style="margin-top: 10px"> <h4 class="box-title" style="margin-top: 10px">
{{ $t("trials:audit:tab:nonDicoms") }} {{ $t('trials:audit:tab:nonDicoms') }}
</h4> </h4>
<el-card class="box-card"> <el-card class="box-card">
<UploadNonDicomFiles <UploadNonDicomFiles
@ -869,7 +886,7 @@
<div> <div>
<!-- 临床数据 --> <!-- 临床数据 -->
<h4 class="box-title" style="margin-top: 10px"> <h4 class="box-title" style="margin-top: 10px">
{{ $t("trials:audit:tab:clinicalData") }} {{ $t('trials:audit:tab:clinicalData') }}
</h4> </h4>
<el-card class="box-card"> <el-card class="box-card">
<UploadClinicalData <UploadClinicalData
@ -920,7 +937,7 @@
type="primary" type="primary"
@click="urgentVisible = false" @click="urgentVisible = false"
> >
{{ $t("common:button:cancel") }} {{ $t('common:button:cancel') }}
</el-button> </el-button>
<!-- 保存 --> <!-- 保存 -->
<el-button <el-button
@ -929,7 +946,7 @@
:loading="loading" :loading="loading"
@click="setUrgentStatus" @click="setUrgentStatus"
> >
{{ $t("common:button:save") }} {{ $t('common:button:save') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</div> </div>
@ -948,39 +965,39 @@ import {
setSubjectVisitUrgent, setSubjectVisitUrgent,
isQCCanOpt, isQCCanOpt,
getNextQCInfo, getNextQCInfo,
} from "@/api/trials"; } from '@/api/trials'
import { qCVisitList_Export } from "@/api/export"; import { qCVisitList_Export } from '@/api/export'
import BaseContainer from "@/components/BaseContainer"; import BaseContainer from '@/components/BaseContainer'
import QualityAssurance from "./components/qualityAssurance"; import QualityAssurance from './components/qualityAssurance'
import Manuals from "./components/manuals"; import Manuals from './components/manuals'
import DicomFiles from "./components/dicomFiles"; import DicomFiles from './components/dicomFiles'
import UploadNonDicomFiles from "@/views/trials/trials-panel/visit/crc-upload/components/uploadNonDicomFiles"; import UploadNonDicomFiles from '@/views/trials/trials-panel/visit/crc-upload/components/uploadNonDicomFiles'
import UploadClinicalData from "@/views/trials/trials-panel/visit/crc-upload/components/uploadClinicalData"; import UploadClinicalData from '@/views/trials/trials-panel/visit/crc-upload/components/uploadClinicalData'
import Pagination from "@/components/Pagination"; import Pagination from '@/components/Pagination'
import moment from "moment"; import moment from 'moment'
import { changeURLStatic } from "@/utils/history.js"; import { changeURLStatic } from '@/utils/history.js'
import { getToken } from "@/utils/auth"; import { getToken } from '@/utils/auth'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
TrialId: "", TrialId: '',
TrialSiteId: "", TrialSiteId: '',
SubjectInfo: "", SubjectInfo: '',
VisitPlanArray: [], VisitPlanArray: [],
IsUrgent: null, IsUrgent: null,
AuditStateArray: [], AuditStateArray: [],
HandleUserId: "", HandleUserId: '',
BeginAuditTime: null, BeginAuditTime: null,
EndAuditTime: null, EndAuditTime: null,
PageIndex: 1, PageIndex: 1,
PageSize: 20, PageSize: 20,
// SortField: '', // SortField: '',
// Asc: false // Asc: false
}; }
}; }
export default { export default {
name: "QcCheck", name: 'QcCheck',
components: { components: {
BaseContainer, BaseContainer,
Pagination, Pagination,
@ -998,13 +1015,13 @@ export default {
loading: false, loading: false,
qcVisible: false, qcVisible: false,
rowData: { rowData: {
TrialSiteCode: "", TrialSiteCode: '',
SubjectCode: "", SubjectCode: '',
VisitName: "", VisitName: '',
VisitNum: "", VisitNum: '',
}, },
userTypeEnumInt: zzSessionStorage.getItem("userTypeEnumInt") * 1, userTypeEnumInt: zzSessionStorage.getItem('userTypeEnumInt') * 1,
userId: zzSessionStorage.getItem("userId"), userId: zzSessionStorage.getItem('userId'),
moment, moment,
siteOptions: [], siteOptions: [],
visitPlanOptions: [], visitPlanOptions: [],
@ -1012,7 +1029,7 @@ export default {
participantOptions: [], participantOptions: [],
studyVisible: false, studyVisible: false,
urgentVisible: false, urgentVisible: false,
urgentForm: { id: "", isUrgent: null }, urgentForm: { id: '', isUrgent: null },
trialId: this.$route.query.trialId, trialId: this.$route.query.trialId,
trialCode: this.$route.query.trialCode, trialCode: this.$route.query.trialCode,
query: null, query: null,
@ -1020,225 +1037,225 @@ export default {
isFullscreen: false, isFullscreen: false,
timeList: [], timeList: [],
exportLoading: false, exportLoading: false,
}; }
}, },
watch: { watch: {
list(val) { list(val) {
this.doLayout(); this.doLayout()
}, },
}, },
mounted() { mounted() {
this.query = this.$route.query; this.query = this.$route.query
if (this.$route.query.subjectCode) { if (this.$route.query.subjectCode) {
this.searchData.SubjectInfo = this.$route.query.subjectCode; this.searchData.SubjectInfo = this.$route.query.subjectCode
} }
changeURLStatic("subjectCode", ""); changeURLStatic('subjectCode', '')
this.getList(); this.getList()
this.getSite(); this.getSite()
this.getParticipantList(); this.getParticipantList()
this.getVisitPlanOptions(); this.getVisitPlanOptions()
}, },
methods: { methods: {
handleExport() { handleExport() {
this.exportLoading = true; this.exportLoading = true
qCVisitList_Export(this.searchData) qCVisitList_Export(this.searchData)
.then(() => { .then(() => {
this.exportLoading = false; this.exportLoading = false
}) })
.catch((err) => { .catch((err) => {
this.exportLoading = false; this.exportLoading = false
}); })
}, },
// qc // qc
getList() { getList() {
this.loading = true; this.loading = true
this.searchData.TrialId = this.trialId; this.searchData.TrialId = this.trialId
getQCVisitList(this.searchData) getQCVisitList(this.searchData)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
this.list = res.Result.CurrentPageData; this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount; this.total = res.Result.TotalCount
this.OtherInfo = res.OtherInfo; this.OtherInfo = res.OtherInfo
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}, },
doLayout() { doLayout() {
const scope = this; const scope = this
this.$nextTick(() => { this.$nextTick(() => {
scope.$refs.qcCheckList.doLayout(); scope.$refs.qcCheckList.doLayout()
}); })
}, },
// //
handleReciveTask(row, state) { handleReciveTask(row, state) {
let message = ""; let message = ''
if (state) { if (state) {
// //
message = this.$t("trials:qcCheck:message:receive"); message = this.$t('trials:qcCheck:message:receive')
} else { } else {
// //
message = this.$t("trials:qcCheck:message:release"); message = this.$t('trials:qcCheck:message:release')
} }
this.$confirm(message, { this.$confirm(message, {
type: "warning", type: 'warning',
distinguishCancelAndClose: true, distinguishCancelAndClose: true,
}) })
.then(() => { .then(() => {
this.loading = true; this.loading = true
takeOrReleaseQCTask(row.TrialId, row.Id, state) takeOrReleaseQCTask(row.TrialId, row.Id, state)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.getList(); this.getList()
if (state) { if (state) {
// //
this.$message.success( this.$message.success(
this.$t("trials:qcCheck:message:receivedSuccessfully") this.$t('trials:qcCheck:message:receivedSuccessfully')
); )
} else { } else {
// //
this.$message.success( this.$message.success(
this.$t("trials:qcCheck:message:releasedSuccessfully") this.$t('trials:qcCheck:message:releasedSuccessfully')
); )
} }
} }
}) })
.catch((res) => { .catch((res) => {
this.loading = false; this.loading = false
if (res.Code === 5 && res.ErrorMessage) { if (res.Code === 5 && res.ErrorMessage) {
this.$confirm(res.ErrorMessage, { this.$confirm(res.ErrorMessage, {
type: "warning", type: 'warning',
showCancelButton: false, showCancelButton: false,
callback: (action) => {}, callback: (action) => {},
}); })
this.getList(); this.getList()
} }
}); })
}) })
.catch(() => {}); .catch(() => {})
}, },
// //
handlePrimaryQC(row) { handlePrimaryQC(row) {
this.loading = true; this.loading = true
isQCCanOpt(row.Id) isQCCanOpt(row.Id)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.rowData = { ...row }; this.rowData = { ...row }
this.qcVisible = true; this.qcVisible = true
} }
}) })
.catch((res) => { .catch((res) => {
this.loading = false; this.loading = false
if (res.Code === 2) { if (res.Code === 2) {
this.getList(); this.getList()
} }
}); })
}, },
// //
handleSecondaryQC(row) { handleSecondaryQC(row) {
this.loading = true; this.loading = true
isQCCanOpt(row.Id) isQCCanOpt(row.Id)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.rowData = { ...row }; this.rowData = { ...row }
this.qcVisible = true; this.qcVisible = true
} }
}) })
.catch((res) => { .catch((res) => {
this.loading = false; this.loading = false
if (res.Code === 2) { if (res.Code === 2) {
this.getList(); this.getList()
} }
}); })
}, },
handleViewPrimaryQC(row) { handleViewPrimaryQC(row) {
this.rowData = { ...row }; this.rowData = { ...row }
this.rowData.disabled = true; this.rowData.disabled = true
this.rowData.qcType = 1; this.rowData.qcType = 1
this.qcVisible = true; this.qcVisible = true
}, },
handleViewReviewQC(row) { handleViewReviewQC(row) {
this.rowData = { ...row }; this.rowData = { ...row }
this.rowData.disabled = true; this.rowData.disabled = true
this.rowData.qcType = 2; this.rowData.qcType = 2
this.qcVisible = true; this.qcVisible = true
}, },
// //
handleViewImages() { handleViewImages() {
var tokenKey = getToken(); var tokenKey = getToken()
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path: `/showvisitdicoms?trialId=${this.rowData.TrialId}&visitInfo=${this.rowData.VisitName}(${this.rowData.VisitNum})&subjectVisitId=${this.rowData.Id}&TokenKey=${tokenKey}`, path: `/showvisitdicoms?trialId=${this.rowData.TrialId}&visitInfo=${this.rowData.VisitName}(${this.rowData.VisitNum})&subjectVisitId=${this.rowData.Id}&TokenKey=${tokenKey}`,
}); })
window.open(routeData.href, "_blank"); window.open(routeData.href, '_blank')
}, },
// //
handleViewStudyInfo(row) { handleViewStudyInfo(row) {
this.studyVisible = true; this.studyVisible = true
this.rowData = { ...row }; this.rowData = { ...row }
}, },
// //
handleReset() { handleReset() {
this.searchData = searchDataDefault(); this.searchData = searchDataDefault()
this.timeList = []; this.timeList = []
this.getList(); this.getList()
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.qcCheckList.clearSort(); this.$refs.qcCheckList.clearSort()
}); })
}, },
// //
handleSearch() { handleSearch() {
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1
this.getList(); this.getList()
}, },
// //
handleSortByColumn(column) { handleSortByColumn(column) {
if (column.order === "ascending") { if (column.order === 'ascending') {
this.searchData.Asc = true; this.searchData.Asc = true
} else { } else {
this.searchData.Asc = false; this.searchData.Asc = false
} }
this.searchData.SortField = column.prop; this.searchData.SortField = column.prop
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1
this.getList(); this.getList()
}, },
// site // site
getSite() { getSite() {
getTrialSiteSelect(this.trialId).then((res) => { getTrialSiteSelect(this.trialId).then((res) => {
this.siteOptions = res.Result; this.siteOptions = res.Result
}); })
}, },
// 访 // 访
getVisitPlanOptions() { getVisitPlanOptions() {
getTrialVisitStageSelect(this.trialId).then((res) => { getTrialVisitStageSelect(this.trialId).then((res) => {
this.visitPlanOptions = res.Result; this.visitPlanOptions = res.Result
}); })
}, },
// //
getParticipantList() { getParticipantList() {
getQCParticipantList(this.trialId).then((res) => { getQCParticipantList(this.trialId).then((res) => {
this.participantOptions = res.Result; this.participantOptions = res.Result
}); })
}, },
// //
handleUrgentStatus(row) { handleUrgentStatus(row) {
this.urgentForm = Object.assign({}, { ...row }); this.urgentForm = Object.assign({}, { ...row })
this.urgentVisible = true; this.urgentVisible = true
}, },
// 访/ // 访/
setUrgentStatus() { setUrgentStatus() {
// 访 // 访
// 访 // 访
var message = this.urgentForm.IsUrgent var message = this.urgentForm.IsUrgent
? this.$t("trials:qcCheck:message:isUrgent") ? this.$t('trials:qcCheck:message:isUrgent')
: this.$t("trials:qcCheck:message:isNotUrgent"); : this.$t('trials:qcCheck:message:isNotUrgent')
this.$confirm(message, { this.$confirm(message, {
type: "warning", type: 'warning',
distinguishCancelAndClose: true, distinguishCancelAndClose: true,
}).then(() => { }).then(() => {
this.loading = true; this.loading = true
setSubjectVisitUrgent( setSubjectVisitUrgent(
this.urgentForm.TrialId, this.urgentForm.TrialId,
@ -1246,102 +1263,100 @@ export default {
this.urgentForm.IsUrgent this.urgentForm.IsUrgent
) )
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.urgentVisible = false; this.urgentVisible = false
this.getList(); this.getList()
this.$message.success( this.$message.success(this.$t('common:message:savedSuccessfully'))
this.$t("common:message:savedSuccessfully")
);
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
}); })
}); })
}, },
handleChallengeState(subjectCode, state) { handleChallengeState(subjectCode, state) {
this.$router.push({ this.$router.push({
path: `/trials/trials-panel/visit/qc-question?trialId=${this.trialId}&trialCode=${this.query.trialCode}&researchProgramNo=${this.query.researchProgramNo}&subjectCode=${subjectCode}&challengeState=${state}`, path: `/trials/trials-panel/visit/qc-question?trialId=${this.trialId}&trialCode=${this.query.trialCode}&researchProgramNo=${this.query.researchProgramNo}&subjectCode=${subjectCode}&challengeState=${state}`,
}); })
}, },
// //
handleReplaceTask(row) { handleReplaceTask(row) {
var message = this.$t("trials:crcQuestion:message:replaceTask"); var message = this.$t('trials:crcQuestion:message:replaceTask')
message = message.replace("xxx", row.CurrentActionUserName); message = message.replace('xxx', row.CurrentActionUserName)
this.$confirm(message, { this.$confirm(message, {
type: "warning", type: 'warning',
distinguishCancelAndClose: true, distinguishCancelAndClose: true,
}) })
.then(() => { .then(() => {
// //
this.loading = true; this.loading = true
replaceQCTaskActionUser(row.TrialId, row.Id) replaceQCTaskActionUser(row.TrialId, row.Id)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
// //
this.$message.success( this.$message.success(
this.$t("trials:crcQuestion:message:replaceTaskSuccessfully") this.$t('trials:crcQuestion:message:replaceTaskSuccessfully')
); )
this.getList(); this.getList()
} }
}) })
.catch((res) => { .catch((res) => {
this.loading = false; this.loading = false
this.getList(); this.getList()
if (res.ErrorMessage) { if (res.ErrorMessage) {
this.$confirm(res.ErrorMessage, { this.$confirm(res.ErrorMessage, {
type: "warning", type: 'warning',
showCancelButton: false, showCancelButton: false,
callback: (action) => {}, callback: (action) => {},
}); })
} }
}); })
}) })
.catch(() => {}); .catch(() => {})
}, },
nextTask(visitId = null) { nextTask(visitId = null) {
this.loading = true; this.loading = true
let obj = { let obj = {
trialId: this.trialId, trialId: this.trialId,
}; }
if (visitId) { if (visitId) {
obj.visitId = visitId; obj.visitId = visitId
} }
getNextQCInfo(obj) getNextQCInfo(obj)
.then((res) => { .then((res) => {
this.loading = false; this.loading = false
this.qcVisible = false; this.qcVisible = false
if (res.Result) { if (res.Result) {
this.$nextTick(() => { this.$nextTick(() => {
this.rowData = { ...res.Result }; this.rowData = { ...res.Result }
this.qcVisible = true; this.qcVisible = true
}); })
} else { } else {
this.$message.success(this.$t("trials:qcQuality:title:title3")); // '' this.$message.success(this.$t('trials:qcQuality:title:title3')) // ''
this.qcVisible = false; this.qcVisible = false
} }
}) })
.catch(() => { .catch(() => {
this.loading = false; this.loading = false
this.qcVisible = false; this.qcVisible = false
}); })
}, },
changeTimeList() { changeTimeList() {
if (this.timeList) { if (this.timeList) {
this.searchData.BeginAuditTime = this.timeList[0]; this.searchData.BeginAuditTime = this.timeList[0]
this.searchData.EndAuditTime = this.timeList[1]; this.searchData.EndAuditTime = this.timeList[1]
} else { } else {
this.searchData.BeginAuditTime = null; this.searchData.BeginAuditTime = null
this.searchData.EndAuditTime = null; this.searchData.EndAuditTime = null
} }
}, },
openManuals() { openManuals() {
this.manualsDialog.visible = true; this.manualsDialog.visible = true
}, },
}, },
}; }
</script> </script>
<style lang="scss"> <style lang="scss">
.qc-check-wrapper { .qc-check-wrapper {