批量设置阅片期
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-11-04 16:17:39 +08:00
parent b88657fda0
commit 181eaed3f5
5 changed files with 626 additions and 712 deletions

View File

@ -4341,4 +4341,20 @@ export function getTrialSiteLatestSurvey(params) {
method: 'get', method: 'get',
params params
}) })
}
// 阅片期计划列表
export function getReadModulePageList(data) {
return request({
url: `/ReadModule/getReadModulePageList`,
method: 'post',
data
})
}
// 移除阅片期
export function setBatchRemoveReadingPlan(data) {
return request({
url: `/ReadingPeriodSet/setBatchRemoveReadingPlan`,
method: 'post',
data
})
} }

View File

@ -1,50 +1,20 @@
<template> <template>
<div v-loading="loading" class="add_reading-period-wrapper" style="display:flex;width: 100%;height: 100%;"> <div v-loading="loading" class="add_reading-period-wrapper" style="display:flex;width: 100%;height: 100%;">
<div <div class="reading-period-form" style="width:450px;height:100%;margin-right: 10px;">
class="reading-period-form"
style="width:450px;height:100%;margin-right: 10px;"
>
<el-card shadow="never" style="height:571px;"> <el-card shadow="never" style="height:571px;">
<el-form <el-form ref="addOrUpdatePR" :model="form" size="small" :rules="rules" label-width="120px">
ref="addOrUpdatePR"
:model="form"
size="small"
:rules="rules"
label-width="160px"
>
<!-- 阅片期类型 --> <!-- 阅片期类型 -->
<el-form-item :label="$t('trials:rpManage:table:readingType')"> <el-form-item :label="$t('trials:rpManage:table:readingType')">
<el-input v-model="form.ReadingSetTypeName" disabled style="width:100%;" /> <el-input v-model="form.ReadingSetTypeName" disabled style="width:100%;" />
</el-form-item> </el-form-item>
<!-- 阅片期名称 --> <!-- 阅片期名称 -->
<el-form-item :label="$t('trials:rpManage:table:readingName')" prop="ReadingPeriodName"> <el-form-item :label="$t('trials:rpManage:table:readingName')" prop="ReadingPeriodName">
<el-input v-model="form.ReadingPeriodName" style="width:100%;" /> <el-input v-model="form.ReadingPeriodName" style="width:100%;" :disabled="data.IsTakeEffect === 1" />
</el-form-item>
<!-- 受试者范围 -->
<el-form-item :label="$t('trials:rpManage:table:subjectRange')" prop="ReadingScope">
<el-select v-model="form.ReadingScope" style="width:100%;">
<el-option
v-for="(item,index) of $d.ReadingScopeEnum"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<!-- 中心 -->
<el-form-item v-if="form.ReadingScope === 1" :label="$t('trials:addRP:form:sites')" prop="SiteIds">
<el-select v-model="form.SiteIds" filterable style="width:100%;" multiple>
<el-option
v-for="(item,index) of siteOptions"
:key="index"
:label="item.TrialSiteCode"
:value="item.TrialSiteId"
/>
</el-select>
</el-form-item> </el-form-item>
<!-- 条件 --> <!-- 条件 -->
<el-form-item :label="$t('trials:addRP:form:condition')" prop="DeadlineCondition"> <el-form-item :label="$t('trials:addRP:form:condition')" prop="DeadlineCondition">
<el-radio-group v-model="form.DeadlineCondition" style="width:100%;" @change="handleDeadlineCondition"> <el-radio-group v-model="form.DeadlineCondition" :disabled="data.IsTakeEffect === 1" style="width:100%;"
@change="handleDeadlineCondition">
<!-- 截止日期 --> <!-- 截止日期 -->
<el-radio :label="0">{{ $t('trials:rpManage:table:expirationDate') }}</el-radio> <el-radio :label="0">{{ $t('trials:rpManage:table:expirationDate') }}</el-radio>
<!-- 截止访视 --> <!-- 截止访视 -->
@ -52,125 +22,151 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 截止日期 --> <!-- 截止日期 -->
<el-form-item v-if="form.DeadlineCondition === 0" :label="$t('trials:rpManage:table:expirationDate')" prop="ExpirationDate"> <el-form-item v-if="form.DeadlineCondition === 0" :label="$t('trials:rpManage:table:expirationDate')"
<el-date-picker prop="ExpirationDate">
v-model="form.ExpirationDate" <el-date-picker v-model="form.ExpirationDate" :disabled="data.IsTakeEffect === 1" type="date"
type="date" value-format="yyyy-MM-dd" format="yyyy-MM-dd" style="width:100%;" />
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width:100%;"
/>
</el-form-item> </el-form-item>
<!-- 截止访视 --> <!-- 截止访视 -->
<el-form-item v-if="form.DeadlineCondition === 1" :label="$t('trials:rpManage:table:expirationVisit')" prop="VisitStageId"> <el-form-item v-if="form.DeadlineCondition === 1" :label="$t('trials:rpManage:table:expirationVisit')"
<el-select prop="VisitStageId">
v-model="form.VisitStageId" <el-select v-model="form.VisitStageId" clearable style="width:100%;" :disabled="data.IsTakeEffect === 1"
clearable @change="handleVisitChange">
style="width:100%;" <el-option v-for="item of visitPlanOptions" :key="item.VisitStageId" :label="item.VisitName"
@change="handleVisitChange" :value="item.VisitStageId">
>
<el-option
v-for="item of visitPlanOptions"
:key="item.VisitStageId"
:label="item.VisitName"
:value="item.VisitStageId"
>
<span style="float: left">{{ item.VisitName }}</span> <span style="float: left">{{ item.VisitName }}</span>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<div style="text-align:right;margin-top:10px;">
<el-form-item>
<!-- 生成阅片期 -->
<el-button size="small" type="primary" :loading="btnLoading" @click="getRPList">
{{ $t('trials:addRP:button:createPR') }}
</el-button>
</el-form-item>
</div>
</el-form> </el-form>
</el-card> </el-card>
</div> </div>
<div class="result-table" style="flex:1;"> <div class="result-table" style="flex:1;">
<el-card shadow="never"> <el-card shadow="never">
<div>
<el-table <el-form :inline="true">
ref="prList" <!-- 中心编号 -->
v-loading="listLoading" <el-form-item :label="$t('trials:linkedRP:table:siteCode')">
:data="list" <el-select v-model="searchData.SiteId" placeholder="" style="width:100px;" clearable>
stripe <el-option v-for="(site, index) of siteOptions" :key="index" :label="site.TrialSiteCode"
height="455" :value="site.Id" />
@selection-change="handleSelectChange" </el-select>
> </el-form-item>
<el-table-column type="selection" align="left" width="45" /> <!-- 受试者编号 -->
<el-table-column type="index" width="40" /> <el-form-item :label="$t('trials:linkedRP:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width:100px;" clearable />
</el-form-item>
<!-- 已加入 -->
<el-form-item :label="$t('trials:linkedRP:table:IsJoin')">
<el-select v-model="searchData.IsJoin" placeholder="" style="width:100px;" clearable>
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<!-- 生成阅片期 -->
<el-form-item :label="$t('trials:linkedRP:table:IsGenerate')">
<el-select v-model="searchData.IsGenerate" placeholder="" style="width:100px;" clearable>
<el-option v-for="item in $d.YesOrNo" :key="item.id" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="small" @click="getRPList">
{{ $t('common:button:search') }}
</el-button>
<el-button type="primary" icon="el-icon-refresh-left" size="small" @click="handleReset">
{{ $t('common:button:reset') }}
</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" :disabled="selectArr.length <= 0"
@click="handleConfirm(selectArr)">
{{ $t('trials:linkedRP:button:batchAdd') }}
</el-button>
<el-button type="primary" size="small" :disabled="selectArr.length <= 0" @click="handleDel(selectArr)">
{{ $t('trials:linkedRP:button:batchDel') }}
</el-button>
</el-form-item>
</el-form>
</div>
<el-table ref="prList" v-loading="listLoading" :data="list" stripe height="400"
@selection-change="handleSelectChange">
<el-table-column type="selection" align="left" width="45" :selectable="handleSelectable" />
<!-- 中心 --> <!-- 中心 -->
<el-table-column <el-table-column prop="TrialSiteCode" :label="$t('trials:linkedRP:table:siteCode')" />
prop="TrialSiteCode"
:label="$t('trials:linkedRP:table:siteCode')"
/>
<!-- 受试者 --> <!-- 受试者 -->
<el-table-column <el-table-column prop="SubjectCode" :label="$t('trials:linkedRP:table:subjectCode')" />
prop="SubjectCode"
:label="$t('trials:linkedRP:table:subjectCode')"
/>
<!-- 截止访视 --> <!-- 截止访视 -->
<el-table-column <el-table-column prop="SubjectVisitName" :label="$t('trials:linkedRP:table:expirationVisit')" />
prop="SubjectVisitName"
:label="$t('trials:linkedRP:table:expirationVisit')"
/>
<!-- 最晚拍片日期 --> <!-- 最晚拍片日期 -->
<el-table-column <el-table-column prop="LatestScanDate" :label="$t('trials:linkedRP:table:latestScanDate')">
prop="LatestScanDate"
:label="$t('trials:linkedRP:table:latestScanDate')"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.LatestScanDate?moment(scope.row.LatestScanDate).format('YYYY-MM-DD'):'' }} {{ scope.row.LatestScanDate ? moment(scope.row.LatestScanDate).format('YYYY-MM-DD') : '' }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 截止日期 --> <!-- 截止日期 -->
<el-table-column <el-table-column prop="ExpirationDate" :label="$t('trials:linkedRP:table:expirationDate')">
prop="ExpirationDate"
:label="$t('trials:linkedRP:table:expirationDate')"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.ExpirationDate?moment(scope.row.ExpirationDate).format('YYYY-MM-DD'):'' }} {{ scope.row.ExpirationDate ? moment(scope.row.ExpirationDate).format('YYYY-MM-DD') : '' }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 阅片期名称 --> <!-- 阅片期名称 -->
<el-table-column <el-table-column prop="ReadingPeriodName" :label="$t('trials:linkedRP:table:readingName')" />
prop="ReadingPeriodName" <!-- 已加入 -->
:label="$t('trials:linkedRP:table:readingName')" <el-table-column prop="IsJoin" :label="$t('trials:linkedRP:table:IsJoin')">
/> <template slot-scope="scope">
<el-tag :type="scope.row.IsJoin ? 'success' : 'danger'">{{ $fd("YesOrNo", scope.row.IsJoin) }}</el-tag>
</template>
</el-table-column>
<!--生成阅片期 -->
<el-table-column prop="IsGenerate" :label="$t('trials:linkedRP:table:IsGenerate')">
<template slot-scope="scope">
<el-tag :type="scope.row.IsGenerate ? 'success' : 'danger'">{{ $fd("YesOrNo", scope.row.IsGenerate)
}}</el-tag>
</template>
</el-table-column>
<!-- 生成任务 -->
<el-table-column prop="IsGenerateTask" :label="$t('trials:linkedRP:table:IsGenerateTask')">
<template slot-scope="scope">
<el-tag :type="scope.row.IsGenerateTask ? 'success' : 'danger'">{{ $fd("YesOrNo",
scope.row.IsGenerateTask) }}</el-tag>
</template>
</el-table-column>
<!-- 生效时间 --> <!-- 生效时间 -->
<el-table-column <el-table-column prop="GeneratedTime" :label="$t('trials:linkedRP:table:effectiveTime')" />
prop="EffectOfTime" <el-table-column :label="$t('common:action:action')" width="100" fixed="right">
:label="$t('trials:linkedRP:table:effectiveTime')" <template slot-scope="scope">
/> <!-- 添加 -->
<el-button circle :title="$t('trials:linkedRP:button:add')" icon="el-icon-plus"
:disabled="scope.row.IsJoin" @click="handleConfirm([scope.row])" size="small" />
<!-- 移除 -->
<el-button circle :title="$t('trials:linkedRP:button:del')" icon="el-icon-minus"
:disabled="scope.row.IsGenerateTask || !scope.row.IsJoin" @click="handleDel([scope.row])"
size="small" />
</template>
</el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<div style="text-align:right"> <div style="text-align:right">
<pagination class="page" :total="total" :pageSizes="[10, 20, 30, 50, 100, 500, 1000]" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" :disabled="list.length === 0" @pagination="getReadingReriodList" /> <pagination class="page" :total="total" :pageSizes="[10, 20, 30, 50, 100, 500, 1000]"
</div> :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" :disabled="list.length === 0"
@pagination="getReadingReriodList" />
<div style="text-align:right;padding-top: 10px;">
<!-- 确认添加 -->
<el-button size="small" type="primary" :disabled="selectArr.length === 0" @click="handleConfirm">
{{ $t('trials:addRP:button:confirmAddPR') }}
</el-button>
</div> </div>
</el-card> </el-card>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getTrialSiteSelect, addOrUpdateReadingPeriodSet, getReadingVisitList, getPreviewTheReadingList, getPreviewTheReadingPlanList } from '@/api/trials' import { getTrialSiteSelect, addOrUpdateReadingPeriodSet, getReadingVisitList, getPreviewTheReadingList, getPreviewTheReadingPlanList, setBatchRemoveReadingPlan } from '@/api/trials'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import moment from 'moment' import moment from 'moment'
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
SiteId: null,
SubjectCode: null,
IsJoin: null,
IsGenerate: null,
PageIndex: 1, PageIndex: 1,
PageSize: 20 PageSize: 20
} }
@ -186,7 +182,13 @@ export default {
data: { data: {
type: Object, type: Object,
default() { return {} } default() { return {} }
} },
siteOptions: {
type: Array,
default: () => {
return []
}
},
}, },
data() { data() {
return { return {
@ -200,7 +202,7 @@ export default {
ReadingSetTypeName: '', ReadingSetTypeName: '',
DeadlineCondition: 0, DeadlineCondition: 0,
ReadingPeriodName: '', ReadingPeriodName: '',
ReadingScope: null, ReadingScope: 0,
SiteIds: [], SiteIds: [],
VisitStageId: '', VisitStageId: '',
ExpirationDate: '', ExpirationDate: '',
@ -220,7 +222,7 @@ export default {
VisitStageId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change'] }] VisitStageId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change'] }]
// Remark: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500` }] // Remark: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500` }]
}, },
siteOptions: [], // siteOptions: [],
trialId: '', trialId: '',
listLoading: false, listLoading: false,
list: [], list: [],
@ -233,11 +235,15 @@ export default {
mounted() { mounted() {
this.trialId = this.$route.query.trialId this.trialId = this.$route.query.trialId
this.initForm() this.initForm()
console.log(this.data, 'data')
}, },
methods: { methods: {
handleSelectable(row) {
return !row.IsGenerate
},
async initForm() { async initForm() {
this.loading = true this.loading = true
await this.getSite() // await this.getSite()
var param = { var param = {
trialId: this.trialId, trialId: this.trialId,
readingPeriodSetId: Object.keys(this.data).length > 0 ? this.data.Id : '', readingPeriodSetId: Object.keys(this.data).length > 0 ? this.data.Id : '',
@ -256,7 +262,9 @@ export default {
this.form.DeadlineCondition = this.data.SubjectVisitName ? 1 : 0 this.form.DeadlineCondition = this.data.SubjectVisitName ? 1 : 0
if (this.form.Id) { if (this.form.Id) {
this.getReadingPeriodCheckedResult() this.$nextTick(() => {
this.getRPList()
})
} }
} }
this.form.TrialId = this.trialId this.form.TrialId = this.trialId
@ -269,8 +277,12 @@ export default {
this.getReadingPeriodResult() this.getReadingPeriodResult()
}) })
}, },
handleReset() {
this.searchData = searchDataDefault()
this.getRPList()
},
getReadingReriodList() { getReadingReriodList() {
console.log(this.form) return this.getReadingPeriodResult()
if (this.form.Id === '') { if (this.form.Id === '') {
this.getReadingPeriodResult() this.getReadingPeriodResult()
} else { } else {
@ -288,9 +300,10 @@ export default {
ReadingPeriodName: this.form.ReadingPeriodName, ReadingPeriodName: this.form.ReadingPeriodName,
ReadingSetType: this.form.ReadingSetType, ReadingSetType: this.form.ReadingSetType,
ReadingScope: this.form.ReadingScope, ReadingScope: this.form.ReadingScope,
TrialReadingCriterionId: this.trialReadingCriterionId TrialReadingCriterionId: this.trialReadingCriterionId,
} }
Object.assign(this.searchData, param) Object.assign(this.searchData, param)
if (this.form.Id) this.searchData.ReadingPeriodSetId = this.form.Id
getPreviewTheReadingList(this.searchData).then(res => { getPreviewTheReadingList(this.searchData).then(res => {
this.list = res.Result.CurrentPageData this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount this.total = res.Result.TotalCount
@ -310,31 +323,49 @@ export default {
this.list = res.Result.CurrentPageData this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount this.total = res.Result.TotalCount
this.listLoading = false this.listLoading = false
this.$nextTick(() => { // this.$nextTick(() => {
for (let i = 0; i < this.list.length; i++) { // for (let i = 0; i < this.list.length; i++) {
this.$refs['prList'].toggleRowSelection(this.list[i], true) // this.$refs['prList'].toggleRowSelection(this.list[i], true)
} // }
}) // })
}).catch(() => { }).catch(() => {
this.listLoading = false this.listLoading = false
}) })
}, },
// //
handleSelectChange(val) { handleSelectChange(val) {
const arr = [] this.selectArr = val
for (let index = 0; index < val.length; index++) {
arr.push(val[index].SubjectVisitId)
}
this.selectArr = arr
}, },
handleConfirm() { async handleDel(arr) {
try {
let data = {
Id: this.form.Id,
SubjectVisitIdList: []
}
data.SubjectVisitIdList = arr.map(item => item.SubjectVisitId)
this.loading = true
let res = await setBatchRemoveReadingPlan(data)
this.loading = false
if (res.IsSuccess) {
this.getReadingReriodList()
this.$emit('getList')
this.$message.success(this.$t('common:message:removedSuccessfully'))
}
} catch (err) {
this.loading = false
console.log(err)
}
},
handleConfirm(arr) {
this.loading = true this.loading = true
var params = Object.assign({}, this.form) var params = Object.assign({}, this.form)
params.subjectVisitIds = this.selectArr params.subjectVisitIds = arr.map(item => item.SubjectVisitId)
params.TrialReadingCriterionId = this.trialReadingCriterionId params.TrialReadingCriterionId = this.trialReadingCriterionId
addOrUpdateReadingPeriodSet(params).then(res => { addOrUpdateReadingPeriodSet(params).then(res => {
this.loading = false this.loading = false
this.$emit('close') // this.$emit('close')
this.form.Id = res.Result
this.getReadingReriodList()
this.$emit('getList') this.$emit('getList')
this.$message.success(this.$t('common:message:savedSuccessfully')) this.$message.success(this.$t('common:message:savedSuccessfully'))
}).catch(() => { this.loading = false }) }).catch(() => { this.loading = false })
@ -357,17 +388,17 @@ export default {
} }
}, },
// site // site
getSite() { // getSite() {
return new Promise((resolve, reject) => { // return new Promise((resolve, reject) => {
getTrialSiteSelect(this.trialId).then(res => { // getTrialSiteSelect(this.trialId).then(res => {
this.siteOptions = res.Result // this.siteOptions = res.Result
resolve() // resolve()
}).catch(() => { // }).catch(() => {
this.loading = false // this.loading = false
reject() // reject()
}) // })
}) // })
}, // },
close() { close() {
this.$emit('close') this.$emit('close')
} }

View File

@ -4,17 +4,13 @@
<el-form :inline="true"> <el-form :inline="true">
<!-- 阅片期名称 --> <!-- 阅片期名称 -->
<el-form-item :label="$t('trials:rpManage:table:readingName')"> <el-form-item :label="$t('trials:rpManage:table:readingName')">
<el-input <el-input v-model="searchData.ReadingPeriodName" style="width:100px;" clearable />
v-model="searchData.ReadingPeriodName"
style="width:100px;"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" @click="handleSearch"> <el-button type="primary" icon="el-icon-search" size="small" @click="handleSearch">
{{ $t('common:button:search') }} {{ $t('common:button:search') }}
</el-button> </el-button>
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset"> <el-button type="primary" icon="el-icon-refresh-left" size="small" @click="handleReset">
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!--导出--> <!--导出-->
@ -22,23 +18,11 @@
{{ $t('common:button:export') }} {{ $t('common:button:export') }}
</el-button> --> </el-button> -->
<!-- 添加影像学阅片 --> <!-- 添加影像学阅片 -->
<el-button <el-button v-if="isGlobalReading" type="primary" icon="el-icon-plus" size="small" @click="handleAdd(0)">
v-if="isGlobalReading"
type="primary"
icon="el-icon-plus"
size="small"
@click="handleAdd(0)"
>
{{ $t('trials:rpManage:button:addImageReading') }} {{ $t('trials:rpManage:button:addImageReading') }}
</el-button> </el-button>
<!-- 添加肿瘤学阅片 --> <!-- 添加肿瘤学阅片 -->
<el-button <el-button v-if="isClinicalReading" type="primary" icon="el-icon-plus" size="small" @click="handleAdd(1)">
v-if="isClinicalReading"
type="primary"
icon="el-icon-plus"
size="small"
@click="handleAdd(1)"
>
{{ $t('trials:rpManage:button:addOncologyReading') }} {{ $t('trials:rpManage:button:addOncologyReading') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -46,77 +30,44 @@
</div> </div>
<div class="main-wrapper"> <div class="main-wrapper">
<el-table <el-table v-loading="loading" :data="list" stripe style="width: 100%" height="400"
v-loading="loading" @sort-change="handleSortChange">
:data="list"
stripe
style="width: 100%"
height="500"
@sort-change="handleSortChange"
>
<el-table-column type="index" width="40" /> <el-table-column type="index" width="40" />
<!-- 阅片期类型 --> <!-- 阅片期类型 -->
<el-table-column <el-table-column prop="ReadingSetType" :label="$t('trials:rpManage:table:readingType')" sortable="custom"
prop="ReadingSetType" show-overflow-tooltip>
:label="$t('trials:rpManage:table:readingType')"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('ReadingSetType',scope.row.ReadingSetType) }} {{ $fd('ReadingSetType', scope.row.ReadingSetType) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 阅片期名称 --> <!-- 阅片期名称 -->
<el-table-column <el-table-column prop="ReadingPeriodName" :label="$t('trials:rpManage:table:readingName')" sortable="custom"
prop="ReadingPeriodName" show-overflow-tooltip />
:label="$t('trials:rpManage:table:readingName')"
sortable="custom"
show-overflow-tooltip
/>
<!-- 受试者范围 --> <!-- 受试者范围 -->
<el-table-column <el-table-column prop="ReadingScope" :label="$t('trials:rpManage:table:subjectRange')" sortable="custom"
prop="ReadingScope" show-overflow-tooltip>
:label="$t('trials:rpManage:table:subjectRange')"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ $fd('ReadingScopeEnum',scope.row.ReadingScope) }} {{ $fd('ReadingScopeEnum', scope.row.ReadingScope) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 指定中心 --> <!-- 指定中心 -->
<el-table-column <el-table-column prop="SiteCodes" :label="$t('trials:rpManage:table:designatedSite')" show-overflow-tooltip>
prop="SiteCodes"
:label="$t('trials:rpManage:table:designatedSite')"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.SiteCodes.length>0? scope.row.SiteCodes.join(', '):'' }} {{ scope.row.SiteCodes.length > 0 ? scope.row.SiteCodes.join(', ') : '' }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 截止日期 --> <!-- 截止日期 -->
<el-table-column <el-table-column prop="ExpirationDate" :label="$t('trials:rpManage:table:expirationDate')" sortable="custom"
prop="ExpirationDate" show-overflow-tooltip>
:label="$t('trials:rpManage:table:expirationDate')"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.ExpirationDate?moment(scope.row.ExpirationDate).format('YYYY-MM-DD'):'' }} {{ scope.row.ExpirationDate ? moment(scope.row.ExpirationDate).format('YYYY-MM-DD') : '' }}
</template> </template>
</el-table-column> </el-table-column>
<!-- 截止访视 --> <!-- 截止访视 -->
<el-table-column <el-table-column prop="SubjectVisitName" :label="$t('trials:rpManage:table:expirationVisit')" />
prop="SubjectVisitName"
:label="$t('trials:rpManage:table:expirationVisit')"
/>
<!-- 关联阅片期 --> <!-- 关联阅片期 -->
<el-table-column <el-table-column prop="PlanCount" :label="$t('trials:rpManage:table:linkedVisits')" sortable="custom"
prop="PlanCount" show-overflow-tooltip>
:label="$t('trials:rpManage:table:linkedVisits')"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" :disabled="scope.row.PlanCount === 0" @click="handleRelationPR(scope.row)"> <el-button type="text" :disabled="scope.row.PlanCount === 0" @click="handleRelationPR(scope.row)">
{{ scope.row.PlanCount }} {{ scope.row.PlanCount }}
@ -124,12 +75,8 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 状态 --> <!-- 状态 -->
<el-table-column <el-table-column prop="IsTakeEffect" :label="$t('trials:rpManage:table:readingStatus')" sortable="custom"
prop="IsTakeEffect" show-overflow-tooltip>
:label="$t('trials:rpManage:table:readingStatus')"
sortable="custom"
show-overflow-tooltip
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.IsTakeEffect === 0" type="info"> <el-tag v-if="scope.row.IsTakeEffect === 0" type="info">
{{ $fd('TakeEffect', scope.row.IsTakeEffect) }} {{ $fd('TakeEffect', scope.row.IsTakeEffect) }}
@ -143,87 +90,48 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- 生效时间 --> <!-- 生效时间 -->
<el-table-column <el-table-column prop="EffectOfTime" :label="$t('trials:rpManage:table:effectiveTime')" sortable="custom"
prop="EffectOfTime" show-overflow-tooltip width="120" />
:label="$t('trials:rpManage:table:effectiveTime')" <el-table-column :label="$t('common:action:action')" width="200">
sortable="custom"
show-overflow-tooltip
width="120"
/>
<el-table-column
:label="$t('common:action:action')"
width="200"
>
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 编辑 --> <!-- 编辑 -->
<el-button <el-button circle :title="$t('trials:rpManage:action:edit')" icon="el-icon-tickets"
circle :disabled="scope.row.IsTakeEffect === 1 || scope.row.IsGlobal" @click="handleEdit(scope.row)" />
:title="$t('trials:rpManage:action:edit')"
icon="el-icon-edit-outline"
:disabled="scope.row.IsTakeEffect === 1 || scope.row.IsGlobal"
@click="handleEdit(scope.row)"
/>
<!-- 修改状态 --> <!-- 修改状态 -->
<el-button <el-button circle :title="$t('trials:rpManage:action:status')" icon="el-icon-edit"
circle :disabled="scope.row.IsGlobal" @click="handleEditStatus(scope.row)" />
:title="$t('trials:rpManage:action:status')"
icon="el-icon-edit"
:disabled="scope.row.IsGlobal"
@click="handleEditStatus(scope.row)"
/>
<!-- 删除 --> <!-- 删除 -->
<el-button <el-button circle :title="$t('trials:rpManage:action:delete')" icon="el-icon-delete"
circle :disabled="scope.row.IsTakeEffect === 1 || scope.row.IsGlobal" @click="handleDelete(scope.row)" />
:title="$t('trials:rpManage:action:delete')"
icon="el-icon-delete"
:disabled="scope.row.IsTakeEffect === 1 || scope.row.IsGlobal"
@click="handleDelete(scope.row)"
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize" @pagination="getList" /> <pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
@pagination="getList" />
</div> </div>
<!-- 新增/编辑 --> <!-- 新增/编辑 -->
<el-dialog <el-dialog v-if="addOrEditPR.visible" :visible.sync="addOrEditPR.visible" :close-on-click-modal="false"
v-if="addOrEditPR.visible" :before-close="beforePRClose" :title="addOrEditPR.title" width="1400px" append-to-body
:visible.sync="addOrEditPR.visible" custom-class="base-dialog-wrapper" v-dialogDrag>
:close-on-click-modal="false" <AddOrEditPR ref="addOrEditPR" :trial-reading-criterion-id="trialReadingCriterionId" :data="currentRow"
:before-close="beforePRClose" :siteOptions="siteOptions" @close="() => { addOrEditPR.visible = false }" @getList="getList"></AddOrEditPR>
:title="addOrEditPR.title"
width="80%"
append-to-body
custom-class="base-dialog-wrapper"
>
<AddOrEditPR ref="addOrEditPR" :trial-reading-criterion-id="trialReadingCriterionId" :data="currentRow" @close="addOrEditPR.visible = false" @getList="getList" />
</el-dialog> </el-dialog>
<!-- 状态变更 --> <!-- 状态变更 -->
<el-dialog <el-dialog v-if="editStatus.visible" :visible.sync="editStatus.visible" :close-on-click-modal="false"
v-if="editStatus.visible" :title="editStatus.title" width="500px" append-to-body custom-class="base-dialog-wrapper">
:visible.sync="editStatus.visible" <EditPRStatus :trial-reading-criterion-id="trialReadingCriterionId" :data="currentRow"
:close-on-click-modal="false" @close="() => { editStatus.visible = false }" @getList="refresh" />
:title="editStatus.title"
width="500px"
append-to-body
custom-class="base-dialog-wrapper"
>
<EditPRStatus :trial-reading-criterion-id="trialReadingCriterionId" :data="currentRow" @close="editStatus.visible = false" @getList="refresh" />
</el-dialog> </el-dialog>
<!-- 关联阅片期 --> <!-- 关联阅片期 -->
<el-dialog <el-dialog v-if="relationPR.visible" :visible.sync="relationPR.visible" :close-on-click-modal="false"
v-if="relationPR.visible" :title="$t('trials:rpManage:dialogTitle:linkedRP')" width="1000px" append-to-body
:visible.sync="relationPR.visible" custom-class="base-dialog-wrapper">
:close-on-click-modal="false" <RelationPRList :trial-reading-criterion-id="trialReadingCriterionId" :data="currentRow"
:title="$t('trials:rpManage:dialogTitle:linkedRP')" @close="() => { relationPR.visible = false }" @getList="getList" />
width="1000px"
append-to-body
custom-class="base-dialog-wrapper"
>
<RelationPRList :trial-reading-criterion-id="trialReadingCriterionId" :data="currentRow" @close="relationPR.visible = false" @getList="getList" />
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -257,7 +165,13 @@ export default {
isGlobalReading: { isGlobalReading: {
type: Boolean, type: Boolean,
required: true required: true
} },
siteOptions: {
type: Array,
default: () => {
return []
}
},
}, },
data() { data() {
return { return {
@ -351,6 +265,7 @@ export default {
this.getList() this.getList()
}, },
beforePRClose(done) { beforePRClose(done) {
return done()
// 访 // 访
if (this.$refs['addOrEditPR'].list.length > 0 && this.$refs['addOrEditPR'].selectArr.length === 0) { if (this.$refs['addOrEditPR'].list.length > 0 && this.$refs['addOrEditPR'].selectArr.length === 0) {
this.$confirm(this.$t('trials:rpManage:message:closeDialog'), { this.$confirm(this.$t('trials:rpManage:message:closeDialog'), {
@ -370,6 +285,4 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>

View File

@ -0,0 +1,184 @@
<template>
<div class="ViewPeriod">
<div class="top-wrapper">
<el-form :inline="true">
<!-- 阅片期类型 -->
<el-form-item :label="$t('trials:rpManage:viewPeriod:table:ReadingSetType')">
<el-select v-model="searchData.ReadingSetType" placeholder="" style="width:100px;" clearable>
<el-option v-for="item in $d.ReadingSetType" :key="item.id" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<!-- 阅片期名称 -->
<el-form-item :label="$t('trials:rpManage:viewPeriod:table:ModuleName')">
<el-input v-model="searchData.ModuleName" style="width:100px;" clearable />
</el-form-item>
<!-- 中心编号 -->
<el-form-item :label="$t('trials:rpManage:viewPeriod:table:TrialSiteId')">
<el-select v-model="searchData.TrialSiteId" placeholder="" style="width:100px;" clearable>
<el-option v-for="(site, index) of siteOptions" :key="index" :label="site.TrialSiteCode"
:value="site.Id" />
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:rpManage:viewPeriod:table:SubjectCode')">
<el-input v-model="searchData.SubjectCode" style="width:100px;" clearable />
</el-form-item>
<!-- 来源 -->
<el-form-item :label="$t('trials:rpManage:viewPeriod:table:ReadModuleAddTypeEnum')">
<el-select v-model="searchData.ReadModuleAddTypeEnum" placeholder="" style="width:100px;" clearable>
<el-option v-for="item in $d.ReadModuleAddType" :key="item.id" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="small" @click="getList">
{{ $t('common:button:search') }}
</el-button>
<el-button type="primary" icon="el-icon-refresh-left" size="small" @click="handleReset">
{{ $t('common:button:reset') }}
</el-button>
</el-form-item>
</el-form>
</div>
<div class="main-wrapper">
<el-table v-loading="loading" :data="list" stripe style="width: 100%" height="400"
@sort-change="handleSortChange">
<el-table-column type="index" width="40" />
<!-- 阅片期类型 -->
<el-table-column prop="ReadingSetType" :label="$t('trials:rpManage:viewPeriod:table:ReadingSetType')"
sortable="custom" show-overflow-tooltip>
<template slot-scope="scope">
{{ $fd('ReadingSetType', scope.row.ReadingSetType) }}
</template>
</el-table-column>
<!-- 阅片期名称 -->
<el-table-column prop="ModuleName" :label="$t('trials:rpManage:viewPeriod:table:ModuleName')"
sortable="custom" show-overflow-tooltip />
<!-- 中心编号 -->
<el-table-column prop="SiteCode" :label="$t('trials:rpManage:viewPeriod:table:SiteCode')"
sortable="custom" show-overflow-tooltip />
<!-- 受试者编号 -->
<el-table-column prop="SubjectCode" :label="$t('trials:rpManage:viewPeriod:table:SubjectCode')"
sortable="custom" show-overflow-tooltip />
<!-- 截止访视 -->
<el-table-column prop="VisitName" :label="$t('trials:rpManage:viewPeriod:table:VisitName')"
sortable="custom" show-overflow-tooltip />
<!-- 最晚拍片日期 -->
<el-table-column prop="LatestScanDate" :label="$t('trials:rpManage:viewPeriod:table:LatestScanDate')"
sortable="custom" show-overflow-tooltip />
<!-- 来源 -->
<el-table-column prop="ReadModuleAddTypeEnum"
:label="$t('trials:rpManage:viewPeriod:table:ReadModuleAddTypeEnum')" sortable="custom"
show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ $fd('ReadModuleAddType', scope.row.ReadModuleAddTypeEnum) }}</span>
</template>
</el-table-column>
<!-- 任务状态 -->
<el-table-column prop="IsGenerateTask" :label="$t('trials:rpManage:viewPeriod:table:IsGenerateTask')"
show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ $fd('TrainingStatusEnum', scope.row.IsGenerateTask) }}</span>
</template>
</el-table-column>
<!-- 生成时间 -->
<el-table-column prop="GenerateTaskTime"
:label="$t('trials:rpManage::viewPeriod:table:GenerateTaskTime')" show-overflow-tooltip />
</el-table>
<!-- 分页组件 -->
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
@pagination="getList" />
</div>
</div>
</template>
<script>
import { getReadModulePageList } from '@/api/trials'
import Pagination from '@/components/Pagination'
const searchDataDefault = () => {
return {
TrialId: null,
TrialSiteId: null,
TrialReadingCriterionId: null,
ModuleName: null,
SubjectCode: null,
ReadingSetType: null,
VisitName: null,
ReadModuleAddTypeEnum: null,
PageIndex: 1,
PageSize: 20,
Asc: false,
SortField: ''
}
}
export default {
name: "ViewPeriod",
components: {
Pagination
},
props: {
siteOptions: {
type: Array,
default: () => {
return []
}
},
TrialReadingCriterionId: {
type: String,
default: ''
}
},
data() {
return {
searchData: searchDataDefault(),
list: [],
total: 0,
loading: false,
}
},
mounted() {
this.getList()
},
methods: {
async getList() {
try {
this.searchData.TrialId = this.$route.query.TrialId
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
this.loading = true
let res = await getReadModulePageList(this.searchData)
this.loading = false
if (res.IsSuccess) {
this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount
}
} catch (err) {
this.loading = false
console.log(err)
}
},
handleReset() {
this.searchData = searchDataDefault()
this.getList()
},
//
handleSortChange(column) {
if (column.order === 'ascending') {
this.searchData.Asc = true
} else {
this.searchData.Asc = false
}
this.searchData.SortField = column.prop
this.searchData.PageIndex = 1
this.getList()
},
}
}
</script>
<style lang="scss" scoped>
.ViewPeriod {
margin-bottom: 10px;
}
</style>

View File

@ -1,216 +1,103 @@
<template> <template>
<BaseContainer class="reading-period"> <BaseContainer class="reading-period">
<el-tabs v-model="TrialReadingCriterionId" type="border-card"> <el-tabs v-model="TrialReadingCriterionId" type="border-card">
<el-tab-pane <el-tab-pane v-for="criterion of trialCriterionList" :key="criterion.TrialReadingCriterionId"
v-for="criterion of trialCriterionList" :label="criterion.TrialReadingCriterionName" :name="criterion.TrialReadingCriterionId">
:key="criterion.TrialReadingCriterionId" <div v-if="TrialReadingCriterionId === criterion.TrialReadingCriterionId">
:label="criterion.TrialReadingCriterionName"
:name="criterion.TrialReadingCriterionId"
>
<div
v-if="TrialReadingCriterionId === criterion.TrialReadingCriterionId"
>
<div slot="search-container"> <div slot="search-container">
<el-form :inline="true"> <el-form :inline="true">
<el-form-item :label="$t('trials:readingPeriod:table:siteCode')"> <el-form-item :label="$t('trials:readingPeriod:table:siteCode')">
<!-- 中心编号 --> <!-- 中心编号 -->
<el-select <el-select v-model="searchData.TrialSiteCode" clearable filterable style="width: 120px">
v-model="searchData.TrialSiteCode" <el-option v-for="(site, index) of siteOptions" :key="index" :label="site.TrialSiteCode"
clearable :value="site.TrialSiteCode" />
filterable
style="width: 120px"
>
<el-option
v-for="(site, index) of siteOptions"
:key="index"
:label="site.TrialSiteCode"
:value="site.TrialSiteCode"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-form-item <el-form-item :label="$t('trials:readingPeriod:table:subjectCode')">
:label="$t('trials:readingPeriod:table:subjectCode')" <el-input v-model="searchData.SubjectCode" style="width: 100px" clearable />
>
<el-input
v-model="searchData.SubjectCode"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<!-- 阅片类型 --> <!-- 阅片类型 -->
<el-form-item <el-form-item :label="$t('trials:readingPeriod:table:readingType')">
:label="$t('trials:readingPeriod:table:readingType')" <el-select v-model="searchData.ModuleType" clearable style="width: 120px">
> <el-option v-for="item of $d.ModuleTypeEnum" :key="item.value" :value="item.value"
<el-select :label="item.label" />
v-model="searchData.ModuleType"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.ModuleTypeEnum"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 进度 --> <!-- 进度 -->
<el-form-item <el-form-item :label="$t('trials:readingPeriod:table:readingSchedule')">
:label="$t('trials:readingPeriod:table:readingSchedule')" <el-select v-model="searchData.ReadingStatus" clearable style="width: 120px">
> <el-option v-for="item of $d.ReadModuleEnum" :key="item.value" :value="item.value"
<el-select :label="item.label" />
v-model="searchData.ReadingStatus"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.ReadModuleEnum"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 阅片名称 --> <!-- 阅片名称 -->
<el-form-item <el-form-item :label="$t('trials:readingPeriod:table:readingName')">
:label="$t('trials:readingPeriod:table:readingName')" <el-input v-model="searchData.Name" style="width: 100px" clearable />
>
<el-input
v-model="searchData.Name"
style="width: 100px"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item <el-form-item :label="$t('trials:readingPeriod:table:completeClinicalData')">
:label="$t('trials:readingPeriod:table:completeClinicalData')" <el-select v-model="searchData.CompleteClinicalData" clearable style="width: 120px">
> <el-option v-for="item of $d.CompleteClinicalDataEnum" :key="item.value" :value="item.value"
<el-select :label="item.label" />
v-model="searchData.CompleteClinicalData"
clearable
style="width: 120px"
>
<el-option
v-for="item of $d.CompleteClinicalDataEnum"
:key="item.value"
:value="item.value"
:label="item.label"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" @click="handleSearch">
type="primary"
icon="el-icon-search"
@click="handleSearch"
>
{{ $t('common:button:search') }} {{ $t('common:button:search') }}
</el-button> </el-button>
<el-button <el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
type="primary"
icon="el-icon-refresh-left"
@click="handleReset"
>
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<!--导出受试者进展表--> <!--导出受试者进展表-->
<el-button <el-button type="primary" icon="el-icon-download" @click="handleExportSubject">
type="primary"
icon="el-icon-download"
@click="handleExportSubject"
>
{{ $t('trials:readingPeriod:buttton:exportSubjectTbl') }} {{ $t('trials:readingPeriod:buttton:exportSubjectTbl') }}
</el-button> </el-button>
<!--导出阅片期信息表--> <!--导出阅片期信息表-->
<el-button <el-button type="primary" icon="el-icon-download" @click="handleExportPeriod">
type="primary"
icon="el-icon-download"
@click="handleExportPeriod"
>
{{ $t('trials:readingPeriod:buttton:exportPeriodTbl') }} {{ $t('trials:readingPeriod:buttton:exportPeriodTbl') }}
</el-button> </el-button>
<!-- 阅片期管理 --> <!-- 阅片期管理 -->
<el-button <el-button v-if="
v-if=" ReadingInfoSignTime &&
ReadingInfoSignTime && (otherInfo.IsClinicalReading || otherInfo.IsReadingPeriod)
(otherInfo.IsClinicalReading || otherInfo.IsReadingPeriod) " v-hasPermi="[
" 'trials:trials-panel:subject:readingPeriod:edit',
v-hasPermi="[ ]" type="primary" icon="el-icon-edit-outline" @click="handleReadingPeriod">
'trials:trials-panel:subject:readingPeriod:edit',
]"
type="primary"
icon="el-icon-edit-outline"
@click="handleReadingPeriod"
>
{{ $t('trials:readingPeriod:button:rpManage') }} {{ $t('trials:readingPeriod:button:rpManage') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div slot="main-container"> <div slot="main-container">
<el-table <el-table ref="myTable" v-adaptive="{ bottomOffset: 135 }" v-loading="loading" :data="list" stripe
ref="myTable" height="100" :header-row-class-name="headerRowStyle" :cell-style="cellStyle"
v-adaptive="{ bottomOffset: 135 }" @sort-change="handleSortChange">
v-loading="loading"
:data="list"
stripe
height="100"
:header-row-class-name="headerRowStyle"
:cell-style="cellStyle"
@sort-change="handleSortChange"
>
<el-table-column type="index" width="40" fixed="left" /> <el-table-column type="index" width="40" fixed="left" />
<!-- 中心编号 --> <!-- 中心编号 -->
<el-table-column <el-table-column prop="TrialSiteCode" :label="$t('trials:readingPeriod:table:siteCode')" min-width="110"
prop="TrialSiteCode" fixed="left" sortable="custom" show-overflow-tooltip />
:label="$t('trials:readingPeriod:table:siteCode')"
min-width="110"
fixed="left"
sortable="custom"
show-overflow-tooltip
/>
<!-- 受试者编号 --> <!-- 受试者编号 -->
<el-table-column <el-table-column prop="SubjectCode" :label="$t('trials:readingPeriod:table:subjectCode')" min-width="120"
prop="SubjectCode" fixed="left" sortable="custom" show-overflow-tooltip />
:label="$t('trials:readingPeriod:table:subjectCode')"
min-width="120"
fixed="left"
sortable="custom"
show-overflow-tooltip
/>
<!-- 阅片计划 --> <!-- 阅片计划 -->
<el-table-column <el-table-column :label="$t('trials:readingPeriod:table:readingPlan')" align="center" min-width="100">
:label="$t('trials:readingPeriod:table:readingPlan')" <el-table-column v-for="i in maxLength" :key="`${i}`" :prop="`Plan${i - 1}`" label="" width="240">
align="center"
min-width="100"
>
<el-table-column
v-for="i in maxLength"
:key="`${i}`"
:prop="`Plan${i - 1}`"
label=""
width="240"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="i <= scope.row.Data.length"> <div v-if="i <= scope.row.Data.length">
<!-- <div style="">--> <!-- <div style="">-->
<div <div style="
style="
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
margin-bottom: 8px; margin-bottom: 8px;
padding-bottom: 8px; padding-bottom: 8px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
" ">
>
<div style="font-size: 16px; font-weight: 900"> <div style="font-size: 16px; font-weight: 900">
{{ scope.row.Data[i - 1].Name }} {{ scope.row.Data[i - 1].Name }}
</div> </div>
<div> <div>
<span <span v-if="scope.row.Data[i - 1].IsEnrollmentConfirm">
v-if="scope.row.Data[i - 1].IsEnrollmentConfirm"
>
| {{ $t('trials:readingPeriod:table:enroll') }} | {{ $t('trials:readingPeriod:table:enroll') }}
</span> </span>
<span v-if="scope.row.Data[i - 1].PDState"> <span v-if="scope.row.Data[i - 1].PDState">
@ -224,15 +111,13 @@
</span> </span>
</div> </div>
</div> </div>
<div <div style="
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
margin-bottom: 8px; margin-bottom: 8px;
padding-bottom: 8px; padding-bottom: 8px;
" ">
>
<div> <div>
{{ {{
$fd( $fd(
@ -241,21 +126,17 @@
) )
}} }}
</div> </div>
<div <div style="
style="
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
width: 110px; width: 110px;
text-align: right; text-align: right;
" " :title="$fd(
:title=" 'ReadModuleEnum',
$fd( scope.row.Data[i - 1].ReadingStatus
'ReadModuleEnum', )
scope.row.Data[i - 1].ReadingStatus ">
)
"
>
{{ {{
$fd( $fd(
'ReadModuleEnum', 'ReadModuleEnum',
@ -264,16 +145,13 @@
}} }}
</div> </div>
</div> </div>
<div <div v-if="scope.row.Data[i - 1].ModuleType === 1" style="
v-if="scope.row.Data[i - 1].ModuleType === 1"
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
margin-bottom: 8px; margin-bottom: 8px;
padding-bottom: 8px; padding-bottom: 8px;
" ">
>
<!-- 上一访视 --> <!-- 上一访视 -->
<div> <div>
{{ $t('trials:readingPeriod:table:lastVisit') }} {{ $t('trials:readingPeriod:table:lastVisit') }}
@ -282,36 +160,30 @@
{{ scope.row.Data[i - 1].OutPlanPreviousVisitName }} {{ scope.row.Data[i - 1].OutPlanPreviousVisitName }}
</div> </div>
</div> </div>
<div <div v-if="
v-if=" scope.row.Data[i - 1].ModuleType === 2 ||
scope.row.Data[i - 1].ModuleType === 2 || scope.row.Data[i - 1].ModuleType === 3 ||
scope.row.Data[i - 1].ModuleType === 3 || scope.row.Data[i - 1].ModuleType === 5
scope.row.Data[i - 1].ModuleType === 5 " style="
"
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
margin-bottom: 8px; margin-bottom: 8px;
padding-bottom: 8px; padding-bottom: 8px;
" ">
>
<!-- 截止访视 --> <!-- 截止访视 -->
<div> <div>
{{ $t('trials:readingPeriod:table:deadlineVisit') }} {{ $t('trials:readingPeriod:table:deadlineVisit') }}
</div> </div>
<div>{{ scope.row.Data[i - 1].CutOffVisitName }}</div> <div>{{ scope.row.Data[i - 1].CutOffVisitName }}</div>
</div> </div>
<div <div v-if="scope.row.Data[i - 1].ModuleType === 4" style="
v-if="scope.row.Data[i - 1].ModuleType === 4"
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
margin-bottom: 8px; margin-bottom: 8px;
padding-bottom: 8px; padding-bottom: 8px;
" ">
>
<!-- 对应阅片期 --> <!-- 对应阅片期 -->
<div> <div>
{{ {{
@ -320,63 +192,47 @@
</div> </div>
<div>{{ scope.row.Data[i - 1].ReadModuleName }}</div> <div>{{ scope.row.Data[i - 1].ReadModuleName }}</div>
</div> </div>
<div <div v-if="otherInfo.ExistClinicalData" style="
v-if="otherInfo.ExistClinicalData"
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9;
margin-bottom: 8px; margin-bottom: 8px;
padding-bottom: 8px; padding-bottom: 8px;
" ">
> <div style="
<div
style="
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
width: 100%; width: 100%;
" ">
>
<!-- 临床资料 --> <!-- 临床资料 -->
<div> <div>
<el-tooltip <el-tooltip v-if="
v-if=" scope.row.Data[i - 1].CompleteClinicalData === 0
scope.row.Data[i - 1].CompleteClinicalData === 0 " class="item" effect="dark" :content="$t(
" 'trials:readingPeriod:table:clinicalDataNotComplete'
class="item" )
effect="dark" " placement="bottom">
:content="
$t(
'trials:readingPeriod:table:clinicalDataNotComplete'
)
"
placement="bottom"
>
<i class="el-icon-warning" style="color: red" /> <i class="el-icon-warning" style="color: red" />
</el-tooltip> </el-tooltip>
{{ $t('trials:readingPeriod:table:clinicalInfo2') }} {{ $t('trials:readingPeriod:table:clinicalInfo2') }}
</div> </div>
<el-link <el-link type="danger" v-if="
type="danger" (scope.row.Data[i - 1].IsVisit &&
v-if=" otherInfo.IsExistsSubjectClinicalData &&
(scope.row.Data[i - 1].IsVisit && scope.row.Data[i - 1].IsBaseLine) ||
otherInfo.IsExistsSubjectClinicalData && (scope.row.Data[i - 1].IsVisit &&
scope.row.Data[i - 1].IsBaseLine) || otherInfo.IsExistsVisitClinicalData) ||
(scope.row.Data[i - 1].IsVisit && (scope.row.Data[i - 1].IsVisit &&
otherInfo.IsExistsVisitClinicalData) || otherInfo.IsExistsStudyClinicalData) ||
(scope.row.Data[i - 1].IsVisit && (!scope.row.Data[i - 1].IsVisit &&
otherInfo.IsExistsStudyClinicalData) || otherInfo.IsExistsReadingClinicalData &&
(!scope.row.Data[i - 1].IsVisit && scope.row.Data[i - 1].ModuleType === 3) ||
otherInfo.IsExistsReadingClinicalData && (!scope.row.Data[i - 1].IsVisit &&
scope.row.Data[i - 1].ModuleType === 3) || otherInfo.IsExistsOncologyReadClinicalData &&
(!scope.row.Data[i - 1].IsVisit && scope.row.Data[i - 1].ModuleType === 5)
otherInfo.IsExistsOncologyReadClinicalData && " @click="
scope.row.Data[i - 1].ModuleType === 5) handleView(scope.row, scope.row.Data[i - 1])
" ">
@click="
handleView(scope.row, scope.row.Data[i - 1])
"
>
{{ $t('trials:readingPeriod:button:view') }} {{ $t('trials:readingPeriod:button:view') }}
</el-link> </el-link>
<span v-else>{{ <span v-else>{{
@ -385,33 +241,23 @@
</div> </div>
</div> </div>
<div> <div>
<el-link <el-link style="color: #428bca; margin-right: 5px" @click="
style="color: #428bca; margin-right: 5px" handleDetail(scope.row, scope.row.Data[i - 1])
@click=" ">
handleDetail(scope.row, scope.row.Data[i - 1])
"
>
{{ $t('trials:readingPeriod:button:detail') }} {{ $t('trials:readingPeriod:button:detail') }}
</el-link> </el-link>
<el-link <el-link style="color: #428bca; margin-right: 5px"
style="color: #428bca; margin-right: 5px"
v-if="scope.row.Data[i - 1].IsCanChangeCutOffVisit" v-if="scope.row.Data[i - 1].IsCanChangeCutOffVisit"
@click="handleEdit(scope.row, scope.row.Data[i - 1])" @click="handleEdit(scope.row, scope.row.Data[i - 1])">
>
{{ $t('common:button:edit') }} {{ $t('common:button:edit') }}
</el-link> </el-link>
<el-link <el-link style="color: #428bca; margin-right: 5px" v-if="
style="color: #428bca; margin-right: 5px" (scope.row.Data[i - 1].ModuleType === 3 ||
v-if=" scope.row.Data[i - 1].ModuleType === 5) &&
(scope.row.Data[i - 1].ModuleType === 3 || scope.row.Data[i - 1].ReadingStatus < 4
scope.row.Data[i - 1].ModuleType === 5) && " v-hasPermi="[
scope.row.Data[i - 1].ReadingStatus < 4 'trials:trials-panel:subject:readingPeriod:edit',
" ]" @click="handleDelete(scope.row.Data[i - 1])">
v-hasPermi="[
'trials:trials-panel:subject:readingPeriod:edit',
]"
@click="handleDelete(scope.row.Data[i - 1])"
>
{{ $t('trials:readingPeriod:button:delete') }} {{ $t('trials:readingPeriod:button:delete') }}
</el-link> </el-link>
</div> </div>
@ -419,127 +265,79 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table-column> </el-table-column>
<el-table-column <el-table-column v-if="
v-if=" hasPermi([
hasPermi([ 'trials:trials-panel:subject:readingPeriod:edit',
'trials:trials-panel:subject:readingPeriod:edit', ]) && ReadingInfoSignTime
]) && ReadingInfoSignTime " :fixed="(otherInfo.IsReadingPeriod || otherInfo.IsClinicalReading) &&
" ReadingInfoSignTime &&
:fixed=" hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])
(otherInfo.IsReadingPeriod || otherInfo.IsClinicalReading) && ? 'right'
ReadingInfoSignTime && : false
hasPermi(['trials:trials-panel:subject:readingPeriod:edit']) " :label="(otherInfo.IsReadingPeriod || otherInfo.IsClinicalReading) &&
? 'right'
: false
"
:label="
(otherInfo.IsReadingPeriod || otherInfo.IsClinicalReading) &&
ReadingInfoSignTime &&
hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])
? $t('common:action:action')
: ''
"
:width="
(otherInfo.IsReadingPeriod || otherInfo.IsClinicalReading) &&
ReadingInfoSignTime && ReadingInfoSignTime &&
hasPermi(['trials:trials-panel:subject:readingPeriod:edit']) hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])
? $t('common:action:action')
: ''
" :width="(otherInfo.IsReadingPeriod || otherInfo.IsClinicalReading) &&
ReadingInfoSignTime &&
hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])
? '150px' ? '150px'
: '80px' : '80px'
" ">
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button v-if="otherInfo.IsReadingPeriod" circle :title="$t('trials:readingPeriod:buttton:addSubjectImageRP')
v-if="otherInfo.IsReadingPeriod" " icon="el-icon-plus" @click="handleAdd(scope.row, 0)" />
circle <el-button v-if="isClinicalReading" circle :title="$t('trials:readingPeriod:buttton:addSubjectOncologyRP')
:title=" " icon="el-icon-plus" @click="handleAdd(scope.row, 1)" />
$t('trials:readingPeriod:buttton:addSubjectImageRP')
"
icon="el-icon-plus"
@click="handleAdd(scope.row, 0)"
/>
<el-button
v-if="isClinicalReading"
circle
:title="
$t('trials:readingPeriod:buttton:addSubjectOncologyRP')
"
icon="el-icon-plus"
@click="handleAdd(scope.row, 1)"
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页组件 --> <!-- 分页组件 -->
<pagination <pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
class="page" @pagination="getList" />
:total="total"
:page.sync="searchData.PageIndex"
:limit.sync="searchData.PageSize"
@pagination="getList"
/>
<!-- 详情 --> <!-- 详情 -->
<el-dialog <el-dialog v-if="dialogVisible" :title="$t('trials:rpDetail:dialogTitle:detail')"
v-if="dialogVisible" :visible.sync="dialogVisible" width="600px" :close-on-click-modal="false">
:title="$t('trials:rpDetail:dialogTitle:detail')"
:visible.sync="dialogVisible"
width="600px"
:close-on-click-modal="false"
>
<el-descriptions :column="2" border> <el-descriptions :column="2" border>
<!-- 阅片期名称 --> <!-- 阅片期名称 -->
<el-descriptions-item <el-descriptions-item :label="$t('trials:readingPeriod:table:readingName')">
:label="$t('trials:readingPeriod:table:readingName')"
>
{{ currentData.Name }} {{ currentData.Name }}
</el-descriptions-item> </el-descriptions-item>
<!-- 阅片期类型 --> <!-- 阅片期类型 -->
<el-descriptions-item <el-descriptions-item :label="$t('trials:readingPeriod:table:readingType')">
:label="$t('trials:readingPeriod:table:readingType')"
>
{{ $fd('ModuleTypeEnum', currentData.ModuleType) }} {{ $fd('ModuleTypeEnum', currentData.ModuleType) }}
</el-descriptions-item> </el-descriptions-item>
<!-- 是否加急 --> <!-- 是否加急 -->
<!-- <el-descriptions-item label="是否加急"> <el-tag size="small">{{ $fd('YesOrNo',currentData.IsUrgent) }}</el-tag></el-descriptions-item> --> <!-- <el-descriptions-item label="是否加急"> <el-tag size="small">{{ $fd('YesOrNo',currentData.IsUrgent) }}</el-tag></el-descriptions-item> -->
<!-- 进度 --> <!-- 进度 -->
<el-descriptions-item <el-descriptions-item :label="$t('trials:readingPeriod:table:readingSchedule')">
:label="$t('trials:readingPeriod:table:readingSchedule')"
>
{{ $fd('ReadModuleEnum', currentData.ReadingStatus) }} {{ $fd('ReadModuleEnum', currentData.ReadingStatus) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item v-if="currentData.CutOffVisitName"
v-if="currentData.CutOffVisitName" :label="$t('trials:readingPeriod:table:deadlineVisit')">
:label="$t('trials:readingPeriod:table:deadlineVisit')"
>
{{ currentData.CutOffVisitName }} {{ currentData.CutOffVisitName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item v-if="currentData.OutPlanPreviousVisitName"
v-if="currentData.OutPlanPreviousVisitName" :label="$t('trials:readingPeriod:table:lastVisit')">
:label="$t('trials:readingPeriod:table:lastVisit')"
>
{{ currentData.OutPlanPreviousVisitName }} {{ currentData.OutPlanPreviousVisitName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item <el-descriptions-item v-if="currentData.ReadModuleName"
v-if="currentData.ReadModuleName" :label="$t('trials:readingPeriod:table:correspondVisit')">
:label="$t('trials:readingPeriod:table:correspondVisit')"
>
{{ currentData.ReadModuleName }} {{ currentData.ReadModuleName }}
</el-descriptions-item> </el-descriptions-item>
<!-- 临床资料 --> <!-- 临床资料 -->
<el-descriptions-item <el-descriptions-item v-if="otherInfo.ExistClinicalData"
v-if="otherInfo.ExistClinicalData" :label="$t('trials:readingPeriod:table:clinicalInfo')">
:label="$t('trials:readingPeriod:table:clinicalInfo')" <template v-if="
> (currentData.IsVisit &&
<template otherInfo.IsExistsSubjectClinicalData &&
v-if=" currentData.IsBaseLine) ||
(currentData.IsVisit && (currentData.IsVisit &&
otherInfo.IsExistsSubjectClinicalData && otherInfo.IsExistsVisitClinicalData) ||
currentData.IsBaseLine) || (!currentData.IsVisit &&
(currentData.IsVisit && otherInfo.IsExistsReadingClinicalData)
otherInfo.IsExistsVisitClinicalData) || ">
(!currentData.IsVisit &&
otherInfo.IsExistsReadingClinicalData)
"
>
<el-link @click="view">{{ <el-link @click="view">{{
$t('trials:readingPeriod:button:view') $t('trials:readingPeriod:button:view')
}}</el-link> }}</el-link>
@ -549,86 +347,49 @@
</template> </template>
</el-descriptions-item> </el-descriptions-item>
<!-- 当前干系人 --> <!-- 当前干系人 -->
<el-descriptions-item <el-descriptions-item :label="$t('trials:readingPeriod:table:stakeholder')" :span="2">
:label="$t('trials:readingPeriod:table:stakeholder')"
:span="2"
>
{{ currentData.Stakeholders }} {{ currentData.Stakeholders }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<!-- 设置阅片期 --> <!-- 设置阅片期 -->
<el-dialog <el-dialog v-if="readPeriodVisible" :title="$t('trials:rpManage:dialogTitle:setRP')"
v-if="readPeriodVisible" :visible.sync="readPeriodVisible" width="1400px" :close-on-click-modal="false" v-dialogDrag>
:title="$t('trials:rpManage:dialogTitle:setRP')" <el-tabs v-model="activeName" @tab-click="handleClick">
:visible.sync="readPeriodVisible" <el-tab-pane :label="$t('trials:rpManage:tab:title:ViewPeriod')" name="ViewPeriod">
width="1400px" <ViewPeriod v-if="activeName === 'ViewPeriod'" :siteOptions="siteOptions"
:close-on-click-modal="false" :TrialReadingCriterionId="TrialReadingCriterionId" />
> </el-tab-pane>
<ReadingPeriod <el-tab-pane :label="$t('trials:rpManage:tab:title:ReadingPeriod')" name="ReadingPeriod">
:trial-id="trialId" <ReadingPeriod v-if="activeName === 'ReadingPeriod'" :trial-id="trialId" :siteOptions="siteOptions"
:trial-reading-criterion-id="TrialReadingCriterionId" :trial-reading-criterion-id="TrialReadingCriterionId" :is-clinical-reading="isClinicalReading"
:is-clinical-reading="isClinicalReading" :is-global-reading="otherInfo.IsReadingPeriod" @getList="getList" />
:is-global-reading="otherInfo.IsReadingPeriod" </el-tab-pane>
@getList="getList"
/> </el-tabs>
</el-dialog> </el-dialog>
<!-- 临床资料 --> <!-- 临床资料 -->
<el-dialog <el-dialog v-if="clinicalDataVisible" :title="`${$t(
v-if="clinicalDataVisible" 'trials:readingPeriod:dialogTitle:clinicalData'
:title="`${$t( )}${currentData.SubjectCode}|${currentData.Name}|${currentData.CriterionName
'trials:readingPeriod:dialogTitle:clinicalData' }`" :visible.sync="clinicalDataVisible" :close-on-click-modal="false" append-to-body width="70%">
)}${currentData.SubjectCode}|${currentData.Name}|${ <ClinicalData :trial-reading-criterion-id="TrialReadingCriterionId" :trial-id="trialId"
currentData.CriterionName :data="currentData" @getList="getList" />
}`"
:visible.sync="clinicalDataVisible"
:close-on-click-modal="false"
append-to-body
width="70%"
>
<ClinicalData
:trial-reading-criterion-id="TrialReadingCriterionId"
:trial-id="trialId"
:data="currentData"
@getList="getList"
/>
</el-dialog> </el-dialog>
<!-- 添加受试者阅片期 --> <!-- 添加受试者阅片期 -->
<el-dialog <el-dialog v-if="subjectPeriod.visible" :title="subjectPeriod.title" :visible.sync="subjectPeriod.visible"
v-if="subjectPeriod.visible" width="500px" custom-class="base-dialog-wrapper" :close-on-click-modal="false">
:title="subjectPeriod.title" <SubjectPR :trial-reading-criterion-id="TrialReadingCriterionId" :trial-id="trialId" :data="param"
:visible.sync="subjectPeriod.visible" @close="() => { subjectPeriod.visible = false }" @getList="getList" />
width="500px"
custom-class="base-dialog-wrapper"
:close-on-click-modal="false"
>
<SubjectPR
:trial-reading-criterion-id="TrialReadingCriterionId"
:trial-id="trialId"
:data="param"
@close="subjectPeriod.visible = false"
@getList="getList"
/>
</el-dialog> </el-dialog>
<!-- 编辑受试者阅片期 --> <!-- 编辑受试者阅片期 -->
<el-dialog <el-dialog v-if="subjectPeriodEdit.visible" :title="subjectPeriodEdit.title"
v-if="subjectPeriodEdit.visible" :visible.sync="subjectPeriodEdit.visible" width="500px" custom-class="base-dialog-wrapper"
:title="subjectPeriodEdit.title" :close-on-click-modal="false">
:visible.sync="subjectPeriodEdit.visible" <SubjectPR :type="'edit'" :trial-reading-criterion-id="TrialReadingCriterionId" :trial-id="trialId"
width="500px" :data="param" @close="() => { subjectPeriodEdit.visible = false }" @getList="getList" />
custom-class="base-dialog-wrapper"
:close-on-click-modal="false"
>
<SubjectPR
:type="'edit'"
:trial-reading-criterion-id="TrialReadingCriterionId"
:trial-id="trialId"
:data="param"
@close="subjectPeriodEdit.visible = false"
@getList="getList"
/>
</el-dialog> </el-dialog>
</div> </div>
</div> </div>
@ -651,6 +412,7 @@ import {
import BaseContainer from '@/components/BaseContainer' import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import ReadingPeriod from './components/RPList' import ReadingPeriod from './components/RPList'
import ViewPeriod from './components/ViewPeriod'
import ClinicalData from './components/ClinicalData' import ClinicalData from './components/ClinicalData'
import SubjectPR from './components/AddSubjectRP' import SubjectPR from './components/AddSubjectRP'
const searchDataDefault = () => { const searchDataDefault = () => {
@ -672,6 +434,7 @@ export default {
BaseContainer, BaseContainer,
Pagination, Pagination,
ReadingPeriod, ReadingPeriod,
ViewPeriod,
ClinicalData, ClinicalData,
SubjectPR, SubjectPR,
}, },
@ -702,6 +465,7 @@ export default {
trialCriterionList: [], trialCriterionList: [],
TrialReadingCriterionId: '0', TrialReadingCriterionId: '0',
ReadingInfoSignTime: null, ReadingInfoSignTime: null,
activeName: 'ReadingPeriod', // ViewPeriod ReadingPeriod
} }
}, },
watch: { watch: {
@ -719,6 +483,9 @@ export default {
this.getTrialCriterionList() this.getTrialCriterionList()
}, },
methods: { methods: {
handleClick(a) {
this.activeName = a.name
},
getList() { getList() {
this.searchData.TrialId = this.$route.query.trialId this.searchData.TrialId = this.$route.query.trialId
this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId this.searchData.TrialReadingCriterionId = this.TrialReadingCriterionId
@ -827,13 +594,13 @@ export default {
}, },
handleExportSubject() { handleExportSubject() {
getSubjectProgress_Export(this.searchData) getSubjectProgress_Export(this.searchData)
.then((res) => {}) .then((res) => { })
.catch(() => {}) .catch(() => { })
}, },
handleExportPeriod() { handleExportPeriod() {
getReadingPeriodList_Export(this.searchData) getReadingPeriodList_Export(this.searchData)
.then((res) => {}) .then((res) => { })
.catch(() => {}) .catch(() => { })
}, },
getTrialCriterionList() { getTrialCriterionList() {
getTrialCriterionList(this.trialId, false) getTrialCriterionList(this.trialId, false)
@ -842,7 +609,7 @@ export default {
this.TrialReadingCriterionId = this.TrialReadingCriterionId =
this.trialCriterionList[0].TrialReadingCriterionId this.trialCriterionList[0].TrialReadingCriterionId
}) })
.catch(() => {}) .catch(() => { })
}, },
handleSearch() { handleSearch() {
this.searchData.PageIndex = 1 this.searchData.PageIndex = 1
@ -926,12 +693,15 @@ export default {
padding: 0px !important; padding: 0px !important;
} }
} }
::v-deep .hidden-row { ::v-deep .hidden-row {
display: none; display: none;
} }
::v-deep .el-dialog__body { ::v-deep .el-dialog__body {
padding: 0px 20px; padding: 0px 20px;
} }
::v-deep .el-dialog__header { ::v-deep .el-dialog__header {
padding: 10px 20px; padding: 10px 20px;
} }