影像质控添加指派功能
continuous-integration/drone/push Build encountered an error Details

uat
wangxiaoshuang 2025-07-16 10:11:50 +08:00
parent a357fe7ce6
commit 33a8d8743e
2 changed files with 70 additions and 3 deletions

View File

@ -969,13 +969,20 @@ export function takeOrReleaseQCTask(trialId, subjectVisitId, obtainOrCancel) {
method: 'put' method: 'put'
}) })
} }
export function replaceQCTaskActionUser(trialId, subjectVisitId) { export function replaceQCTaskActionUser(trialId, subjectVisitId, params = {}) {
return request({ return request({
url: `/QCOperation/replaceQCTaskActionUser/${trialId}/${subjectVisitId}`, url: `/QCOperation/replaceQCTaskActionUser/${trialId}/${subjectVisitId}`,
method: 'put' method: 'put',
params
})
}
export function getTrialUserRoleList(params) {
return request({
url: `/TrialMaintenance/getTrialUserRoleList`,
method: 'get',
params
}) })
} }
export function verifyReuploadIsCanJump(trialId, qcChallengeId) { export function verifyReuploadIsCanJump(trialId, qcChallengeId) {
return request({ return request({
url: `/QCOperation/verifyReuploadIsCanJump/${trialId}/${qcChallengeId}`, url: `/QCOperation/verifyReuploadIsCanJump/${trialId}/${qcChallengeId}`,

View File

@ -796,6 +796,22 @@
style="height: 500px; width: 500px" @error="imgObj.loading = false" @load="imgObj.loading = false" /> style="height: 500px; width: 500px" @error="imgObj.loading = false" @load="imgObj.loading = false" />
</div> </div>
</el-dialog> </el-dialog>
<!-- 指派 -->
<el-dialog v-if="assignObj.visible" :visible.sync="assignObj.visible"
:title="$t('trials:audit:dialogTitle:assign')" width="500px" append-to-body>
<el-form :model="assignForm" :rules="assignRules" ref="assignForm" label-width="100px" class="demo-ruleForm">
<el-form-item :label="$t('trials:audit:form:assign')" prop="ReplaceUserRoleId">
<el-select v-model="assignForm.ReplaceUserRoleId" placeholder="">
<el-option v-for="item in userRoleList" :key="item.UserRoleId"
:label="`${item.UserName}(${item.FullName})`" :value="item.UserRoleId" />
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="assignObj.visible = false">{{ $t("common:button:cancel") }}</el-button>
<el-button type="primary" @click="assign">{{ $t("common:button:save") }}</el-button>
</span>
</el-dialog>
</div> </div>
<div class="function-wrapper"> <div class="function-wrapper">
<!-- 复核通过 --> <!-- 复核通过 -->
@ -803,6 +819,10 @@
v-if="SecondReviewState > 0" @click="handleResetSave"> v-if="SecondReviewState > 0" @click="handleResetSave">
{{ $t('trials:audit:button:reviewTask') }} {{ $t('trials:audit:button:reviewTask') }}
</el-button> </el-button>
<!-- 指派 -->
<el-button :disabled="isAudit" size="small" type="primary" round @click="handleAssign">
{{ $t('trials:audit:button:assign') }}
</el-button>
<!-- 保存 --> <!-- 保存 -->
<el-button :disabled="isAudit" size="small" type="primary" round @click="handleSave(false)"> <el-button :disabled="isAudit" size="small" type="primary" round @click="handleSave(false)">
{{ $t('trials:audit:button:save') }} {{ $t('trials:audit:button:save') }}
@ -859,6 +879,8 @@ import {
closeQCChallenge, closeQCChallenge,
updateModality, updateModality,
getQCChallengeDialogList, getQCChallengeDialogList,
replaceQCTaskActionUser,
getTrialUserRoleList
} from '@/api/trials' } from '@/api/trials'
import { qCPassedOrFailed } from '@/api/trials/visit' import { qCPassedOrFailed } from '@/api/trials/visit'
import { getBasicDataSelects } from '@/api/dictionary/dictionary' import { getBasicDataSelects } from '@/api/dictionary/dictionary'
@ -985,6 +1007,14 @@ export default {
currentSeriesIsReading: false, currentSeriesIsReading: false,
currentSeriesIsDeleted: false, currentSeriesIsDeleted: false,
imgObj: { url: '', visible: false, loading: false }, imgObj: { url: '', visible: false, loading: false },
userRoleList: [],
assignObj: { visible: false, loading: false },
assignForm: { ReplaceUserRoleId: null },
assignRules: {
ReplaceUserRoleId: [
{ required: true, message: this.$t("common:ruleMessage:select"), trigger: 'change' }
]
},
open: null, open: null,
existsManual: false, existsManual: false,
@ -1233,6 +1263,36 @@ export default {
this.loading = false this.loading = false
}) })
}, },
//
async handleAssign() {
try {
let params = {
TrialId: this.data.TrialId,
UserTypeEnum: 3
}
let res = await getTrialUserRoleList(params)
if (res.IsSuccess) {
this.userRoleList = res.Result
this.assignObj.visible = true
}
} catch (err) {
console.log(err)
}
},
async assign() {
try {
let validate = await this.$refs.assignForm.validate()
if (!validate) return false
let res = await replaceQCTaskActionUser(this.data.TrialId, this.data.Id, this.assignForm)
if (res.IsSuccess) {
this.$emit('getList')
this.assignObj.visible = true
this.$emit("close")
}
} catch (err) {
console.log(err)
}
},
// //
handleSave(isMessage = false) { handleSave(isMessage = false) {
return new Promise(async (resolve) => { return new Promise(async (resolve) => {