uat_us
parent
82c80b71cc
commit
ad7b9054da
|
@ -22,9 +22,9 @@ export function getBasicDataSelects(param) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getBasicDataAllSelect(params) {
|
export function getBasicDataAllSelect(params, isSystem) {
|
||||||
return request({
|
return request({
|
||||||
url: params ? `/Dictionary/getBasicDataAllSelect?TrialReadingCriterionId=${params}` : `/Dictionary/getBasicDataAllSelect`,
|
url: params ? (isSystem ? `/Dictionary/getBasicDataAllSelect?SystemReadingCriterionId=${params}` : `/Dictionary/getBasicDataAllSelect?TrialReadingCriterionId=${params}`) : `/Dictionary/getBasicDataAllSelect`,
|
||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,10 +160,16 @@ Vue.prototype.fileToBlob = (file) => {
|
||||||
var _vm
|
var _vm
|
||||||
async function VueInit () {
|
async function VueInit () {
|
||||||
var params
|
var params
|
||||||
|
var res
|
||||||
if (~window.location.href.indexOf('/readingDicoms') || ~window.location.href.indexOf('/noneDicomReading') || ~window.location.href.indexOf('/criterionquestions') || ~window.location.href.indexOf('/petct')) {
|
if (~window.location.href.indexOf('/readingDicoms') || ~window.location.href.indexOf('/noneDicomReading') || ~window.location.href.indexOf('/criterionquestions') || ~window.location.href.indexOf('/petct')) {
|
||||||
params = $q('TrialReadingCriterionId')
|
params = $q('TrialReadingCriterionId')
|
||||||
|
res = await getBasicDataAllSelect(params)
|
||||||
|
} else if (~window.location.href.indexOf('/ecrfPreview')) {
|
||||||
|
params = $q('SystemReadingCriterionId')
|
||||||
|
res = await getBasicDataAllSelect(params, true)
|
||||||
|
} else {
|
||||||
|
res = await getBasicDataAllSelect(params)
|
||||||
}
|
}
|
||||||
var res = await getBasicDataAllSelect(params)
|
|
||||||
var Internationalization = await getFrontInternationalizationList()
|
var Internationalization = await getFrontInternationalizationList()
|
||||||
Vue.prototype.$tl = Internationalization.Result
|
Vue.prototype.$tl = Internationalization.Result
|
||||||
let zhMessages = {}, enMessages = {}
|
let zhMessages = {}, enMessages = {}
|
||||||
|
|
|
@ -242,6 +242,11 @@ export const constantRoutes = [
|
||||||
component: () => import('@/views/404'),
|
component: () => import('@/views/404'),
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/ecrfPreview',
|
||||||
|
component: () => import('@/views/dictionary/template/components/ECRF'),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/editUser',
|
path: '/editUser',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
|
|
@ -19,6 +19,52 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'group'"
|
||||||
|
label="分组名称"
|
||||||
|
prop="GroupName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.GroupName" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="分组标识"
|
||||||
|
v-if="form.Type === 'group'"
|
||||||
|
prop="GroupClassify"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="form.GroupClassify"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of groupClassifyList"
|
||||||
|
:key="item.Id"
|
||||||
|
:value="parseInt(item.Code)"
|
||||||
|
:label="item.ValueCN"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'group'"
|
||||||
|
label="分组名称(EN)"
|
||||||
|
prop="GroupEnName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.GroupEnName" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type !== 'group'"
|
||||||
|
label="问题名称"
|
||||||
|
prop="QuestionName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.QuestionName" />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type !== 'group'"
|
||||||
|
label="问题名称(EN)"
|
||||||
|
prop="QuestionEnName"
|
||||||
|
>
|
||||||
|
<el-input v-model="form.QuestionEnName" />
|
||||||
|
</el-form-item>
|
||||||
<!-- 数值类型 -->
|
<!-- 数值类型 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
||||||
|
@ -75,52 +121,6 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type === 'group'"
|
|
||||||
label="分组名称"
|
|
||||||
prop="GroupName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.GroupName" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
label="分组标识"
|
|
||||||
prop="GroupClassify"
|
|
||||||
>
|
|
||||||
<el-select
|
|
||||||
v-model="form.GroupClassify"
|
|
||||||
clearable
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item of groupClassifyList"
|
|
||||||
:key="item.Id"
|
|
||||||
:value="parseInt(item.Code)"
|
|
||||||
:label="item.ValueCN"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type === 'group'"
|
|
||||||
label="分组名称(EN)"
|
|
||||||
prop="GroupEnName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.GroupEnName" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type !== 'group'"
|
|
||||||
label="问题名称"
|
|
||||||
prop="QuestionName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.QuestionName" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type !== 'group'"
|
|
||||||
label="问题名称(EN)"
|
|
||||||
prop="QuestionEnName"
|
|
||||||
>
|
|
||||||
<el-input v-model="form.QuestionEnName" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<!-- <el-form-item
|
<!-- <el-form-item
|
||||||
v-if="form.Type === 'select' || form.Type === 'radio'"
|
v-if="form.Type === 'select' || form.Type === 'radio'"
|
||||||
label="选项"
|
label="选项"
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
placeholder="选项请用‘|’分割多个选项"
|
placeholder="选项请用‘|’分割多个选项"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="问题分类">
|
<el-form-item label="问题分类" v-if="form.Type !== 'group'">
|
||||||
<!-- <el-radio-group v-model="form.QuestionClassify">
|
<!-- <el-radio-group v-model="form.QuestionClassify">
|
||||||
<el-radio v-for="item of $d.QuestionClassify" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
|
<el-radio v-for="item of $d.QuestionClassify" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
|
||||||
</el-radio-group> -->
|
</el-radio-group> -->
|
||||||
|
@ -406,6 +406,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="问题标识"
|
label="问题标识"
|
||||||
|
v-if="form.Type !== 'group'"
|
||||||
prop="QuestionType"
|
prop="QuestionType"
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="criterion-config">
|
<div class="criterion-config">
|
||||||
<el-tabs v-model="activeName">
|
<el-tabs v-model="activeName">
|
||||||
<el-tab-pane label="访视阅片" name="0">
|
<el-tab-pane :label="'访视阅片'" name="0">
|
||||||
<div class="search-form" style="display:flex;justify-content: space-between;">
|
<div class="search-form" style="display:flex;justify-content: space-between;">
|
||||||
<el-form :inline="true" size="mini" class="base-search-form">
|
<el-form :inline="true" size="mini" class="base-search-form">
|
||||||
<el-form-item label="名称">
|
<el-form-item label="名称">
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
:disabled="list.length === 0"
|
:disabled="list.length === 0"
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="preview.visible = true"
|
@click="handlePreview"
|
||||||
>
|
>
|
||||||
预览
|
预览
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -200,7 +200,7 @@
|
||||||
v-if="addOrEdit.visible"
|
v-if="addOrEdit.visible"
|
||||||
:visible.sync="addOrEdit.visible"
|
:visible.sync="addOrEdit.visible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:title="addOrEdit.title"
|
:title="`${addOrEdit.title}`"
|
||||||
width="600px"
|
width="600px"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
|
@ -303,6 +303,9 @@ export default {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
handlePreview() {
|
||||||
|
window.open(`/ecrfPreview?SystemReadingCriterionId=${this.criterionId}&lang=${this.$i18n.locale}`)
|
||||||
|
},
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.searchData.ReadingQuestionCriterionSystemId = this.criterionId
|
this.searchData.ReadingQuestionCriterionSystemId = this.criterionId
|
||||||
|
|
|
@ -83,6 +83,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:disabled="scope.row.IsCompleteConfig"
|
||||||
@click="handleEdit(scope.row)"
|
@click="handleEdit(scope.row)"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
|
@ -104,6 +105,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
size="mini"
|
size="mini"
|
||||||
|
:disabled="scope.row.IsCompleteConfig"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
|
@ -133,7 +135,7 @@
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="configVisible"
|
v-if="configVisible"
|
||||||
title="eCRF"
|
:title="'eCRF' + `(${rowData.CriterionName})`"
|
||||||
:visible.sync="configVisible"
|
:visible.sync="configVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
|
@ -145,7 +147,7 @@
|
||||||
|
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-if="configBaseDataVisible"
|
v-if="configBaseDataVisible"
|
||||||
title="基础数据配置"
|
:title="'基础数据配置' + `(${rowData.CriterionName})`"
|
||||||
:visible.sync="configBaseDataVisible"
|
:visible.sync="configBaseDataVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:fullscreen="true"
|
:fullscreen="true"
|
||||||
|
|
|
@ -1,109 +1,109 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" style="min-height:400px;">
|
<div v-loading="loading" style="min-height:400px;">
|
||||||
<el-form
|
<el-form
|
||||||
v-if="isRender"
|
v-if="isRender"
|
||||||
ref="questions"
|
ref="questions"
|
||||||
size="small"
|
size="small"
|
||||||
:model="questionForm"
|
:model="questionForm"
|
||||||
>
|
>
|
||||||
<CriterionFormItem
|
<CriterionFormItem
|
||||||
v-for="question of questions"
|
v-for="question of questions"
|
||||||
:key="question.Id"
|
:key="question.Id"
|
||||||
:question="question"
|
:question="question"
|
||||||
:question-form="questionForm"
|
:question-form="questionForm"
|
||||||
:reading-task-state="readingTaskState"
|
:reading-task-state="readingTaskState"
|
||||||
:criterion-id="criterionId"
|
:criterion-id="criterionId"
|
||||||
@resetFormItemData="resetFormItemData"
|
@resetFormItemData="resetFormItemData"
|
||||||
@setFormItemData="setFormItemData"
|
@setFormItemData="setFormItemData"
|
||||||
/>
|
/>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import { getSystemReadingQuestion } from '@/api/dictionary'
|
import { getSystemReadingQuestion } from '@/api/dictionary'
|
||||||
import CriterionFormItem from './CriterionFormItem'
|
import CriterionFormItem from './CriterionFormItem'
|
||||||
|
import {mapMutations} from "vuex";
|
||||||
export default {
|
|
||||||
name: 'EcrfPreview',
|
export default {
|
||||||
components: {
|
name: 'EcrfPreview',
|
||||||
CriterionFormItem
|
components: {
|
||||||
},
|
CriterionFormItem
|
||||||
props: {
|
},
|
||||||
criterionId: {
|
data() {
|
||||||
type: String,
|
return {
|
||||||
required: true
|
loading: false,
|
||||||
}
|
questions: [],
|
||||||
},
|
questionForm: {},
|
||||||
data() {
|
publicQuestions: [],
|
||||||
return {
|
isRender: false,
|
||||||
loading: false,
|
readingTaskState: 0,
|
||||||
questions: [],
|
activeName: 0
|
||||||
questionForm: {},
|
}
|
||||||
publicQuestions: [],
|
},
|
||||||
isRender: false,
|
mounted() {
|
||||||
readingTaskState: 0,
|
this.$i18n.locale = this.$route.query.lang
|
||||||
activeName: 0
|
this.setLanguage(this.$route.query.lang)
|
||||||
}
|
this.$updateDictionary()
|
||||||
},
|
this.criterionId = this.$route.query.SystemReadingCriterionId
|
||||||
mounted() {
|
this.getQuestions()
|
||||||
this.getQuestions()
|
},
|
||||||
},
|
methods: {
|
||||||
methods: {
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
getQuestions() {
|
getQuestions() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
var param = {
|
var param = {
|
||||||
id: this.criterionId
|
id: this.criterionId
|
||||||
}
|
}
|
||||||
getSystemReadingQuestion(param).then(res => {
|
getSystemReadingQuestion(param).then(res => {
|
||||||
res.Result.SinglePage.map((v) => {
|
res.Result.SinglePage.map((v) => {
|
||||||
if (v.Type === 'group' && v.Childrens.length === 0) return
|
if (v.Type === 'group' && v.Childrens.length === 0) return
|
||||||
if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') {
|
if (!v.IsPage && v.Type !== 'group' && v.Type !== 'summary') {
|
||||||
this.$set(this.questionForm, v.Id, v.DefaultValue)
|
this.$set(this.questionForm, v.Id, v.DefaultValue)
|
||||||
}
|
}
|
||||||
if (v.Childrens && v.Childrens.length > 0) {
|
if (v.Childrens && v.Childrens.length > 0) {
|
||||||
this.setChild(v.Childrens)
|
this.setChild(v.Childrens)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.questions = res.Result.SinglePage
|
this.questions = res.Result.SinglePage
|
||||||
|
|
||||||
this.isRender = true
|
this.isRender = true
|
||||||
this.loading = false
|
this.loading = false
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
setChild(obj) {
|
setChild(obj) {
|
||||||
obj.forEach(i => {
|
obj.forEach(i => {
|
||||||
if (i.Type !== 'group' && i.Type !== 'summary' && i.Id) {
|
if (i.Type !== 'group' && i.Type !== 'summary' && i.Id) {
|
||||||
this.$set(this.questionForm, i.Id, '')
|
this.$set(this.questionForm, i.Id, '')
|
||||||
}
|
}
|
||||||
if (i.Childrens && i.Childrens.length > 0) {
|
if (i.Childrens && i.Childrens.length > 0) {
|
||||||
this.setChild(i.Childrens)
|
this.setChild(i.Childrens)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
resetFormItemData(v) {
|
resetFormItemData(v) {
|
||||||
this.questionForm[v] = ''
|
this.questionForm[v] = ''
|
||||||
},
|
},
|
||||||
setFormItemData(obj) {
|
setFormItemData(obj) {
|
||||||
this.$set(this.questionForm, obj.key, obj.val)
|
this.$set(this.questionForm, obj.key, obj.val)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 7px;
|
width: 7px;
|
||||||
height: 7px;
|
height: 7px;
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background: #d0d0d0;
|
background: #d0d0d0;
|
||||||
}
|
}
|
||||||
.tabContent{
|
.tabContent{
|
||||||
height:300px;
|
height:300px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -63,7 +63,8 @@ module.exports = {
|
||||||
// target: 'http://123.56.181.144:8000/api', // 国内测试环境
|
// target: 'http://123.56.181.144:8000/api', // 国内测试环境
|
||||||
// target: 'http://123.56.94.154:8079', // 国内测试环境2
|
// target: 'http://123.56.94.154:8079', // 国内测试环境2
|
||||||
// target: 'http://123.56.94.154:7000', // 国内测试环境2
|
// target: 'http://123.56.94.154:7000', // 国内测试环境2
|
||||||
target: 'http://123.56.94.154:30668',
|
// target: 'http://123.56.94.154:30668',
|
||||||
|
target: 'http://123.56.94.154:30000',
|
||||||
// target: 'http://123.56.181.144:7000',
|
// target: 'http://123.56.181.144:7000',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
|
|
Loading…
Reference in New Issue