Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
commit
6fa98f8deb
|
@ -3582,6 +3582,15 @@ export function getUpdateVirtualSiteCodeList(param) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function addDefaultQuestions(param) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingMedicineQuestion/addDefaultQuestions`,
|
||||||
|
method: 'post',
|
||||||
|
data: param
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export function getReadingCalculationData(param) {
|
export function getReadingCalculationData(param) {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
@ -237,7 +237,7 @@
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
size="small"
|
size="small"
|
||||||
:loading="downloadLoading"
|
:loading="downloadLoading"
|
||||||
@click.native.prevent="handleDownloadTpl(cd.ClinicalDataTrialSetId)"
|
@click.native.prevent="handleDownloadTpl(cd)"
|
||||||
>
|
>
|
||||||
{{ $t('trials:uploadClinicalData:button:downloadTemplate') }}
|
{{ $t('trials:uploadClinicalData:button:downloadTemplate') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -551,11 +551,8 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDownloadTpl(clinicalDataTrialSetId) {
|
handleDownloadTpl(cd) {
|
||||||
this.downloadLoading = true
|
window.open(this.OSSclientConfig.basePath + cd.Path)
|
||||||
DownloadTrialClinicalFile(clinicalDataTrialSetId).then(data => {
|
|
||||||
this.downloadLoading = false
|
|
||||||
}).catch(() => { this.downloadLoading = false })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -676,7 +676,7 @@ export default {
|
||||||
DoctorUserList: [],
|
DoctorUserList: [],
|
||||||
btnLoading: false,
|
btnLoading: false,
|
||||||
rowData: {},
|
rowData: {},
|
||||||
OtherInfo: null,
|
OtherInfo: {},
|
||||||
title: null,
|
title: null,
|
||||||
SelectList: [],
|
SelectList: [],
|
||||||
TaskConsistentRuleList: [],
|
TaskConsistentRuleList: [],
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
/* eslint-disable */
|
||||||
|
<template>
|
||||||
|
<el-form
|
||||||
|
ref="taskAllocationRuleDataForm"
|
||||||
|
v-loading="loading"
|
||||||
|
:model="form"
|
||||||
|
size="small"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="170px"
|
||||||
|
>
|
||||||
|
<!-- 访视数 -->
|
||||||
|
<el-form-item :label="$t('trials:medicalAuditSetting:label:DefaultQSLang')" prop="LanguageType">
|
||||||
|
<el-radio-group
|
||||||
|
v-model="form.LanguageType"
|
||||||
|
>
|
||||||
|
<el-radio :label="0">
|
||||||
|
中文
|
||||||
|
</el-radio>
|
||||||
|
<el-radio :label="1">
|
||||||
|
English
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<div v-if="otherInfo.LanguageType === null"></div>
|
||||||
|
<div v-else-if="otherInfo.LanguageType === form.LanguageType" style="color:#f66;font-size: 12px;padding-left: 170px;"><span class="el-icon-warning"></span>{{ $t('trials:medicalAuditSetting:tap:message1') }}</div>
|
||||||
|
<div v-else style="color:#f66;font-size: 12px;padding-left: 170px;"><span class="el-icon-warning"></span>{{ $t('trials:medicalAuditSetting:tap:message2') }}</div>
|
||||||
|
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
||||||
|
<el-form-item>
|
||||||
|
<!-- 取消 -->
|
||||||
|
<el-button
|
||||||
|
:disabled="btnLoading"
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
@click="close"
|
||||||
|
>
|
||||||
|
{{ $t('common:button:cancel') }}
|
||||||
|
</el-button>
|
||||||
|
<!-- 保存 -->
|
||||||
|
<el-button size="small" type="primary" :loading="btnLoading" @click="save">
|
||||||
|
{{ $t('common:button:save') }}
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<el-dialog
|
||||||
|
v-if="isSiteCodeHistory"
|
||||||
|
:title="$t('trials:consistencyAnalysis:dialog:isSiteCodeHistory')"
|
||||||
|
:visible.sync="isSiteCodeHistory"
|
||||||
|
width="800px"
|
||||||
|
append-to-body
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
custom-class="base-dialog-wrapper"
|
||||||
|
>
|
||||||
|
<el-table
|
||||||
|
v-loading="loading"
|
||||||
|
:data="list"
|
||||||
|
stripe
|
||||||
|
min-height="300"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
show-overflow-tooltip
|
||||||
|
width="80"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{scope.$index + 1}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="VirtualSiteCode"
|
||||||
|
:label="$t('trials:consistencyAnalysis:siteTable:VirtualSiteCode')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="120"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="Creatime"
|
||||||
|
:label="$t('trials:consistencyAnalysis:siteTable:Creatime')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
sortable="custom"
|
||||||
|
>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { addDefaultQuestions } from '@/api/trials'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'VirtualCenter',
|
||||||
|
props: {
|
||||||
|
trialReadingCriterionId: {
|
||||||
|
type: String,
|
||||||
|
default() {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
otherInfo: {
|
||||||
|
type: Object,
|
||||||
|
default() {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: {
|
||||||
|
TrialId: this.$route.query.trialId,
|
||||||
|
TrialReadingCriterionId: this.trialReadingCriterionId,
|
||||||
|
LanguageType: 0
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
LanguageType: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }],
|
||||||
|
},
|
||||||
|
loading: false,
|
||||||
|
btnLoading: false,
|
||||||
|
isSiteCodeHistory: false,
|
||||||
|
list: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.otherInfo.LanguageType === null) {
|
||||||
|
this.form.LanguageType = this.$i18n.locale === 'zh' ? 0 : 1
|
||||||
|
} else {
|
||||||
|
this.form.LanguageType = this.otherInfo.LanguageType
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
save() {
|
||||||
|
this.$refs.taskAllocationRuleDataForm.validate(valid => {
|
||||||
|
if (!valid) return
|
||||||
|
this.btnLoading = true
|
||||||
|
this.loading = true
|
||||||
|
addDefaultQuestions(this.form).then(res => {
|
||||||
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
|
this.btnLoading = false
|
||||||
|
this.loading = false
|
||||||
|
this.$emit('getList')
|
||||||
|
this.$emit('close')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
close() { this.$emit('close') }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
</style>
|
|
@ -275,14 +275,13 @@
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="addVisible"
|
v-if="addVisible"
|
||||||
:visible.sync="addVisible"
|
:visible.sync="addVisible"
|
||||||
width="1200px"
|
width="500px"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
:title="$t('trials:qcCfg:button:default')"
|
:title="$t('trials:mimCfg:title:addDefault')"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<!-- <DefaultQS :trial-reading-criterion-id="trialReadingCriterionId" :current-criterion-type="CurrentCriterionType" @getList="getList" @close="addVisible = false" />-->
|
||||||
<DefaultQS :trial-reading-criterion-id="trialReadingCriterionId" :current-criterion-type="CurrentCriterionType" @getList="getList" @close="addVisible = false" />
|
<DefaultQS :other-info="otherInfo" :trial-reading-criterion-id="trialReadingCriterionId" @getList="getList" @close="addVisible = false" />
|
||||||
</div>
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
<!-- 新增/编辑问题 -->
|
<!-- 新增/编辑问题 -->
|
||||||
|
@ -343,7 +342,7 @@
|
||||||
import { batchDeteteCriterionMedicineQuestion, getReadingMedicineTrialQuestionList, deleteReadingMedicineTrialQuestion, confirmReadingMedicineQuestion, verifyReadingMedicineQuestion } from '@/api/trials'
|
import { batchDeteteCriterionMedicineQuestion, getReadingMedicineTrialQuestionList, deleteReadingMedicineTrialQuestion, confirmReadingMedicineQuestion, verifyReadingMedicineQuestion } from '@/api/trials'
|
||||||
import { getTrialCriterionList } from '@/api/trials/reading'
|
import { getTrialCriterionList } from '@/api/trials/reading'
|
||||||
import BoxContent from '@/components/BoxContent'
|
import BoxContent from '@/components/BoxContent'
|
||||||
import DefaultQS from './components/DefaultQS'
|
import DefaultQS from './components/DefaultQsLang'
|
||||||
import QSForm from './components/QSForm'
|
import QSForm from './components/QSForm'
|
||||||
import Pagination from '@/components/Pagination'
|
import Pagination from '@/components/Pagination'
|
||||||
import QuestionsPreview from './components/QuestionsPreview'
|
import QuestionsPreview from './components/QuestionsPreview'
|
||||||
|
|
|
@ -234,7 +234,7 @@
|
||||||
icon="el-icon-download"
|
icon="el-icon-download"
|
||||||
size="small"
|
size="small"
|
||||||
:loading="downloadLoading"
|
:loading="downloadLoading"
|
||||||
@click.native.prevent="handleDownloadTpl(cd.ClinicalDataTrialSetId)"
|
@click.native.prevent="handleDownloadTpl(cd)"
|
||||||
>
|
>
|
||||||
{{ $t('trials:uploadClinicalData:button:downloadTemplate') }}
|
{{ $t('trials:uploadClinicalData:button:downloadTemplate') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -607,11 +607,8 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDownloadTpl(clinicalDataTrialSetId) {
|
handleDownloadTpl(cd) {
|
||||||
this.downloadLoading = true
|
window.open(this.OSSclientConfig.basePath + cd.Path)
|
||||||
DownloadTrialClinicalFile(clinicalDataTrialSetId).then(data => {
|
|
||||||
this.downloadLoading = false
|
|
||||||
}).catch(() => { this.downloadLoading = false })
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,22 +36,22 @@
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="6" class="card-panel-col">
|
<!-- <el-col :span="6" class="card-panel-col">-->
|
||||||
<div class="card-panel">
|
<!-- <div class="card-panel">-->
|
||||||
<div class="card-panel-icon-wrapper icon-monitor">
|
<!-- <div class="card-panel-icon-wrapper icon-monitor">-->
|
||||||
<svg-icon icon-class="monitor" class-name="card-panel-icon" />
|
<!-- <svg-icon icon-class="monitor" class-name="card-panel-icon" />-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<div class="card-panel-description">
|
<!-- <div class="card-panel-description">-->
|
||||||
<div class="card-panel-text">
|
<!-- <div class="card-panel-text">-->
|
||||||
<!-- 待办任务 -->
|
<!-- <!– 待办任务 –>-->
|
||||||
{{ $t('trials:workbench:label:pendingTasksStats') }}
|
<!-- {{ $t('trials:workbench:label:pendingTasksStats') }}-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<div class="card-panel-num">
|
<!-- <div class="card-panel-num">-->
|
||||||
<countTo :start-val="0" :end-val="taskCount" :duration="3000" />
|
<!-- <countTo :start-val="0" :end-val="taskCount" :duration="3000" />-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
|
|
||||||
<el-col :span="6" class="card-panel-col">
|
<el-col :span="6" class="card-panel-col">
|
||||||
<div class="card-panel">
|
<div class="card-panel">
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
<PanelCount ref="panelCount" @getSignSystemDocCount="getSignSystemDocCount" />
|
<PanelCount ref="panelCount" @getSignSystemDocCount="getSignSystemDocCount" />
|
||||||
</div>
|
</div>
|
||||||
<div class="workbench-content" style="height: 100%">
|
<div class="workbench-content" style="height: 100%">
|
||||||
<div style="height: 100%">
|
<div style="height: 100%;position: relative">
|
||||||
|
<div style="font-size: 20px;position: absolute;line-height: 40px;text-align: right" :style="{width: width + 'px'}">
|
||||||
|
{{ $t('trials:workbench:label:pendingTasksStats') }} ({{tabList.TotalCount}})
|
||||||
|
</div>
|
||||||
<el-tabs v-model="activeName" style="height: 100%" tab-position="left">
|
<el-tabs v-model="activeName" style="height: 100%" tab-position="left">
|
||||||
<!-- PM/APM -->
|
<!-- PM/APM -->
|
||||||
<!-- 阅片期 -->
|
<!-- 阅片期 -->
|
||||||
|
@ -85,7 +88,7 @@
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- 项目签署文件 -->
|
<!-- 项目签署文件 -->
|
||||||
<el-tab-pane name="NeedSignTrialDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">
|
<el-tab-pane name="NeedSignTrialDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">
|
||||||
<NeedSignTrialDoc v-if="activeName === 'NeedSignTrialDoc'" :is-sign-system-doc="isSignSystemDoc" />
|
<NeedSignTrialDoc v-if="activeName === 'NeedSignTrialDoc'" :is-sign-system-doc="isSignSystemDoc" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- 系统签署文件 -->
|
<!-- 系统签署文件 -->
|
||||||
<el-tab-pane name="NeedSignSysDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">
|
<el-tab-pane name="NeedSignSysDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">
|
||||||
|
@ -130,7 +133,8 @@ export default {
|
||||||
isSignSystemDoc: false,
|
isSignSystemDoc: false,
|
||||||
trialIdList: [],
|
trialIdList: [],
|
||||||
tabList: {},
|
tabList: {},
|
||||||
activeName: ''
|
activeName: '',
|
||||||
|
width: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -138,16 +142,30 @@ export default {
|
||||||
this.getNeedSignTrialDocTrialIdList()
|
this.getNeedSignTrialDocTrialIdList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
tabClick(e) {
|
||||||
|
console.log(e)
|
||||||
|
},
|
||||||
getSignSystemDocCount(count) {
|
getSignSystemDocCount(count) {
|
||||||
this.isSignSystemDoc = count > 0
|
this.isSignSystemDoc = count > 0
|
||||||
},
|
},
|
||||||
refreshStats() {
|
refreshStats() {
|
||||||
this.$refs['panelCount'].getData()
|
this.$refs['panelCount'].getData()
|
||||||
|
this.getNeedSignTrialDocTrialIdList()
|
||||||
},
|
},
|
||||||
getNeedSignTrialDocTrialIdList() {
|
getNeedSignTrialDocTrialIdList() {
|
||||||
getNeedSignTrialDocTrialIdList().then(res => {
|
getNeedSignTrialDocTrialIdList().then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
this.trialIdList = res.Result
|
this.trialIdList = res.Result
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.width = document.querySelector('.el-tabs__nav-scroll').clientWidth - 75
|
||||||
|
var list = document.querySelectorAll('div[aria-controls]')
|
||||||
|
list.forEach((v, i) => {
|
||||||
|
if (i === 0) {
|
||||||
|
let item = v.getAttribute('aria-controls')
|
||||||
|
this.activeName = item.split('-')[1]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getUserTobeDoneRecord() {
|
getUserTobeDoneRecord() {
|
||||||
|
@ -161,6 +179,12 @@ export default {
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.workbench-container{
|
.workbench-container{
|
||||||
|
.el-tabs__nav{
|
||||||
|
transform: translateY(40px)!important;
|
||||||
|
}
|
||||||
|
.el-tabs__header{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 7px;
|
width: 7px;
|
||||||
height: 7px;
|
height: 7px;
|
||||||
|
|
Loading…
Reference in New Issue