Commit 84341976 authored by miaojiale's avatar miaojiale

添加病例部分功能

parent 2686459c
......@@ -47,10 +47,10 @@
placeholder="标题"
></el-input>
</el-form-item>
<el-form-item label="标题缀">
<el-form-item label="标题缀">
<el-input
v-model="data.labelSuffix"
placeholder="标题缀"
placeholder="标题缀"
></el-input>
</el-form-item>
<el-form-item label="左侧内边距" v-if="data.type === 'group'">
......
......@@ -73,7 +73,7 @@
>
<el-form-item
:label="
item.label ? `${item.label}${item.labelSuffix || ':'}` : ''
item.label ? `${item.labelSuffix || ''}${item.label}` : ''
"
:prop="item.prop"
:label-width="
......
import request from "@/utils/request"
/* 数据概览 */
// 累计上报
export function getPatientPage(params = {}) {
return request({
url: "/disease-data/data/patient/page",
method: "get",
params,
})
}
......@@ -23,7 +23,6 @@
:is-show-important="isShowImportant"
></form-dynamic>
</div>
<div
v-else-if="item.type === 'group'"
v-show="item.display"
......@@ -214,6 +213,13 @@ export default {
</script>
<style lang="scss" scoped>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.25s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
opacity: 0;
}
::v-deep {
.row24.el-col-lg-12 {
&:nth-child(2n) {
......
......@@ -5,11 +5,18 @@
:style="item.styles"
:class="{ isDefects: defectsSet.includes(item.prop) }"
>
<el-col :lg="item.width" :style="{ height: item.type === 'upload' ? '116px' : '53px' }">
<el-col
:lg="item.width"
:style="{ height: item.type === 'upload' ? '116px' : '53px' }"
>
<div
v-if="showIndex || (configForms && configForms.showIndex)||item.showIndex"
v-if="
showIndex || (configForms && configForms.showIndex) || item.showIndex
"
:class="['formIndex', item.labelSuffix == '5' ? 'computeIndex' : '']"
>{{ item.labelSuffix || columnIndex + 1 }}</div>
>
{{ item.labelSuffix || columnIndex + 1 }}
</div>
<!-- <el-form-item
:label="
!hiddenLabel && item.label
......@@ -33,8 +40,12 @@
<el-upload-self
v-if="item.type === 'upload'"
v-model="form[item.prop]"
:btn-type="'text'"
v-bind="item"
:list-type="item.listType"
:upload-query="{ formId, patientId, prefix: item.prop }"
:accept="item.accept"
:limit="item.limit"
:disabled="item.disabled"
></el-upload-self>
<!-- 表单改文本 -->
......@@ -70,9 +81,14 @@
slot="append"
class="toothBit"
@click="openToothBit"
>{{ item.append || "牙位" }}</el-button>
<template v-else-if="item.append" slot="append">{{ item.append }}</template>
<template v-if="item.prepend" slot="prepend">{{ item.prepend }}</template>
>{{ item.append || "牙位" }}</el-button
>
<template v-else-if="item.append" slot="append">{{
item.append
}}</template>
<template v-if="item.prepend" slot="prepend">{{
item.prepend
}}</template>
</el-input>
<!-- 密码框 -->
......@@ -95,8 +111,12 @@
"
@blur="handleBlur"
>
<template v-if="item.append" slot="append">{{ item.append }}</template>
<template v-if="item.prepend" slot="prepend">{{ item.prepend }}</template>
<template v-if="item.append" slot="append">{{
item.append
}}</template>
<template v-if="item.prepend" slot="prepend">{{
item.prepend
}}</template>
</el-input>
<!-- 文本域 -->
......@@ -142,7 +162,8 @@
v-if="item.append"
class="el-input-group__append"
style="line-height: 28px"
>{{ item.append }}</span>
>{{ item.append }}</span
>
</div>
<!-- 单选框 -->
......@@ -156,7 +177,8 @@
v-for="(opt, optIndex) in item.dicData"
:key="optIndex"
:label="opt.value"
>{{ opt.label }}</el-radio>
>{{ opt.label }}</el-radio
>
</el-radio-group>
<!-- 多选框 -->
......@@ -170,7 +192,8 @@
v-for="(opt, optIndex) in item.dicData"
:key="optIndex"
:label="opt.value"
>{{ opt.label }}</el-checkbox>
>{{ opt.label }}</el-checkbox
>
</el-checkbox-group>
</template>
......@@ -342,7 +365,8 @@
<span
v-if="item.importantField && !getVwForm.detail"
class="important_field"
>{{ item.importantFieldDesc || "*" }}</span>
>{{ item.importantFieldDesc || "*" }}</span
>
</div>
</el-form-item>
</el-col>
......@@ -621,7 +645,7 @@ export default {
const values = dyMap[key]
let display = false
if (Array.isArray(val)) {
// 胃癌和进展性胃癌单独控制
// 胃癌和进展性胃癌控制显隐+自定义规则
if (
prop == "early_gastric_cancer" ||
prop == "period_gastric_cancer"
......@@ -639,7 +663,6 @@ export default {
: (flag = false)
}
}
console.log(targetItem)
display = flag
if (display) {
targetItem.rules[0] = {
......@@ -657,7 +680,6 @@ export default {
} else {
display = values.includes(val)
}
if (!display && targetItem) {
// 清空数据
const newVal = Array.isArray(this.form[targetItem.prop])
......@@ -667,13 +689,33 @@ export default {
: ""
this.$set(this.form, targetItem.prop, newVal)
}
if (this.type === "form") {
// 动态表格、表单处理
setTimeout(() => {
this.$set(this.form, "$_hidden" + targetItem.prop, !display)
}, 200)
} else {
// 家族史动态规则
if (
(prop == "is_first_degree" || prop == "is_other_sickness") &&
Boolean(display)
) {
targetItem.rules = [
{
required: true,
message: "请输入" + targetItem.label,
},
]
} else if (
prop == "is_first_degree" ||
prop == "is_other_sickness"
) {
this.$nextTick(() => {
targetItem.rules = []
})
}
// 内镜报告动态上传
if (prop == "check_type" && Boolean(display)) {
targetItem.rules[0] = {
required: true,
......@@ -682,6 +724,7 @@ export default {
} else if (prop == "check_type") {
targetItem.rules = []
}
this.$set(targetItem, "display", Boolean(display))
}
})
......
......@@ -212,12 +212,14 @@ export default {
}
},
nextTab() {
this.initforms()
const tabsLen = this.options.group.length
let active = Number(this.activeName)
let next = ++active
if (next >= tabsLen) next = 0
this.activeName = String(next)
this.$emit("scrollTop")
console.log(this.activeName)
},
imFieldChange(val = false) {
......
formJson = {
column: [],
labelPosition: "right",
labelSuffix: "",
labelWidth: 180,
gutter: 0,
menuBtn: true,
submitBtn: true,
submitText: "下一步",
emptyBtn: false,
emptyText: "清空",
nextTabBtn: true,
nextTabText: "下一页",
menuPosition: "center",
prevBtn: true,
group: [
{
label: "实验室检查",
prop: "1669789802778_28648",
arrow: true,
collapse: true,
display: true,
labelWidth: 8,
column: [
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "G_17",
label: "胃泌素17",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
required: true,
rules: [{ required: true, message: "胃泌素17必须填写" }],
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "PG_I",
label: "胃蛋白酶原I(PG I)",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
rules: [{ required: true, message: "胃蛋白酶原I(PG I)必须填写" }],
required: true,
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "PG_II",
label: "胃蛋白酶原II(PG II)",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
rules: [{ required: true, message: "胃蛋白酶原II(PG II)必须填写" }],
required: true,
},
{
type: "radio",
display: true,
importantField: false,
styles: {},
prop: "IgG",
label: "Hp抗体(IgG)检测",
fieldType: "varchar",
fieldLength: "255",
tableName: "实验室检查",
tableCode: "gas_exam",
tableId: "1597466741234040833",
notFilter: false,
cType: "",
subfield: false,
dicData: [
{
label: "阳性",
value: "2",
id: "1598150992287858689",
parentId: "",
},
{
label: "阴性",
value: "1",
id: "1598150963816923138",
parentId: "",
},
],
dynamicshSet: [],
dicType: "hp_antibody",
props: { label: "label", value: "value" },
disabled: false,
required: true,
rules: [{ required: true, message: "请选择Hp抗体(IgG)检测" }],
},
{
type: "upload",
disabled: false,
span: 24,
display: true,
styles: { fontSize: "18px", color: "#000" },
value: "标题",
prop: "1670203661414_80603",
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
showFileList: true,
multiple: false,
bucketName: "pacs",
limit: 1,
importantField: false,
dicType: "",
label: "图片上传",
listType: "picture",
loadText: "上传中...",
accept: "image/*",
required: true,
rules: [{ required: true, message: "图片上传必须填写" }],
},
],
},
],
}
<template>
<el-row class="el-upload-self">
<el-upload
ref="upload"
:multiple="multiple"
:class="[
'avatar-uploader',
value.length > 0 ? 'textUpload' : '',
accept == 'application/pdf' ? 'pdfUpload' : '',
]"
class="avatar-uploader"
ref="upload"
:action="action"
:headers="headers"
:list-type="listType"
......@@ -15,7 +11,6 @@
:on-remove="handleRemove"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:on-change="handleSelectFile"
:before-upload="beforeUpload"
:before-remove="beforeRemove"
:file-list="fileList"
......@@ -29,58 +24,23 @@
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</template>
<template v-else-if="value.length">
<el-button size="middle" type="text">点击更换</el-button>
</template>
<template v-else-if="listType === 'picture-card' && !value.length">
<el-button size="middle" type="text">点击上传</el-button>
<template v-else-if="listType === 'picture-card'">
<i class="el-icon-plus"></i>
</template>
<template v-else>
<!-- <el-button size="middle" :type="btnType">点击上传</el-button> -->
<!-- <img v-if="imageUrl" :src="imageUrl" class="avatar" /> -->
<el-button size="middle" type="text">点击上传</el-button>
<i class="el-icon-plus avatar-uploader-icon"></i>
</template>
<div slot="file" slot-scope="{ file }">
<img
v-if="accept == 'image/*'"
class="el-upload-list__item-thumbnail"
:src="file.url"
alt=""
/>
<span v-if="accept == 'image/*'" class="el-upload-list__item-actions">
<span
class="el-upload-list__item-preview"
@click="handlePreview(file)"
>
<i class="el-icon-download"></i>
</span>
</span>
<el-tooltip
class="item"
effect="dark"
:content="file.name"
placement="top"
>
<div
v-if="accept != 'image/*'"
style="cursor: pointer"
class="fileNameText"
@click="handlePreview(file)"
>
{{ file.name }}
</div>
</el-tooltip>
</div>
<!-- <div slot="tip" class="el-upload__tip">{{ tip }}</div> -->
<div slot="tip" class="el-upload__tip">{{ tip }}</div>
</el-upload>
<el-image
ref="image"
style="display: none"
:src="imgUrl"
:preview-src-list="previewList"
ref="image"
>
</el-image>
</el-row>
......@@ -90,7 +50,7 @@
import { getAccessToken } from "@/utils/accessToken"
import { delFile } from "@/api/file"
export default {
name: "ElUploadSelf",
name: "el-upload-self",
props: {
accept: { type: String, default: "image/*" },
disabled: {
......@@ -124,10 +84,7 @@ export default {
type: String,
default: "primary",
},
value: {
type: Array,
default: () => [],
}, //上传文件数组 绑定数组
value: Array, //上传文件数组 绑定数组
},
data() {
return {
......@@ -140,6 +97,20 @@ export default {
fileList: [],
}
},
watch: {
value: {
handler(newValue, oldValue) {
if (newValue === oldValue) return
this.fileList = newValue.map((_) => {
return {
name: _.file_name,
url: `https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucketName}/${_.uuidName}`,
}
})
},
immediate: true,
},
},
computed: {
headers() {
return {
......@@ -151,8 +122,7 @@ export default {
},
// 预览list
previewList() {
console.log(this.value)
if (!this.value.length || this.accept != "image/*") return []
if (!this.value) return []
return this.value.map((_) => {
return (
_.url ||
......@@ -161,27 +131,7 @@ export default {
})
},
},
watch: {
value: {
handler(newValue, oldValue) {
if (newValue === oldValue) return
this.fileList = newValue.map((_) => {
return {
name: _.fileName,
url: `https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucketName}/${_.uuidName}`,
}
})
},
immediate: true,
},
},
methods: {
handleSelectFile(file, fileList) {
if (fileList.length > 1) {
this.value.shift()
fileList.shift()
}
},
// 上传前回调
beforeUpload(file) {
return new Promise((resolve, reject) => {
......@@ -193,18 +143,17 @@ export default {
resolve()
})
},
// 超出限制
handleExceed(files, fileList) {
this.$message.error(`最多可上传${this.limit}个文件!`)
},
// 上传成功
handleSuccess(res, file, fileList) {
const { data } = res
if (data) {
this.value.push({ ...data, url: file.url })
// 上传成功
this.$emit("input", this.value)
this.$emit("fileSuccess")
} else {
this.$message.warning(res.msg)
this.$refs.upload.clearFiles()
......@@ -218,13 +167,8 @@ export default {
// 移除
handleRemove({ url }, fileList) {
if (fileList.length > 1) {
fileList.shift()
}
this.value = []
this.$emit("input", this.value)
// const i = this.value.findIndex((_) => url.endsWith(_.uuid_name))
// if (i > -1) this.value.splice(i, 1) // 静态移除
const i = this.value.findIndex((_) => url.endsWith(_.uuid_name))
if (i > -1) this.value.splice(i, 1) // 静态移除
},
// 查看
......@@ -276,57 +220,33 @@ export default {
.el-upload-self {
font-size: 14px;
}
::v-deep .avatar-uploader {
.avatar-uploader {
display: flex;
align-items: center;
.el-upload--picture-card {
height: 20px;
transform: translateY(-4px);
}
}
::v-deep .pdfUpload {
display: flex;
flex-direction: row-reverse;
justify-content: flex-end;
.el-upload--text {
height: 20px;
transform: translateY(-4px);
}
.el-upload-list__item {
transform: translateY(-6px);
// width: 158px;
height: 20px;
}
}
::v-deep .avatar-uploader .el-upload {
border: none;
width: 80px;
height: 30px;
line-height: 0px;
}
::v-deep .textUpload {
align-items: flex-start;
.el-upload {
border: none;
width: 80px;
height: 30px;
line-height: 0px;
}
.el-upload--text {
height: 20px;
transform: translateY(-4px);
}
border: 1px solid #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
::v-deep .avatar-uploader .el-upload:hover {
border-color: #409eff;
}
::v-deep .el-upload-list {
display: flex;
align-items: center;
transform: translateY(4px);
}
::v-deep .el-upload--picture-card {
width: 88px;
height: 88px;
line-height: 88px;
}
::v-deep .el-upload-list__item {
width: 88px;
height: 88px;
&:hover {
background-color: #fff;
}
}
.avatar-uploader-icon {
font-size: 28px;
......@@ -341,16 +261,4 @@ export default {
height: 88px;
display: block;
}
.fileNameText {
width: 100px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
// ::v-deep .el-upload--picture-card {
// width: none;
// height: none;
// line-height: 0px;
// border: none;
// }
</style>
<template>
<el-row class="el-upload-self">
<el-upload
ref="upload"
:multiple="multiple"
:class="[
'avatar-uploader',
value.length > 0 ? 'textUpload' : '',
accept == 'application/pdf' ? 'pdfUpload' : '',
]"
:action="action"
:headers="headers"
:list-type="listType"
:on-preview="handlePreview"
:on-remove="handleRemove"
:on-success="handleSuccess"
:on-exceed="handleExceed"
:on-change="handleSelectFile"
:before-upload="beforeUpload"
:before-remove="beforeRemove"
:file-list="fileList"
:show-file-list="showFileList"
:accept="accept"
:limit="limit"
:drag="drag"
:disabled="disabled"
>
<template v-if="drag">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</template>
<template v-else-if="value.length">
<el-button size="middle" type="text">点击更换</el-button>
</template>
<template v-else-if="listType === 'picture-card' && !value.length">
<el-button size="middle" type="text">点击上传</el-button>
</template>
<template v-else>
<!-- <el-button size="middle" :type="btnType">点击上传</el-button> -->
<!-- <img v-if="imageUrl" :src="imageUrl" class="avatar" /> -->
<el-button size="middle" type="text">点击上传</el-button>
</template>
<div slot="file" slot-scope="{ file }">
<img
v-if="accept == 'image/*'"
class="el-upload-list__item-thumbnail"
:src="file.url"
alt=""
/>
<span v-if="accept == 'image/*'" class="el-upload-list__item-actions">
<span
class="el-upload-list__item-preview"
@click="handlePreview(file)"
>
<i class="el-icon-download"></i>
</span>
</span>
<el-tooltip
class="item"
effect="dark"
:content="file.name"
placement="top"
>
<div
v-if="accept != 'image/*'"
style="cursor: pointer"
class="fileNameText"
@click="handlePreview(file)"
>
{{ file.name }}
</div>
</el-tooltip>
</div>
<!-- <div slot="tip" class="el-upload__tip">{{ tip }}</div> -->
</el-upload>
<el-image
ref="image"
style="display: none"
:src="imgUrl"
:preview-src-list="previewList"
>
</el-image>
</el-row>
</template>
<script>
import { getAccessToken } from "@/utils/accessToken"
import { delFile } from "@/api/file"
export default {
name: "ElUploadSelf",
props: {
accept: { type: String, default: "image/*" },
disabled: {
type: Boolean,
default: false,
},
uploadQuery: {
type: Object,
default: () => {
return {}
},
}, //后端上传文件路径(参数)
listType: String,
tip: String,
multiple: Boolean,
limit: {
type: Number,
default: 9,
},
fileSize: Number,
loadText: String,
showFileList: {
type: Boolean,
default: true,
},
drag: {
type: Boolean,
default: false,
},
btnType: {
type: String,
default: "primary",
},
value: {
type: Array,
default: () => [],
}, //上传文件数组 绑定数组
},
data() {
return {
imgUrl: "",
title: "",
httpPrefix:
process.env.NODE_ENV === "development"
? "/api"
: process.env.VUE_APP_BASE_API,
fileList: [],
}
},
computed: {
headers() {
return {
Authorization: `Bearer ${getAccessToken()}`,
}
},
action() {
return this.httpPrefix + `/cloud-upms/file/upload`
},
// 预览list
previewList() {
console.log(this.value)
if (!this.value.length || this.accept != "image/*") return []
return this.value.map((_) => {
return (
_.url ||
`https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucketName}/${_.uuidName}`
)
})
},
},
watch: {
value: {
handler(newValue, oldValue) {
if (newValue === oldValue) return
this.fileList = newValue.map((_) => {
return {
name: _.fileName,
url: `https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucketName}/${_.uuidName}`,
}
})
},
immediate: true,
},
},
methods: {
handleSelectFile(file, fileList) {
if (fileList.length > 1) {
this.value.shift()
fileList.shift()
}
},
// 上传前回调
beforeUpload(file) {
return new Promise((resolve, reject) => {
const size = this.fileSize
if (size && file.size > size) {
this.$message.error("大小超出限制" + this.tip)
reject()
}
resolve()
})
},
// 超出限制
handleExceed(files, fileList) {
this.$message.error(`最多可上传${this.limit}个文件!`)
},
// 上传成功
handleSuccess(res, file, fileList) {
const { data } = res
if (data) {
this.value.push({ ...data, url: file.url })
// 上传成功
this.$emit("input", this.value)
this.$emit("fileSuccess")
} else {
this.$message.warning(res.msg)
this.$refs.upload.clearFiles()
}
},
// 移除提醒
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.file_name || file.name}?`)
},
// 移除
handleRemove({ url }, fileList) {
if (fileList.length > 1) {
fileList.shift()
}
this.value = []
this.$emit("input", this.value)
// const i = this.value.findIndex((_) => url.endsWith(_.uuid_name))
// if (i > -1) this.value.splice(i, 1) // 静态移除
},
// 查看
handlePreview(file) {
const name = file.fileName || file.name
this.title = name
let responseUrl
if (file.response) {
const _ = file.response.data
responseUrl = `https://ds.cixincloud.com/geca-api/disease-data/file/info/${_.bucketName}/${_.uuidName}`
}
try {
if (name.match(/\.(png|jpg|jpeg)/)) {
this.imgUrl = file.url || responseUrl
this.$refs.image.clickHandler()
} else {
const elink = document.createElement("a")
elink.download = name
elink.style.display = "none"
elink.href = file.url || responseUrl
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}
} catch {
const elink = document.createElement("a")
elink.download = name
elink.style.display = "none"
elink.href = file.url || responseUrl
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href) // 释放URL 对象
document.body.removeChild(elink)
}
},
},
}
</script>
<style lang="scss">
.el-upload-self {
.el-upload {
position: relative;
}
}
</style>
<style lang="scss" scoped>
.el-upload-self {
font-size: 14px;
}
::v-deep .avatar-uploader {
display: flex;
align-items: center;
.el-upload--picture-card {
height: 20px;
transform: translateY(-4px);
}
}
::v-deep .pdfUpload {
display: flex;
flex-direction: row-reverse;
justify-content: flex-end;
.el-upload--text {
height: 20px;
transform: translateY(-4px);
}
.el-upload-list__item {
transform: translateY(-6px);
// width: 158px;
height: 20px;
}
}
::v-deep .avatar-uploader .el-upload {
border: none;
width: 80px;
height: 30px;
line-height: 0px;
}
::v-deep .textUpload {
align-items: flex-start;
.el-upload {
border: none;
width: 80px;
height: 30px;
line-height: 0px;
}
.el-upload--text {
height: 20px;
transform: translateY(-4px);
}
}
::v-deep .avatar-uploader .el-upload:hover {
border-color: #409eff;
}
::v-deep .el-upload-list__item {
width: 88px;
height: 88px;
&:hover {
background-color: #fff;
}
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 88px;
height: 88px;
line-height: 88px;
text-align: center;
}
.avatar {
width: 88px;
height: 88px;
display: block;
}
.fileNameText {
width: 100px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
// ::v-deep .el-upload--picture-card {
// width: none;
// height: none;
// line-height: 0px;
// border: none;
// }
</style>
......@@ -28,6 +28,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import { getPatientPage } from "@/api/dataoverview.js"
export default {
// 数据概览
name: "",
......@@ -44,70 +45,81 @@ export default {
{
label: "医联体",
minWidth: 120,
value: "name",
value: "unionName",
},
{
label: "累计上报量",
minWidth: 120,
value: "1",
value: "report",
},
{
label: "最近一季度上报量",
minWidth: 120,
value: "2",
value: "lastQuarter",
},
{
label: "累计审核合格量",
minWidth: 120,
value: "3",
value: "pass",
},
{
label: "高风险",
minWidth: 120,
value: "4",
value: "high",
},
{
label: "中风险",
minWidth: 120,
value: "5",
value: "middle",
},
{
label: "低风险",
minWidth: 120,
value: "6",
value: "low",
},
{
label: "胃癌",
minWidth: 120,
value: "7",
value: "gas",
},
{
label: "早期胃癌",
minWidth: 120,
value: "8",
value: "earlyGas",
},
{
label: "食道癌",
minWidth: 120,
value: "9",
},
],
tableData: [
{
name: "1",
1: 2,
value: "esophagus",
},
],
tableData: [],
}
},
watch: {},
mounted() {},
mounted() {
this.getPatientPage()
},
methods: {
setSelectedIndex(i) {
console.log(this.selectedIndex)
this.selectedIndex = i
this.getPatientPage()
sessionStorage.setItem("homeSelectedIndex", this.selectedIndex)
},
getPatientPage() {
this.listLoading = true
let data = { patientFrom: this.selectedIndex - 0 + 1 }
getPatientPage(data).then((res) => {
this.listLoading = false
if (res.code === 1) {
const d = res.data
this.tableData = d.records || []
this.total = Number(d.total)
}
this.listLoading = false
})
},
},
}
</script>
......
<template>
<div id="publicContent" :class="activeName == 'index0' && formClass ? formClass : ''">
<div
id="publicContent"
:class="activeName == 'index0' && formClass ? formClass : ''"
>
<div v-if="formTabs && formTabs.length > 0">
<el-button
class="draftButton"
@click="onSubmit(formType)"
:loading="loading"
>{{ formType == 1 ? "临时保存" : "返回" }}</el-button>
>{{ formType == 1 ? "临时保存" : "返回" }}</el-button
>
<el-tabs
v-model="activeName"
type="card"
......@@ -32,6 +36,7 @@
@setFormJson="setFormJson"
@handleConfirm="handleConfirm"
@onPrev="onPrev"
:formInitial="formInitial"
:survivalFlag="survivalFlag"
></form-tab>
</template>
......@@ -41,7 +46,11 @@
</el-tabs>
</div>
<el-empty v-else description="暂无数据"></el-empty>
<public-dialog ref="showDialog" @onSubmit="dialogSubmit" @onCancel="dialogCancel">
<public-dialog
ref="showDialog"
@onSubmit="dialogSubmit"
@onCancel="dialogCancel"
>
<!-- 保存草稿 -->
<template v-if="dialogType == 'draft'" slot="content">
<div class="title center">已保存至草稿箱!</div>
......@@ -52,7 +61,9 @@
<div class="showTips">您可以在【草稿箱】页面找到该数据</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="continueSubmit">继续添加</el-button>
<el-button type="primary" :loading="loading" @click="continueSubmit"
>继续添加</el-button
>
</div>
</template>
<!-- 保存提交 -->
......@@ -65,8 +76,16 @@
<div class="showTips">您可以在【筛查查询】页面查询到该数据</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="view" class="textBtn">查看</el-button>
<el-button type="primary" :loading="loading" @click="continueSubmit">继续添加</el-button>
<el-button
type="primary"
:loading="loading"
@click="view"
class="textBtn"
>查看</el-button
>
<el-button type="primary" :loading="loading" @click="continueSubmit"
>继续添加</el-button
>
</div>
</template>
</public-dialog>
......@@ -94,6 +113,7 @@ export default {
// survivalFlag:false
dialogType: "",
loading: false,
formInitial: {}, // 第四步的数据
}
},
methods: {
......@@ -126,18 +146,33 @@ export default {
this.getCurrentFormByType(this.formType)
},
watch: {
// activeName(val){
// if(val=="index0" && this.formClass){
// this.showIndex = false
// // this.survivalFlag = true
// console.log(1)
// }
// else{
// this.showIndex = true
// // this.survivalFlag = false
// console.log(2)
// }
// }
activeName(val) {
if (val == "index3") {
// setTimeout(() => {
this.$nextTick(() => {
//!
this.formInitial = {
risk_rank: "中危",
risk_score: "5分",
screening_advise: "立刻住院",
}
})
// }, 300)
} else {
this.formInitial = {}
}
// if(val=="index0" && this.formClass){
// this.showIndex = false
// // this.survivalFlag = true
// console.log(1)
// }
// else{
// this.showIndex = true
// // this.survivalFlag = false
// console.log(2)
// }
},
},
computed: {
survivalFlag() {
......
......@@ -14,11 +14,11 @@
<el-row v-if="form.fillType === 1">
<tags-scroll-bar
v-if="repeatedlyList.length > 0"
ref="tags"
:tags-list="repeatedlyList"
:props="{ label: 'time' }"
ref="tags"
@change="changeRepeate"
:disabled="disabled"
@change="changeRepeate"
@add="handleAdd"
></tags-scroll-bar>
</el-row>
......@@ -42,7 +42,11 @@
</el-switch>-->
</div>
</el-row>
<div class="my-form" ref="my-form" :class="externalScroll ? 'no-scroll' : ''">
<div
ref="my-form"
class="my-form"
:class="externalScroll ? 'no-scroll' : ''"
>
<!-- <read-form
ref="form"
:options="survivalForm"
......@@ -50,20 +54,20 @@
></read-form>-->
<custom-form
ref="form"
@scrollTop="scrollTop"
:options="widgetFormPreview"
:form-edit="formData.formEdit"
@scrollTop="scrollTop"
@handleConfirm="handleConfirm"
@onPrev="onPrev"
:form-edit="formData.formEdit"
></custom-form>
</div>
</template>
</el-main>
<el-aside
v-if="contrast"
:width="sideWidth"
class="transition-box"
:class="{ hidden: !asideShow }"
v-if="contrast"
>
<div class="side-content"></div>
</el-aside>
......@@ -77,6 +81,7 @@ import ReadForm from "@/components/FormComponents/ReadForm/index"
import TagsScrollBar from "@/components/TagsScrollBar/index"
export default {
name: "FormTab",
components: { CustomForm, TagsScrollBar, ReadForm },
props: {
externalScroll: Boolean, //外部滚动
disabled: Boolean,
......@@ -86,8 +91,8 @@ export default {
patientStandbyId: String,
getAll: Boolean, // 获取页面所有数据
survivalFlag: Boolean, //存活的显示
formInitial: {}, // 第四步的数据
},
components: { CustomForm, TagsScrollBar, ReadForm },
provide() {
return {
formId: this.form.formId,
......@@ -104,9 +109,9 @@ export default {
widgetFormPreview: {},
formData: {
formEdit: {
risk_rank: "中危",
risk_score: "5分",
screening_advise: "立刻住院",
// risk_rank: "中危",
// risk_score: "5分",
// screening_advise: "立刻住院",
},
percent: {},
formRecordId: null,
......@@ -356,6 +361,39 @@ export default {
return this.loading || this.formloading
},
},
watch: {
formInitial: {
handler(v) {
if (v) {
this.$set(this.formData, "formEdit", { ...v })
console.log(this.formData.formEdit)
}
},
deep: true,
},
},
created() {
this.initForm()
if (this.getAll) {
// 监听patientId 获取页面所有数据
this.$watch(
"patientId",
() => {
this.initData()
},
{ immediate: true }
)
} else {
// 监听form.silent 获取当前tab页数据
this.$watch(
"form.silent",
() => {
this.initData()
},
{ immediate: true }
)
}
},
methods: {
initData() {
this.formData.formRecordId = null
......@@ -517,28 +555,6 @@ export default {
})
},
},
created() {
this.initForm()
if (this.getAll) {
// 监听patientId 获取页面所有数据
this.$watch(
"patientId",
() => {
this.initData()
},
{ immediate: true }
)
} else {
// 监听form.silent 获取当前tab页数据
this.$watch(
"form.silent",
() => {
this.initData()
},
{ immediate: true }
)
}
},
}
</script>
<style scoped lang="scss">
......
......@@ -108,7 +108,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload"
import ElUploadSelf from "@/components/UploadForOperation"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default {
......
......@@ -117,7 +117,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload"
import ElUploadSelf from "@/components/UploadForOperation"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default {
......
......@@ -108,7 +108,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload"
import ElUploadSelf from "@/components/UploadForOperation"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default {
......
......@@ -108,7 +108,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload"
import ElUploadSelf from "@/components/UploadForOperation"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default {
......
......@@ -117,7 +117,7 @@
<script>
import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin"
import ElUploadSelf from "@/components/Upload"
import ElUploadSelf from "@/components/UploadForOperation"
import mixin from "./mixin"
import { articleList } from "@/api/operation-management"
export default {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment