项目授权
parent
c7f5a193aa
commit
66f3a4727d
|
@ -170,3 +170,12 @@ export function downLoadReadReport(data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 预览阅片报告
|
||||||
|
export function showReadReport(data) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingImageTask/downLoadReadReport`,
|
||||||
|
method: 'post',
|
||||||
|
responseType: 'blob',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -3558,24 +3558,42 @@ export function getSystemConfirmedCreiterionList() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取项目授权码
|
// 获取项目授权信息
|
||||||
export function getTrialAuthorizationCode(params) {
|
export function getTrialAuthorizationInfo(params) {
|
||||||
return request({
|
return request({
|
||||||
url: `/Patient/getTrialAuthorizationCode`,
|
url: `/Patient/getTrialAuthorizationInfo`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取项目激活码
|
// 获取激活码信息
|
||||||
export function getTrialActivationCode(params) {
|
export function getActivationCodeInfo(params) {
|
||||||
return request({
|
return request({
|
||||||
url: `/Patient/getTrialActivationCode`,
|
url: `/Patient/getActivationCodeInfo`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取项目授权码
|
||||||
|
export function getTrialAuthorizationCode(data) {
|
||||||
|
return request({
|
||||||
|
url: `/Patient/getTrialAuthorizationCode`,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取项目激活码
|
||||||
|
export function getTrialActivationCode(data) {
|
||||||
|
return request({
|
||||||
|
url: `/Patient/getTrialActivationCode`,
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 设置项目授权信息
|
// 设置项目授权信息
|
||||||
export function activateTrial(params) {
|
export function activateTrial(params) {
|
||||||
return request({
|
return request({
|
||||||
|
@ -3583,4 +3601,13 @@ export function activateTrial(params) {
|
||||||
method: 'put',
|
method: 'put',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取项目授权码信息
|
||||||
|
export function getAuthorizationCodeInfo(params) {
|
||||||
|
return request({
|
||||||
|
url: `/Patient/getAuthorizationCodeInfo`,
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@
|
||||||
/>
|
/>
|
||||||
<!-- <embed v-else-if="fileType.indexOf('pdf') !== -1" :src="filePath+'#toolbar=0'" style="width: 100%; height: 100%"> -->
|
<!-- <embed v-else-if="fileType.indexOf('pdf') !== -1" :src="filePath+'#toolbar=0'" style="width: 100%; height: 100%"> -->
|
||||||
<!-- <iframe v-else-if="fileType.indexOf('pdf') !== -1" :src="filePath+'#toolbar=0'" width="100%" height="100%" frameborder="0" /> -->
|
<!-- <iframe v-else-if="fileType.indexOf('pdf') !== -1" :src="filePath+'#toolbar=0'" width="100%" height="100%" frameborder="0" /> -->
|
||||||
<iframe v-else-if="fileType.indexOf('pdf') !== -1" :src="`/static/pdfjs/web/viewer.html?file=${OSSclientConfig.basePath}${filePath}?userName=${currentUser}`" width="100%" height="100%" frameborder="0" />
|
<iframe v-else-if="fileType.indexOf('pdf') !== -1" :src="isLocal?`/static/pdfjs/web/viewer.html?file=${filePath}?userName=${currentUser}`:`/static/pdfjs/web/viewer.html?file=${OSSclientConfig.basePath}${filePath}?userName=${currentUser}`" width="100%" height="100%" frameborder="0" />
|
||||||
<!-- <pdf-->
|
<!-- <pdf-->
|
||||||
<!-- v-else-if="fileType.indexOf('pdf') !== -1"-->
|
<!-- v-else-if="fileType.indexOf('pdf') !== -1"-->
|
||||||
<!-- :src="`/static/pdfjs/web/viewer.html?file=${filePath}`">-->
|
<!-- :src="`/static/pdfjs/web/viewer.html?file=${filePath}`">-->
|
||||||
|
@ -36,6 +36,10 @@ export default {
|
||||||
fileType: {
|
fileType: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
isLocal:{
|
||||||
|
type: Boolean,
|
||||||
|
default:false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:visible.sync="visible"
|
||||||
|
:title="fileData.name"
|
||||||
|
:fullscreen="true"
|
||||||
|
append-to-body
|
||||||
|
custom-class="base-dialog-wrapper"
|
||||||
|
:before-close="close"
|
||||||
|
>
|
||||||
|
<div class="base-modal-body" style="border: 2px solid #ccc; padding: 10px">
|
||||||
|
<PreviewFile
|
||||||
|
v-if="visible"
|
||||||
|
:file-path="fileData.path"
|
||||||
|
:file-type="fileData.name"
|
||||||
|
:isLocal="true"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import PreviewFile from "@/components/PreviewFile/index";
|
||||||
|
export default {
|
||||||
|
name: "PreviewFileDialog",
|
||||||
|
components: { PreviewFile },
|
||||||
|
props: {
|
||||||
|
fileData: {
|
||||||
|
required: true,
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
visible: {
|
||||||
|
required: true,
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
close() {
|
||||||
|
this.$emit("update:visible", false);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
</style>
|
|
@ -10,7 +10,7 @@ import { OSSclient } from './utils/oss'
|
||||||
|
|
||||||
NProgress.configure({ showSpinner: false })
|
NProgress.configure({ showSpinner: false })
|
||||||
|
|
||||||
const whiteList = ['/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
const whiteList = ['/activate','/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
||||||
|
|
||||||
router.beforeEach(async (to, from, next) => {
|
router.beforeEach(async (to, from, next) => {
|
||||||
NProgress.start()
|
NProgress.start()
|
||||||
|
|
|
@ -221,6 +221,11 @@ export const constantRoutes = [
|
||||||
hidden: true,
|
hidden: true,
|
||||||
component: () => import('@/views/trials/trials-panel/setting/reading-unit/preview')
|
component: () => import('@/views/trials/trials-panel/setting/reading-unit/preview')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/activate',
|
||||||
|
component: () => import('@/views/trials/trials-list/components/activate-page.vue'),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
// {
|
// {
|
||||||
// path: '/audit',
|
// path: '/audit',
|
||||||
// name: 'audit',
|
// name: 'audit',
|
||||||
|
|
|
@ -103,4 +103,14 @@ const getFileData = (fileUrl) => {
|
||||||
reject(error);
|
reject(error);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
export const fileDownload = (content, filename) => {
|
||||||
|
const eleLink = document.createElement("a");
|
||||||
|
eleLink.download = filename;
|
||||||
|
eleLink.style.display = "none";
|
||||||
|
const blob = new Blob([content]);
|
||||||
|
eleLink.href = URL.createObjectURL(blob);
|
||||||
|
document.body.appendChild(eleLink);
|
||||||
|
eleLink.click();
|
||||||
|
document.body.removeChild(eleLink);
|
||||||
};
|
};
|
|
@ -39,6 +39,13 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
|
<!-- 研究方案号 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:form:researchNumber')"
|
||||||
|
prop="ResearchProgramNo"
|
||||||
|
>
|
||||||
|
<el-input v-model="trialForm.ResearchProgramNo" clearable />
|
||||||
|
</el-form-item>
|
||||||
<!-- 研究名称 -->
|
<!-- 研究名称 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:table:researchName')"
|
:label="$t('trials:trials-list:table:researchName')"
|
||||||
|
@ -51,21 +58,11 @@
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 研究方案号 -->
|
|
||||||
<el-form-item
|
|
||||||
:label="$t('trials:trials-list:form:researchNumber')"
|
|
||||||
prop="ResearchProgramNo"
|
|
||||||
>
|
|
||||||
<el-input v-model="trialForm.ResearchProgramNo" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- 研究者 -->
|
<!-- 药物/器械名称 -->
|
||||||
<el-form-item
|
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
||||||
:label="$t('trials:trials-list:form:investigator')"
|
<el-input v-model="trialForm.MedicineName" clearable />
|
||||||
prop="HeadPI"
|
|
||||||
>
|
|
||||||
<el-input v-model="trialForm.HeadPI" clearable />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 申办方 -->
|
<!-- 申办方 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -76,16 +73,13 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- CRO -->
|
<!-- 研究者 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="Cro">
|
<el-form-item
|
||||||
<el-input v-model="trialForm.CRO" maxlength="200" clearable />
|
:label="$t('trials:trials-list:form:investigator')"
|
||||||
|
prop="HeadPI"
|
||||||
|
>
|
||||||
|
<el-input v-model="trialForm.HeadPI" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 药物/器械名称 -->
|
|
||||||
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
|
||||||
<el-input v-model="trialForm.MedicineName" clearable />
|
|
||||||
</el-form-item>
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<!-- 临床分期 -->
|
<!-- 临床分期 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:phase')" prop="PhaseId">
|
<el-form-item :label="$t('trials:trials-list:form:phase')" prop="PhaseId">
|
||||||
<el-select
|
<el-select
|
||||||
|
@ -101,29 +95,23 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
<!-- 适应症 -->
|
<!-- 适应症 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:indication')">
|
<el-form-item :label="$t('trials:trials-list:form:indication')">
|
||||||
<el-input v-model="trialForm.Indication" clearable />
|
<el-input v-model="trialForm.Indication" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<!-- 检查技术 -->
|
|
||||||
<el-form-item :label="$t('trials:trials-list:form:modality')">
|
|
||||||
<el-select v-model="trialForm.ModalityIds" multiple clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="item of $d.Modality"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 阅片标准 -->
|
<!-- 阅片标准 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:form:criterion')"
|
:label="$t('trials:trials-list:form:criterion')"
|
||||||
prop="CriterionTypeList"
|
prop="CriterionTypeList"
|
||||||
>
|
>
|
||||||
<el-select v-model="trialForm.CriterionTypeList" multiple clearable>
|
<el-select
|
||||||
|
v-model="trialForm.CriterionTypeList"
|
||||||
|
multiple
|
||||||
|
clearable
|
||||||
|
:disabled="trialForm.Id !== ''"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of CriterionTypeList"
|
v-for="item of CriterionTypeList"
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
|
@ -134,19 +122,25 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
|
<!-- CRO -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="Cro">
|
||||||
|
<el-input v-model="trialForm.CRO" maxlength="200" clearable />
|
||||||
|
</el-form-item>
|
||||||
<!-- 联系人 -->
|
<!-- 联系人 -->
|
||||||
<el-form-item :label="$t('trials:researchForm:form:contactor')">
|
<el-form-item :label="$t('trials:researchForm:form:contactor')">
|
||||||
<el-input v-model="trialForm.ContactUser" clearable />
|
<el-input v-model="trialForm.ContactUser" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
<!-- 电话 -->
|
<!-- 电话 -->
|
||||||
<el-form-item :label="$t('trials:trials-myinfo:form:phone')">
|
<el-form-item :label="$t('trials:trials-myinfo:form:phone')">
|
||||||
<el-input v-model="trialForm.ContactPhone" type="number" clearable />
|
<el-input v-model="trialForm.ContactPhone" type="number" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- 授权时长 -->
|
<!-- 项目周期 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:table:durationAuthorized')"
|
:label="$t('trials:trials-list:form:projectCycle')"
|
||||||
prop="AuthorizationDuration"
|
prop="AuthorizationDuration"
|
||||||
>
|
>
|
||||||
<div style="position: relative">
|
<div style="position: relative">
|
||||||
|
@ -154,11 +148,12 @@
|
||||||
v-model="trialForm.AuthorizationDuration"
|
v-model="trialForm.AuthorizationDuration"
|
||||||
type="number"
|
type="number"
|
||||||
clearable
|
clearable
|
||||||
|
:max="200"
|
||||||
|
:min="0"
|
||||||
/>
|
/>
|
||||||
<span style="position: absolute; right: -20px; top: 0">月</span>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 授权时间 -->
|
<!-- 到期日 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:table:dateAuthorized')"
|
:label="$t('trials:trials-list:table:dateAuthorized')"
|
||||||
prop="visitNumberAuthorized"
|
prop="visitNumberAuthorized"
|
||||||
|
@ -167,41 +162,12 @@
|
||||||
v-model="trialForm.AuthorizationDate"
|
v-model="trialForm.AuthorizationDate"
|
||||||
value-format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="选择日期"
|
placeholder=""
|
||||||
|
disabled
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 授权访视量 -->
|
|
||||||
<!-- <el-form-item
|
|
||||||
:label="$t('trials:trials-list:table:visitNumberAuthorized')"
|
|
||||||
prop="visitNumberAuthorized"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="trialForm.visitNumberAuthorized"
|
|
||||||
type="number"
|
|
||||||
disabled
|
|
||||||
/>
|
|
||||||
</el-form-item> -->
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
|
||||||
<!--项目授权码-->
|
|
||||||
<!-- <el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
|
||||||
<el-input v-model="trialForm.authorizationCode" />
|
|
||||||
</el-form-item> -->
|
|
||||||
</el-row>
|
|
||||||
<el-row>
|
|
||||||
<!-- Timepoints Per Patient -->
|
|
||||||
<!-- <el-form-item :label="$t('trials:trials-list:form:timePointsPerPatient')">
|
|
||||||
<el-input-number
|
|
||||||
v-model="trialForm.TimePointsPerPatient"
|
|
||||||
controls-position="right"
|
|
||||||
:min="0"
|
|
||||||
@change="handleTpPerPatientChange"
|
|
||||||
/>
|
|
||||||
</el-form-item> -->
|
|
||||||
</el-row>
|
|
||||||
<el-row> </el-row>
|
|
||||||
<el-row> </el-row>
|
|
||||||
<el-row style="margin-left: 190px">
|
<el-row style="margin-left: 190px">
|
||||||
<el-form-item label="">
|
<el-form-item label="">
|
||||||
<el-button type="primary" :disabled="btnLoading" @click="handleCancel">
|
<el-button type="primary" :disabled="btnLoading" @click="handleCancel">
|
||||||
|
|
|
@ -0,0 +1,224 @@
|
||||||
|
<template>
|
||||||
|
<el-form
|
||||||
|
ref="activateProjectForm"
|
||||||
|
:model="form"
|
||||||
|
size="small"
|
||||||
|
label-width="120px"
|
||||||
|
style="width: 500px; padding: 30px 0 0 30px"
|
||||||
|
>
|
||||||
|
<div class="base-dialog-body">
|
||||||
|
<p>授权申请信息</p>
|
||||||
|
<!-- 购买时长 -->
|
||||||
|
<el-form-item label="项目码">
|
||||||
|
<el-input v-model="data.AuthorizationCode" />
|
||||||
|
<input
|
||||||
|
type="file"
|
||||||
|
id="uploadFile"
|
||||||
|
ref="uploadFile"
|
||||||
|
@change="fileChange"
|
||||||
|
style="display: none"
|
||||||
|
/>
|
||||||
|
<label for="uploadFile" class="copy">上传</label>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 单位名称 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:activate:organizationName')">
|
||||||
|
<span>{{ data.HospitalName }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 项目编号 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:table:trialId')">
|
||||||
|
<span>{{ data.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 评估标准 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:evaluationCriteria')"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>{{
|
||||||
|
data.CriterionTypeList.map((item) =>
|
||||||
|
$fd("CriterionType", Number(item))
|
||||||
|
).join(",")
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 购买时长 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:activate:purchaseDuration')">
|
||||||
|
<span>{{ data.PurchaseDuration }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<p>生成激活码信息</p>
|
||||||
|
<!-- 单位名称 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:activate:organizationName')">
|
||||||
|
<span>{{ data.HospitalName }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 项目编号 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:table:trialId')">
|
||||||
|
<span>{{ data.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 评估标准 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:evaluationCriteria')"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
>{{
|
||||||
|
data.CriterionTypeList.map((item) =>
|
||||||
|
$fd("CriterionType", Number(item))
|
||||||
|
).join(",")
|
||||||
|
}}
|
||||||
|
</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 授权时长 -->
|
||||||
|
<el-form-item label="授权时长" prop="Activate">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.PurchaseDuration"
|
||||||
|
:min="0"
|
||||||
|
:max="100"
|
||||||
|
></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 激活码 -->
|
||||||
|
<el-form-item label="激活码">
|
||||||
|
<span>{{ form.code }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="base-dialog-footer" style="text-align: right; margin-top: 10px">
|
||||||
|
<el-form-item>
|
||||||
|
<!-- 取消 -->
|
||||||
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
@click.stop="getTrialActivationCode"
|
||||||
|
>
|
||||||
|
生成
|
||||||
|
</el-button>
|
||||||
|
<!-- 保存 -->
|
||||||
|
<el-button size="small" type="primary" @click.stop="copy">
|
||||||
|
复制
|
||||||
|
</el-button>
|
||||||
|
<el-button size="small" type="primary" @click.stop="downloadXmlFile">
|
||||||
|
下载
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { fileDownload } from "@/utils/uploadZip.js";
|
||||||
|
import {
|
||||||
|
getAuthorizationCodeInfo,
|
||||||
|
getTrialActivationCode,
|
||||||
|
} from "@/api/trials.js";
|
||||||
|
export default {
|
||||||
|
name: "activatePage",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
code: null,
|
||||||
|
PurchaseDuration: 0,
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
AuthorizationCode: null,
|
||||||
|
AuthorizationDeadLineDate: null,
|
||||||
|
CreateUserId: null,
|
||||||
|
CriterionTypeList: [],
|
||||||
|
HospitalName: null,
|
||||||
|
PurchaseDuration: null,
|
||||||
|
TrialCode: null,
|
||||||
|
TrialId: null,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
"data.AuthorizationCode": {
|
||||||
|
handler() {
|
||||||
|
if (!this.data.AuthorizationCode) return;
|
||||||
|
this.getAuthorizationCodeInfo();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 复制
|
||||||
|
copy() {
|
||||||
|
this.$copyText(this.form.code)
|
||||||
|
.then((res) => {
|
||||||
|
// 复制成功
|
||||||
|
this.$message.success(
|
||||||
|
this.$t("trials:researchRecord:message:copySuccessfully")
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// 复制失败
|
||||||
|
this.$alert(this.$t("trials:researchRecord:message:copyFailed"));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 生成激活码
|
||||||
|
async getTrialActivationCode() {
|
||||||
|
try {
|
||||||
|
let params = {
|
||||||
|
TrialId: this.data.TrialId,
|
||||||
|
TrialCode: this.data.TrialCode,
|
||||||
|
PurchaseDuration: this.form.PurchaseDuration,
|
||||||
|
HospitalName: this.data.HospitalName,
|
||||||
|
CriterionTypeList: this.data.CriterionTypeList,
|
||||||
|
CreateUserId: this.data.CreateUserId,
|
||||||
|
AuthorizationDeadLineDate: null,
|
||||||
|
};
|
||||||
|
let res = await getTrialActivationCode(params);
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.form.code = res.Result;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 获取项目码信息
|
||||||
|
async getAuthorizationCodeInfo() {
|
||||||
|
try {
|
||||||
|
let params = {
|
||||||
|
AuthorizationCode: this.data.AuthorizationCode,
|
||||||
|
};
|
||||||
|
let res = await getAuthorizationCodeInfo(params);
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
Object.keys(res.Result).forEach((key) => {
|
||||||
|
this.data[key] = res.Result[key];
|
||||||
|
});
|
||||||
|
this.form.PurchaseDuration = this.data.PurchaseDuration;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fileChange(data) {
|
||||||
|
let input = data.target;
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.readAsText(input.files[0], "utf8"); // input.files[0]为第一个文件
|
||||||
|
reader.onload = () => {
|
||||||
|
this.data.AuthorizationCode = reader.result; // reader.result为获取结果
|
||||||
|
input.value = null;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
funDownload(content, filename) {
|
||||||
|
const eleLink = document.createElement("a");
|
||||||
|
eleLink.download = filename;
|
||||||
|
eleLink.style.display = "none";
|
||||||
|
const blob = new Blob([content]);
|
||||||
|
eleLink.href = URL.createObjectURL(blob);
|
||||||
|
document.body.appendChild(eleLink);
|
||||||
|
eleLink.click();
|
||||||
|
document.body.removeChild(eleLink);
|
||||||
|
},
|
||||||
|
downloadXmlFile() {
|
||||||
|
fileDownload(this.form.code, "激活码");
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.copy {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #409eff;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.el-form-item__content {
|
||||||
|
.el-input {
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -12,24 +12,56 @@
|
||||||
:model="form"
|
:model="form"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
size="small"
|
size="small"
|
||||||
label-width="100px"
|
label-width="120px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body">
|
||||||
|
<p>授权申请信息</p>
|
||||||
|
<!-- 单位名称 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:organizationName')"
|
||||||
|
>
|
||||||
|
<span>{{ form.HospitalName }}</span>
|
||||||
|
</el-form-item>
|
||||||
<!-- 项目编号 -->
|
<!-- 项目编号 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:table:trialId')">
|
<el-form-item :label="$t('trials:trials-list:table:trialId')">
|
||||||
<span>{{ data.TrialCode }}</span>
|
<span>{{ form.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 评估标准 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:evaluationCriteria')"
|
||||||
|
>
|
||||||
|
<span>{{
|
||||||
|
form.CriterionTypeList.map((item) =>
|
||||||
|
$fd("CriterionType", Number(item))
|
||||||
|
).join(",")
|
||||||
|
}}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 购买时长 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:purchaseDuration')"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.PurchaseDuration"
|
||||||
|
@change="handleChange"
|
||||||
|
:min="0"
|
||||||
|
:max="100"
|
||||||
|
step-strictly
|
||||||
|
></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 授权码 -->
|
<!-- 授权码 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
<el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
||||||
<p v-if="data.Authorization" class="AuthorizationBox">
|
<p v-if="form.Authorization" class="AuthorizationBox">
|
||||||
<span class="Authorization" :title="data.Authorization">{{
|
<span class="Authorization" :title="form.Authorization">{{
|
||||||
data.Authorization
|
form.Authorization
|
||||||
}}</span>
|
}}</span>
|
||||||
<span class="copy" @click.stop="copy">{{
|
<span class="copy" @click.stop="copy">{{
|
||||||
$t("trials:trials-list:action:copy")
|
$t("trials:trials-list:action:copy")
|
||||||
}}</span>
|
}}</span>
|
||||||
<span class="copy" style="margin-left: 10px" @click.stop="getCode"
|
<span
|
||||||
>获取</span
|
class="copy"
|
||||||
|
style="margin-left: 10px"
|
||||||
|
@click.stop="getCode"
|
||||||
|
>{{ $t("trials:reading:button:download") }}</span
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -39,7 +71,41 @@
|
||||||
prop="Activate"
|
prop="Activate"
|
||||||
>
|
>
|
||||||
<el-input v-model="form.Activate" />
|
<el-input v-model="form.Activate" />
|
||||||
|
<span
|
||||||
|
v-if="form.Activate"
|
||||||
|
class="copy"
|
||||||
|
@click.stop="getActivationCodeInfo"
|
||||||
|
style="margin-left: 10px"
|
||||||
|
>{{ $t("trials:reviewTrack:impactList:save") }}</span
|
||||||
|
>
|
||||||
|
<input type="file" id="uploadFileInp" @change="uploadFile" />
|
||||||
|
<label class="copy" style="margin-left: 10px" for="uploadFileInp">{{
|
||||||
|
$t("trials:activate:button:upload")
|
||||||
|
}}</label>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<div v-if="isActivate">
|
||||||
|
<p>授权信息</p>
|
||||||
|
<!-- 单位名称 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:organizationName')"
|
||||||
|
>
|
||||||
|
<span>{{ data.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 项目编号 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:table:trialId')">
|
||||||
|
<span>{{ data.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 评估标准 -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('trials:trials-list:activate:evaluationCriteria')"
|
||||||
|
>
|
||||||
|
<span>{{ data.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 到期日 -->
|
||||||
|
<el-form-item :label="$t('trials:trials-list:table:dateAuthorized')">
|
||||||
|
<span>{{ data.TrialCode }}</span>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="base-dialog-footer"
|
class="base-dialog-footer"
|
||||||
|
@ -70,7 +136,13 @@
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { activateTrial, getTrialActivationCode } from "@/api/trials.js";
|
import {
|
||||||
|
activateTrial,
|
||||||
|
getTrialAuthorizationCode,
|
||||||
|
getTrialAuthorizationInfo,
|
||||||
|
getActivationCodeInfo,
|
||||||
|
} from "@/api/trials.js";
|
||||||
|
import { fileDownload } from "@/utils/uploadZip.js";
|
||||||
export default {
|
export default {
|
||||||
name: "activateProject",
|
name: "activateProject",
|
||||||
props: {
|
props: {
|
||||||
|
@ -90,6 +162,13 @@ export default {
|
||||||
form: {
|
form: {
|
||||||
Authorization: null, // 授权码
|
Authorization: null, // 授权码
|
||||||
Activate: null, // 激活码
|
Activate: null, // 激活码
|
||||||
|
TrialId: null,
|
||||||
|
TrialCode: null,
|
||||||
|
PurchaseDuration: null,
|
||||||
|
HospitalName: null,
|
||||||
|
CriterionTypeList: [],
|
||||||
|
CreateUserId: null,
|
||||||
|
AuthorizationDeadLineDate: null,
|
||||||
},
|
},
|
||||||
btnLoading: false,
|
btnLoading: false,
|
||||||
rules: {
|
rules: {
|
||||||
|
@ -101,15 +180,74 @@ export default {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
isActivate: false,
|
||||||
|
timer: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getTrialAuthorizationCode();
|
this.getTrialAuthorizationInfo();
|
||||||
|
},
|
||||||
|
destroyed() {
|
||||||
|
if (this.timer) {
|
||||||
|
clearTimeout(this.timer);
|
||||||
|
this.timer = null;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.$emit("update:visible", false);
|
this.$emit("update:visible", false);
|
||||||
},
|
},
|
||||||
|
// 购买时长变更
|
||||||
|
async handleChange() {
|
||||||
|
if (this.timer) {
|
||||||
|
clearTimeout(this.timer);
|
||||||
|
this.timer = null;
|
||||||
|
}
|
||||||
|
this.timer = setTimeout(() => {
|
||||||
|
this.getTrialAuthorizationCode();
|
||||||
|
clearTimeout(this.timer);
|
||||||
|
this.timer = null;
|
||||||
|
}, 500);
|
||||||
|
},
|
||||||
|
// 获取授权信息
|
||||||
|
async getTrialAuthorizationInfo() {
|
||||||
|
try {
|
||||||
|
let params = {
|
||||||
|
TrialId: this.data.TrialId,
|
||||||
|
};
|
||||||
|
let res = await getTrialAuthorizationInfo(params);
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
Object.keys(this.form).forEach((key) => {
|
||||||
|
this.form[key] = res.Result[key];
|
||||||
|
});
|
||||||
|
this.getTrialAuthorizationCode();
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 获取授权码
|
||||||
|
async getTrialAuthorizationCode() {
|
||||||
|
let params = {
|
||||||
|
TrialId: this.form.TrialId,
|
||||||
|
TrialCode: this.form.TrialCode,
|
||||||
|
PurchaseDuration: this.form.PurchaseDuration,
|
||||||
|
HospitalName: this.form.HospitalName,
|
||||||
|
CriterionTypeList: this.form.CriterionTypeList,
|
||||||
|
CreateUserId: this.form.CreateUserId,
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
let res = await getTrialAuthorizationCode(params);
|
||||||
|
if (res.IsSuccess) {
|
||||||
|
this.form.Authorization = res.Result;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
// 激活
|
// 激活
|
||||||
async handleSave() {
|
async handleSave() {
|
||||||
try {
|
try {
|
||||||
|
@ -136,7 +274,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 复制
|
// 复制
|
||||||
copy() {
|
copy() {
|
||||||
this.$copyText(this.data.Authorization)
|
this.$copyText(this.form.Authorization)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
// 复制成功
|
// 复制成功
|
||||||
this.$message.success(
|
this.$message.success(
|
||||||
|
@ -148,16 +286,29 @@ export default {
|
||||||
this.$alert(this.$t("trials:researchRecord:message:copyFailed"));
|
this.$alert(this.$t("trials:researchRecord:message:copyFailed"));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 获取激活码
|
// 下载
|
||||||
async getCode() {
|
async getCode() {
|
||||||
let params = {
|
fileDownload(this.form.Authorization, "项目码");
|
||||||
TrialId: this.data.TrialId,
|
},
|
||||||
AuthorizationCode: this.data.Authorization,
|
// 上传并读取文件
|
||||||
|
uploadFile(file) {
|
||||||
|
let input = file.target;
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.readAsText(input.files[0], "utf8"); // input.files[0]为第一个文件
|
||||||
|
reader.onload = () => {
|
||||||
|
this.form.Activate = reader.result; // reader.result为获取结果
|
||||||
|
input.value = null;
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
// 获取激活码信息
|
||||||
|
async getActivationCodeInfo() {
|
||||||
try {
|
try {
|
||||||
let res = await getTrialActivationCode(params);
|
let params = {
|
||||||
|
ActivationCode: this.form.Activate,
|
||||||
|
};
|
||||||
|
let res = await getActivationCodeInfo(params);
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.form.Activate = res.Result;
|
this.isActivate = true;
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
|
@ -169,6 +320,7 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::v-deep .el-dialog__body {
|
::v-deep .el-dialog__body {
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
.Authorization {
|
.Authorization {
|
||||||
width: 70%;
|
width: 70%;
|
||||||
|
@ -177,6 +329,11 @@ export default {
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
.el-form-item__content {
|
||||||
|
.el-input {
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
}
|
||||||
.copy {
|
.copy {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #409eff;
|
color: #409eff;
|
||||||
|
|
|
@ -225,7 +225,7 @@
|
||||||
<!--授权时长-->
|
<!--授权时长-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="AuthorizationDuration"
|
prop="AuthorizationDuration"
|
||||||
:label="$t('trials:trials-list:table:durationAuthorized')"
|
:label="$t('trials:trials-list:form:projectCycle')"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
sortable="custom"
|
sortable="custom"
|
||||||
/>
|
/>
|
||||||
|
@ -272,20 +272,12 @@
|
||||||
/>
|
/>
|
||||||
<!-- 激活 -->
|
<!-- 激活 -->
|
||||||
<el-button
|
<el-button
|
||||||
|
v-if="!scope.row.AuthorizationEncrypt"
|
||||||
circle
|
circle
|
||||||
icon="el-icon-key"
|
icon="el-icon-key"
|
||||||
:title="$t('trials:trials-list:action:activate')"
|
:title="$t('trials:trials-list:action:activate')"
|
||||||
@click="handleActivate(scope.row)"
|
@click="handleActivate(scope.row)"
|
||||||
/>
|
/>
|
||||||
<!-- 代办详情 -->
|
|
||||||
<!-- <el-button
|
|
||||||
v-hasPermi="['trials:trials-list:abolish']"
|
|
||||||
circle
|
|
||||||
icon="el-icon-receiving"
|
|
||||||
:disabled="scope.row.TrialStatusStr === 'Initializing'"
|
|
||||||
:title="$t('trials:trials-list:action:commission')"
|
|
||||||
@click="handleCommission(scope.row)"
|
|
||||||
/> -->
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -357,11 +349,7 @@
|
||||||
</BaseContainer>
|
</BaseContainer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import { abandonTrial, getTrialListHir } from "@/api/trials";
|
||||||
abandonTrial,
|
|
||||||
getTrialListHir,
|
|
||||||
getTrialAuthorizationCode,
|
|
||||||
} from "@/api/trials";
|
|
||||||
import { mapGetters } from "vuex";
|
import { mapGetters } from "vuex";
|
||||||
import Excel from "exceljs";
|
import Excel from "exceljs";
|
||||||
import BaseContainer from "@/components/BaseContainer";
|
import BaseContainer from "@/components/BaseContainer";
|
||||||
|
@ -477,30 +465,10 @@ export default {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
// 获取授权码
|
|
||||||
async getTrialAuthorizationCode(item) {
|
|
||||||
let params = {
|
|
||||||
TrialId: item.TrialId,
|
|
||||||
};
|
|
||||||
try {
|
|
||||||
let res = await getTrialAuthorizationCode(params);
|
|
||||||
if (res.IsSuccess) {
|
|
||||||
this.currentRow.Authorization = res.Result;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 打开激活弹框
|
// 打开激活弹框
|
||||||
async handleActivate(item) {
|
async handleActivate(item) {
|
||||||
this.currentRow = item;
|
this.currentRow = item;
|
||||||
let res = await this.getTrialAuthorizationCode(item);
|
this.activateVisible = true;
|
||||||
if (res) {
|
|
||||||
this.activateVisible = true;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
initPage() {
|
initPage() {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
|
@ -201,6 +201,7 @@ export default {
|
||||||
this.$t("trials:trials-myinfo:message:updateSuccessfully")
|
this.$t("trials:trials-myinfo:message:updateSuccessfully")
|
||||||
);
|
);
|
||||||
this.$emit("getUserInfo");
|
this.$emit("getUserInfo");
|
||||||
|
this.logout();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
setNewPhone() {
|
setNewPhone() {
|
||||||
|
@ -250,6 +251,19 @@ export default {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async logout() {
|
||||||
|
/* eslint-disable */
|
||||||
|
var loginType = zzSessionStorage.getItem("loginType");
|
||||||
|
await this.$store.dispatch("user/logout");
|
||||||
|
if (loginType) {
|
||||||
|
this.$router.push(`/login?loginType=${loginType}`);
|
||||||
|
} else {
|
||||||
|
this.$router.push(`/login`);
|
||||||
|
}
|
||||||
|
this.$i18n.locale = "zh";
|
||||||
|
this.setLanguage("zh");
|
||||||
|
this.$updateDictionary();
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
|
@ -12,6 +12,8 @@
|
||||||
style="margin-right:5px;"
|
style="margin-right:5px;"
|
||||||
@change="handleShowDetail"
|
@change="handleShowDetail"
|
||||||
/>
|
/>
|
||||||
|
<!--评估报告-->
|
||||||
|
<el-button v-if="readingTaskState>=2" type="primary" size="small" @click="showReport">{{$t('trials:dicoms:button:evaluationReport')}}</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="readingTaskState<2"
|
v-if="readingTaskState<2"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -256,6 +258,11 @@
|
||||||
</div>
|
</div>
|
||||||
<SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
|
<SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!--评估报告-->
|
||||||
|
<PreviewFileDialog
|
||||||
|
:visible.sync="previewFileVisible"
|
||||||
|
:fileData="fileData"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -269,9 +276,11 @@ import store from '@/store'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { changeURLStatic } from '@/utils/history.js'
|
import { changeURLStatic } from '@/utils/history.js'
|
||||||
import AdditionalAssessment from './AdditionalAssessment'
|
import AdditionalAssessment from './AdditionalAssessment'
|
||||||
|
import { showReadReport } from "@/api/export";
|
||||||
|
import PreviewFileDialog from "@/components/PreviewFileDialog/PreviewFileDialog.vue";
|
||||||
export default {
|
export default {
|
||||||
name: 'ReportPage',
|
name: 'ReportPage',
|
||||||
components: { SignForm, AdditionalAssessment },
|
components: { SignForm, AdditionalAssessment,PreviewFileDialog },
|
||||||
props: {
|
props: {
|
||||||
visitTaskId: {
|
visitTaskId: {
|
||||||
type: String,
|
type: String,
|
||||||
|
@ -308,7 +317,11 @@ export default {
|
||||||
assessmentQuestions: [],
|
assessmentQuestions: [],
|
||||||
tLesionCount: null,
|
tLesionCount: null,
|
||||||
ntLesionCount: null,
|
ntLesionCount: null,
|
||||||
openWindow: null
|
openWindow: null,
|
||||||
|
|
||||||
|
// 评估报告
|
||||||
|
previewFileVisible: false,
|
||||||
|
fileData: {},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -349,6 +362,24 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 评估报告
|
||||||
|
async showReport(){
|
||||||
|
let data = {
|
||||||
|
VisitTaskId: this.visitTaskId,
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
let res = await showReadReport(data);
|
||||||
|
let urlPdf = window.URL.createObjectURL(new Blob([res]))
|
||||||
|
this.viewVisible = true
|
||||||
|
this.fileData = {
|
||||||
|
path: encodeURIComponent(urlPdf),
|
||||||
|
name:'评估报告.pdf'
|
||||||
|
};
|
||||||
|
this.previewFileVisible = true;
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
myConfirm(msg) {
|
myConfirm(msg) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
this.$confirm(msg, {
|
this.$confirm(msg, {
|
||||||
|
|
Loading…
Reference in New Issue