Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/hir-web into main
commit
96cff33b25
|
@ -59,6 +59,9 @@ router.beforeEach(async(to, from, next) => {
|
|||
if (to.path === '/readingDicoms' || to.path === '/noneDicomReading') {
|
||||
OSSclient()
|
||||
}
|
||||
if (to.path === '/login') {
|
||||
OSSclient()
|
||||
}
|
||||
next()
|
||||
} else {
|
||||
if (to.path === '/researchForm') {
|
||||
|
|
|
@ -6,7 +6,15 @@
|
|||
<div class="login-body">
|
||||
<div class="login-l">
|
||||
<div class="login-logo">
|
||||
<img v-if="language === 'zh'" src="@/assets/zzlogo2.png" alt="" />
|
||||
<img
|
||||
v-if="language === 'zh'"
|
||||
:src="
|
||||
hospital.HospitalLogoPath
|
||||
? OSSclientConfig.basePath + hospital.HospitalLogoPath
|
||||
: logoImg
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<img v-else src="@/assets/zzlogo3.png" alt="" />
|
||||
</div>
|
||||
<div class="login-image">
|
||||
|
@ -16,7 +24,9 @@
|
|||
<div class="login-r">
|
||||
<div class="title-container">
|
||||
<!-- IRC Management System -->
|
||||
<div class="title">{{ $t("login:title:system") }}</div>
|
||||
<div class="title">
|
||||
{{ $t("login:title:system") }}
|
||||
</div>
|
||||
</div>
|
||||
<el-form
|
||||
ref="loginForm"
|
||||
|
@ -135,11 +145,14 @@ import TopLang from "./topLang";
|
|||
// import NoticeMarquee from '../trials/trials-layout/components/noticeMarquee'
|
||||
import Vcode from "vue-puzzle-vcode";
|
||||
import Img1 from "@/assets/pic-1.png";
|
||||
import logoImg from "@/assets/zzlogo2.png";
|
||||
import { getHospital } from "@/api/hospital.js";
|
||||
export default {
|
||||
name: "Login",
|
||||
components: { TopLang, Vcode },
|
||||
data() {
|
||||
return {
|
||||
logoImg,
|
||||
VUE_APP_OSS_CONFIG_REGION: process.env.VUE_APP_OSS_CONFIG_REGION,
|
||||
loginForm: {
|
||||
username: "",
|
||||
|
@ -174,11 +187,18 @@ export default {
|
|||
location: null,
|
||||
isShow: false,
|
||||
Img1,
|
||||
hospital: {
|
||||
HospitalLogoPath: null,
|
||||
HospitalName: null,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(["asyncRoutes", "routes", "language"]),
|
||||
},
|
||||
created() {
|
||||
this.getInfo();
|
||||
},
|
||||
mounted() {
|
||||
this.loginType = this.$route.query.loginType;
|
||||
this.location = this.$route.query.location;
|
||||
|
@ -202,6 +222,19 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
...mapMutations({ setLanguage: "lang/setLanguage" }),
|
||||
// 获取医院信息
|
||||
async getInfo() {
|
||||
try {
|
||||
let res = await getHospital();
|
||||
if (res.IsSuccess) {
|
||||
Object.keys(this.hospital).forEach((key) => {
|
||||
this.hospital[key] = res.Result[key];
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
showPwd() {
|
||||
if (this.passwordType === "password") {
|
||||
this.passwordType = "";
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<template>
|
||||
<div class="hospital">
|
||||
<el-form
|
||||
ref="hospitalForm"
|
||||
size="small"
|
||||
|
@ -11,6 +12,9 @@
|
|||
<el-form-item label="医院名称: " prop="HospitalName">
|
||||
<el-input v-model="hospital.HospitalName" :disabled="disabled" />
|
||||
</el-form-item>
|
||||
<el-form-item label="医院编码: " prop="HospitalCode">
|
||||
<el-input v-model="hospital.HospitalCode" :disabled="disabled" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="医院别称: " prop="HospitalAliasName">
|
||||
<el-input v-model="hospital.HospitalAliasName" :disabled="disabled" />
|
||||
|
@ -31,6 +35,13 @@
|
|||
<el-form-item label="联系方式: " prop="Phone">
|
||||
<el-input v-model="hospital.Phone" :disabled="disabled" />
|
||||
</el-form-item>
|
||||
<el-form-item label="未激活项目数: " prop="TrialKeepCount">
|
||||
<el-input
|
||||
v-model="hospital.TrialKeepCount"
|
||||
:disabled="disabled"
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否可以连接互联网: ">
|
||||
<el-switch
|
||||
v-model="hospital.IsCanConnectInternet"
|
||||
|
@ -42,6 +53,12 @@
|
|||
>
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="logo: " prop="HospitalLogoPath">
|
||||
<upload-logo
|
||||
:path.sync="hospital.HospitalLogoPath"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-card>
|
||||
<el-form-item v-hasPermi="['system:hospital:edit']">
|
||||
<el-button
|
||||
|
@ -55,16 +72,20 @@
|
|||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { setHospital, getHospital } from "@/api/hospital.js";
|
||||
import uploadLogo from "./uploadLogo.vue";
|
||||
export default {
|
||||
name: "systemHospital",
|
||||
components: { "upload-logo": uploadLogo },
|
||||
data() {
|
||||
return {
|
||||
hospital: {
|
||||
HospitalName: null,
|
||||
HospitalAliasName: null,
|
||||
HospitalCode: null,
|
||||
Country: null,
|
||||
City: null,
|
||||
Province: null,
|
||||
|
@ -72,25 +93,36 @@ export default {
|
|||
Phone: null,
|
||||
IsCanConnectInternet: true,
|
||||
Id: null,
|
||||
TrialKeepCount: null,
|
||||
HospitalLogoPath: null,
|
||||
},
|
||||
hospitalFormRules: {
|
||||
HospitalName: [
|
||||
{ required: true, message: "请输入医院名称", trigger: "blur" },
|
||||
],
|
||||
HospitalAliasName: [
|
||||
{ required: true, message: "请输入医院别称", trigger: "blur" },
|
||||
HospitalCode: [
|
||||
{ required: true, message: "请输入医院编码", trigger: "blur" },
|
||||
],
|
||||
Country: [{ required: true, message: "请输入国家", trigger: "blur" }],
|
||||
City: [{ required: true, message: "请输入所在城市", trigger: "blur" }],
|
||||
Province: [
|
||||
{ required: true, message: "请输入所在省份", trigger: "blur" },
|
||||
HospitalLogoPath: [
|
||||
{ required: true, message: "请上传医院logo", trigger: "blur" },
|
||||
],
|
||||
Address: [
|
||||
{ required: true, message: "请输入医院地址", trigger: "blur" },
|
||||
],
|
||||
Phone: [
|
||||
{ required: true, message: "请输入医院联系方式", trigger: "blur" },
|
||||
TrialKeepCount: [
|
||||
{ required: true, message: "请输入未激活项目数", trigger: "blur" },
|
||||
],
|
||||
// HospitalAliasName: [
|
||||
// { required: true, message: "请输入医院别称", trigger: "blur" },
|
||||
// ],
|
||||
// Country: [{ required: true, message: "请输入国家", trigger: "blur" }],
|
||||
// City: [{ required: true, message: "请输入所在城市", trigger: "blur" }],
|
||||
// Province: [
|
||||
// { required: true, message: "请输入所在省份", trigger: "blur" },
|
||||
// ],
|
||||
// Address: [
|
||||
// { required: true, message: "请输入医院地址", trigger: "blur" },
|
||||
// ],
|
||||
// Phone: [
|
||||
// { required: true, message: "请输入医院联系方式", trigger: "blur" },
|
||||
// ],
|
||||
},
|
||||
btnLoading: false,
|
||||
};
|
||||
|
@ -139,5 +171,10 @@ export default {
|
|||
::v-deep .is-error.my_new_pwd {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.hospital {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -0,0 +1,171 @@
|
|||
<template>
|
||||
<div class="upload-container">
|
||||
<el-upload
|
||||
class="upload-demo"
|
||||
action
|
||||
:http-request="uploadFile"
|
||||
:before-upload="beforeUpload"
|
||||
:file-list="fileList"
|
||||
:on-preview="handlePreview"
|
||||
:on-remove="remove"
|
||||
:limit="1"
|
||||
:on-exceed="handleExceed"
|
||||
accept=".png,.jpg,.jpeg"
|
||||
v-if="!disabled"
|
||||
>
|
||||
<el-button size="small" type="primary" :disabled="btnDisabled"
|
||||
>上传</el-button
|
||||
>
|
||||
<span slot="tip" class="el-upload__tip">(只能上传png/jpg/jpeg文件)</span>
|
||||
</el-upload>
|
||||
<p
|
||||
v-if="fileList.length > 0 && disabled"
|
||||
class="logoAMessage"
|
||||
@click.stop="handlePreview(fileList[0])"
|
||||
style="margin: 0"
|
||||
>
|
||||
<i class="el-icon-document"></i>
|
||||
<span>{{ fileList.length > 0 ? fileList[0].name : "" }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
const type = "Statement of Work";
|
||||
export default {
|
||||
name: "UploadLogo",
|
||||
props: {
|
||||
path: {
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
disabled: {
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
fileList: [],
|
||||
btnDisabled: false,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
path: {
|
||||
handler() {
|
||||
if (this.path) {
|
||||
let name = this.path.split("/");
|
||||
this.fileList = [
|
||||
{
|
||||
name: name[name.length - 1],
|
||||
path: this.path,
|
||||
fullPath: this.OSSclientConfig.basePath + this.path,
|
||||
url: this.path,
|
||||
},
|
||||
];
|
||||
}
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
remove(file, fileList) {
|
||||
this.$emit("update:path", null);
|
||||
},
|
||||
fileToBlob(file) {
|
||||
// 创建 FileReader 对象
|
||||
const reader = new FileReader();
|
||||
return new Promise((resolve) => {
|
||||
// FileReader 添加 load 事件
|
||||
reader.addEventListener("load", (e) => {
|
||||
let blob;
|
||||
if (typeof e.target.result === "object") {
|
||||
blob = new Blob([e.target.result]);
|
||||
} else {
|
||||
blob = e.target.result;
|
||||
}
|
||||
resolve(blob);
|
||||
});
|
||||
// FileReader 以 ArrayBuffer 格式 读取 File 对象中数据
|
||||
reader.readAsArrayBuffer(file);
|
||||
});
|
||||
},
|
||||
// 上传oss
|
||||
async uploadToOSS(name, file) {
|
||||
try {
|
||||
let res = await this.OSSclient.put(
|
||||
`/System/GeneralDocuments/${name}`,
|
||||
file
|
||||
);
|
||||
return res;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
initFileList(fileList) {
|
||||
this.fileList = fileList;
|
||||
},
|
||||
async uploadFile(param) {
|
||||
var fileName = param.file.name;
|
||||
this.btnDisabled = true;
|
||||
let file = await this.fileToBlob(param.file);
|
||||
let res = await this.uploadToOSS(fileName, file);
|
||||
this.btnDisabled = false;
|
||||
if (!res) return;
|
||||
this.fileList = [
|
||||
{
|
||||
name: fileName,
|
||||
path: res.name,
|
||||
fullPath: this.OSSclientConfig.basePath + res.name,
|
||||
url: res.name,
|
||||
},
|
||||
];
|
||||
console.log(this.fileList);
|
||||
this.$emit("update:path", res.name);
|
||||
return console.log(res);
|
||||
},
|
||||
beforeUpload(file, fileList) {
|
||||
const isValidFile = this.fileValid(file.name, ["png", "jpg", "jpeg"]);
|
||||
if (isValidFile) {
|
||||
this.fileList = [];
|
||||
} else {
|
||||
this.$alert("请上传PNG/JPG/JPEG文件");
|
||||
return false;
|
||||
}
|
||||
},
|
||||
handlePreview(file) {
|
||||
file.fullPath ? window.open(file.fullPath, "_blank") : "";
|
||||
},
|
||||
handleExceed(files, fileList) {
|
||||
this.$message.warning(`Upload is currently limited to 1 file`);
|
||||
},
|
||||
fileValid(fileName, typeArr) {
|
||||
var extendName = fileName
|
||||
.substring(fileName.lastIndexOf(".") + 1)
|
||||
.toLocaleLowerCase();
|
||||
if (typeArr.indexOf(extendName) > -1) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
.upload-container .el-upload--text {
|
||||
border: none;
|
||||
width: 80px;
|
||||
height: 30px;
|
||||
}
|
||||
.upload-container .el-form-item__label {
|
||||
font-size: 12px;
|
||||
}
|
||||
.upload-container .el-upload-list__item {
|
||||
font-size: 12px;
|
||||
}
|
||||
.logoAMessage {
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
|
@ -39,7 +39,7 @@
|
|||
>
|
||||
<el-input v-model="user.FirstName" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
<!-- <el-form-item
|
||||
:label="$t('system:userlist:table:Gender')"
|
||||
prop="Sex"
|
||||
style="margin-right: 40px"
|
||||
|
@ -48,7 +48,7 @@
|
|||
<el-radio :label="1">Male</el-radio>
|
||||
<el-radio :label="0">Female</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item :label="$t('system:userlist:table:Email')" prop="EMail">
|
||||
<el-input v-model="user.EMail" />
|
||||
</el-form-item>
|
||||
|
@ -90,7 +90,7 @@
|
|||
</template>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
<!-- <el-form-item
|
||||
:label="$t('trials:researchForm:form:checkCode')"
|
||||
prop="checkCode"
|
||||
v-if="!IsCanConnectInternet"
|
||||
|
@ -99,7 +99,7 @@
|
|||
<span style="color: red"
|
||||
>请输入,校验码用于用户首次登录、重置密码时的校验</span
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
</el-card>
|
||||
|
||||
<el-card
|
||||
|
|
|
@ -122,6 +122,8 @@ export default {
|
|||
submitMessage: {
|
||||
SubjectId: null,
|
||||
TrialId: null,
|
||||
TrialCode: null,
|
||||
ResearchProgramNo: null,
|
||||
},
|
||||
subjectIdList: [], // 受试者列表
|
||||
rules: {
|
||||
|
|
|
@ -251,6 +251,11 @@ export default {
|
|||
};
|
||||
},
|
||||
methods: {
|
||||
handleDetail(row) {
|
||||
this.$router.push({
|
||||
path: `/trials/trials-panel?trialId=${this.submitMessage.TrialId}&trialCode=${this.submitMessage.TrialCode}&researchProgramNo=${this.submitMessage.ResearchProgramNo}`,
|
||||
});
|
||||
},
|
||||
// 移除检查与访视绑定关系
|
||||
async remove(item) {
|
||||
try {
|
||||
|
@ -377,6 +382,11 @@ export default {
|
|||
console.log(err);
|
||||
}
|
||||
},
|
||||
handleDetail(row) {
|
||||
this.$router.push({
|
||||
path: `/trials/trials-panel?trialId=${row.Id}&trialCode=${row.TrialCode}&researchProgramNo=${row.ResearchProgramNo}`,
|
||||
});
|
||||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
this.searchData.PageIndex = 1;
|
||||
|
|
|
@ -1,9 +1,17 @@
|
|||
<template>
|
||||
<div class="trials-navbar" style="position: relative">
|
||||
<div class="leftMenu">
|
||||
<img v-if="language === 'zh'" src="@/assets/zzlogo2.png" alt="" />
|
||||
<img
|
||||
v-if="language === 'zh'"
|
||||
:src="
|
||||
hospital.HospitalLogoPath
|
||||
? OSSclientConfig.basePath + hospital.HospitalLogoPath
|
||||
: logoImg
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<img v-else src="@/assets/zzlogo3.png" alt="" />
|
||||
<span style="white-space:nowrap;">
|
||||
<span style="white-space: nowrap">
|
||||
<!-- 中心影像系统(EICS) -->
|
||||
{{ $t("trials:trials:title:eics") }}
|
||||
</span>
|
||||
|
@ -85,14 +93,21 @@ import { loginOut } from "@/api/user";
|
|||
import { mapGetters, mapMutations } from "vuex";
|
||||
import TopLang from "./topLang";
|
||||
import NoticeMarquee from "./noticeMarquee";
|
||||
import { getHospital } from "@/api/hospital.js";
|
||||
import logoImg from "@/assets/zzlogo2.png";
|
||||
export default {
|
||||
components: { TopLang, NoticeMarquee },
|
||||
data() {
|
||||
return {
|
||||
logoImg,
|
||||
activeIndex: "2",
|
||||
isReviewer: false,
|
||||
userTypeShortName: zzSessionStorage.getItem("userTypeShortName"),
|
||||
notice: "",
|
||||
hospital: {
|
||||
HospitalLogoPath: null,
|
||||
HospitalName: null,
|
||||
},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -113,9 +128,23 @@ export default {
|
|||
created() {
|
||||
this.isReviewer = JSON.parse(zzSessionStorage.getItem("IsReviewer"));
|
||||
this.changeRoute(this.$route);
|
||||
this.getInfo();
|
||||
},
|
||||
methods: {
|
||||
...mapMutations({ setLanguage: "lang/setLanguage" }),
|
||||
// 获取医院信息
|
||||
async getInfo() {
|
||||
try {
|
||||
let res = await getHospital();
|
||||
if (res.IsSuccess) {
|
||||
Object.keys(this.hospital).forEach((key) => {
|
||||
this.hospital[key] = res.Result[key];
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
changeRoute(v) {
|
||||
if (v.path === "/trials/trials-inspection") {
|
||||
this.activeIndex = "1";
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
<span style="font-size:18px;">{{ $t('common:dialogTitle:sign') }}</span>
|
||||
<span style="font-size:12px;margin-left:5px">{{ `(${$t('common:label:sign')}${ currentUser })` }}</span>
|
||||
</div>
|
||||
<SignForm ref="signForm" :trial-id="trialId" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
|
||||
<SignForm ref="signForm" :trial-id="trialId" :sign-code-enum="signCode" @close="closeSignDialog" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -151,14 +151,14 @@ export default {
|
|||
this.signVisible = false
|
||||
this.$emit('getList')
|
||||
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||
this.$emit('closeDialog')
|
||||
this.$emit('close')
|
||||
}).catch(() => {
|
||||
this.btnLoading = false
|
||||
this.$refs['signForm'].btnLoading = false
|
||||
})
|
||||
},
|
||||
handleCancel() {
|
||||
this.$emit('closeDialog')
|
||||
this.$emit('close')
|
||||
},
|
||||
closeSignDialog(isSign, signInfo) {
|
||||
if (isSign) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
:title="$t('trials:trials-list:action:activateProject')"
|
||||
width="500px"
|
||||
append-to-body
|
||||
:before-close="handleCancel"
|
||||
>
|
||||
<el-form
|
||||
ref="activateProjectForm"
|
||||
|
@ -20,9 +21,9 @@
|
|||
</el-form-item>
|
||||
<!-- 授权码 -->
|
||||
<el-form-item :label="$t('trials:trials-list:form:authorizationCode')">
|
||||
<p v-if="form.Authorization" class="AuthorizationBox">
|
||||
<span class="Authorization" :title="form.Authorization">{{
|
||||
form.Authorization
|
||||
<p v-if="data.Authorization" class="AuthorizationBox">
|
||||
<span class="Authorization" :title="data.Authorization">{{
|
||||
data.Authorization
|
||||
}}</span>
|
||||
<span class="copy" @click.stop="copy">{{
|
||||
$t("trials:trials-list:action:copy")
|
||||
|
@ -69,11 +70,7 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getTrialAuthorizationCode,
|
||||
activateTrial,
|
||||
getTrialActivationCode,
|
||||
} from "@/api/trials.js";
|
||||
import { activateTrial, getTrialActivationCode } from "@/api/trials.js";
|
||||
export default {
|
||||
name: "activateProject",
|
||||
props: {
|
||||
|
@ -139,7 +136,7 @@ export default {
|
|||
},
|
||||
// 复制
|
||||
copy() {
|
||||
this.$copyText(this.form.Authorization)
|
||||
this.$copyText(this.data.Authorization)
|
||||
.then((res) => {
|
||||
// 复制成功
|
||||
this.$message.success(
|
||||
|
@ -151,25 +148,11 @@ export default {
|
|||
this.$alert(this.$t("trials:researchRecord:message:copyFailed"));
|
||||
});
|
||||
},
|
||||
// 获取授权码
|
||||
async getTrialAuthorizationCode() {
|
||||
let params = {
|
||||
TrialId: this.data.TrialId,
|
||||
};
|
||||
try {
|
||||
let res = await getTrialAuthorizationCode(params);
|
||||
if (res.IsSuccess) {
|
||||
this.form.Authorization = res.Result;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
// 获取激活码
|
||||
async getCode() {
|
||||
let params = {
|
||||
TrialId: this.data.TrialId,
|
||||
AuthorizationCode: this.form.Authorization,
|
||||
AuthorizationCode: this.data.Authorization,
|
||||
};
|
||||
try {
|
||||
let res = await getTrialActivationCode(params);
|
||||
|
|
|
@ -113,17 +113,17 @@
|
|||
v-if="
|
||||
scope.row.AuthorizationEncrypt &&
|
||||
scope.row.AuthorizationDate &&
|
||||
trialExpired(moment(scope.row.AuthorizationDate, 15))
|
||||
!trialExpired(scope.row.AuthorizationDate, 15)
|
||||
"
|
||||
class="el-icon-warning-outline"
|
||||
:title="$t('trials:trials-list:tipMessage:tipTwo')"
|
||||
style="color: #0f0; font-size: 20px"
|
||||
style="color: #e6a23c; font-size: 20px"
|
||||
></i>
|
||||
<i
|
||||
v-if="
|
||||
scope.row.AuthorizationEncrypt &&
|
||||
scope.row.AuthorizationDate &&
|
||||
trialExpired(moment(scope.row.AuthorizationDate))
|
||||
!trialExpired(scope.row.AuthorizationDate)
|
||||
"
|
||||
class="el-icon-warning-outline"
|
||||
:title="$t('trials:trials-list:tipMessage:tipThree')"
|
||||
|
@ -231,13 +231,6 @@
|
|||
/>
|
||||
<el-table-column label="" min-width="150" align="left" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<!-- 激活 -->
|
||||
<el-button
|
||||
circle
|
||||
icon="el-icon-key"
|
||||
:title="$t('trials:trials-list:action:activate')"
|
||||
@click="handleActivate(scope.row)"
|
||||
/>
|
||||
<!-- 详情 -->
|
||||
<el-button
|
||||
v-hasPermi="['trials:trials-list:panel']"
|
||||
|
@ -277,6 +270,13 @@
|
|||
:title="$t('trials:trials-list:action:abolition')"
|
||||
@click="handleAbandon(scope.row)"
|
||||
/>
|
||||
<!-- 激活 -->
|
||||
<el-button
|
||||
circle
|
||||
icon="el-icon-key"
|
||||
:title="$t('trials:trials-list:action:activate')"
|
||||
@click="handleActivate(scope.row)"
|
||||
/>
|
||||
<!-- 代办详情 -->
|
||||
<!-- <el-button
|
||||
v-hasPermi="['trials:trials-list:abolish']"
|
||||
|
@ -357,7 +357,11 @@
|
|||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
import { abandonTrial, getTrialListHir } from "@/api/trials";
|
||||
import {
|
||||
abandonTrial,
|
||||
getTrialListHir,
|
||||
getTrialAuthorizationCode,
|
||||
} from "@/api/trials";
|
||||
import { mapGetters } from "vuex";
|
||||
import Excel from "exceljs";
|
||||
import BaseContainer from "@/components/BaseContainer";
|
||||
|
@ -473,10 +477,30 @@ export default {
|
|||
}
|
||||
return true;
|
||||
},
|
||||
// 获取授权码
|
||||
async getTrialAuthorizationCode(item) {
|
||||
let params = {
|
||||
TrialId: item.TrialId,
|
||||
};
|
||||
try {
|
||||
let res = await getTrialAuthorizationCode(params);
|
||||
if (res.IsSuccess) {
|
||||
this.currentRow.Authorization = res.Result;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
return false;
|
||||
}
|
||||
},
|
||||
// 打开激活弹框
|
||||
handleActivate(item) {
|
||||
async handleActivate(item) {
|
||||
this.currentRow = item;
|
||||
let res = await this.getTrialAuthorizationCode(item);
|
||||
if (res) {
|
||||
this.activateVisible = true;
|
||||
}
|
||||
},
|
||||
initPage() {
|
||||
this.getList();
|
||||
|
|
|
@ -277,6 +277,7 @@
|
|||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('trials:adReview:title:result')">
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
|
@ -302,6 +303,7 @@
|
|||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
prop="IsEnrollment"
|
||||
|
|
|
@ -277,6 +277,7 @@
|
|||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('trials:adReview:title:result')">
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
|
@ -302,6 +303,7 @@
|
|||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
prop="IsEnrollment"
|
||||
|
|
|
@ -148,7 +148,7 @@
|
|||
</div>
|
||||
<div slot="main-container">
|
||||
<el-table
|
||||
v-adaptive="{ bottomOffset: 60 }"
|
||||
v-adaptive="{ bottomOffset: 80 }"
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
stripe
|
||||
|
@ -276,6 +276,7 @@
|
|||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('trials:adReview:title:result')">
|
||||
<el-table-column
|
||||
prop="item.QuestionId"
|
||||
:label="item.QuestionName"
|
||||
|
@ -301,6 +302,7 @@
|
|||
}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<!-- 是否入组 -->
|
||||
<el-table-column
|
||||
prop="IsEnrollment"
|
||||
|
@ -460,7 +462,7 @@ export default {
|
|||
auditRecordVisible: false,
|
||||
openWindow: null,
|
||||
TrialReadingCriterionId: "0",
|
||||
QuestionList:[]
|
||||
QuestionList: [],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
|
|
Loading…
Reference in New Issue