新增修改项目
parent
77b03186d8
commit
267444c8ad
|
@ -3469,7 +3469,7 @@ export function deleteCustomTag(id) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function uploadTrialSiteSurveyUser(trialId,baseUrl,routeUrl,param) {
|
export function uploadTrialSiteSurveyUser(trialId, baseUrl, routeUrl, param) {
|
||||||
return request({
|
return request({
|
||||||
url: `/TrialSiteSurvey/UploadTrialSiteSurveyUser?trialId=${trialId}&baseUrl=${baseUrl}&routeUrl=${routeUrl}`,
|
url: `/TrialSiteSurvey/UploadTrialSiteSurveyUser?trialId=${trialId}&baseUrl=${baseUrl}&routeUrl=${routeUrl}`,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
|
@ -3506,3 +3506,12 @@ export function getNextIQCQuality(param) {
|
||||||
data: param
|
data: param
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 新增或编辑项目
|
||||||
|
export function addOrUpdateTrialHir(param) {
|
||||||
|
return request({
|
||||||
|
url: `/Patient/addOrUpdateTrial`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -11,12 +11,13 @@
|
||||||
:inline="true"
|
:inline="true"
|
||||||
>
|
>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- 项目码 -->
|
<!-- 项目码 v-if="trialForm.Id !== ''"-->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="trialForm.Id !== ''"
|
|
||||||
:label="$t('trials:trials-list:form:trialCode')"
|
:label="$t('trials:trials-list:form:trialCode')"
|
||||||
|
prop="TrialCode"
|
||||||
>
|
>
|
||||||
<el-input v-model="trialForm.TrialCode" disabled />
|
<!-- <el-input v-model="trialForm.TrialCode" disabled /> -->
|
||||||
|
<el-input v-model="trialForm.TrialCode" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 项目类型 -->
|
<!-- 项目类型 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -46,6 +47,7 @@
|
||||||
v-model="trialForm.ExperimentName"
|
v-model="trialForm.ExperimentName"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:autosize="{ minRows: 1, maxRows: 4 }"
|
:autosize="{ minRows: 1, maxRows: 4 }"
|
||||||
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 研究方案号 -->
|
<!-- 研究方案号 -->
|
||||||
|
@ -53,7 +55,7 @@
|
||||||
:label="$t('trials:trials-list:form:researchNumber')"
|
:label="$t('trials:trials-list:form:researchNumber')"
|
||||||
prop="ResearchProgramNo"
|
prop="ResearchProgramNo"
|
||||||
>
|
>
|
||||||
<el-input v-model="trialForm.ResearchProgramNo" />
|
<el-input v-model="trialForm.ResearchProgramNo" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
|
@ -62,30 +64,34 @@
|
||||||
:label="$t('trials:trials-list:form:investigator')"
|
:label="$t('trials:trials-list:form:investigator')"
|
||||||
prop="HeadPI"
|
prop="HeadPI"
|
||||||
>
|
>
|
||||||
<el-input v-model="trialForm.HeadPI" />
|
<el-input v-model="trialForm.HeadPI" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 申办方 -->
|
<!-- 申办方 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:form:sponsor')"
|
:label="$t('trials:trials-list:form:sponsor')"
|
||||||
prop="SponsorName"
|
prop="Sponsor"
|
||||||
>
|
>
|
||||||
<el-input v-model="trialForm.SponsorName" maxlength="200" />
|
<el-input v-model="trialForm.Sponsor" maxlength="200" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- CRO -->
|
<!-- CRO -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="croName">
|
<el-form-item :label="$t('trials:trials-list:form:cro')" prop="Cro">
|
||||||
<el-input v-model="trialForm.croName" maxlength="200" />
|
<el-input v-model="trialForm.Cro" maxlength="200" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 药物/器械名称 -->
|
<!-- 药物/器械名称 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
<el-form-item :label="$t('trials:trials-list:message:D/Dname')">
|
||||||
<el-input v-model="trialForm.croName" />
|
<el-input v-model="trialForm.MedicineName" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<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 v-model="trialForm.PhaseId" @change="handlePhaseChange">
|
<el-select
|
||||||
|
v-model="trialForm.PhaseId"
|
||||||
|
@change="handlePhaseChange"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Trial_Phase"
|
v-for="item of $d.Trial_Phase"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
@ -96,13 +102,13 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 适应症 -->
|
<!-- 适应症 -->
|
||||||
<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.IndicationTypeId" />
|
<el-input v-model="trialForm.Indication" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- 检查技术 -->
|
<!-- 检查技术 -->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:modality')">
|
<el-form-item :label="$t('trials:trials-list:form:modality')">
|
||||||
<el-select v-model="trialForm.ModalityIds" multiple>
|
<el-select v-model="trialForm.ModalityIds" multiple clearable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Modality"
|
v-for="item of $d.Modality"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
@ -114,14 +120,14 @@
|
||||||
<!-- 阅片标准 -->
|
<!-- 阅片标准 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('trials:trials-list:form:criterion')"
|
:label="$t('trials:trials-list:form:criterion')"
|
||||||
prop="CriterionId"
|
prop="CriterionTypeList"
|
||||||
>
|
>
|
||||||
<el-select v-model="trialForm.CriterionId">
|
<el-select v-model="trialForm.CriterionTypeList" multiple clearable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.CriterionType"
|
v-for="item of $d.CriterionType"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.id"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -129,23 +135,28 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- 联系人 -->
|
<!-- 联系人 -->
|
||||||
<el-form-item :label="$t('trials:researchForm:form:contactor')">
|
<el-form-item :label="$t('trials:researchForm:form:contactor')">
|
||||||
<el-input v-model="trialForm.IndicationTypeId" />
|
<el-input v-model="trialForm.ContactUser" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 电话 -->
|
<!-- 电话 -->
|
||||||
<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.phone" type="number" />
|
<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:table:durationAuthorized')"
|
||||||
prop="durationAuthorized"
|
prop="AuthorizationYear"
|
||||||
>
|
>
|
||||||
<el-input v-model="trialForm.durationAuthorized" type="number" /> 年
|
<el-input
|
||||||
|
v-model="trialForm.AuthorizationYear"
|
||||||
|
type="number"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
年
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 授权访视量 -->
|
<!-- 授权访视量 -->
|
||||||
<el-form-item
|
<!-- <el-form-item
|
||||||
:label="$t('trials:trials-list:table:visitNumberAuthorized')"
|
:label="$t('trials:trials-list:table:visitNumberAuthorized')"
|
||||||
prop="visitNumberAuthorized"
|
prop="visitNumberAuthorized"
|
||||||
>
|
>
|
||||||
|
@ -154,13 +165,13 @@
|
||||||
type="number"
|
type="number"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!--项目授权码-->
|
<!--项目授权码-->
|
||||||
<el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
<!-- <el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
||||||
<el-input v-model="trialForm.authorizationCode" />
|
<el-input v-model="trialForm.authorizationCode" />
|
||||||
</el-form-item>
|
</el-form-item> -->
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- Timepoints Per Patient -->
|
<!-- Timepoints Per Patient -->
|
||||||
|
@ -190,7 +201,7 @@
|
||||||
<script>
|
<script>
|
||||||
import store from "@/store";
|
import store from "@/store";
|
||||||
import { mapGetters, mapState } from "vuex";
|
import { mapGetters, mapState } from "vuex";
|
||||||
import { getTrialInfo, addOrUpdateTrial } from "@/api/trials";
|
import { getTrialInfo, addOrUpdateTrialHir } from "@/api/trials";
|
||||||
import { getBasicDataSelects } from "@/api/dictionary/dictionary";
|
import { getBasicDataSelects } from "@/api/dictionary/dictionary";
|
||||||
export default {
|
export default {
|
||||||
name: "TrialForm",
|
name: "TrialForm",
|
||||||
|
@ -203,55 +214,35 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
trialForm: {
|
trialForm: {
|
||||||
visitNumberAuthorized: 1000,
|
|
||||||
Id: "",
|
Id: "",
|
||||||
TrialCode: "",
|
TrialCode: "",
|
||||||
TrialType: null,
|
TrialType: null,
|
||||||
SponsorId: "",
|
|
||||||
CROId: "",
|
|
||||||
ReviewModeId: "",
|
|
||||||
ReviewTypeIds: [],
|
|
||||||
|
|
||||||
// 默认值0
|
|
||||||
Expedited: "",
|
|
||||||
|
|
||||||
ModalityIds: [],
|
|
||||||
Note: "",
|
|
||||||
ExpectedPatients: "",
|
|
||||||
TimePointsPerPatient: "",
|
|
||||||
ProjectCycle: "",
|
|
||||||
DeclarationTypeId: "",
|
|
||||||
IndicationTypeId: "",
|
|
||||||
PhaseId: "",
|
|
||||||
AttendedReviewerType: "",
|
|
||||||
IsLocked: false,
|
|
||||||
ResearchProgramNo: "",
|
ResearchProgramNo: "",
|
||||||
ExperimentName: "",
|
ExperimentName: "",
|
||||||
MainResearchUnit: "",
|
|
||||||
HeadPI: "",
|
HeadPI: "",
|
||||||
PlanSiteCount: null,
|
Cro: "",
|
||||||
PlanVisitCount: null,
|
Sponsor: "",
|
||||||
Indication: null,
|
MedicineName: "",
|
||||||
AttendedReviewerTypeEnumList: [],
|
PhaseId: "",
|
||||||
DeclarationTypeEnumList: [],
|
Indication: "",
|
||||||
DeclarationTypeOther: null,
|
ModalityIds: [],
|
||||||
AttendedReviewerTypeOther: null,
|
CriterionTypeList: [],
|
||||||
IsDeclaration: null,
|
ContactUser: "",
|
||||||
|
ContactPhone: "",
|
||||||
|
AuthorizationYear: null,
|
||||||
},
|
},
|
||||||
indicationGrouping: null,
|
indicationGrouping: null,
|
||||||
trialFormRules: {
|
trialFormRules: {
|
||||||
// 授权时长
|
// 项目码
|
||||||
durationAuthorized: [
|
TrialCode: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t(
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
"trials:trials-list:formRule:enterDurationAuthorized"
|
|
||||||
),
|
|
||||||
trigger: "blur",
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
// 授权访视量
|
// 授权时长
|
||||||
visitNumberAuthorized: [
|
AuthorizationYear: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t(
|
message: this.$t(
|
||||||
|
@ -261,7 +252,7 @@ export default {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
// 阅片标准
|
// 阅片标准
|
||||||
CriterionId: [
|
CriterionTypeList: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("common:ruleMessage:specify"),
|
message: this.$t("common:ruleMessage:specify"),
|
||||||
|
@ -269,7 +260,7 @@ export default {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
// 药物/器械名称
|
// 药物/器械名称
|
||||||
croName: [
|
MedicineName: [
|
||||||
{
|
{
|
||||||
max: 200,
|
max: 200,
|
||||||
message: `${this.$t("common:ruleMessage:maxLength")} 200`,
|
message: `${this.$t("common:ruleMessage:maxLength")} 200`,
|
||||||
|
@ -282,7 +273,7 @@ export default {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
// 申办方
|
// 申办方
|
||||||
SponsorName: [
|
Sponsor: [
|
||||||
{
|
{
|
||||||
max: 200,
|
max: 200,
|
||||||
message: `${this.$t("common:ruleMessage:maxLength")} 200`,
|
message: `${this.$t("common:ruleMessage:maxLength")} 200`,
|
||||||
|
@ -294,14 +285,6 @@ export default {
|
||||||
trigger: "blur",
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
Code: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.$t("common:ruleMessage:specify"),
|
|
||||||
trigger: "blur",
|
|
||||||
},
|
|
||||||
{ max: 50, message: `${this.$t("common:ruleMessage:maxLength")} 50` },
|
|
||||||
],
|
|
||||||
TrialType: [
|
TrialType: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
|
@ -331,29 +314,6 @@ export default {
|
||||||
message: `${this.$t("common:ruleMessage:maxLength")} 100`,
|
message: `${this.$t("common:ruleMessage:maxLength")} 100`,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
ProjectCycle: [
|
|
||||||
{ max: 50, message: `${this.$t("common:ruleMessage:maxLength")} 50` },
|
|
||||||
],
|
|
||||||
ReviewModeId: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.$t("common:ruleMessage:select"),
|
|
||||||
trigger: ["blur", "change"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
Expedited: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.$t("common:ruleMessage:select"),
|
|
||||||
trigger: ["blur", "change"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
Note: [
|
|
||||||
{
|
|
||||||
max: 500,
|
|
||||||
message: `${this.$t("common:ruleMessage:maxLength")} 500`,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
ModalityIds: [
|
ModalityIds: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
|
@ -368,21 +328,7 @@ export default {
|
||||||
trigger: ["blur", "change"],
|
trigger: ["blur", "change"],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
IndicationTypeId: [
|
Indication: [
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.$t("common:ruleMessage:select"),
|
|
||||||
trigger: ["blur", "change"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
IsDeclaration: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.$t("common:ruleMessage:select"),
|
|
||||||
trigger: ["blur", "change"],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
ReviewTypeIds: [
|
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: this.$t("common:ruleMessage:select"),
|
message: this.$t("common:ruleMessage:select"),
|
||||||
|
@ -391,8 +337,6 @@ export default {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
btnLoading: false,
|
btnLoading: false,
|
||||||
isLock: false,
|
|
||||||
expeditedOption: this.$d.YesOrNoForInt,
|
|
||||||
loading: false,
|
loading: false,
|
||||||
declarationNum: null,
|
declarationNum: null,
|
||||||
indicationNum: null,
|
indicationNum: null,
|
||||||
|
@ -434,15 +378,8 @@ export default {
|
||||||
this.$refs.trialForm.validate((valid) => {
|
this.$refs.trialForm.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.btnLoading = true;
|
this.btnLoading = true;
|
||||||
if (!this.trialForm.IsDeclaration) {
|
|
||||||
this.declarationNum = "N";
|
|
||||||
}
|
|
||||||
if (!this.trialForm.Id) {
|
|
||||||
this.trialForm.TrialCode = `${this.declarationNum}${this.indicationNum}${this.phaseNum}`;
|
|
||||||
console.log(this.trialForm.TrialCode);
|
|
||||||
}
|
|
||||||
var params = JSON.parse(JSON.stringify(this.trialForm));
|
var params = JSON.parse(JSON.stringify(this.trialForm));
|
||||||
addOrUpdateTrial(params)
|
addOrUpdateTrialHir(params)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.btnLoading = false;
|
this.btnLoading = false;
|
||||||
if (!this.trialForm.Id) {
|
if (!this.trialForm.Id) {
|
||||||
|
|
Loading…
Reference in New Issue