部分问题修复
parent
ebacc5bb1d
commit
55cc1492b6
|
@ -2,12 +2,10 @@
|
|||
import Vue from 'vue'
|
||||
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
|
||||
|
||||
import ElementUI, { MessageBox } from 'element-ui'
|
||||
import ElementUI from 'element-ui'
|
||||
import { getBasicDataAllSelect, getFrontInternationalizationList } from '@/api/dictionary/dictionary'
|
||||
// import 'element-ui/lib/theme-chalk/index.css'
|
||||
import './assets/css/theme-blue/index.css' // 浅绿色主题
|
||||
import './assets/css/iconfont/index.css' // 阿里巴巴图标库
|
||||
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n
|
||||
import i18n from './lang'
|
||||
import '@/styles/index.scss' // global css
|
||||
|
||||
|
@ -23,10 +21,7 @@ import '@/permission' // permission control
|
|||
import md5 from 'js-md5'
|
||||
import VueClipboard from 'vue-clipboard2'
|
||||
Vue.use(VueClipboard)
|
||||
// import htmlToPdf from './utils/htmlToPdf'
|
||||
// Vue.use(htmlToPdf)
|
||||
import permission from './utils/permission'
|
||||
import { OSSclient } from './utils/oss'
|
||||
Vue.use(permission)
|
||||
|
||||
import Viewer from 'v-viewer'
|
||||
|
|
|
@ -10,10 +10,18 @@ import { OSSclient } from './utils/oss'
|
|||
|
||||
NProgress.configure({ showSpinner: false })
|
||||
|
||||
const whiteList = ['/activate','/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
||||
|
||||
const whiteList = ['/activate', '/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms']
|
||||
// 影像页关闭
|
||||
Vue.prototype.$openWindow = null
|
||||
Vue.prototype.$setOpenWindow = (openWindow) => {
|
||||
if (Vue.prototype.$openWindow) {
|
||||
Vue.prototype.$openWindow.close();
|
||||
}
|
||||
Vue.prototype.$openWindow = openWindow;
|
||||
}
|
||||
router.beforeEach(async (to, from, next) => {
|
||||
NProgress.start()
|
||||
Vue.prototype.$setOpenWindow();
|
||||
// 设置页面标题
|
||||
// document.title = getPageTitle(to.meta.title)
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<el-form-item
|
||||
:label="$t('trials:researchForm:form:checkCode')"
|
||||
prop="CheckCode"
|
||||
:maxlength="10"
|
||||
:maxlength="6"
|
||||
>
|
||||
<el-input v-model="password.CheckCode" type="number" />
|
||||
</el-form-item>
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
width="500px"
|
||||
custom-class="base-dialog-wrapper"
|
||||
append-to-body
|
||||
:before-close="handleCancel"
|
||||
>
|
||||
<el-form
|
||||
ref="editVisitForm"
|
||||
|
|
|
@ -78,7 +78,6 @@
|
|||
label="actions"
|
||||
fixed="right"
|
||||
prop="UserTypeShortName"
|
||||
min-width="200"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
|
@ -212,7 +211,9 @@ export default {
|
|||
},
|
||||
// 测试连通性
|
||||
async test(item) {
|
||||
this.loading = true;
|
||||
let res = await testConnect(item.Id);
|
||||
this.loading = false;
|
||||
if (res.IsSuccess && res.Result) {
|
||||
this.$message.success(this.$t("system:dicomAE:connect:success"));
|
||||
} else {
|
||||
|
|
|
@ -76,13 +76,12 @@
|
|||
ref="userType"
|
||||
v-model="user.UserTypeId"
|
||||
size="small"
|
||||
placeholder="Please select"
|
||||
placeholder=""
|
||||
style="width: 100%"
|
||||
:disabled="user.CanEditUserType === false"
|
||||
>
|
||||
<template v-for="(userType, key) of userTypeOptions">
|
||||
<el-option
|
||||
v-if="userType.UserTypeEnum !== 20"
|
||||
:key="key"
|
||||
:label="userType.UserType"
|
||||
:value="userType.Id"
|
||||
|
@ -368,7 +367,15 @@ export default {
|
|||
getUserTypeList() {
|
||||
getUserTypeListByUserType(0).then((res) => {
|
||||
if (res.IsSuccess) {
|
||||
this.userTypeOptions = res.Result;
|
||||
let arr = [2, 4, 5, 8, 9, 12, 14];
|
||||
if (this.hasPermi(["role:oa"])) {
|
||||
arr = [4, 5, 8, 9, 12, 14];
|
||||
}
|
||||
this.userTypeOptions = res.Result.map((item) => {
|
||||
if (arr.includes(item.UserTypeEnum)) {
|
||||
return item;
|
||||
}
|
||||
}).filter((item) => item);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
@ -456,6 +456,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
// 确认提交
|
||||
async confirmSubmit() {
|
||||
|
|
|
@ -207,6 +207,7 @@ export default {
|
|||
methods: {
|
||||
// 关闭弹框
|
||||
beforeCloseStudyDig() {
|
||||
this.$setOpenWindow();
|
||||
this.$emit("update:visible", false);
|
||||
},
|
||||
// 获取列表
|
||||
|
@ -256,7 +257,8 @@ export default {
|
|||
const routeData = this.$router.resolve({
|
||||
path: `/showdicom?studyId=${item.SCPStudyId}&TokenKey=${token}&type=Patient`,
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
let newWindow = window.open(routeData.href, "_blank");
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
// 查看报告
|
||||
report() {},
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
v-model="trialForm.CriterionTypeList"
|
||||
multiple
|
||||
clearable
|
||||
:disabled="trialForm.Id !== ''"
|
||||
:disabled="TrialStatusStr === 'Ongoing'"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of CriterionTypeList"
|
||||
|
@ -330,6 +330,7 @@ export default {
|
|||
phaseNum: null,
|
||||
dictionaryList: {},
|
||||
CriterionTypeList: [], // 阅片标准列表
|
||||
TrialStatusStr: null, // 项目状态
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -367,6 +368,7 @@ export default {
|
|||
)[0].raw.ChildGroup;
|
||||
}
|
||||
}
|
||||
this.TrialStatusStr = res.Result.TrialStatusStr;
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<el-input
|
||||
v-model="userForm.CheckCode"
|
||||
:placeholder="$t('trials:researchForm:form:checkCode')"
|
||||
:maxlength="10"
|
||||
:maxlength="6"
|
||||
type="number"
|
||||
/>
|
||||
<!-- 修改 -->
|
||||
|
|
|
@ -150,6 +150,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
// 预览影像
|
||||
handleViewStudy(row) {
|
||||
|
@ -159,6 +160,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
@ -376,6 +376,7 @@ export default {
|
|||
},
|
||||
// 关闭弹框
|
||||
beforeCloseStudyDig() {
|
||||
this.$setOpenWindow();
|
||||
this.$emit("update:visible", false);
|
||||
},
|
||||
// 预览
|
||||
|
@ -390,6 +391,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
// 当前检查移除
|
||||
remove(item) {
|
||||
|
|
|
@ -184,6 +184,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
// 预览影像
|
||||
handleViewStudy(row) {
|
||||
|
@ -193,6 +194,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
getBodyPart(bodyPart) {
|
||||
if (!bodyPart) return "";
|
||||
|
|
|
@ -91,19 +91,25 @@
|
|||
</base-model>
|
||||
</template>
|
||||
<script>
|
||||
import { addOrUpdateTrialExternalUser } from "@/api/trials";
|
||||
import BaseModel from "@/components/BaseModel";
|
||||
|
||||
import { getHospital } from "@/api/hospital.js";
|
||||
import { addUser } from "@/api/admin.js";
|
||||
const formDataDefault = () => {
|
||||
return {
|
||||
Id: null,
|
||||
TrialId: null,
|
||||
LastName: null,
|
||||
FirstName: null,
|
||||
UserTypeId: "",
|
||||
Phone: null,
|
||||
Email: null,
|
||||
OrganizationName: null,
|
||||
IsSendEmail: false,
|
||||
Sex: "9",
|
||||
IsZhiZhun: "",
|
||||
OrganizationName: "",
|
||||
DepartmentName: "",
|
||||
PositionName: "",
|
||||
IsTestUser: false,
|
||||
verifyCode: "",
|
||||
checkCode: "",
|
||||
};
|
||||
};
|
||||
export default {
|
||||
|
@ -152,14 +158,21 @@ export default {
|
|||
};
|
||||
return {
|
||||
form: {
|
||||
Id: null,
|
||||
// Id: null,
|
||||
LastName: null,
|
||||
FirstName: null,
|
||||
UserTypeId: "",
|
||||
Phone: null,
|
||||
Email: null,
|
||||
TrialId: null,
|
||||
IsSendEmail: false,
|
||||
Sex: "9",
|
||||
IsZhiZhun: "",
|
||||
OrganizationName: "",
|
||||
DepartmentName: "",
|
||||
PositionName: "",
|
||||
IsTestUser: false,
|
||||
verifyCode: "",
|
||||
checkCode: "",
|
||||
},
|
||||
rules: {
|
||||
LastName: [
|
||||
|
@ -212,6 +225,7 @@ export default {
|
|||
},
|
||||
trialId: "",
|
||||
errorMsg: null,
|
||||
hospitalName: null,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
|
@ -221,11 +235,44 @@ export default {
|
|||
},
|
||||
deep: true,
|
||||
},
|
||||
"form.UserTypeId": {
|
||||
handler() {
|
||||
if (this.form.UserTypeId) {
|
||||
let name = this.getUserType(this.form.UserTypeId);
|
||||
if (["PM", "PI", "SR", "OA"].includes(name)) {
|
||||
this.form.IsZhiZhun = true;
|
||||
this.form.OrganizationName = this.hospitalName;
|
||||
return (this.IsZhiZhunDisabled = true);
|
||||
}
|
||||
}
|
||||
this.form.IsZhiZhun = null;
|
||||
this.form.OrganizationName = null;
|
||||
this.IsZhiZhunDisabled = false;
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.trialId = this.$route.query.trialId;
|
||||
this.getInfo();
|
||||
},
|
||||
methods: {
|
||||
// 获取医院信息
|
||||
async getInfo() {
|
||||
try {
|
||||
let res = await getHospital();
|
||||
if (res.IsSuccess) {
|
||||
this.hospitalName = res.Result.HospitalName;
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
},
|
||||
getUserType(id) {
|
||||
let obj = this.userTypeOptions.find((item) => item.Id === id);
|
||||
return obj.UserTypeShortName;
|
||||
},
|
||||
openDialog(title, data) {
|
||||
this.model_cfg.visible = true;
|
||||
this.model_cfg.title = title;
|
||||
|
@ -245,7 +292,7 @@ export default {
|
|||
this.form.BaseUrl = `${location.protocol}//${location.host}/login`;
|
||||
this.form.RouteUrl = `${location.protocol}//${location.host}/email-recompose`;
|
||||
}
|
||||
addOrUpdateTrialExternalUser(this.form)
|
||||
addUser(this.form)
|
||||
.then((res) => {
|
||||
this.btnLoading = false;
|
||||
this.$message.success(
|
||||
|
@ -256,9 +303,9 @@ export default {
|
|||
})
|
||||
.catch((res) => {
|
||||
if (res.Result) {
|
||||
this.$set(this.form, "LastName", res.Result.LastName);
|
||||
this.$set(this.form, "FirstName", res.Result.FirstName);
|
||||
this.$set(this.form, "Phone", res.Result.Phone);
|
||||
// this.$set(this.form, "LastName", res.Result.LastName);
|
||||
// this.$set(this.form, "FirstName", res.Result.FirstName);
|
||||
// this.$set(this.form, "Phone", res.Result.Phone);
|
||||
this.errorMsg = res.ErrorMessage;
|
||||
}
|
||||
this.btnLoading = false;
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
clearable
|
||||
/>
|
||||
<!-- 用户名 -->
|
||||
<span>{{ $t("trials:staff:table:uid") }}:</span>
|
||||
<!-- <span>{{ $t("trials:staff:table:uid") }}:</span>
|
||||
<el-input
|
||||
v-model="listQuery.UserName"
|
||||
size="mini"
|
||||
class="mr"
|
||||
clearable
|
||||
/>
|
||||
/> -->
|
||||
<!-- 单位 -->
|
||||
<span>{{ $t("trials:staff:table:organization") }}:</span>
|
||||
<el-input
|
||||
|
@ -26,6 +26,9 @@
|
|||
class="mr"
|
||||
clearable
|
||||
/>
|
||||
<!-- 邮箱 -->
|
||||
<span>{{ $t("trials:externalStaff:table:email") }}:</span>
|
||||
<el-input v-model="listQuery.EMail" size="mini" class="mr" clearable />
|
||||
<!-- 用户类型 -->
|
||||
<span>{{ $t("trials:staff:table:userType") }}:</span>
|
||||
<el-select
|
||||
|
@ -66,7 +69,7 @@
|
|||
size="mini"
|
||||
icon="el-icon-plus"
|
||||
@click="handleAdd"
|
||||
v-hasPremi="['role:pm']"
|
||||
v-hasPermi="['role:pm']"
|
||||
>
|
||||
{{ $t("common:button:add") }}
|
||||
</el-button>
|
||||
|
@ -108,13 +111,13 @@
|
|||
min-width="100"
|
||||
/>
|
||||
<!-- 用户名 -->
|
||||
<el-table-column
|
||||
<!-- <el-table-column
|
||||
prop="UserName"
|
||||
:label="$t('trials:staff:table:uid')"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
min-width="100"
|
||||
/>
|
||||
/> -->
|
||||
<!-- 电话 -->
|
||||
<el-table-column
|
||||
prop="Phone"
|
||||
|
@ -166,11 +169,7 @@
|
|||
</el-container>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getTrialUserScreeningList,
|
||||
addTrialUsers,
|
||||
getUserTypeList,
|
||||
} from "@/api/trials";
|
||||
import { getTrialUserScreeningList, addTrialUsers } from "@/api/trials";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import staffExternalAdd from "./staffExternalAdd.vue";
|
||||
const getListQueryDefault = () => {
|
||||
|
@ -178,6 +177,7 @@ const getListQueryDefault = () => {
|
|||
UserRealName: "",
|
||||
UserName: "",
|
||||
OrganizationName: "",
|
||||
EMail: null,
|
||||
UserTypeEnum: "",
|
||||
PageIndex: 1,
|
||||
PageSize: 20,
|
||||
|
|
|
@ -38,34 +38,6 @@
|
|||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 申请号 -->
|
||||
<!-- <el-form-item :label="$t('trials:study:form:accessionNumber')">
|
||||
<el-input v-model="searchData.SubjectInfo" style="width: 140px" />
|
||||
</el-form-item> -->
|
||||
<!-- 检查设备 -->
|
||||
<!-- <el-form-item :label="$t('trials:studyList:table:modality')">
|
||||
<el-select v-model="searchData.VisitPlanArray" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- 检查类型 -->
|
||||
<!-- <el-form-item :label="$t('trials:seletctedReviews:form:modality')">
|
||||
<el-select v-model="searchData.Modalities" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.modalType"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- 检查日期 -->
|
||||
<el-form-item :label="$t('trials:audit:table:studyDate')">
|
||||
<el-date-picker
|
||||
|
@ -77,18 +49,6 @@
|
|||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- 状态 -->
|
||||
<!-- <el-form-item :label="$t('trials:seletctedReviews:table:status')">
|
||||
<el-select v-model="searchData.VisitPlanArray" clearable>
|
||||
<el-option
|
||||
v-for="item of $d.sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
|
@ -460,6 +420,7 @@ export default {
|
|||
});
|
||||
var newWindow = window.open(routeData.href, "_blank");
|
||||
this.$emit("setOpenWindow", newWindow);
|
||||
this.$setOpenWindow(newWindow);
|
||||
},
|
||||
// 查询
|
||||
handleSearch() {
|
||||
|
|
|
@ -1329,6 +1329,14 @@ export default {
|
|||
imagesList: [],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
"model_cfg.visible": {
|
||||
handler() {
|
||||
console.log(this.model_cfg.visible);
|
||||
if (!this.model_cfg.visible) this.$setOpenWindow();
|
||||
},
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.ResearchProgramNo = this.$route.query.researchProgramNo;
|
||||
this.getSite();
|
||||
|
|
Loading…
Reference in New Issue