稽查配置和系统阅片标准配置更新
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
7c6b010fe1
commit
8e0c186ee7
|
@ -1043,3 +1043,19 @@ export function deleteCommonDocument(commonDocumentId) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getSystemCalculateQuestions(params) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingQuestion/getSystemCalculateQuestions`,
|
||||||
|
method: 'post',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getSystemCalculateTableQuestions(params) {
|
||||||
|
return request({
|
||||||
|
url: `/ReadingQuestion/getSystemCalculateTableQuestions`,
|
||||||
|
method: 'post',
|
||||||
|
data: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<el-table-column prop="ModuleTypeValueCN" label="模块" show-overflow-tooltip align="left" min-width="230px" />
|
<el-table-column prop="ModuleTypeValueCN" label="模块" show-overflow-tooltip align="left" min-width="230px" />
|
||||||
<el-table-column prop="Description" label="操作名称" :show-overflow-tooltip="true" min-width="200px">
|
<el-table-column prop="Description" label="操作名称" :show-overflow-tooltip="true" min-width="200px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.Description }}({{scope.row.DescriptionCN}})</span>
|
<span>{{ scope.row.DescriptionCN }}({{scope.row.Description}})</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="DescriptionCN" label="其他" :show-overflow-tooltip="true" min-width="140px">
|
<el-table-column prop="DescriptionCN" label="其他" :show-overflow-tooltip="true" min-width="140px">
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<el-table-column prop="Identification" label="标识" :show-overflow-tooltip="true" min-width="200px" />
|
<el-table-column prop="Identification" label="标识" :show-overflow-tooltip="true" min-width="200px" />
|
||||||
<el-table-column prop="OptTypeValueCN" label="操作类型" show-overflow-tooltip width="100px" />
|
<el-table-column prop="OptTypeValueCN" label="操作类型" show-overflow-tooltip width="100px" />
|
||||||
<el-table-column prop="ObjectTypeValueCN" label="对象类型" show-overflow-tooltip min-width="100px" />
|
<el-table-column prop="ObjectTypeValueCN" label="对象类型" show-overflow-tooltip min-width="100px" />
|
||||||
<el-table-column prop="ChildrenTypeValueCN" label="数据类型" show-overflow-tooltip min-width="100px" show-overflow-tooltip />
|
<el-table-column prop="ChildrenTypeValueCN" label="数据类型" show-overflow-tooltip min-width="100px"/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="Sort"
|
prop="Sort"
|
||||||
label="显示顺序"
|
label="显示顺序"
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
|
|
||||||
<!-- 添加或修改菜单对话框 -->
|
<!-- 添加或修改菜单对话框 -->
|
||||||
<el-dialog :title="title" top="100px" :close-on-click-modal="false" id="check_config" :visible.sync="open" :width="form.DataType === 'Table' ? '1280px' : '680px'" append-to-body>
|
<el-dialog :title="title" top="100px" :close-on-click-modal="false" id="check_config" :visible.sync="open" :width="form.DataType === 'Table' ? '1280px' : '680px'" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col v-show="title !== '复制'" :span="24">
|
<el-col v-show="title !== '复制'" :span="24">
|
||||||
<el-divider content-position="left">基本信息</el-divider>
|
<el-divider content-position="left">基本信息</el-divider>
|
||||||
|
@ -142,11 +142,16 @@
|
||||||
<el-input v-model="form.Identification" placeholder="请输入标识" />
|
<el-input v-model="form.Identification" placeholder="请输入标识" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-show="form.ConfigType === 'C' && title !== '复制'" :span="24">
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制'" :span="12">
|
||||||
<el-form-item label="字段key">
|
<el-form-item label="字段key">
|
||||||
<el-input v-model="form.Code" placeholder="请输入字段key" />
|
<el-input v-model="form.Code" placeholder="请输入字段key" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制'" :span="12">
|
||||||
|
<el-form-item label="字段key英文">
|
||||||
|
<el-input v-model="form.CodeEn" placeholder="请输入字段key英文" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col v-show="form.ConfigType === 'C' && title !== '复制'" :span="12">
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制'" :span="12">
|
||||||
<el-form-item label="字段英文">
|
<el-form-item label="字段英文">
|
||||||
<el-input v-model="form.Value" placeholder="请输入字段英文" />
|
<el-input v-model="form.Value" placeholder="请输入字段英文" />
|
||||||
|
@ -259,9 +264,11 @@
|
||||||
<el-radio label="Router">路由</el-radio>
|
<el-radio label="Router">路由</el-radio>
|
||||||
<el-radio label="Image">图片</el-radio>
|
<el-radio label="Image">图片</el-radio>
|
||||||
<el-radio label="ImageList">图片数组</el-radio>
|
<el-radio label="ImageList">图片数组</el-radio>
|
||||||
|
<el-radio label="OSS">OSS</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
<el-row v-show="form.DataType === 'Router'" v-if="form.UrlConfig">
|
<el-row v-show="form.DataType === 'Router'" v-if="form.UrlConfig">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -314,6 +321,7 @@
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</el-col>
|
||||||
<el-button v-show="form.DataType === 'Table'" type="primary" size="mini" style="position: relative;top: -15px" @click="addCol">
|
<el-button v-show="form.DataType === 'Table'" type="primary" size="mini" style="position: relative;top: -15px" @click="addCol">
|
||||||
增加列
|
增加列
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -369,6 +377,16 @@
|
||||||
<el-input :disabled="!scope.row.IsFixedColumn" v-model="scope.row.FixedColumnName" placeholder="固定列名"/>
|
<el-input :disabled="!scope.row.IsFixedColumn" v-model="scope.row.FixedColumnName" placeholder="固定列名"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="FixedColumnEnName"
|
||||||
|
min-width="120"
|
||||||
|
label="固定列名EN"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input :disabled="!scope.row.IsFixedColumn" v-model="scope.row.FixedColumnEnName" placeholder="固定列名EN"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ColumnName"
|
prop="ColumnName"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
|
@ -379,6 +397,16 @@
|
||||||
<el-input :disabled="scope.row.IsFixedColumn" v-model="scope.row.ColumnName" placeholder="列字段名"/>
|
<el-input :disabled="scope.row.IsFixedColumn" v-model="scope.row.ColumnName" placeholder="列字段名"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="ColumnEnName"
|
||||||
|
min-width="120"
|
||||||
|
label="列字段名En"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input :disabled="scope.row.IsFixedColumn" v-model="scope.row.ColumnEnName" placeholder="列字段名En"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ColumnValue"
|
prop="ColumnValue"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
|
@ -412,6 +440,16 @@
|
||||||
<el-input :disabled="!scope.row.IsMerge" v-model="scope.row.MergeColumnName" placeholder="合并组"/>
|
<el-input :disabled="!scope.row.IsMerge" v-model="scope.row.MergeColumnName" placeholder="合并组"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
prop="MergeColumnEnName"
|
||||||
|
min-width="120"
|
||||||
|
label="合并组EN"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input :disabled="!scope.row.IsMerge" v-model="scope.row.MergeColumnEnName" placeholder="合并组EN"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsPicture"
|
prop="IsPicture"
|
||||||
min-width="120"
|
min-width="120"
|
||||||
|
@ -486,6 +524,14 @@
|
||||||
<el-input v-model="form.ChildDataLabel" placeholder="请输入子数据Lable" />
|
<el-input v-model="form.ChildDataLabel" placeholder="请输入子数据Lable" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.DataType === 'Array'" :span="12">
|
||||||
|
<el-form-item>
|
||||||
|
<span slot="label">
|
||||||
|
子数据LableEN
|
||||||
|
</span>
|
||||||
|
<el-input v-model="form.ChildDataEnLabel" placeholder="请输入子数据LableEN" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.DataType === 'Array'" :span="12">
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.DataType === 'Array'" :span="12">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<span slot="label">
|
<span slot="label">
|
||||||
|
@ -510,12 +556,27 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Dictionary'" :span="12">
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Dictionary'" :span="12">
|
||||||
<el-form-item label="字典表名">
|
<el-form-item label="字典表名">
|
||||||
<el-input v-model="form.DictionaryCode" placeholder="请输入字典表名" />
|
<!-- <el-input v-model="form.DictionaryCode" placeholder="请输入字典表名" /> -->
|
||||||
|
<el-autocomplete
|
||||||
|
clearable
|
||||||
|
class="inline-input"
|
||||||
|
v-model="form.DictionaryCode"
|
||||||
|
:fetch-suggestions="querySearch"
|
||||||
|
placeholder="请输入字典表名"
|
||||||
|
></el-autocomplete>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Dictionary'" :span="12">
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Dictionary'" :span="12">
|
||||||
<el-form-item label="翻译字段">
|
<el-form-item label="翻译字段">
|
||||||
<el-input v-model="form.DictionaryType" placeholder="请输入翻译字段" />
|
<!-- <el-input v-model="form.DictionaryType" placeholder="请输入翻译字段" /> -->
|
||||||
|
<el-select v-model="form.DictionaryType" clearable placeholder="请选择翻译字段">
|
||||||
|
<el-option
|
||||||
|
v-for="item in $d.DictionaryType"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.label">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Date'" :span="24">
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Date'" :span="24">
|
||||||
|
@ -541,6 +602,11 @@
|
||||||
<el-input v-model="form.ForeignKeyText" placeholder="请输入数据库字段to" />
|
<el-input v-model="form.ForeignKeyText" placeholder="请输入数据库字段to" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col v-show="form.ConfigType === 'C' && title !== '复制' && form.EnumType === 'Foreign'" :span="12">
|
||||||
|
<el-form-item label="字段toEN">
|
||||||
|
<el-input v-model="form.ForeignKeyEnText" placeholder="请输入数据库字段toEN" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col v-show="title !== '复制'" :span="24">
|
<el-col v-show="title !== '复制'" :span="24">
|
||||||
|
@ -605,11 +671,11 @@
|
||||||
<div style="padding: 0 40px;display: flex;flex-direction: column">
|
<div style="padding: 0 40px;display: flex;flex-direction: column">
|
||||||
<div style="text-align: right;height: 50px;">
|
<div style="text-align: right;height: 50px;">
|
||||||
<el-select v-model="copeParams.FromItemId" collapse-tags filterable placeholder="完全拷贝对象" clearable size="small">
|
<el-select v-model="copeParams.FromItemId" collapse-tags filterable placeholder="完全拷贝对象" clearable size="small">
|
||||||
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.Description" />
|
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.DescriptionCN" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button type="primary" size="mini" style="margin-right: 10px" @click="handleOverCope(selectRow)">完全拷贝</el-button>
|
<el-button type="primary" size="mini" style="margin-right: 10px" @click="handleOverCope(selectRow)">完全拷贝</el-button>
|
||||||
<el-select v-model="copeParams.DataSourceGuids" multiple collapse-tags filterable placeholder="拷贝对象" clearable size="small">
|
<el-select v-model="copeParams.DataSourceGuids" multiple collapse-tags filterable placeholder="拷贝对象" clearable size="small">
|
||||||
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.Description" />
|
<el-option v-for="item of list" v-if="drawer_cfg.drawerChild && item.ConfigType === 'M' && item.ObjectTypeId === selectRow.ObjectTypeId && item.OptTypeId && item.ChildrenTypeId " :value="item.Id" :label="item.DescriptionCN" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-button type="primary" size="mini" @click="handleCope(selectRow)">拷贝</el-button>
|
<el-button type="primary" size="mini" @click="handleCope(selectRow)">拷贝</el-button>
|
||||||
<el-button type="primary" size="mini" @click="handleAdd(selectRow)">新建</el-button>
|
<el-button type="primary" size="mini" @click="handleAdd(selectRow)">新建</el-button>
|
||||||
|
@ -625,6 +691,7 @@
|
||||||
height="100"
|
height="100"
|
||||||
>
|
>
|
||||||
<el-table-column prop="Code" label="字段名" min-width="120px" :show-overflow-tooltip="true" />
|
<el-table-column prop="Code" label="字段名" min-width="120px" :show-overflow-tooltip="true" />
|
||||||
|
<el-table-column prop="CodeEn" label="字段名英文" min-width="120px" :show-overflow-tooltip="true" />
|
||||||
<el-table-column prop="Value" label="字段英文" min-width="120px" :show-overflow-tooltip="true" />
|
<el-table-column prop="Value" label="字段英文" min-width="120px" :show-overflow-tooltip="true" />
|
||||||
<el-table-column prop="ValueCN" label="字段中文" min-width="120px" :show-overflow-tooltip="true" />
|
<el-table-column prop="ValueCN" label="字段中文" min-width="120px" :show-overflow-tooltip="true" />
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -665,6 +732,12 @@
|
||||||
<el-table-column prop="TrialConfigRelyFieldName" label="依赖字段" min-width="120px" :show-overflow-tooltip="true" />
|
<el-table-column prop="TrialConfigRelyFieldName" label="依赖字段" min-width="120px" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="操作" align="center" min-width="180" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" min-width="180" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleCopyData(scope.row)"
|
||||||
|
>复制</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
|
@ -687,7 +760,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { fullyReplicated, changeFrontAuditSort, copyFrontAuditConfigItem, getFrontAuditConfigList, addOrUpdateFrontAuditConfig, deleteFrontAuditConfig, copyOtherToThisItem, getAuditConfigChildList, setDictionaryValue } from '@/api/dictionary/checkConfig'
|
import { fullyReplicated, changeFrontAuditSort, copyFrontAuditConfigItem, getFrontAuditConfigList, addOrUpdateFrontAuditConfig, deleteFrontAuditConfig, copyOtherToThisItem, getAuditConfigChildList, getDictionaryCodeList } from '@/api/dictionary/checkConfig'
|
||||||
import Treeselect from '@riophae/vue-treeselect'
|
import Treeselect from '@riophae/vue-treeselect'
|
||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
import Sortable from 'sortablejs'
|
import Sortable from 'sortablejs'
|
||||||
|
@ -730,7 +803,8 @@ export default {
|
||||||
refreshTable: true,
|
refreshTable: true,
|
||||||
childrenList: [],
|
childrenList: [],
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {
|
||||||
|
},
|
||||||
selectRow: null,
|
selectRow: null,
|
||||||
model_cfg: { visible: false, showClose: true, width: '680px', title: '', appendToBody: true },
|
model_cfg: { visible: false, showClose: true, width: '680px', title: '', appendToBody: true },
|
||||||
drawer_cfg: { drawerChild: false, parentId: '', title: '' },
|
drawer_cfg: { drawerChild: false, parentId: '', title: '' },
|
||||||
|
@ -739,13 +813,41 @@ export default {
|
||||||
},
|
},
|
||||||
ChildGroup: null,
|
ChildGroup: null,
|
||||||
tableShow: false,
|
tableShow: false,
|
||||||
rowDrop2TableIsShow: true
|
rowDrop2TableIsShow: true,
|
||||||
|
DictionaryCodeList:[]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList();
|
||||||
|
this.getDictionaryCodeList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
querySearch(queryString, cb) {
|
||||||
|
var DictionaryCodeList = this.DictionaryCodeList;
|
||||||
|
var results = queryString ? DictionaryCodeList.filter(this.createFilter(queryString)) : DictionaryCodeList;
|
||||||
|
// 调用 callback 返回建议列表的数据
|
||||||
|
cb(results);
|
||||||
|
},
|
||||||
|
createFilter(queryString) {
|
||||||
|
return (DictionaryCodeList) => {
|
||||||
|
return (DictionaryCodeList.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 获取字典表名
|
||||||
|
async getDictionaryCodeList(){
|
||||||
|
try{
|
||||||
|
let res = await getDictionaryCodeList();
|
||||||
|
if(res.IsSuccess){
|
||||||
|
this.DictionaryCodeList = res.Result.map(item=>{
|
||||||
|
return {
|
||||||
|
value:item
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}catch(err){
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
},
|
||||||
addParameter() {
|
addParameter() {
|
||||||
this.form.UrlConfig.ParameterList.push({
|
this.form.UrlConfig.ParameterList.push({
|
||||||
UrlParameterName: null,
|
UrlParameterName: null,
|
||||||
|
@ -768,10 +870,13 @@ export default {
|
||||||
ListName: null,
|
ListName: null,
|
||||||
IsFixedColumn: false,
|
IsFixedColumn: false,
|
||||||
FixedColumnName: null,
|
FixedColumnName: null,
|
||||||
|
FixedColumnEnName: null,
|
||||||
ColumnName: null,
|
ColumnName: null,
|
||||||
|
ColumnEnName: null,
|
||||||
ColumnValue: null,
|
ColumnValue: null,
|
||||||
IsMerge: false,
|
IsMerge: false,
|
||||||
MergeColumnName: null,
|
MergeColumnName: null,
|
||||||
|
MergeColumnEnName: null,
|
||||||
IsPicture: false,
|
IsPicture: false,
|
||||||
IsDynamicTranslate: false,
|
IsDynamicTranslate: false,
|
||||||
IsNeedTransalate: false,
|
IsNeedTransalate: false,
|
||||||
|
@ -1044,6 +1149,7 @@ export default {
|
||||||
IsShowParent: 0,
|
IsShowParent: 0,
|
||||||
Sort: 0,
|
Sort: 0,
|
||||||
Code: null,
|
Code: null,
|
||||||
|
CodeEn: null,
|
||||||
Value: null,
|
Value: null,
|
||||||
ValueCN: null,
|
ValueCN: null,
|
||||||
EnumType: '',
|
EnumType: '',
|
||||||
|
@ -1058,6 +1164,7 @@ export default {
|
||||||
IsSpecialType: false,
|
IsSpecialType: false,
|
||||||
DataType: '',
|
DataType: '',
|
||||||
ChildDataLabel: null,
|
ChildDataLabel: null,
|
||||||
|
ChildDataEnLabel: null,
|
||||||
ChildDataValue: null,
|
ChildDataValue: null,
|
||||||
DateType: null,
|
DateType: null,
|
||||||
DictionaryCode: null,
|
DictionaryCode: null,
|
||||||
|
@ -1065,6 +1172,7 @@ export default {
|
||||||
ForeignKeyTableName: null,
|
ForeignKeyTableName: null,
|
||||||
ForeignKeyValue: null,
|
ForeignKeyValue: null,
|
||||||
ForeignKeyText: null,
|
ForeignKeyText: null,
|
||||||
|
ForeignKeyEnText: null,
|
||||||
TableConfigList: [],
|
TableConfigList: [],
|
||||||
UrlConfig: {
|
UrlConfig: {
|
||||||
RoutePath: null,
|
RoutePath: null,
|
||||||
|
@ -1142,6 +1250,16 @@ export default {
|
||||||
this.title = '修改'
|
this.title = '修改'
|
||||||
this.rowDrop2()
|
this.rowDrop2()
|
||||||
},
|
},
|
||||||
|
handleCopyData (row) {
|
||||||
|
this.$confirm('确定复制该条记录到当前稽查下吗?').then(() => {
|
||||||
|
let params = {...row}
|
||||||
|
delete params.Id
|
||||||
|
addOrUpdateFrontAuditConfig(params).then(() => {
|
||||||
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
|
this.getList()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm: function() {
|
submitForm: function() {
|
||||||
this.$refs['form'].validate(valid => {
|
this.$refs['form'].validate(valid => {
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
:disabled="isCompleteConfig"
|
||||||
@click="handleAdd"
|
@click="handleAdd"
|
||||||
style="margin-right: 10px;"
|
style="margin-right: 10px;"
|
||||||
>
|
>
|
||||||
|
@ -59,12 +60,13 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="small" type="primary" @click="openChildren(scope.row)">
|
<el-button size="small" :disabled="isCompleteConfig" type="primary" @click="openChildren(scope.row)">
|
||||||
配置
|
配置
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
type="danger"
|
||||||
size="small"
|
size="small"
|
||||||
|
:disabled="isCompleteConfig"
|
||||||
@click="handleDelete(scope.row)"
|
@click="handleDelete(scope.row)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
|
@ -151,6 +153,10 @@ export default {
|
||||||
criterionId: {
|
criterionId: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
isCompleteConfig: {
|
||||||
|
type: Boolean,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
@ -207,7 +213,6 @@ export default {
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.list = res.Result
|
this.list = res.Result
|
||||||
console.log(this.$d.GlobalAssessType)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
|
@ -259,8 +264,8 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style lang="scss" scoped>
|
||||||
>>>.el-form-item__content{
|
/deep/ .el-form-item__content{
|
||||||
width: calc(100% - 110px);
|
width: calc(100% - 110px);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div>
|
<div>
|
||||||
<el-radio-group v-model="scope.row.CrterionDictionaryGroup" @change="(v) => {crterionDictionaryGroupChange(v, scope.row)}" size="mini">
|
<el-radio-group v-model="scope.row.CrterionDictionaryGroup" @change="(v) => {crterionDictionaryGroupChange(v, scope.row)}" size="mini">
|
||||||
<el-radio-button v-for="item of $d.CrterionDictionaryGroup" :label="item.value">{{item.label}}</el-radio-button>
|
<el-radio-button v-for="item of $d.CrterionDictionaryGroup" :label="item.value" :key="item.id">{{item.label}}</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -158,7 +158,6 @@ export default {
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
console.log(this.$d[this.parentCode])
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
crterionDictionaryGroupChange(v, row) {
|
crterionDictionaryGroupChange(v, row) {
|
||||||
|
@ -231,8 +230,8 @@ export default {
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style lang="scss" scoped>
|
||||||
>>>.el-form-item__content{
|
/deep/ .el-form-item__content{
|
||||||
width: calc(100% - 110px);
|
width: calc(100% - 110px);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -13,18 +13,18 @@
|
||||||
{{ question.GroupName }}
|
{{ question.GroupName }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else-if="question.Type==='table'"
|
v-else-if="question.Type==='table' || question.Type==='basicTable'"
|
||||||
style="font-weight: bold;font-size: 14px;margin: 5px 0px;"
|
style="font-weight: bold;font-size: 14px;margin: 5px 0px;"
|
||||||
>
|
>
|
||||||
{{ question.QuestionName }}
|
{{ question.QuestionName }}
|
||||||
</div>
|
</div>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="(question.ShowQuestion===1 && String(questionForm[question.ParentId]) === String(question.ParentTriggerValue)) || question.ShowQuestion===0"
|
v-if="(question.ShowQuestion===1 && question.ParentTriggerValueList.includes(String(questionForm[question.ParentId]))) || question.ShowQuestion===0"
|
||||||
:label="`${question.QuestionName}`"
|
:label="`${question.QuestionName}`"
|
||||||
:prop="question.Id"
|
:prop="question.Id"
|
||||||
:rules="[
|
:rules="[
|
||||||
{ required: (question.IsRequired === 0 || (question.IsRequired ===1 && question.RelevanceId && (questionForm[question.RelevanceId] === question.RelevanceValue))) && question.Type!=='group' && question.Type!=='summary',
|
{ required: (question.IsRequired === 0 || (question.IsRequired ===1 && question.RelevanceId && question.RelevanceValueList.includes(questionForm[question.RelevanceId]))) && question.Type!=='group' && question.Type!=='summary',
|
||||||
message: '请注明', trigger: ['blur', 'change']},
|
message: '请注明', trigger: ['blur', 'change']},
|
||||||
]"
|
]"
|
||||||
:class="[question.Type==='group'?'mb':question.Type==='upload'?'uploadWrapper':'']"
|
:class="[question.Type==='group'?'mb':question.Type==='upload'?'uploadWrapper':'']"
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d[question.DictionaryCode]"
|
v-for="item of $d[question.DictionaryCode]"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:value="item.value"
|
:value="item.value.toString()"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
<el-radio
|
<el-radio
|
||||||
v-for="item of $d[question.DictionaryCode]"
|
v-for="item of $d[question.DictionaryCode]"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.value"
|
:label="item.value.toString()"
|
||||||
>
|
>
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
|
@ -139,14 +139,29 @@
|
||||||
/>
|
/>
|
||||||
<!-- 数值 -->
|
<!-- 数值 -->
|
||||||
<!-- :precision="2" :step="0.1" :max="10" -->
|
<!-- :precision="2" :step="0.1" :max="10" -->
|
||||||
<el-input-number
|
<!-- <el-input-number
|
||||||
v-if="question.Type==='number'"
|
v-if="question.Type==='number'"
|
||||||
v-model="questionForm[question.Id]"
|
v-model="questionForm[question.Id]"
|
||||||
|
/> -->
|
||||||
|
<el-input
|
||||||
|
v-if="question.Type==='number'"
|
||||||
|
v-model="questionForm[question.Id]"
|
||||||
|
type="number"
|
||||||
|
:disabled="question.DataSource === 1"
|
||||||
|
>
|
||||||
|
<template v-if="question.Unit" slot="append">{{$fd('ValueUnit', question.Unit)}}</template>
|
||||||
|
</el-input>
|
||||||
|
<!-- 自动分类 -->
|
||||||
|
<el-input
|
||||||
|
v-if="question.Type==='calss'"
|
||||||
|
v-model="questionForm[question.Id]"
|
||||||
|
disabled
|
||||||
/>
|
/>
|
||||||
<!-- 上传图像 -->
|
<!-- 上传图像 -->
|
||||||
<el-upload
|
<el-upload
|
||||||
v-if="question.Type==='upload'"
|
v-if="question.Type==='upload'"
|
||||||
:action="accept"
|
action
|
||||||
|
:accept="question.FileType"
|
||||||
:limit="question.ImageCount"
|
:limit="question.ImageCount"
|
||||||
:on-preview="handlePictureCardPreview"
|
:on-preview="handlePictureCardPreview"
|
||||||
:before-upload="handleBeforeUpload"
|
:before-upload="handleBeforeUpload"
|
||||||
|
@ -160,8 +175,8 @@
|
||||||
<div slot="file" slot-scope="{file}">
|
<div slot="file" slot-scope="{file}">
|
||||||
<img
|
<img
|
||||||
class="el-upload-list__item-thumbnail"
|
class="el-upload-list__item-thumbnail"
|
||||||
crossOrigin="Anonymous"
|
|
||||||
:src="OSSclientConfig.basePath + file.url"
|
:src="OSSclientConfig.basePath + file.url"
|
||||||
|
crossorigin="anonymous"
|
||||||
alt=""
|
alt=""
|
||||||
>
|
>
|
||||||
<span class="el-upload-list__item-actions">
|
<span class="el-upload-list__item-actions">
|
||||||
|
@ -320,7 +335,7 @@ export default {
|
||||||
setFormItemData(obj) {
|
setFormItemData(obj) {
|
||||||
this.$emit('setFormItemData', obj)
|
this.$emit('setFormItemData', obj)
|
||||||
},
|
},
|
||||||
uploadScreenshot(param) {
|
async uploadScreenshot(param) {
|
||||||
if (!this.visitTaskId) return
|
if (!this.visitTaskId) return
|
||||||
const loading = this.$loading({
|
const loading = this.$loading({
|
||||||
target: document.querySelector('.ecrf-wrapper'),
|
target: document.querySelector('.ecrf-wrapper'),
|
||||||
|
@ -331,19 +346,17 @@ export default {
|
||||||
})
|
})
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
formData.append('file', param.file)
|
formData.append('file', param.file)
|
||||||
uploadReadingAnswerImage(this.$route.query.trialId, this.visitTaskId, formData).then(res => {
|
var file = await this.fileToBlob(param.file)
|
||||||
if (res.IsSuccess) {
|
const res = await this.OSSclient.put(`/${this.trialId}/ReadAttachment/${this.subjectId}/${this.visitTaskId}/${param.file.name}`, file)
|
||||||
this.fileList.push({ url: `${res.Result.Path}` })
|
this.fileList.push({ name: param.file.name, url: this.$getObjectName(res.url) })
|
||||||
this.urls.push(res.Result.Path)
|
this.urls.push(this.$getObjectName(res.url))
|
||||||
this.$emit('setFormItemData', { key: this.question.Id, val: this.urls.length > 0 ? this.urls.join('|') : '' })
|
this.$emit('setFormItemData', { key: this.question.Id, val: this.urls.length > 0 ? this.urls.join('|') : '' })
|
||||||
}
|
|
||||||
loading.close()
|
loading.close()
|
||||||
}).catch(() => {
|
|
||||||
loading.close()
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
handleBeforeUpload(file) {
|
handleBeforeUpload(file) {
|
||||||
// 检测文件类型是否符合要求
|
// 检测文件类型是否符合要求
|
||||||
|
console.log(file.name)
|
||||||
|
console.log(this.checkFileSuffix(file.name))
|
||||||
if (this.checkFileSuffix(file.name)) {
|
if (this.checkFileSuffix(file.name)) {
|
||||||
// this.fileList = []
|
// this.fileList = []
|
||||||
return true
|
return true
|
||||||
|
@ -363,7 +376,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 预览图片
|
// 预览图片
|
||||||
handlePictureCardPreview(file) {
|
handlePictureCardPreview(file) {
|
||||||
this.imageUrl = file.url
|
this.imageUrl = this.OSSclientConfig.basePath + file.url
|
||||||
this.imgVisible = true
|
this.imgVisible = true
|
||||||
},
|
},
|
||||||
// 删除图片
|
// 删除图片
|
||||||
|
@ -383,7 +396,7 @@ export default {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
}
|
}
|
||||||
>>>.el-form-item__content{
|
/deep/ .el-form-item__content{
|
||||||
width: 500px;
|
width: 500px;
|
||||||
}
|
}
|
||||||
.el-input{
|
.el-input{
|
||||||
|
@ -393,7 +406,7 @@ export default {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
.disabled{
|
.disabled{
|
||||||
>>>.el-upload--picture-card {
|
/deep/ .el-upload--picture-card {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,10 @@
|
||||||
<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="名称">
|
||||||
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
|
<el-input v-model="searchData.QuestionName" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -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>
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="IsShowInDicom"
|
prop="IsShowInDicom"
|
||||||
label="是否在阅片页面显示"
|
label="是否在阅片页面显示"
|
||||||
width="140"
|
width="150"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -115,13 +115,13 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 注释 -->
|
<!-- 注释 -->
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
prop="Remark"
|
prop="Remark"
|
||||||
:label="$t('trials:readingUnit:qsList:title:Remark')"
|
:label="$t('trials:readingUnit:qsList:title:Remark')"
|
||||||
width="140"
|
width="140"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="GlobalReadingShowType"
|
prop="GlobalReadingShowType"
|
||||||
label="是否在全局阅片显示"
|
label="是否在全局阅片显示"
|
||||||
|
@ -132,6 +132,39 @@
|
||||||
{{ $fd('GlobalReadingShowType', scope.row.GlobalReadingShowType) }}
|
{{ $fd('GlobalReadingShowType', scope.row.GlobalReadingShowType) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<!-- 导出标识 -->
|
||||||
|
<!-- <el-table-column
|
||||||
|
prop="ExportIdentification"
|
||||||
|
:label="$t('trials:readingUnit:qsList:title:ExportIdentification')"
|
||||||
|
width="160"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('ExportIdentification', scope.row.ExportIdentification) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<!-- 问题标识 -->
|
||||||
|
<el-table-column
|
||||||
|
prop="QuestionType"
|
||||||
|
label="问题标识"
|
||||||
|
width="140"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('QuestionType', scope.row.QuestionType) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 导出目标表格 -->
|
||||||
|
<el-table-column
|
||||||
|
prop="ExportResult"
|
||||||
|
:label="$t('trials:readingUnit:qsList:title:ExportResult')"
|
||||||
|
width="160"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ getStringResult(scope.row.ExportResult, 'ExportResult') }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- 限制编辑 -->
|
<!-- 限制编辑 -->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="LimitEdit"
|
prop="LimitEdit"
|
||||||
|
@ -170,7 +203,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
size="mini"
|
size="mini"
|
||||||
:disabled="scope.row.Type !== 'table'"
|
:disabled="!(scope.row.Type === 'table' || scope.row.Type === 'basicTable')"
|
||||||
@click="handleConfig(scope.row)"
|
@click="handleConfig(scope.row)"
|
||||||
>
|
>
|
||||||
表格问题
|
表格问题
|
||||||
|
@ -200,8 +233,8 @@
|
||||||
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="650px"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
|
@ -209,6 +242,8 @@
|
||||||
ref="addOrEdit"
|
ref="addOrEdit"
|
||||||
:data="rowData"
|
:data="rowData"
|
||||||
:type="type"
|
:type="type"
|
||||||
|
:criterionType="data.CriterionType"
|
||||||
|
:criterionId="data.Id"
|
||||||
@close="addOrEdit.visible = false"
|
@close="addOrEdit.visible = false"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
/>
|
/>
|
||||||
|
@ -241,6 +276,7 @@
|
||||||
>
|
>
|
||||||
<TableQsList
|
<TableQsList
|
||||||
:criterion-id="criterionId"
|
:criterion-id="criterionId"
|
||||||
|
:criterionType="data.CriterionType"
|
||||||
:reading-question-id="rowData.Id"
|
:reading-question-id="rowData.Id"
|
||||||
:is-complete-config="data.IsCompleteConfig"
|
:is-complete-config="data.IsCompleteConfig"
|
||||||
:lesion-type="rowData.LesionType"
|
:lesion-type="rowData.LesionType"
|
||||||
|
@ -288,16 +324,14 @@ export default {
|
||||||
rowData: {},
|
rowData: {},
|
||||||
activeName: '0',
|
activeName: '0',
|
||||||
addOrEdit: { visible: false, title: '' },
|
addOrEdit: { visible: false, title: '' },
|
||||||
preview: { visible: false, title: 'eCRF预览' },
|
preview: { visible: false, title: 'eCRF' + this.$t('common:button:preview') },
|
||||||
config: { visible: false, title: '' }
|
config: { visible: false, title: '' }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
list() {
|
list() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if(this.$refs.criterionQSList){
|
|
||||||
this.$refs.criterionQSList.doLayout()
|
this.$refs.criterionQSList.doLayout()
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -305,6 +339,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
|
||||||
|
@ -315,7 +352,7 @@ export default {
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.rowData = { ReadingQuestionCriterionSystemId: this.criterionId, Id: '' }
|
this.rowData = { ReadingQuestionCriterionSystemId: this.criterionId, Id: ''}
|
||||||
this.type = 'add'
|
this.type = 'add'
|
||||||
this.addOrEdit.title = '添加'
|
this.addOrEdit.title = '添加'
|
||||||
this.addOrEdit.visible = true
|
this.addOrEdit.visible = true
|
||||||
|
@ -351,9 +388,14 @@ export default {
|
||||||
},
|
},
|
||||||
handleConfig(row) {
|
handleConfig(row) {
|
||||||
this.rowData = { ...row }
|
this.rowData = { ...row }
|
||||||
this.config.title = `${this.$fd('LesionType', row.LesionType)}:表格问题`
|
this.config.title = `${this.$fd('LesionType', row.LesionType)}:${this.$t('trials:readingUnit:qsList:title:tableQs')}`
|
||||||
this.config.visible = true
|
this.config.visible = true
|
||||||
},
|
},
|
||||||
|
getStringResult(arr, dictionaryCode) {
|
||||||
|
let newArr = arr.map(i => this.$fd(dictionaryCode, i))
|
||||||
|
let delimiter = this.$i18n.locale === 'zh' ? ',' : ', '
|
||||||
|
return newArr.join(delimiter)
|
||||||
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.getList()
|
this.getList()
|
||||||
|
|
|
@ -3,7 +3,9 @@
|
||||||
<!-- 搜索框 -->
|
<!-- 搜索框 -->
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<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="$t('trials:auditRecord:table:criterion')"
|
||||||
|
>
|
||||||
<el-input v-model="searchData.CriterionName" clearable style="width:120px;" />
|
<el-input v-model="searchData.CriterionName" clearable style="width:120px;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -102,6 +104,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)"
|
||||||
>
|
>
|
||||||
删除
|
删除
|
||||||
|
@ -131,7 +134,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"
|
||||||
|
@ -143,7 +146,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"
|
||||||
|
@ -188,6 +191,7 @@ export default {
|
||||||
addDialog: { title: '', visible: false }
|
addDialog: { title: '', visible: false }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
@ -219,7 +223,7 @@ export default {
|
||||||
deleteReadingQuestionCriterionSystem(row.Id).then(res => {
|
deleteReadingQuestionCriterionSystem(row.Id).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message.success('保存成功!')
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
|
@ -246,7 +250,7 @@ export default {
|
||||||
setSystemReadingQuestionCriterionIsCompleteConfig(params).then(res => {
|
setSystemReadingQuestionCriterionIsCompleteConfig(params).then(res => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.$message.success('保存成功!')
|
this.$message.success(this.$t('common:message:savedSuccessfully'))
|
||||||
this.getList()
|
this.getList()
|
||||||
}
|
}
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div v-loading="loading" style="min-height:400px;">
|
<div v-loading="loading" style="min-height:400px;padding:20px">
|
||||||
<el-form
|
<el-form
|
||||||
v-if="isRender"
|
v-if="isRender"
|
||||||
ref="questions"
|
ref="questions"
|
||||||
|
@ -25,18 +25,13 @@
|
||||||
|
|
||||||
import { getSystemReadingQuestion } from '@/api/dictionary'
|
import { getSystemReadingQuestion } from '@/api/dictionary'
|
||||||
import CriterionFormItem from './CriterionFormItem'
|
import CriterionFormItem from './CriterionFormItem'
|
||||||
|
import {mapMutations} from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EcrfPreview',
|
name: 'EcrfPreview',
|
||||||
components: {
|
components: {
|
||||||
CriterionFormItem
|
CriterionFormItem
|
||||||
},
|
},
|
||||||
props: {
|
|
||||||
criterionId: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
|
@ -49,9 +44,14 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.$i18n.locale = this.$route.query.lang
|
||||||
|
this.setLanguage(this.$route.query.lang)
|
||||||
|
this.$updateDictionary()
|
||||||
|
this.criterionId = this.$route.query.SystemReadingCriterionId
|
||||||
this.getQuestions()
|
this.getQuestions()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations({ setLanguage: 'lang/setLanguage' }),
|
||||||
getQuestions() {
|
getQuestions() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
var param = {
|
var param = {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body">
|
||||||
<!-- 类型 -->
|
<!-- 类型 -->
|
||||||
<el-form-item label="病灶类型" prop="OrganType">
|
<el-form-item label="器官类型" prop="OrganType">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.OrganType"
|
v-model="form.OrganType"
|
||||||
>
|
>
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
>{{ item.label }}</el-radio>
|
>{{ item.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="序号">
|
<el-form-item label="序号" prop="ShowOrder">
|
||||||
<el-input v-model="form.ShowOrder" type="number" />
|
<el-input v-model="form.ShowOrder" type="number" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 描述 -->
|
<!-- 描述 -->
|
||||||
|
@ -135,7 +135,8 @@ export default {
|
||||||
Part: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] }],
|
Part: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] }],
|
||||||
TULOC: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] }],
|
TULOC: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] }],
|
||||||
Remark: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500`, trigger: ['blur', 'change'] }],
|
Remark: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500`, trigger: ['blur', 'change'] }],
|
||||||
IsLymphNodes: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }]
|
IsLymphNodes: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }],
|
||||||
|
ShowOrder: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] }]
|
||||||
},
|
},
|
||||||
lesionTypes: [],
|
lesionTypes: [],
|
||||||
loading: false,
|
loading: false,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<el-form :inline="true" size="mini">
|
<el-form :inline="true" size="mini">
|
||||||
<el-form-item label="器官类型">
|
<el-form-item label="器官类型">
|
||||||
<el-select v-model="searchData.OrganType" clearable style="width:130px;">
|
<el-select v-model="searchData.OrganType" clearable style="width:130px;">
|
||||||
<el-option v-for="item of CriterionDictionaryOrganTypeList.OrganType" :key="item.Id" :value="parseInt(item.Code)" :label="item.ValueCN" />
|
<el-option v-for="item of CriterionDictionaryOrganTypeList && CriterionDictionaryOrganTypeList.OrganType" :key="item.Id" :value="parseInt(item.Code)" :label="item.ValueCN" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="部位">
|
<el-form-item label="部位">
|
||||||
|
@ -357,9 +357,8 @@ export default {
|
||||||
watch: {
|
watch: {
|
||||||
list() {
|
list() {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if(this.$refs.organList){
|
if(!this.$refs.organList) return
|
||||||
this.$refs.organList.doLayout()
|
this.$refs.organList.doLayout()
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,9 +6,10 @@
|
||||||
size="small"
|
size="small"
|
||||||
:disabled="type === 'look'"
|
:disabled="type === 'look'"
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
label-width="120px"
|
label-width="130px"
|
||||||
>
|
>
|
||||||
<div class="base-dialog-body">
|
<div class="base-dialog-body" style="height: 550px; display:flex;flex-direction: column;">
|
||||||
|
<div style="height: 150px;">
|
||||||
<el-form-item label="类型" prop="Type">
|
<el-form-item label="类型" prop="Type">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.Type"
|
v-model="form.Type"
|
||||||
|
@ -16,10 +17,10 @@
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of $d.Criterion_Question_Type"
|
v-for="item of $d.Criterion_Question_Type"
|
||||||
|
v-show="item.value !== 'class' && item.value !== 'group' && item.value !== 'table' && item.value !== 'basicTable'"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:disabled="item.label === 'group' || item.label === 'table' || item.label === 'summary' || item.label === 'upload'"
|
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -27,6 +28,10 @@
|
||||||
v-if="form.Type !== 'group'"
|
v-if="form.Type !== 'group'"
|
||||||
label="问题名称"
|
label="问题名称"
|
||||||
prop="QuestionName"
|
prop="QuestionName"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
|
||||||
|
{ max: form.Type === 'summary' ? 300 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 300 : 100}` }
|
||||||
|
]"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.QuestionName"
|
v-model="form.QuestionName"
|
||||||
|
@ -36,152 +41,17 @@
|
||||||
v-if="form.Type !== 'group'"
|
v-if="form.Type !== 'group'"
|
||||||
label="问题名称(EN)"
|
label="问题名称(EN)"
|
||||||
prop="QuestionEnName"
|
prop="QuestionEnName"
|
||||||
|
:rules="[
|
||||||
|
{ max: form.Type === 'summary' ? 300 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 300 : 100}` }
|
||||||
|
]"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.QuestionEnName"
|
v-model="form.QuestionEnName"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 选项类型 -->
|
</div>
|
||||||
<el-form-item
|
<div style="flex: 1;overflow-y:auto;">
|
||||||
v-if="form.Type === 'select' || form.Type === 'radio' || form.Type === 'input'"
|
<el-divider content-position="left">公有属性</el-divider>
|
||||||
label="选项类型"
|
|
||||||
prop="TableQuestionType"
|
|
||||||
:rules="[
|
|
||||||
{ required: form.Type !== 'input', message: '请选择'}
|
|
||||||
]"
|
|
||||||
>
|
|
||||||
<el-radio-group
|
|
||||||
v-model="form.TableQuestionType"
|
|
||||||
@change="((val)=>{tableQuestionTypeChange(val, form)})"
|
|
||||||
>
|
|
||||||
<el-radio
|
|
||||||
v-for="item of $d.TableQuestionType"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.value"
|
|
||||||
:disabled="form.Type === 'radio' && (item.value===1 || item.value===2)"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.TableQuestionType === 0"
|
|
||||||
label="选项"
|
|
||||||
prop="TypeValue"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="form.TypeValue"
|
|
||||||
placeholder="选项请用‘|’分割多个选项"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 关联表 -->
|
|
||||||
<!-- <el-form-item
|
|
||||||
v-if="form.TableQuestionType === 1"
|
|
||||||
label="关联表"
|
|
||||||
prop="DataTableName"
|
|
||||||
>
|
|
||||||
<el-select
|
|
||||||
v-model="form.DataTableName"
|
|
||||||
clearable
|
|
||||||
@change="((val)=>{dataTableNameChange(val, form)})"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item of tblOptions"
|
|
||||||
:key="`RelevanceId${item.QuestionId}`"
|
|
||||||
:label="item.QuestionName"
|
|
||||||
:value="item.QuestionId"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item> -->
|
|
||||||
|
|
||||||
<!-- 数值类型 -->
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
|
||||||
label="数值类型"
|
|
||||||
prop="ValueType"
|
|
||||||
:rules="[
|
|
||||||
{ required: true, message: '请选择'}
|
|
||||||
]"
|
|
||||||
>
|
|
||||||
<el-radio-group
|
|
||||||
v-model="form.ValueType"
|
|
||||||
>
|
|
||||||
<el-radio
|
|
||||||
v-for="item of $d.ValueType"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.value"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<!-- 数值单位 -->
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
|
||||||
label="单位"
|
|
||||||
>
|
|
||||||
<el-radio-group
|
|
||||||
v-model="form.Unit"
|
|
||||||
>
|
|
||||||
<el-radio
|
|
||||||
v-for="item of $d.ValueUnit"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.value"
|
|
||||||
>
|
|
||||||
{{ item.label }}
|
|
||||||
</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- 关联字段 -->
|
|
||||||
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.TableQuestionType === 2"
|
|
||||||
label="关联问题"
|
|
||||||
prop="DependParentId"
|
|
||||||
>
|
|
||||||
<el-select
|
|
||||||
v-model="form.DependParentId"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item of parentOptions"
|
|
||||||
:key="`DependParentId${item.QuestionId}`"
|
|
||||||
:label="item.QuestionName"
|
|
||||||
:value="item.QuestionId"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.TableQuestionType === 1 || !!form.DependParentId"
|
|
||||||
label="关联字段"
|
|
||||||
prop="DataTableColumn"
|
|
||||||
>
|
|
||||||
<el-select v-model="form.DataTableColumn">
|
|
||||||
<el-option
|
|
||||||
v-for="item of CriterionDictionaryList.OrganColumn"
|
|
||||||
:key="item.Id"
|
|
||||||
:label="item.ValueCN"
|
|
||||||
:value="item.Code"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item
|
|
||||||
v-if="form.TableQuestionType === 3 || form.TableQuestionType === 2"
|
|
||||||
label="关联字典"
|
|
||||||
prop="DictionaryCode"
|
|
||||||
:rules="[{ required: form.TableQuestionType === 3, message: '请选择', trigger: 'blur' }]"
|
|
||||||
>
|
|
||||||
<el-select v-model="form.DictionaryCode">
|
|
||||||
<el-option
|
|
||||||
v-for="item of dicList"
|
|
||||||
:key="item.Id"
|
|
||||||
:label="item.Code"
|
|
||||||
:value="item.Code"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item v-if="form.Type !== 'group'" label="是否显示" prop="ShowQuestion">
|
<el-form-item v-if="form.Type !== 'group'" label="是否显示" prop="ShowQuestion">
|
||||||
<el-radio-group
|
<el-radio-group
|
||||||
v-model="form.ShowQuestion"
|
v-model="form.ShowQuestion"
|
||||||
|
@ -217,17 +87,17 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 显示时依赖父问题触发值 -->
|
<!-- 显示时依赖父问题触发值 -->
|
||||||
<el-form-item v-if="form.ParentId && form.ShowQuestion===1" label="显示触发值" prop="ParentTriggerValue">
|
<el-form-item v-if="form.ParentId && form.ShowQuestion===1" label="显示触发值" prop="ParentTriggerValueList">
|
||||||
<el-select v-model="form.ParentTriggerValue">
|
<el-select v-model="form.ParentTriggerValueList" clearable multiple>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of parentTriggerValOptions"
|
v-for="item of parentTriggerValOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="String(item.value)"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="form.Type !== 'group' && form.Type !== 'table'" label="是否必填" prop="IsRequired">
|
<el-form-item v-if="form.Type !== 'group' && form.Type !== 'table' && form.Type !== 'basicTable' && form.Type !== 'summary'" label="是否必填" prop="IsRequired">
|
||||||
<el-radio-group
|
<el-radio-group
|
||||||
v-model="form.IsRequired"
|
v-model="form.IsRequired"
|
||||||
:disabled="form.IsJudgeQuestion===true || form.ShowQuestion===2"
|
:disabled="form.IsJudgeQuestion===true || form.ShowQuestion===2"
|
||||||
|
@ -265,52 +135,99 @@
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.RelevanceId && form.IsRequired === 1"
|
v-if="form.RelevanceId && form.IsRequired === 1"
|
||||||
label="必填触发值"
|
label="必填触发值"
|
||||||
prop="RelevanceValue"
|
prop="RelevanceValueList"
|
||||||
>
|
>
|
||||||
<el-select v-model="form.RelevanceValue">
|
<el-select v-model="form.RelevanceValueList" clearable multiple>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of reParentTriggerValOptions"
|
v-for="item of reParentTriggerValOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="String(item.value)"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- 导出标识 -->
|
||||||
<el-form-item
|
<el-form-item
|
||||||
v-if="form.Type !== 'group'"
|
:label="$t('trials:readingUnit:qsList:title:ExportIdentification')" prop="ExportIdentification"
|
||||||
|
v-if="form.Type === 'radio' || form.Type === 'select' || form.Type === 'input' || form.Type === 'textarea' || form.Type === 'number' || form.Type === 'class' || form.Type === 'calculation'"
|
||||||
|
>
|
||||||
|
<el-radio-group
|
||||||
|
v-model="form.ExportIdentification"
|
||||||
|
@change="
|
||||||
|
(val) => {
|
||||||
|
form.ExportResult = []
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<el-radio
|
||||||
|
v-for="item of $d.ExportIdentification"
|
||||||
|
:key="`ExportIdentification${item.value}`"
|
||||||
|
:label="item.value"
|
||||||
|
>{{ item.label }}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 导出结果 -->
|
||||||
|
<el-form-item :label="$t('trials:readingUnit:qsList:title:ExportResult')" v-if="form.ExportIdentification" prop="ExportResult">
|
||||||
|
<el-select v-model="form.ExportResult" multiple>
|
||||||
|
<el-option
|
||||||
|
v-for="item in CriterionDictionaryList.ExportResult"
|
||||||
|
:key="`ExportResult${item.value}`"
|
||||||
|
:value="parseInt(item.Code)"
|
||||||
|
:label="$i18n.locale === 'zh' ? item.ValueCN : item.Value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
label="限制编辑"
|
||||||
|
v-if="form.Type !== 'summary'"
|
||||||
|
prop="LimitEdit"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<el-radio-group v-model="form.LimitEdit">
|
||||||
|
<el-radio v-for="item of $d.LimitEdit" :key="item.value" :label="item.value">{{ item.label }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type !== 'group' && form.Type !== 'summary'"
|
||||||
label="问题标识"
|
label="问题标识"
|
||||||
prop="QuestionMark"
|
prop="QuestionMark"
|
||||||
>
|
>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.QuestionMark"
|
v-model="form.QuestionMark"
|
||||||
|
clearable
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item of CriterionDictionaryList.QuestionMark"
|
v-for="item of CriterionDictionaryList.QuestionMark"
|
||||||
:key="item.Id"
|
:key="item.Id"
|
||||||
:value="parseInt(item.Code)"
|
:value="parseInt(item.Code)"
|
||||||
:label="item.ValueCN"
|
:label="$i18n.locale === 'zh' ? item.ValueCN : item.Value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
<el-form-item v-if="form.Type === 'upload'" label="最大上传个数">
|
label="注释"
|
||||||
<el-input-number
|
prop="Remark"
|
||||||
v-model="form.ImageCount"
|
>
|
||||||
controls-position="right"
|
<el-input v-model="form.Remark" />
|
||||||
:min="1"
|
|
||||||
:max="10"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
<el-form-item label="序号" prop="ShowOrder">
|
label="序号"
|
||||||
|
prop="ShowOrder"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
|
||||||
|
]"
|
||||||
|
>
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="form.ShowOrder"
|
v-model="form.ShowOrder"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
:min="0"
|
:min="0"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="重复出现最大次数">
|
<el-form-item label="重复出现最大次数" v-if="form.Type !== 'summary' && form.Type !== 'screenshot' && form.Type !== 'upload'">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="form.MaxRowCount"
|
v-model="form.MaxRowCount"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
|
@ -318,16 +235,279 @@
|
||||||
:max="10"
|
:max="10"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="限制编辑">
|
<el-form-item label="问题分类" v-if="criterionType === 2">
|
||||||
<el-radio-group v-model="form.LimitEdit">
|
<el-select v-model="form.QuestionClassify" clearable>
|
||||||
<el-radio v-for="item of $d.LimitEdit" :label="item.value">{{ item.label }}</el-radio>
|
<el-option
|
||||||
|
v-for="item of $d.QuestionClassify"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-divider content-position="left">私有属性</el-divider>
|
||||||
|
<!-- 选项类型 -->
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'select' || form.Type === 'radio' || form.Type === 'input'"
|
||||||
|
label="选项类型"
|
||||||
|
prop="TableQuestionType"
|
||||||
|
:rules="[
|
||||||
|
{ required: form.Type !== 'input', message: '请选择'}
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<el-radio-group
|
||||||
|
v-model="form.TableQuestionType"
|
||||||
|
@change="((val)=>{tableQuestionTypeChange(val, form)})"
|
||||||
|
>
|
||||||
|
<el-radio
|
||||||
|
v-for="item of $d.TableQuestionType"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.value"
|
||||||
|
:disabled="(form.Type === 'radio' && (item.value===1 || item.value===2)) || (form.Type === 'input' && (item.value===0 || item.value===3))"
|
||||||
|
>
|
||||||
|
{{ item.label }}
|
||||||
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="全局阅片是否显示">
|
|
||||||
<el-radio-group v-model="form.GlobalReadingShowType">
|
<el-form-item
|
||||||
<el-radio v-for="item of $d.GlobalReadingShowType" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
|
v-if="form.TableQuestionType === 0 || form.Type === 'class'"
|
||||||
|
label="选项"
|
||||||
|
prop="TypeValue"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="form.TypeValue"
|
||||||
|
placeholder="选项请用‘|’分割多个选项"
|
||||||
|
@change="typeValueChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.TableQuestionType === 2"
|
||||||
|
label="关联问题"
|
||||||
|
prop="DependParentId"
|
||||||
|
>
|
||||||
|
<el-select
|
||||||
|
v-model="form.DependParentId"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item of parentOptions"
|
||||||
|
:key="`DependParentId${item.QuestionId}`"
|
||||||
|
:label="item.QuestionName"
|
||||||
|
:value="item.QuestionId"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.TableQuestionType === 1 || !!form.DependParentId"
|
||||||
|
label="关联字段"
|
||||||
|
prop="DataTableColumn"
|
||||||
|
>
|
||||||
|
<el-select v-model="form.DataTableColumn">
|
||||||
|
<el-option
|
||||||
|
v-for="item of CriterionDictionaryList.OrganColumn"
|
||||||
|
:key="item.Id"
|
||||||
|
:label="$i18n.locale === 'zh' ? item.ValueCN : item.Value"
|
||||||
|
:value="item.Code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.TableQuestionType === 3 || form.TableQuestionType === 2"
|
||||||
|
label="关联字典"
|
||||||
|
prop="DictionaryCode"
|
||||||
|
:rules="[{ required: form.TableQuestionType === 3, message: '请选择', trigger: 'blur' }]"
|
||||||
|
>
|
||||||
|
<el-select v-model="form.DictionaryCode">
|
||||||
|
<el-option
|
||||||
|
v-for="item of dicList"
|
||||||
|
:key="item.Id"
|
||||||
|
:label="item.Code"
|
||||||
|
:value="item.Code"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-if="form.Type === 'select' || form.Type === 'radio'" label="高亮标记值" prop="HighlightAnswerList">
|
||||||
|
<el-select v-model="form.HighlightAnswerList" clearable multiple>
|
||||||
|
<template v-if="form.TypeValue">
|
||||||
|
<el-option
|
||||||
|
v-for="item of form.TypeValue.split('|')"
|
||||||
|
:key="item"
|
||||||
|
:label="item"
|
||||||
|
:value="item"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
<template v-else-if="form.DictionaryCode">
|
||||||
|
<el-option
|
||||||
|
v-for="item of $d[form.DictionaryCode]"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value.toString()"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'input' || form.Type === 'textarea'"
|
||||||
|
label="最大长度"
|
||||||
|
prop="MaxAnswerLength"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<el-input-number v-model="form.MaxAnswerLength" :min="0"></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 是否复制前值 -->
|
||||||
|
<!-- <el-form-item
|
||||||
|
label="是否复制前值"
|
||||||
|
v-if="form.Type !== 'summary'"
|
||||||
|
prop="IsCopy"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<el-switch
|
||||||
|
v-model="form.IsCopy"
|
||||||
|
/>
|
||||||
|
</el-form-item> -->
|
||||||
|
<!-- 数值类型 -->
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
||||||
|
label="数值类型"
|
||||||
|
prop="ValueType"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: '请选择'}
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<el-radio-group
|
||||||
|
v-model="form.ValueType"
|
||||||
|
>
|
||||||
|
<el-radio
|
||||||
|
v-for="item of $d.ValueType"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.value"
|
||||||
|
>
|
||||||
|
{{ item.label }}
|
||||||
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<!-- 数值单位 -->
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'number' || form.Type === 'calculation'"
|
||||||
|
label="单位"
|
||||||
|
prop="Unit"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<el-radio-group
|
||||||
|
v-model="form.Unit"
|
||||||
|
>
|
||||||
|
<el-radio
|
||||||
|
v-for="item of $d.ValueUnit"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.value"
|
||||||
|
>
|
||||||
|
{{ item.label }}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'upload'"
|
||||||
|
label="最大上传个数"
|
||||||
|
prop="ImageCount"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.ImageCount"
|
||||||
|
controls-position="right"
|
||||||
|
:min="0"
|
||||||
|
:max="10"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 文件类型 -->
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'upload'"
|
||||||
|
label="文件类型"
|
||||||
|
prop="FileType"
|
||||||
|
:rules="[{ type: 'array', required: true, message: this.$t('common:ruleMessage:specify'), trigger: [ 'change'] }]"
|
||||||
|
>
|
||||||
|
<el-checkbox-group
|
||||||
|
v-model="form.FileType"
|
||||||
|
@change="(v) => {
|
||||||
|
if (v && v.includes('-1')) {
|
||||||
|
form.FileType = ['-1']
|
||||||
|
}
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<el-checkbox
|
||||||
|
v-for="item of $d.fileType"
|
||||||
|
:key="`fileType${item.value}`"
|
||||||
|
:value="item.value + ''"
|
||||||
|
:label="item.value"
|
||||||
|
:disabled="form.FileType && form.FileType.includes('-1') && item.value !== '-1'"
|
||||||
|
>
|
||||||
|
{{ item.label }}
|
||||||
|
</el-checkbox>
|
||||||
|
</el-checkbox-group>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- 分类 -->
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'class'"
|
||||||
|
label="分类数据来源"
|
||||||
|
prop="ClassifyTableQuestionId"
|
||||||
|
>
|
||||||
|
<el-select v-model="form.ClassifyTableQuestionId" clearable>
|
||||||
|
<el-option v-for="item of Questions" :key="item.Id" :label="item.QuestionName"
|
||||||
|
:value="item.Id"/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="form.Type === 'class'"
|
||||||
|
label="分类算法"
|
||||||
|
prop="ClassifyAlgorithms"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<el-table
|
||||||
|
ref="CalculateTable"
|
||||||
|
:data="ClassifyAlgorithmsList"
|
||||||
|
style="margin: 10px;width: 100%"
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
<!-- 运算类型 -->
|
||||||
|
<el-table-column
|
||||||
|
:label="$t('trials:readingUnit:label:label')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="70"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.label }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 运算类型 -->
|
||||||
|
<el-table-column
|
||||||
|
:label="$t('trials:readingUnit:label:gt')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="128"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input-number v-model="scope.row.gt"></el-input-number>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 运算类型 -->
|
||||||
|
<el-table-column
|
||||||
|
:label="$t('trials:readingUnit:label:lt')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
min-width="128"
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input-number v-model="scope.row.lt"></el-input-number>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -349,7 +529,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { addOrUpdateReadingTableQuestionSystem, getReadingTableOtherQuestionSystem } from '@/api/trials'
|
import { addOrUpdateReadingTableQuestionSystem, getReadingTableOtherQuestionSystem } from '@/api/trials'
|
||||||
import { getBasicConfigSelect, getCriterionDictionaryList, getCriterionDictionary } from '@/api/dictionary'
|
import { getBasicConfigSelect, getCriterionDictionaryList, getCriterionDictionary, getSystemCalculateTableQuestions } from '@/api/dictionary'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddOrUpdateTableQs',
|
name: 'AddOrUpdateTableQs',
|
||||||
|
@ -366,6 +546,10 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
criterionType: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
|
@ -386,6 +570,7 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
ClassifyAlgorithmsList: [],
|
||||||
form: {
|
form: {
|
||||||
Id: '',
|
Id: '',
|
||||||
ReadingQuestionId: '',
|
ReadingQuestionId: '',
|
||||||
|
@ -398,11 +583,13 @@ export default {
|
||||||
ParentId: '',
|
ParentId: '',
|
||||||
ParentTriggerValue: '',
|
ParentTriggerValue: '',
|
||||||
ShowOrder: 0,
|
ShowOrder: 0,
|
||||||
ShowQuestion: null,
|
ShowQuestion: 0,
|
||||||
IsRequired: true,
|
IsRequired: 2,
|
||||||
Remark: '',
|
Remark: '',
|
||||||
RelevanceId: '',
|
RelevanceId: '',
|
||||||
RelevanceValue: '',
|
RelevanceValue: '',
|
||||||
|
RelevanceValueList: [],
|
||||||
|
ParentTriggerValueList: [],
|
||||||
DataTableName: '',
|
DataTableName: '',
|
||||||
DataTableColumn: '',
|
DataTableColumn: '',
|
||||||
DictionaryCode: '',
|
DictionaryCode: '',
|
||||||
|
@ -410,17 +597,26 @@ export default {
|
||||||
MaxRowCount: null,
|
MaxRowCount: null,
|
||||||
DependParentId: '',
|
DependParentId: '',
|
||||||
QuestionMark: null,
|
QuestionMark: null,
|
||||||
LimitEdit: null,
|
LimitEdit: 0,
|
||||||
GlobalReadingShowType: null
|
// GlobalReadingShowType: null,
|
||||||
|
QuestionClassify: null,
|
||||||
|
HighlightAnswerList: [],
|
||||||
|
MaxAnswerLength: null,
|
||||||
|
IsCopy: false,
|
||||||
|
FileType: [],
|
||||||
|
ImageCount: 0,
|
||||||
|
ClassifyTableQuestionId: null,
|
||||||
|
ClassifyAlgorithms: null,
|
||||||
|
ExportIdentification: 0,
|
||||||
|
ExportResult: []
|
||||||
// IsEnable: true
|
// IsEnable: true
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
Type: [
|
Type: [
|
||||||
{ required: true, message: '请选择', trigger: 'blur' }
|
{ required: true, message: '请选择', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
QuestionName: [{ required: true, message: '请注明', trigger: 'blur' },
|
// QuestionName: [{ required: true, message: '请注明', trigger: 'blur' },
|
||||||
{ max: 300, message: '最大长度为 300' }],
|
// { max: 300, message: '最大长度为 300' }],
|
||||||
|
|
||||||
TypeValue: [{ required: true, message: '请注明', trigger: 'blur' },
|
TypeValue: [{ required: true, message: '请注明', trigger: 'blur' },
|
||||||
{ validator: validateTypeVal, trigger: 'blur' },
|
{ validator: validateTypeVal, trigger: 'blur' },
|
||||||
|
@ -428,15 +624,21 @@ export default {
|
||||||
ShowQuestion: [{ required: true, message: '请选择', trigger: 'blur' }],
|
ShowQuestion: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
IsRequired: [{ required: true, message: '请选择', trigger: 'blur' }],
|
IsRequired: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
ParentId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
ParentId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
ParentTriggerValue: [
|
ParentTriggerValueList: [
|
||||||
{ required: true, message: '请选择', trigger: 'blur' }
|
{ required: true, message: '请选择', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
RelevanceId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
RelevanceId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
RelevanceValue: [{ required: true, message: '请选择', trigger: 'blur' }],
|
RelevanceValueList: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
DataTableName: [{ required: true, message: '请选择', trigger: 'blur' }],
|
DataTableName: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
DataTableColumn: [{ required: true, message: '请选择', trigger: 'blur' }],
|
DataTableColumn: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
// DictionaryCode: [{ required: true, message: '请选择', trigger: 'blur' }],
|
// DictionaryCode: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
DependParentId: [{ required: true, message: '请选择', trigger: 'blur' }]
|
DependParentId: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||||
|
ExportIdentification: [
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' },
|
||||||
|
],
|
||||||
|
ExportResult: [
|
||||||
|
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' },
|
||||||
|
]
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
parentOptions: [],
|
parentOptions: [],
|
||||||
|
@ -445,18 +647,43 @@ export default {
|
||||||
tblOptions: [],
|
tblOptions: [],
|
||||||
colOptions: [],
|
colOptions: [],
|
||||||
dicList: [],
|
dicList: [],
|
||||||
CriterionDictionaryList: []
|
CriterionDictionaryList: [],
|
||||||
|
Questions: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.initForm()
|
this.initForm()
|
||||||
this.getCriterionDictionary()
|
this.getCriterionDictionary()
|
||||||
|
this.getCalculateQuestions('number')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
typeValueChange(v) {
|
||||||
|
this.form.DefaultValue = null
|
||||||
|
var list = v.split('|')
|
||||||
|
this.form.ClassifyAlgorithms = null
|
||||||
|
var arr = Object.assign([], this.ClassifyAlgorithmsList)
|
||||||
|
this.ClassifyAlgorithmsList = list.map((res, i) => {
|
||||||
|
return {
|
||||||
|
label: res,
|
||||||
|
lt: arr[i] ? arr[i].lt : 0,
|
||||||
|
gt: arr[i] ? arr[i].gt : 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getCalculateQuestions(type) {
|
||||||
|
getSystemCalculateTableQuestions({
|
||||||
|
questionId: this.readingQuestionId,
|
||||||
|
type: type
|
||||||
|
}).then(res => {
|
||||||
|
if (type === 'number') {
|
||||||
|
this.Questions = res.Result
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
getCriterionDictionary() {
|
getCriterionDictionary() {
|
||||||
getCriterionDictionary({
|
getCriterionDictionary({
|
||||||
ReadingCriterionId: this.criterionId,
|
ReadingCriterionId: this.criterionId,
|
||||||
DictionaryCodeList: ['QuestionMark', 'OrganColumn']
|
DictionaryCodeList: ['QuestionMark', 'OrganColumn', 'ExportResult']
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
this.CriterionDictionaryList = res.Result
|
this.CriterionDictionaryList = res.Result
|
||||||
})
|
})
|
||||||
|
@ -467,9 +694,15 @@ export default {
|
||||||
if (Object.keys(this.data).length > 0) {
|
if (Object.keys(this.data).length > 0) {
|
||||||
for (const k in this.form) {
|
for (const k in this.form) {
|
||||||
if (this.data.hasOwnProperty(k)) {
|
if (this.data.hasOwnProperty(k)) {
|
||||||
|
if (k === 'ClassifyAlgorithms' && this.data[k] !== undefined && this.data[k] !== '') {
|
||||||
|
this.ClassifyAlgorithmsList = JSON.parse(this.data[k])
|
||||||
|
} else if(k === 'FileType'){
|
||||||
|
this.form[k] = this.data[k].split(',')
|
||||||
|
} else {
|
||||||
this.form[k] = this.data[k]
|
this.form[k] = this.data[k]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (this.form.ParentId) {
|
if (this.form.ParentId) {
|
||||||
var index = this.parentOptions.findIndex(item => {
|
var index = this.parentOptions.findIndex(item => {
|
||||||
|
@ -492,12 +725,13 @@ export default {
|
||||||
return item.QuestionId === this.form.RelevanceId
|
return item.QuestionId === this.form.RelevanceId
|
||||||
})
|
})
|
||||||
if (i !== -1) {
|
if (i !== -1) {
|
||||||
if (this.parentOptions[index].QuestionGenre === 3) {
|
if (this.parentOptions[i].QuestionGenre === 3) {
|
||||||
this.reParentTriggerValOptions = this.$d[this.parentOptions[index].DictionaryCode]
|
console.log(this.$d[this.parentOptions[i].DictionaryCode])
|
||||||
|
this.reParentTriggerValOptions = this.$d[this.parentOptions[i].DictionaryCode]
|
||||||
} else {
|
} else {
|
||||||
const options = []
|
const options = []
|
||||||
this.parentOptions[index].TypeValue.split('|').forEach((item, index) => {
|
this.parentOptions[i].TypeValue.split('|').forEach((item, index) => {
|
||||||
options.push({ id: index, label: item, value: item })
|
options.push({ id: i, label: item, value: item })
|
||||||
})
|
})
|
||||||
this.reParentTriggerValOptions = options
|
this.reParentTriggerValOptions = options
|
||||||
}
|
}
|
||||||
|
@ -509,9 +743,15 @@ export default {
|
||||||
this.$refs.tableQsForm.validate(valid => {
|
this.$refs.tableQsForm.validate(valid => {
|
||||||
if (!valid) return
|
if (!valid) return
|
||||||
this.loading = true
|
this.loading = true
|
||||||
|
this.form.ClassifyAlgorithms = JSON.stringify(this.ClassifyAlgorithmsList)
|
||||||
this.form.SystemCriterionId = this.criterionId
|
this.form.SystemCriterionId = this.criterionId
|
||||||
this.form.ReadingQuestionId = this.readingQuestionId
|
this.form.ReadingQuestionId = this.readingQuestionId
|
||||||
addOrUpdateReadingTableQuestionSystem(this.form).then(res => {
|
var params = Object.assign({}, this.form)
|
||||||
|
if (this.form.Type !== 'upload') {
|
||||||
|
this.form.ImageCount = 0
|
||||||
|
}
|
||||||
|
params.FileType = this.form.FileType.join(',')
|
||||||
|
addOrUpdateReadingTableQuestionSystem(params).then(res => {
|
||||||
this.$emit('getList')
|
this.$emit('getList')
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
|
@ -589,8 +829,10 @@ export default {
|
||||||
var index = this.parentOptions.findIndex(item => {
|
var index = this.parentOptions.findIndex(item => {
|
||||||
return item.QuestionId === val
|
return item.QuestionId === val
|
||||||
})
|
})
|
||||||
|
console.log(this.$d[this.parentOptions[index].DictionaryCode], this.parentOptions[index].QuestionGenre)
|
||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
if (this.parentOptions[index].QuestionGenre === 3) {
|
if (this.parentOptions[index].QuestionGenre === 3) {
|
||||||
|
console.log(this.$d[this.parentOptions[index].DictionaryCode])
|
||||||
this.reParentTriggerValOptions = this.$d[this.parentOptions[index].DictionaryCode]
|
this.reParentTriggerValOptions = this.$d[this.parentOptions[index].DictionaryCode]
|
||||||
} else {
|
} else {
|
||||||
const options = []
|
const options = []
|
||||||
|
@ -622,14 +864,34 @@ export default {
|
||||||
form.DataTableColumn = ''
|
form.DataTableColumn = ''
|
||||||
},
|
},
|
||||||
qsTypeChange(val, form) {
|
qsTypeChange(val, form) {
|
||||||
|
if (val === 'number' || val === 'calculation') {
|
||||||
|
form.Unit = 0
|
||||||
|
} else {
|
||||||
|
form.Unit = null
|
||||||
|
}
|
||||||
|
if (val === 'input' || val === 'textarea') {
|
||||||
|
form.MaxAnswerLength = 500
|
||||||
|
} else {
|
||||||
|
form.MaxAnswerLength = null
|
||||||
|
}
|
||||||
form.TypeValue = ''
|
form.TypeValue = ''
|
||||||
form.ValueType = ''
|
form.ValueType = ''
|
||||||
form.Unit = ''
|
form.IsRequired = 2
|
||||||
form.TableQuestionType = null
|
form.TableQuestionType = null
|
||||||
form.DependParentId = ''
|
form.DependParentId = ''
|
||||||
form.DataTableColumn = ''
|
form.DataTableColumn = ''
|
||||||
form.DataTableName = ''
|
form.DataTableName = ''
|
||||||
form.DictionaryCode = ''
|
form.DictionaryCode = ''
|
||||||
|
form.MaxRowCount = null
|
||||||
|
form.QuestionClassify = null
|
||||||
|
form.HighlightAnswerList = []
|
||||||
|
form.IsCopy = false
|
||||||
|
form.FileType = []
|
||||||
|
form.ImageCount = null
|
||||||
|
form.ClassifyTableQuestionId = null
|
||||||
|
form.ClassifyAlgorithms = null
|
||||||
|
form.ExportIdentification = 0
|
||||||
|
form.ExportResult = []
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
this.$emit('close')
|
this.$emit('close')
|
||||||
|
|
|
@ -27,12 +27,12 @@
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="QuestionName"
|
prop="QuestionName"
|
||||||
label="阅片问题"
|
label="问题名称"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="QuestionEnName"
|
prop="QuestionEnName"
|
||||||
label="阅片问题(EN)"
|
label="问题名称(EN)"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
{{ $fd('Criterion_Question_Type',scope.row.Type) }}
|
{{ $fd('Criterion_Question_Type',scope.row.Type) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
prop="TableQuestionType"
|
prop="TableQuestionType"
|
||||||
label="选项类型"
|
label="选项类型"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
|
@ -60,20 +60,7 @@
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
min-width="110"
|
min-width="110"
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
-->
|
||||||
prop="DependShowOrder"
|
|
||||||
label="关联问题"
|
|
||||||
show-overflow-tooltip
|
|
||||||
/>
|
|
||||||
<el-table-column
|
|
||||||
prop="DataTableColumn"
|
|
||||||
label="关联字段"
|
|
||||||
show-overflow-tooltip
|
|
||||||
>
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ $fd('OrganColumn',scope.row.DataTableColumn) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="ShowQuestion"
|
prop="ShowQuestion"
|
||||||
label="是否显示"
|
label="是否显示"
|
||||||
|
@ -94,7 +81,7 @@
|
||||||
{{ $fd('QuestionRequired',scope.row.IsRequired) }}
|
{{ $fd('QuestionRequired',scope.row.IsRequired) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
prop="IsJudgeQuestion"
|
prop="IsJudgeQuestion"
|
||||||
label="是否裁判问题"
|
label="是否裁判问题"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
|
@ -102,8 +89,8 @@
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ $fd('YesOrNo',scope.row.IsJudgeQuestion) }}
|
{{ $fd('YesOrNo',scope.row.IsJudgeQuestion) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column
|
<!-- <el-table-column
|
||||||
prop="ParentQuestionShowOrder"
|
prop="ParentQuestionShowOrder"
|
||||||
label="显示依赖父问题"
|
label="显示依赖父问题"
|
||||||
min-width="90"
|
min-width="90"
|
||||||
|
@ -124,8 +111,64 @@
|
||||||
prop="RelevanceValue"
|
prop="RelevanceValue"
|
||||||
label="必填触发值"
|
label="必填触发值"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
|
/> -->
|
||||||
|
<!-- 导出标识 -->
|
||||||
|
<!-- <el-table-column
|
||||||
|
prop="ExportIdentification"
|
||||||
|
:label="$t('trials:readingUnit:qsList:title:ExportIdentification')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('ExportIdentification', scope.row.ExportIdentification) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<!-- 问题标识 -->
|
||||||
|
<el-table-column
|
||||||
|
prop="QuestionMark"
|
||||||
|
label="问题标识"
|
||||||
|
width="140"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('QuestionMark', scope.row.QuestionMark) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 导出目标表格 -->
|
||||||
|
<el-table-column
|
||||||
|
prop="ExportResult"
|
||||||
|
:label="$t('trials:readingUnit:qsList:title:ExportResult')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ getStringResult(scope.row.ExportResult, 'ExportResult') }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 限制编辑 -->
|
||||||
|
<el-table-column
|
||||||
|
prop="LimitEdit"
|
||||||
|
:label="$t('trials:readingUnit:qsList:title:limitEdit')"
|
||||||
|
width="160"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('LimitEdit', scope.row.LimitEdit) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column
|
||||||
|
prop="DependShowOrder"
|
||||||
|
label="关联问题"
|
||||||
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
prop="DataTableColumn"
|
||||||
|
label="关联字段"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ $fd('OrganColumn',scope.row.DataTableColumn) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
|
<!-- <el-table-column
|
||||||
prop="ImageCount"
|
prop="ImageCount"
|
||||||
label="最大上传个数"
|
label="最大上传个数"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
|
@ -134,6 +177,7 @@
|
||||||
{{ scope.row.Type === 'upload'?scope.row.ImageCount:'' }}
|
{{ scope.row.Type === 'upload'?scope.row.ImageCount:'' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
-->
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="MaxRowCount"
|
prop="MaxRowCount"
|
||||||
label="最大行数"
|
label="最大行数"
|
||||||
|
@ -184,7 +228,7 @@
|
||||||
: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="650px"
|
||||||
append-to-body
|
append-to-body
|
||||||
custom-class="base-dialog-wrapper"
|
custom-class="base-dialog-wrapper"
|
||||||
>
|
>
|
||||||
|
@ -194,6 +238,7 @@
|
||||||
:type="type"
|
:type="type"
|
||||||
:reading-question-id="readingQuestionId"
|
:reading-question-id="readingQuestionId"
|
||||||
:criterion-id="criterionId"
|
:criterion-id="criterionId"
|
||||||
|
:criterionType="criterionType"
|
||||||
@close="addOrEdit.visible = false"
|
@close="addOrEdit.visible = false"
|
||||||
@getList="getList"
|
@getList="getList"
|
||||||
/>
|
/>
|
||||||
|
@ -225,7 +270,11 @@ export default {
|
||||||
criterionId: {
|
criterionId: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true
|
required: true
|
||||||
}
|
},
|
||||||
|
criterionType: {
|
||||||
|
type: Number,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -285,6 +334,11 @@ export default {
|
||||||
}).catch(() => { this.loading = false })
|
}).catch(() => { this.loading = false })
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
getStringResult(arr, dictionaryCode) {
|
||||||
|
let newArr = arr.map(i => this.$fd(dictionaryCode, i))
|
||||||
|
let delimiter = this.$i18n.locale === 'zh' ? ',' : ', '
|
||||||
|
return newArr.join(delimiter)
|
||||||
|
},
|
||||||
// 查询
|
// 查询
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
this.getList()
|
this.getList()
|
||||||
|
|
Loading…
Reference in New Issue