diff --git a/src/api/dictionary.js b/src/api/dictionary.js index d17c02f5..9ee4273f 100644 --- a/src/api/dictionary.js +++ b/src/api/dictionary.js @@ -1249,3 +1249,19 @@ export function getTrialDoctorList(data) { data }) } +// 项目文档-上传同意入项记录 +export function uploadTrialFileTypeFile(data) { + return request({ + url: `/TrialFileType/uploadTrialFileTypeFile`, + method: 'post', + data + }) +} +// 项目文档-获取上传同意入项记录 +export function getTrialFileTypeFile(data) { + return request({ + url: `/TrialFileType/getTrialFileTypeFile`, + method: 'post', + data + }) +} diff --git a/src/api/trials/setting.js b/src/api/trials/setting.js index ad9bf3b9..063b0e36 100644 --- a/src/api/trials/setting.js +++ b/src/api/trials/setting.js @@ -110,4 +110,12 @@ export function addOrUpdateTrialBodyPart(data) { data }) } +// 修改检查名称列表 +export function updateTrialStudyNameList(data) { + return request({ + url: `/TrialConfig/updateTrialStudyNameList`, + method: 'post', + data + }) +} diff --git a/src/views/trials/trials-panel/attachments/attachment-management/index.vue b/src/views/trials/trials-panel/attachments/attachment-management/index.vue index 7fbd75a6..7c24363e 100644 --- a/src/views/trials/trials-panel/attachments/attachment-management/index.vue +++ b/src/views/trials/trials-panel/attachments/attachment-management/index.vue @@ -425,6 +425,8 @@ export default { this.loading = true if (this.viewStatus) { this.searchData.IsConfirmed = true + } + if (this.isDoc) { let IR = this.userTypeOptions.find((item) => item.UserTypeEnum == 13) if (IR) { this.searchData.UserTypeId = IR.Id diff --git a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue index df629d11..b0e38cdc 100644 --- a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue +++ b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue @@ -912,10 +912,19 @@ @@ -933,6 +942,7 @@ import { ConfigTrialBasicInfoConfirm, getTrialBodyPartList, addOrUpdateTrialBodyPart, + updateTrialStudyNameList, } from '@/api/trials/setting' import SignForm from '@/views/trials/components/newSignForm' import ClinicalDataForm from './clinicalDataForm' @@ -1094,6 +1104,7 @@ export default { width: '500px', appendToBody: true, }, + studyNameLoading: false, addBodyPartForm: { bodyPartStr: null, Id: null, @@ -1328,13 +1339,51 @@ export default { if (!validate) return this.addStudyNameForm.EnName = this.addStudyNameForm.Name let data = { ...this.addStudyNameForm } - this.trialStudyNameList.push(data) + let arr = [] + this.trialStudyNameList.forEach((item) => { + let obj = { + EnName: item.EnName, + Name: item.EnName, + IsChoose: false, + } + arr.push(obj) + }) + arr.push(data) + + this.studyNameLoading = true + let res = await this.updateStudyNameList(arr) + this.studyNameLoading = false + if (!res) + return this.$message.warning( + this.$t('trials:seeting:message:addStudyNameFail') + ) + this.$message.success( + this.$t('trials:seeting:message:addStudyNameSucccess') + ) this.addStudyNameForm = { EnName: null, Name: null, IsChoose: false, } this.addStudyName_model.visible = false + // this.getStudyNameList() + this.trialStudyNameList.push(data) + }, + async updateStudyNameList(StudyNameList) { + try { + let data = { + TrialId: this.$route.query.trialId, + StudyNameList, + } + let res = await updateTrialStudyNameList(data) + if (res.IsSuccess) { + return true + } + return false + } catch (err) { + console.log(err) + return false + } }, // 编辑检查部位 handleEditBodyPart(item) { @@ -1344,11 +1393,33 @@ export default { this.addBodyPart_model.title = this.$t('trials:setting:button:edit') this.addBodyPart_model.visible = true }, - handleDelStudyName(item) { + async handleDelStudyName(item) { let index = this.trialStudyNameList.findIndex( (data) => item.Name === data.Name ) + let arr = [] + this.trialStudyNameList.forEach((item, i) => { + if (index !== i) { + let obj = { + EnName: item.EnName, + Name: item.EnName, + IsChoose: false, + } + arr.push(obj) + } + }) + this.listLoading = true + let res = await this.updateStudyNameList(arr) + this.listLoading = false + if (!res) + return this.$message.warning( + this.$t('trials:seeting:message:delStudyNameFail') + ) + this.$message.success( + this.$t('trials:seeting:message:delStudyNameSucccess') + ) this.trialStudyNameList.splice(index, 1) + // this.getStudyNameList() }, handleSetBodyPart() { this.bodyPartListVisible = true @@ -1835,7 +1906,9 @@ export default { this.form.ClinicalDataSetNames.join(', ') } this.getClinicalDataList(true) - this.$message.success('删除成功!') + this.$message.success( + this.$t('common:message:deletedSuccessfully') + ) } }) .catch(() => { diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue index cf4df76a..ff7e756b 100644 --- a/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue +++ b/src/views/trials/trials-panel/trial-summary/trial-document/components/fileRecord/index.vue @@ -780,7 +780,6 @@ export default { let typeArr = ['', 'Report', 'Doc', 'Record', 'Reviewer', 'Template'] let types = typeArr[this.ArchiveTypeEnum] this.uploadPath = `/${this.$route.query.trialId}/Document/${types}` - console.log(this.uploadPath, this.ArchiveTypeEnum) }, computed: { isEN() { diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/trainRecord/form.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/trainRecord/form.vue index 47a48a3a..0533bca0 100644 --- a/src/views/trials/trials-panel/trial-summary/trial-document/components/trainRecord/form.vue +++ b/src/views/trials/trials-panel/trial-summary/trial-document/components/trainRecord/form.vue @@ -29,7 +29,7 @@ :label="$t('trials:trialDocument:trainRecord:form:TrianingCount')" prop="TrianingCount" > - + { - if ( - value && - (String(value).includes('.') || - new RegExp(/\D/g).test(String(value))) - ) { - callback( - new Error( - this.$t( - 'trials:trialDocument:trainRecord:ruleMessage:TrianingCountPatternS' - ) - ) - ) - } else { - callback() - } - }, - trigger: 'blur', - }, - ], }, loading: false, TrialFile: [], diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/certificate/form.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/certificate/form.vue new file mode 100644 index 00000000..e69de29b diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/certificate/index.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/certificate/index.vue index e69de29b..32400e25 100644 --- a/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/certificate/index.vue +++ b/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/certificate/index.vue @@ -0,0 +1,801 @@ + + + \ No newline at end of file diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/curriculumVitae/index.vue b/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/curriculumVitae/index.vue index 488010e9..0f9d7df5 100644 --- a/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/curriculumVitae/index.vue +++ b/src/views/trials/trials-panel/trial-summary/trial-document/components/viewer/curriculumVitae/index.vue @@ -101,6 +101,12 @@ {{ isEN ? scope.row.BlindName : scope.row.BlindNameCN }} + + +
+ {{ TITLE }} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + \ No newline at end of file diff --git a/src/views/trials/trials-panel/trial-summary/trial-document/index.vue b/src/views/trials/trials-panel/trial-summary/trial-document/index.vue index 88fe8be0..2f6006a1 100644 --- a/src/views/trials/trials-panel/trial-summary/trial-document/index.vue +++ b/src/views/trials/trials-panel/trial-summary/trial-document/index.vue @@ -96,13 +96,13 @@ :viewStatus="viewStatus" /> - + />