Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
a19d756879
|
@ -230,3 +230,12 @@ export function getCommonJudgeRatioList_Export(data) {
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 导出国际化列表
|
||||||
|
export function GetInternationalizationList_Export(data) {
|
||||||
|
return requestDownload({
|
||||||
|
url: `/ExcelExport/GetInternationalizationList_Export`,
|
||||||
|
responseType: 'blob',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -138,13 +138,11 @@ export function addOrUpdateResearchPublication(param) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTrialExperience(doctorId) {
|
export function getTrialExperience(data) {
|
||||||
return request({
|
return request({
|
||||||
url: `/trialExperience/getTrialExperience`,
|
url: `/trialExperience/getTrialExperience`,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: {
|
data
|
||||||
DoctorId: doctorId
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,16 @@
|
||||||
prop="EvaluationContent"
|
prop="EvaluationContent"
|
||||||
:label="$t('system:TrialExperience:Indication')"
|
:label="$t('system:TrialExperience:Indication')"
|
||||||
min-width="70"
|
min-width="70"
|
||||||
/>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-if="scope.row.EvaluationContent">
|
||||||
|
{{ scope.row.EvaluationContent }}
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
{{ $fd('Indication', scope.row.IndicationEnum) }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
:label="$t('system:TrialExperience:Operation')"
|
:label="$t('system:TrialExperience:Operation')"
|
||||||
min-width="200"
|
min-width="200"
|
||||||
|
@ -84,15 +93,16 @@
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>
|
>
|
||||||
{{ $t('common:button:edit') }}</el-button
|
{{ $t('common:button:edit') }}
|
||||||
>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
:disabled="$route.query.ReviewStatus === '1'"
|
:disabled="$route.query.ReviewStatus === '1'"
|
||||||
@click="handleDel(scope.row)"
|
@click="handleDel(scope.row)"
|
||||||
>{{ $t('common:button:delete') }}</el-button
|
|
||||||
>
|
>
|
||||||
|
{{ $t('common:button:delete') }}
|
||||||
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -189,9 +199,9 @@
|
||||||
v-model="clinicalTrialForm.EvaluationCriteriaIdList"
|
v-model="clinicalTrialForm.EvaluationCriteriaIdList"
|
||||||
multiple
|
multiple
|
||||||
>
|
>
|
||||||
<!-- <el-option v-for="(key,value) of dictionaryList.ReadingStandard" :key="value" :label="key" :value="value" /> -->
|
<!-- <el-option v-for="(key,value) of dictionaryList.CriterionType" :key="value" :label="key" :value="value" /> -->
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in ReadingStandard"
|
v-for="item in CriterionType"
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
:label="item.Value"
|
:label="item.Value"
|
||||||
:value="item.Id"
|
:value="item.Id"
|
||||||
|
@ -241,11 +251,44 @@
|
||||||
:min="0"
|
:min="0"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- 适应症类型 IndicationType -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('system:TrialExperience:indicationType')"
|
||||||
|
prop="IndicationTypeId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="clinicalTrialForm.IndicationTypeId"
|
||||||
|
@change="handleIndicationTypeChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d.IndicationType"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('system:TrialExperience:Indication')"
|
:label="$t('system:TrialExperience:Indication')"
|
||||||
prop="EvaluationContent"
|
prop="IndicationEnum"
|
||||||
>
|
>
|
||||||
<el-input v-model="clinicalTrialForm.EvaluationContent" />
|
<el-select
|
||||||
|
v-model="clinicalTrialForm.IndicationEnum"
|
||||||
|
:disabled="!clinicalTrialForm.IndicationTypeId"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of IndicationOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="EvaluationContent" v-if="IndicationEnum_isOther">
|
||||||
|
<el-input
|
||||||
|
v-model="clinicalTrialForm.EvaluationContent"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
|
@ -281,6 +324,8 @@ const getClinicalTrialDefault = () => {
|
||||||
EndTime: null,
|
EndTime: null,
|
||||||
OtherStages: '',
|
OtherStages: '',
|
||||||
OtherCriterion: '',
|
OtherCriterion: '',
|
||||||
|
IndicationEnum: null,
|
||||||
|
IndicationTypeId: null,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
|
@ -320,6 +365,9 @@ export default {
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
{ max: 300, message: 'The maximum length is 300' },
|
{ max: 300, message: 'The maximum length is 300' },
|
||||||
],
|
],
|
||||||
|
IndicationEnum: [
|
||||||
|
{ required: true, message: 'Please select', trigger: 'blur' },
|
||||||
|
],
|
||||||
StartTime: [
|
StartTime: [
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
],
|
],
|
||||||
|
@ -351,6 +399,24 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
IndicationOptions() {
|
||||||
|
if (!this.clinicalTrialForm.IndicationTypeId) return []
|
||||||
|
let indicationGrouping = this.$d.IndicationType.filter(
|
||||||
|
(item) => item.id === this.clinicalTrialForm.IndicationTypeId
|
||||||
|
)[0].raw.ChildGroup
|
||||||
|
let arr =
|
||||||
|
this.$d.Indication.filter(
|
||||||
|
(item) => indicationGrouping === item.raw.ChildGroup
|
||||||
|
) || []
|
||||||
|
return arr
|
||||||
|
},
|
||||||
|
IndicationEnum_isOther() {
|
||||||
|
if (!this.clinicalTrialForm.IndicationEnum) return false
|
||||||
|
let value = this.$d.Indication.find(
|
||||||
|
(item) => item.value === this.clinicalTrialForm.IndicationEnum
|
||||||
|
).label
|
||||||
|
return value === '其它' || value === 'Other'
|
||||||
|
},
|
||||||
Trial_Phase_isOther() {
|
Trial_Phase_isOther() {
|
||||||
if (!this.clinicalTrialForm.PhaseId) return false
|
if (!this.clinicalTrialForm.PhaseId) return false
|
||||||
let value = this.dictionaryList.Trial_Phase.find(
|
let value = this.dictionaryList.Trial_Phase.find(
|
||||||
|
@ -368,10 +434,10 @@ export default {
|
||||||
this.otherId
|
this.otherId
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
ReadingStandard() {
|
CriterionType() {
|
||||||
if (!this.dictionaryList.ReadingStandard) return []
|
if (!this.dictionaryList.CriterionType) return []
|
||||||
return [
|
return [
|
||||||
...this.dictionaryList.ReadingStandard,
|
...this.dictionaryList.CriterionType,
|
||||||
{
|
{
|
||||||
Id: this.otherId,
|
Id: this.otherId,
|
||||||
Value: 'Other',
|
Value: 'Other',
|
||||||
|
@ -396,6 +462,11 @@ export default {
|
||||||
this.clinicalTrialForm.OtherCriterion = null
|
this.clinicalTrialForm.OtherCriterion = null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
IndicationEnum_isOther() {
|
||||||
|
if (!this.IndicationEnum_isOther) {
|
||||||
|
this.clinicalTrialForm.EvaluationContent = null
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.initForm()
|
this.initForm()
|
||||||
|
@ -406,7 +477,13 @@ export default {
|
||||||
const id = this.$route.query.Id || this.reviewerId
|
const id = this.$route.query.Id || this.reviewerId
|
||||||
if (id) {
|
if (id) {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
getTrialExperience(id)
|
let data = {
|
||||||
|
DoctorId: id,
|
||||||
|
}
|
||||||
|
if (this.$route.query.trialId) {
|
||||||
|
data.TrialId = this.$route.query.trialId
|
||||||
|
}
|
||||||
|
getTrialExperience(data)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.clinicalTrialList = res.Result.ClinicalTrialExperienceList
|
this.clinicalTrialList = res.Result.ClinicalTrialExperienceList
|
||||||
this.GCP = res.Result.GCP
|
this.GCP = res.Result.GCP
|
||||||
|
@ -422,7 +499,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getDicData() {
|
getDicData() {
|
||||||
getBasicDataSelects(['Trial_Phase', 'ReadingStandard']).then((res) => {
|
getBasicDataSelects(['Trial_Phase', 'CriterionType']).then((res) => {
|
||||||
this.dictionaryList = { ...res.Result }
|
this.dictionaryList = { ...res.Result }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -443,6 +520,8 @@ export default {
|
||||||
VisitReadingCount,
|
VisitReadingCount,
|
||||||
OtherStages,
|
OtherStages,
|
||||||
OtherCriterion,
|
OtherCriterion,
|
||||||
|
IndicationEnum,
|
||||||
|
IndicationTypeId,
|
||||||
} = row
|
} = row
|
||||||
this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault())
|
this.clinicalTrialForm = Object.assign({}, getClinicalTrialDefault())
|
||||||
this.clinicalTrialDialogTitle = 'Edit'
|
this.clinicalTrialDialogTitle = 'Edit'
|
||||||
|
@ -456,6 +535,8 @@ export default {
|
||||||
this.clinicalTrialForm.EvaluationContent = EvaluationContent
|
this.clinicalTrialForm.EvaluationContent = EvaluationContent
|
||||||
this.clinicalTrialForm.OtherStages = OtherStages
|
this.clinicalTrialForm.OtherStages = OtherStages
|
||||||
this.clinicalTrialForm.OtherCriterion = OtherCriterion
|
this.clinicalTrialForm.OtherCriterion = OtherCriterion
|
||||||
|
this.clinicalTrialForm.IndicationEnum = IndicationEnum
|
||||||
|
this.clinicalTrialForm.IndicationTypeId = IndicationTypeId
|
||||||
},
|
},
|
||||||
handleSave() {
|
handleSave() {
|
||||||
this.$refs.clinicalTrialForm.validate((valid) => {
|
this.$refs.clinicalTrialForm.validate((valid) => {
|
||||||
|
@ -478,6 +559,9 @@ export default {
|
||||||
'YYYY'
|
'YYYY'
|
||||||
) + '-01'
|
) + '-01'
|
||||||
}
|
}
|
||||||
|
if (this.$route.query.trialId) {
|
||||||
|
this.clinicalTrialForm.TrialId = this.$route.query.trialId
|
||||||
|
}
|
||||||
addOrUpdateTrialExperience(this.clinicalTrialForm)
|
addOrUpdateTrialExperience(this.clinicalTrialForm)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
this.isDisabled = false
|
this.isDisabled = false
|
||||||
|
@ -536,6 +620,10 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
handleIndicationTypeChange(val) {
|
||||||
|
this.clinicalTrialForm.EvaluationContent = null
|
||||||
|
this.clinicalTrialForm.IndicationEnum = null
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -48,6 +48,14 @@
|
||||||
prop="EvaluationContent"
|
prop="EvaluationContent"
|
||||||
:label="$t('curriculumVitae:clinicalTrials:table:indication')"
|
:label="$t('curriculumVitae:clinicalTrials:table:indication')"
|
||||||
>
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span v-if="scope.row.EvaluationContent">
|
||||||
|
{{ scope.row.EvaluationContent }}
|
||||||
|
</span>
|
||||||
|
<span v-else>
|
||||||
|
{{ $fd('Indication', scope.row.IndicationEnum) }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="VisitReadingCount"
|
prop="VisitReadingCount"
|
||||||
|
@ -67,7 +75,13 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="date" :label="$t('common:action:action')">
|
<el-table-column prop="date" :label="$t('common:action:action')">
|
||||||
<template slot-scope="scope">
|
<template
|
||||||
|
slot-scope="scope"
|
||||||
|
v-if="
|
||||||
|
scope.row.ExperienceDataType != 2 &&
|
||||||
|
scope.row.ExperienceDataType != 3
|
||||||
|
"
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
class="editBtn"
|
class="editBtn"
|
||||||
|
@ -158,7 +172,7 @@
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
:model="form"
|
:model="form"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-width="80px"
|
label-width="120px"
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
|
@ -194,7 +208,7 @@
|
||||||
placeholder=""
|
placeholder=""
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in ReadingStandard"
|
v-for="item in CriterionType"
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
:label="item.Value"
|
:label="item.Value"
|
||||||
:value="item.Id"
|
:value="item.Id"
|
||||||
|
@ -239,20 +253,42 @@
|
||||||
clearable
|
clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- 适应症类型 IndicationType -->
|
||||||
|
<el-form-item
|
||||||
|
:label="$t('curriculumVitae:clinicalTrials:form:indicationType')"
|
||||||
|
prop="IndicationTypeId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="form.IndicationTypeId"
|
||||||
|
@change="handleIndicationTypeChange"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d.IndicationType"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
:label="$t('curriculumVitae:clinicalTrials:form:indication')"
|
:label="$t('curriculumVitae:clinicalTrials:form:indication')"
|
||||||
prop="EvaluationContent"
|
prop="IndicationEnum"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="form.IndicationEnum"
|
||||||
|
:disabled="!form.IndicationTypeId"
|
||||||
>
|
>
|
||||||
<!-- <el-input v-model="form.EvaluationContent" clearable></el-input> -->
|
|
||||||
<el-select v-model="form.EvaluationContent">
|
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Indication"
|
v-for="item of IndicationOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item prop="EvaluationContent" v-if="IndicationEnum_isOther">
|
||||||
|
<el-input v-model="form.EvaluationContent" clearable></el-input>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<template slot="dialog-footer">
|
<template slot="dialog-footer">
|
||||||
|
@ -436,7 +472,6 @@
|
||||||
import BaseModel from '@/components/BaseModel'
|
import BaseModel from '@/components/BaseModel'
|
||||||
import { getBasicDataSelects } from '@/api/dictionary/dictionary'
|
import { getBasicDataSelects } from '@/api/dictionary/dictionary'
|
||||||
import {
|
import {
|
||||||
getTrialExperience,
|
|
||||||
addOrUpdateTrialExperience,
|
addOrUpdateTrialExperience,
|
||||||
deleteTrialExperience,
|
deleteTrialExperience,
|
||||||
updateOtherExperience,
|
updateOtherExperience,
|
||||||
|
@ -457,6 +492,8 @@ const defaultForm = () => {
|
||||||
EndTime: null,
|
EndTime: null,
|
||||||
OtherStages: '',
|
OtherStages: '',
|
||||||
OtherCriterion: '',
|
OtherCriterion: '',
|
||||||
|
IndicationEnum: null,
|
||||||
|
IndicationTypeId: null,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const defaultCertificateForm = () => {
|
const defaultCertificateForm = () => {
|
||||||
|
@ -528,6 +565,9 @@ export default {
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
{ max: 300, message: 'The maximum length is 300' },
|
{ max: 300, message: 'The maximum length is 300' },
|
||||||
],
|
],
|
||||||
|
IndicationEnum: [
|
||||||
|
{ required: true, message: 'Please select', trigger: 'blur' },
|
||||||
|
],
|
||||||
StartTime: [
|
StartTime: [
|
||||||
{ required: true, message: 'Please specify', trigger: 'blur' },
|
{ required: true, message: 'Please specify', trigger: 'blur' },
|
||||||
],
|
],
|
||||||
|
@ -600,8 +640,24 @@ export default {
|
||||||
this.form.OtherCriterion = null
|
this.form.OtherCriterion = null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
IndicationEnum_isOther() {
|
||||||
|
if (!this.IndicationEnum_isOther) {
|
||||||
|
this.form.EvaluationContent = null
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
IndicationOptions() {
|
||||||
|
if (!this.form.IndicationTypeId) return []
|
||||||
|
let indicationGrouping = this.$d.IndicationType.filter(
|
||||||
|
(item) => item.id === this.form.IndicationTypeId
|
||||||
|
)[0].raw.ChildGroup
|
||||||
|
let arr =
|
||||||
|
this.$d.Indication.filter(
|
||||||
|
(item) => indicationGrouping === item.raw.ChildGroup
|
||||||
|
) || []
|
||||||
|
return arr
|
||||||
|
},
|
||||||
GCPData() {
|
GCPData() {
|
||||||
if (!this.DATA) return []
|
if (!this.DATA) return []
|
||||||
return [
|
return [
|
||||||
|
@ -618,6 +674,13 @@ export default {
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
IndicationEnum_isOther() {
|
||||||
|
if (!this.form.IndicationEnum) return false
|
||||||
|
let value = this.$d.Indication.find(
|
||||||
|
(item) => item.value === this.form.IndicationEnum
|
||||||
|
).label
|
||||||
|
return value === '其它' || value === 'Other'
|
||||||
|
},
|
||||||
Trial_Phase_isOther() {
|
Trial_Phase_isOther() {
|
||||||
if (!this.form.PhaseId) return false
|
if (!this.form.PhaseId) return false
|
||||||
let value = this.dictionaryList.Trial_Phase.find(
|
let value = this.dictionaryList.Trial_Phase.find(
|
||||||
|
@ -633,10 +696,10 @@ export default {
|
||||||
return false
|
return false
|
||||||
return this.form.EvaluationCriteriaIdList.includes(this.otherId)
|
return this.form.EvaluationCriteriaIdList.includes(this.otherId)
|
||||||
},
|
},
|
||||||
ReadingStandard() {
|
CriterionType() {
|
||||||
if (!this.dictionaryList.ReadingStandard) return []
|
if (!this.dictionaryList.CriterionType) return []
|
||||||
return [
|
return [
|
||||||
...this.dictionaryList.ReadingStandard,
|
...this.dictionaryList.CriterionType,
|
||||||
{
|
{
|
||||||
Id: this.otherId,
|
Id: this.otherId,
|
||||||
Value: 'Other',
|
Value: 'Other',
|
||||||
|
@ -880,7 +943,7 @@ export default {
|
||||||
return arr
|
return arr
|
||||||
},
|
},
|
||||||
getDicData() {
|
getDicData() {
|
||||||
getBasicDataSelects(['Trial_Phase', 'ReadingStandard']).then((res) => {
|
getBasicDataSelects(['Trial_Phase', 'CriterionType']).then((res) => {
|
||||||
this.dictionaryList = { ...res.Result }
|
this.dictionaryList = { ...res.Result }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -898,6 +961,10 @@ export default {
|
||||||
this.certificateForm = defaultCertificateForm()
|
this.certificateForm = defaultCertificateForm()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
handleIndicationTypeChange(val) {
|
||||||
|
this.form.EvaluationContent = null
|
||||||
|
this.form.IndicationEnum = null
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -87,6 +87,30 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('system:l18n:form:createTime')">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="datetimerange_createTime"
|
||||||
|
type="datetimerange"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
:start-placeholder="$t('system:l18n:search:beginTime')"
|
||||||
|
:end-placeholder="$t('system:l18n:search:endTime')"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
@change="(val) => handleDatetimeChange(val, 'createTime')"
|
||||||
|
style="width: 250px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('system:l18n:form:uploadTime')">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="datetimerange_updateTime"
|
||||||
|
type="datetimerange"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
:start-placeholder="$t('system:l18n:search:beginTime')"
|
||||||
|
:end-placeholder="$t('system:l18n:search:endTime')"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
@change="(val) => handleDatetimeChange(val, 'updateTime')"
|
||||||
|
style="width: 250px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -96,6 +120,15 @@
|
||||||
>
|
>
|
||||||
查询
|
查询
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!-- 重置 -->
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-refresh-left"
|
||||||
|
@click="handleReset"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:reset') }}
|
||||||
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
|
@ -121,6 +154,14 @@
|
||||||
>
|
>
|
||||||
批量更新
|
批量更新
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-download"
|
||||||
|
@click="exportTable"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:export') }}
|
||||||
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-table
|
<el-table
|
||||||
|
@ -296,6 +337,7 @@ import {
|
||||||
getPublishVersionSelect,
|
getPublishVersionSelect,
|
||||||
batchUpdateInternationalInfo,
|
batchUpdateInternationalInfo,
|
||||||
} from '@/api/admin'
|
} from '@/api/admin'
|
||||||
|
import { GetInternationalizationList_Export } from '@/api/export'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
import I18nForm from './components/I18nForm.vue'
|
import I18nForm from './components/I18nForm.vue'
|
||||||
import BatchAddForm from './components/BatchAddForm.vue'
|
import BatchAddForm from './components/BatchAddForm.vue'
|
||||||
|
@ -313,6 +355,10 @@ const searchDataDefault = () => {
|
||||||
SortField: '',
|
SortField: '',
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
|
BeginCreateTime: null,
|
||||||
|
EndCreatTime: null,
|
||||||
|
BeginUpdateTime: null,
|
||||||
|
EndUpdateTime: null,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
|
@ -327,6 +373,8 @@ export default {
|
||||||
loading: false,
|
loading: false,
|
||||||
PublishVersionList: [],
|
PublishVersionList: [],
|
||||||
selectTableList: [],
|
selectTableList: [],
|
||||||
|
datetimerange_createTime: [],
|
||||||
|
datetimerange_updateTime: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -420,6 +468,8 @@ export default {
|
||||||
// 重置列表查询
|
// 重置列表查询
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.searchData = searchDataDefault()
|
this.searchData = searchDataDefault()
|
||||||
|
this.datetimerange_createTime = []
|
||||||
|
this.datetimerange_updateTime = []
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -459,6 +509,30 @@ export default {
|
||||||
handleSelectionChange(val) {
|
handleSelectionChange(val) {
|
||||||
this.selectTableList = val
|
this.selectTableList = val
|
||||||
},
|
},
|
||||||
|
handleDatetimeChange(val, key) {
|
||||||
|
if (val) {
|
||||||
|
if (key === 'createTime') {
|
||||||
|
this.searchData.BeginCreateTime = val[0]
|
||||||
|
this.searchData.EndCreatTime = val[1]
|
||||||
|
}
|
||||||
|
if (key === 'updateTime') {
|
||||||
|
this.searchData.BeginUpdateTime = val[0]
|
||||||
|
this.searchData.EndUpdateTime = val[1]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (key === 'createTime') {
|
||||||
|
this.searchData.BeginCreateTime = ''
|
||||||
|
this.searchData.EndCreatTime = ''
|
||||||
|
}
|
||||||
|
if (key === 'updateTime') {
|
||||||
|
this.searchData.BeginUpdateTime = ''
|
||||||
|
this.searchData.EndUpdateTime = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
exportTable() {
|
||||||
|
return GetInternationalizationList_Export(this.searchData)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -3,16 +3,14 @@
|
||||||
<box-content v-loading="loading">
|
<box-content v-loading="loading">
|
||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<el-form
|
<el-form :inline="true" size="mini" class="base-search-form">
|
||||||
:inline="true"
|
|
||||||
size="mini"
|
|
||||||
class="base-search-form"
|
|
||||||
>
|
|
||||||
<!-- 审核问题 -->
|
<!-- 审核问题 -->
|
||||||
<el-form-item :label="$t('trials:emailManageCfg:title:businessScenario')">
|
<el-form-item
|
||||||
|
:label="$t('trials:emailManageCfg:title:businessScenario')"
|
||||||
|
>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchData.BusinessScenarioEnum"
|
v-model="searchData.BusinessScenarioEnum"
|
||||||
style="width:150px;"
|
style="width: 150px"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Email_BusinessScenario"
|
v-for="item of $d.Email_BusinessScenario"
|
||||||
|
@ -20,11 +18,34 @@
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item style="margin-bottom:10px" :label="$t('trials:reviewTrack:table:criterionName')">
|
<el-form-item
|
||||||
<el-select v-model="searchData.CriterionTypeEnum" clearable style="width:120px;">
|
style="margin-bottom: 10px"
|
||||||
|
:label="$t('trials:emailManageCfg:table:BusinessModuleEnum')"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="searchData.BusinessModuleEnum"
|
||||||
|
clearable
|
||||||
|
style="width: 120px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d.BusinessModule"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
style="margin-bottom: 10px"
|
||||||
|
:label="$t('trials:reviewTrack:table:criterionName')"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="searchData.CriterionTypeEnum"
|
||||||
|
clearable
|
||||||
|
style="width: 120px"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.CriterionType"
|
v-for="item of $d.CriterionType"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
@ -34,14 +55,12 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button type="primary" @click="handleSearch">{{
|
||||||
type="primary"
|
$t('common:button:search')
|
||||||
@click="handleSearch"
|
}}</el-button>
|
||||||
>{{ $t('common:button:search') }}</el-button>
|
<el-button type="primary" @click="handleReset">{{
|
||||||
<el-button
|
$t('common:button:reset')
|
||||||
type="primary"
|
}}</el-button>
|
||||||
@click="handleReset"
|
|
||||||
>{{ $t('common:button:reset') }}</el-button>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<span style="margin-left: auto">
|
<span style="margin-left: auto">
|
||||||
|
@ -135,7 +154,13 @@
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.ToUserTypeList.length > 0?scope.row.ToUserTypeList.map(v => $fd('UserType', v)).join('、'):'' }}
|
{{
|
||||||
|
scope.row.ToUserTypeList.length > 0
|
||||||
|
? scope.row.ToUserTypeList.map((v) => $fd('UserType', v)).join(
|
||||||
|
'、'
|
||||||
|
)
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 抄送人 -->
|
<!-- 抄送人 -->
|
||||||
|
@ -146,7 +171,13 @@
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.CopyUserTypeList.length > 0?scope.row.CopyUserTypeList.map(v => $fd('UserType', v)).join('、'):'' }}
|
{{
|
||||||
|
scope.row.CopyUserTypeList.length > 0
|
||||||
|
? scope.row.CopyUserTypeList.map((v) => $fd('UserType', v)).join(
|
||||||
|
'、'
|
||||||
|
)
|
||||||
|
: ''
|
||||||
|
}}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -175,7 +206,11 @@
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button v-if="scope.row.AttachCNPath" type="text" @click="handlePreview(scope.row.AttachCNPath)">
|
<el-button
|
||||||
|
v-if="scope.row.AttachCNPath"
|
||||||
|
type="text"
|
||||||
|
@click="handlePreview(scope.row.AttachCNPath)"
|
||||||
|
>
|
||||||
{{ scope.row.AttachNameCN }}
|
{{ scope.row.AttachNameCN }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -189,7 +224,11 @@
|
||||||
width="100"
|
width="100"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button v-if="scope.row.AttachPath" type="text" @click="handlePreview(scope.row.AttachPath)">
|
<el-button
|
||||||
|
v-if="scope.row.AttachPath"
|
||||||
|
type="text"
|
||||||
|
@click="handlePreview(scope.row.AttachPath)"
|
||||||
|
>
|
||||||
{{ scope.row.AttachName }}
|
{{ scope.row.AttachName }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
@ -206,7 +245,9 @@
|
||||||
<el-tag v-if="scope.row.IsReturnRequired" type="danger">
|
<el-tag v-if="scope.row.IsReturnRequired" type="danger">
|
||||||
{{ $fd('YesOrNo', scope.row.IsReturnRequired) }}
|
{{ $fd('YesOrNo', scope.row.IsReturnRequired) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsReturnRequired) }}</el-tag>
|
<el-tag v-else type="primary">{{
|
||||||
|
$fd('YesOrNo', scope.row.IsReturnRequired)
|
||||||
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 是否自动发送 -->
|
<!-- 是否自动发送 -->
|
||||||
|
@ -221,7 +262,9 @@
|
||||||
<el-tag v-if="scope.row.IsAutoSend" type="danger">
|
<el-tag v-if="scope.row.IsAutoSend" type="danger">
|
||||||
{{ $fd('YesOrNo', scope.row.IsAutoSend) }}
|
{{ $fd('YesOrNo', scope.row.IsAutoSend) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsAutoSend) }}</el-tag>
|
<el-tag v-else type="primary">{{
|
||||||
|
$fd('YesOrNo', scope.row.IsAutoSend)
|
||||||
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -235,7 +278,9 @@
|
||||||
<el-tag v-if="scope.row.IsEnable" type="danger">
|
<el-tag v-if="scope.row.IsEnable" type="danger">
|
||||||
{{ $fd('YesOrNo', scope.row.IsEnable) }}
|
{{ $fd('YesOrNo', scope.row.IsEnable) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-tag v-else type="primary">{{ $fd('YesOrNo', scope.row.IsEnable) }}</el-tag>
|
<el-tag v-else type="primary">{{
|
||||||
|
$fd('YesOrNo', scope.row.IsEnable)
|
||||||
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 更新时间 -->
|
<!-- 更新时间 -->
|
||||||
|
@ -255,11 +300,20 @@
|
||||||
width="160"
|
width="160"
|
||||||
/>
|
/>
|
||||||
</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"
|
||||||
|
/>
|
||||||
</box-content>
|
</box-content>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { getSysEmailNoticeConfigList, batchAddSysEmailConfig } from '@/api/dictionary'
|
import {
|
||||||
|
getSysEmailNoticeConfigList,
|
||||||
|
batchAddSysEmailConfig,
|
||||||
|
} from '@/api/dictionary'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
// import { addTrialDataFromSystem } from '@/api/trials'
|
// import { addTrialDataFromSystem } from '@/api/trials'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
|
@ -268,7 +322,7 @@ const searchDataDefault = () => {
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 20,
|
PageSize: 20,
|
||||||
BusinessScenarioEnum: null,
|
BusinessScenarioEnum: null,
|
||||||
CriterionTypeEnum: null
|
CriterionTypeEnum: null,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
|
@ -279,20 +333,20 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
default() {
|
default() {
|
||||||
return ''
|
return ''
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
currentCriterionType: {
|
currentCriterionType: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default() {
|
default() {
|
||||||
return 0
|
return 0
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
isDistinguishCriteria: {
|
isDistinguishCriteria: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default() {
|
default() {
|
||||||
return false
|
return false
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -301,7 +355,7 @@ export default {
|
||||||
list: [],
|
list: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
selectArr: [],
|
selectArr: [],
|
||||||
total: 0
|
total: 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -314,11 +368,15 @@ export default {
|
||||||
this.searchData.TrialId = this.trialId
|
this.searchData.TrialId = this.trialId
|
||||||
this.searchData.CurrentCriterionType = this.CurrentCriterionType
|
this.searchData.CurrentCriterionType = this.CurrentCriterionType
|
||||||
this.searchData.IsDistinguishCriteria = this.isDistinguishCriteria
|
this.searchData.IsDistinguishCriteria = this.isDistinguishCriteria
|
||||||
getSysEmailNoticeConfigList(this.searchData).then(res => {
|
getSysEmailNoticeConfigList(this.searchData)
|
||||||
|
.then((res) => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result.CurrentPageData
|
this.list = res.Result.CurrentPageData
|
||||||
this.total = res.Result.TotalCount
|
this.total = res.Result.TotalCount
|
||||||
}).catch(() => { this.loading = false })
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleSelectChange(val) {
|
handleSelectChange(val) {
|
||||||
// console.log(val)
|
// console.log(val)
|
||||||
|
@ -331,18 +389,22 @@ export default {
|
||||||
},
|
},
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.selectArr.map(v => {
|
this.selectArr.map((v) => {
|
||||||
v.TrialId = this.trialId
|
v.TrialId = this.trialId
|
||||||
return v
|
return v
|
||||||
})
|
})
|
||||||
batchAddSysEmailConfig(this.selectArr).then(res => {
|
batchAddSysEmailConfig(this.selectArr)
|
||||||
|
.then((res) => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
this.$emit('getList')
|
this.$emit('getList')
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
})
|
||||||
|
.catch(() => {
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
},
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
|
@ -360,7 +422,7 @@ export default {
|
||||||
handleReset() {
|
handleReset() {
|
||||||
this.searchData = searchDataDefault()
|
this.searchData = searchDataDefault()
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue