Commit 04610b16 authored by 刘予佳's avatar 刘予佳

Merge remote-tracking branch 'remotes/origin/dev_Miaojiale' into dev_lyj

parents 531ffdd4 19175cfe
...@@ -38,10 +38,10 @@ ...@@ -38,10 +38,10 @@
<el-form-item label="多分组转标签"> <el-form-item label="多分组转标签">
<el-switch v-model="data.tabs" active-color="#409EFF"></el-switch> <el-switch v-model="data.tabs" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="显示跳转按钮" v-if="data.tabs"> <el-form-item v-if="data.tabs" label="显示跳转按钮">
<el-switch v-model="data.nextTabBtn" active-color="#409EFF"></el-switch> <el-switch v-model="data.nextTabBtn" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<el-form-item label="跳转按钮的文字" v-if="data.tabs && data.nextTabBtn"> <el-form-item v-if="data.tabs && data.nextTabBtn" label="跳转按钮的文字">
<el-input <el-input
v-model="data.nextTabText" v-model="data.nextTabText"
placeholder="跳转按钮的文字" placeholder="跳转按钮的文字"
...@@ -76,7 +76,10 @@ ...@@ -76,7 +76,10 @@
value="right"></el-option> value="right"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="显示提交按钮" v-if="data.menuBtn"> <el-form-item v-if="data.menuBtn" label="显示上一步按钮">
<el-switch v-model="data.prevBtn" active-color="#409EFF"></el-switch>
</el-form-item>
<el-form-item v-if="data.menuBtn" label="显示提交按钮">
<el-switch v-model="data.submitBtn" active-color="#409EFF"></el-switch> <el-switch v-model="data.submitBtn" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<!-- <el-form-item label="提交按钮的大小" <!-- <el-form-item label="提交按钮的大小"
...@@ -92,8 +95,8 @@ ...@@ -92,8 +95,8 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item <el-form-item
label="提交按钮的文字"
v-if="data.menuBtn && data.submitBtn" v-if="data.menuBtn && data.submitBtn"
label="提交按钮的文字"
> >
<el-input <el-input
v-model="data.submitText" v-model="data.submitText"
...@@ -101,7 +104,7 @@ ...@@ -101,7 +104,7 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="显示清空按钮" v-if="data.menuBtn"> <el-form-item v-if="data.menuBtn" label="显示清空按钮">
<el-switch v-model="data.emptyBtn" active-color="#409EFF"></el-switch> <el-switch v-model="data.emptyBtn" active-color="#409EFF"></el-switch>
</el-form-item> </el-form-item>
<!-- <el-form-item label="清空按钮的大小" <!-- <el-form-item label="清空按钮的大小"
...@@ -116,7 +119,7 @@ ...@@ -116,7 +119,7 @@
value="mini"></el-option> value="mini"></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="清空按钮的文字" v-if="data.menuBtn && data.emptyBtn"> <el-form-item v-if="data.menuBtn && data.emptyBtn" label="清空按钮的文字">
<el-input <el-input
v-model="data.emptyText" v-model="data.emptyText"
placeholder="清空按钮的文字" placeholder="清空按钮的文字"
...@@ -152,7 +155,7 @@ ...@@ -152,7 +155,7 @@
<script> <script>
export default { export default {
name: "form-config", name: "FormConfig",
props: ["data"], props: ["data"],
} }
</script> </script>
...@@ -79,8 +79,8 @@ let checkAge = (rule, value, callback) => { ...@@ -79,8 +79,8 @@ let checkAge = (rule, value, callback) => {
? 1 ? 1
: 0) : 0)
console.log(age) console.log(age)
if (age < 18) { if (age < 40 || age > 80) {
callback(new Error("必须年满18岁")) callback(new Error("年龄不符合筛查条件"))
} else { } else {
callback() callback()
} }
......
...@@ -168,6 +168,7 @@ export default { ...@@ -168,6 +168,7 @@ export default {
}, },
// 切换不符合筛查条件的显示 // 切换不符合筛查条件的显示
formChange() { formChange() {
// 入选,排除标准
console.log(this.form) console.log(this.form)
let arr = [ let arr = [
"is_one_year", "is_one_year",
......
...@@ -5,12 +5,17 @@ ...@@ -5,12 +5,17 @@
:style="item.styles" :style="item.styles"
:class="{ isDefects: defectsSet.includes(item.prop) }" :class="{ isDefects: defectsSet.includes(item.prop) }"
> >
<el-col :lg="item.width"> <el-col
:lg="item.width"
:style="{ height: item.type === 'upload' ? '116px' : '53px' }"
>
<div <div
v-if="showIndex || configForms && configForms.showIndex" v-if="showIndex || (configForms && configForms.showIndex)"
class="formIndex" :class="['formIndex', item.labelSuffix == '5' ? 'computeIndex' : '']"
>{{ columnIndex + 1 }}</div> >
<el-form-item {{ item.labelSuffix || columnIndex + 1 }}
</div>
<!-- <el-form-item
:label=" :label="
!hiddenLabel && item.label !hiddenLabel && item.label
? `${item.label}${item.labelSuffix || ''}` ? `${item.label}${item.labelSuffix || ''}`
...@@ -20,6 +25,13 @@ ...@@ -20,6 +25,13 @@
:prop="item.prop" :prop="item.prop"
:rules="item.rules" :rules="item.rules"
:class="isEmpty" :class="isEmpty"
> -->
<el-form-item
:label="!hiddenLabel && item.label ? `${item.label}` : ''"
:label-width="item.labelWidth ? `${item.labelWidth}px` : ''"
:prop="item.prop"
:rules="item.rules"
:class="isEmpty"
> >
<div class="flex"> <div class="flex">
<div> <div>
...@@ -40,7 +52,7 @@ ...@@ -40,7 +52,7 @@
<el-input <el-input
v-if="item.type === 'input'" v-if="item.type === 'input'"
v-model="form[item.prop]" v-model="form[item.prop]"
:class="item.toothBit ? 'toothBit' : ''" :class="item.prop == 'other_sickness' ? 'needlong' : ''"
:readonly="item.readonly" :readonly="item.readonly"
:disabled="item.disabled" :disabled="item.disabled"
:placeholder=" :placeholder="
...@@ -63,16 +75,13 @@ ...@@ -63,16 +75,13 @@
slot="append" slot="append"
class="toothBit" class="toothBit"
@click="openToothBit" @click="openToothBit"
>{{ item.append || "牙位" }}</el-button> >{{ item.append || "牙位" }}</el-button
>
<template v-else-if="item.append" slot="append"> <template v-else-if="item.append" slot="append">
{{ {{ item.append }}
item.append
}}
</template> </template>
<template v-if="item.prepend" slot="prepend"> <template v-if="item.prepend" slot="prepend">
{{ {{ item.prepend }}
item.prepend
}}
</template> </template>
</el-input> </el-input>
...@@ -97,14 +106,10 @@ ...@@ -97,14 +106,10 @@
@blur="handleBlur" @blur="handleBlur"
> >
<template v-if="item.append" slot="append"> <template v-if="item.append" slot="append">
{{ {{ item.append }}
item.append
}}
</template> </template>
<template v-if="item.prepend" slot="prepend"> <template v-if="item.prepend" slot="prepend">
{{ {{ item.prepend }}
item.prepend
}}
</template> </template>
</el-input> </el-input>
...@@ -151,7 +156,8 @@ ...@@ -151,7 +156,8 @@
v-if="item.append" v-if="item.append"
class="el-input-group__append" class="el-input-group__append"
style="line-height: 28px" style="line-height: 28px"
>{{ item.append }}</span> >{{ item.append }}</span
>
</div> </div>
<!-- 单选框 --> <!-- 单选框 -->
...@@ -165,7 +171,8 @@ ...@@ -165,7 +171,8 @@
v-for="(opt, optIndex) in item.dicData" v-for="(opt, optIndex) in item.dicData"
:key="optIndex" :key="optIndex"
:label="opt.value" :label="opt.value"
>{{ opt.label }}</el-radio> >{{ opt.label }}</el-radio
>
</el-radio-group> </el-radio-group>
<!-- 多选框 --> <!-- 多选框 -->
...@@ -179,7 +186,8 @@ ...@@ -179,7 +186,8 @@
v-for="(opt, optIndex) in item.dicData" v-for="(opt, optIndex) in item.dicData"
:key="optIndex" :key="optIndex"
:label="opt.value" :label="opt.value"
>{{ opt.label }}</el-checkbox> >{{ opt.label }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
</template> </template>
...@@ -351,7 +359,8 @@ ...@@ -351,7 +359,8 @@
<span <span
v-if="item.importantField && !vwForm.detail" v-if="item.importantField && !vwForm.detail"
class="important_field" class="important_field"
>{{ item.importantFieldDesc || "*" }}</span> >{{ item.importantFieldDesc || "*" }}</span
>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -547,23 +556,6 @@ export default { ...@@ -547,23 +556,6 @@ export default {
} catch {} } catch {}
} }
}) })
} else {
// let { birthday } = this.form
// if (birthday) {
// birthday = new Date(birthday.replace(/-/g, "/"))
// let d = new Date()
// let age =
// d.getFullYear() -
// birthday.getFullYear() -
// (d.getMonth() < birthday.getMonth() ||
// (d.getMonth() == birthday.getMonth() &&
// d.getDate() < birthday.getDate())
// ? 1
// : 0)
// console.log(age)
// if (age == 0) {
// }
// }
} }
}, },
// 自定义方法规则 // 自定义方法规则
...@@ -628,6 +620,7 @@ export default { ...@@ -628,6 +620,7 @@ export default {
const columns = this.columns || [] const columns = this.columns || []
const group = this.group || [] const group = this.group || []
const dyMap = {} // 显示数据集合 const dyMap = {} // 显示数据集合
dynamicshSet.forEach((dy) => { dynamicshSet.forEach((dy) => {
if (dyMap[dy.target]) { if (dyMap[dy.target]) {
dyMap[dy.target].push(dy.value) dyMap[dy.target].push(dy.value)
...@@ -645,7 +638,38 @@ export default { ...@@ -645,7 +638,38 @@ export default {
const values = dyMap[key] const values = dyMap[key]
let display = false let display = false
if (Array.isArray(val)) { if (Array.isArray(val)) {
if (
prop == "early_gastric_cancer" ||
prop == "period_gastric_cancer"
) {
let flag = false
if (this.form.early_gastric_cancer) {
this.form.early_gastric_cancer.length > 0
? (flag = true)
: (flag = false)
}
if (!flag) {
if (this.form.period_gastric_cancer) {
this.form.period_gastric_cancer.length > 0
? (flag = true)
: (flag = false)
}
}
console.log(targetItem)
display = flag
if (display) {
targetItem.rules[0] = {
required: true,
message: "请上传病理报告",
}
} else {
if (targetItem.rules.length > 0) {
targetItem.rules[0].required = false
}
}
} else {
display = values.filter((v) => val.includes(v)).length > 0 display = values.filter((v) => val.includes(v)).length > 0
}
} else { } else {
display = values.includes(val) display = values.includes(val)
} }
...@@ -666,6 +690,14 @@ export default { ...@@ -666,6 +690,14 @@ export default {
this.$set(this.form, "$_hidden" + targetItem.prop, !display) this.$set(this.form, "$_hidden" + targetItem.prop, !display)
}, 200) }, 200)
} else { } else {
if (prop == "check_type" && Boolean(display)) {
targetItem.rules[0] = {
required: true,
message: "请上传内镜报告",
}
} else if (prop == "check_type") {
targetItem.rules = []
}
this.$set(targetItem, "display", Boolean(display)) this.$set(targetItem, "display", Boolean(display))
} }
}) })
...@@ -699,7 +731,6 @@ export default { ...@@ -699,7 +731,6 @@ export default {
.el-col { .el-col {
height: 100%; height: 100%;
height: 53px;
display: flex; display: flex;
align-items: center; align-items: center;
} }
...@@ -708,6 +739,7 @@ export default { ...@@ -708,6 +739,7 @@ export default {
height: 100%; height: 100%;
background: #fafafa; background: #fafafa;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
font-size: 14px;
justify-content: center; justify-content: center;
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -837,4 +869,7 @@ export default { ...@@ -837,4 +869,7 @@ export default {
} }
} }
} }
::v-deep .needlong {
width: 260px !important;
}
</style> </style>
...@@ -49,7 +49,9 @@ ...@@ -49,7 +49,9 @@
> >
<template slot="title"> <template slot="title">
{{ g.label }} {{ g.label }}
<span v-if="g.label == '二、排除标准'" class="noCol">{{errorText}}</span> <span v-if="g.label == '二、排除标准'" class="noCol">{{
errorText
}}</span>
</template> </template>
<form-content <form-content
v-if="collapseNames.includes(g.prop)" v-if="collapseNames.includes(g.prop)"
...@@ -66,6 +68,17 @@ ...@@ -66,6 +68,17 @@
</template> </template>
<div class="form-footer"> <div class="form-footer">
<template v-if="options.menuBtn"> <template v-if="options.menuBtn">
<template v-if="options.prevBtn">
<el-button
type="primary"
:loading="loading"
size="large"
:disabled="disabled"
@click="onPrev"
>
上一步
</el-button>
</template>
<template v-if="options.submitBtn"> <template v-if="options.submitBtn">
<el-button <el-button
type="primary" type="primary"
...@@ -74,7 +87,8 @@ ...@@ -74,7 +87,8 @@
size="large" size="large"
:disabled="disabled" :disabled="disabled"
@click="handleConfirm" @click="handleConfirm"
>{{ options.submitText || "提交" }}</el-button> >{{ options.submitText || "提交" }}</el-button
>
</template> </template>
<template v-if="options.emptyBtn"> <template v-if="options.emptyBtn">
<el-button <el-button
...@@ -82,7 +96,8 @@ ...@@ -82,7 +96,8 @@
icon="el-icon-delete " icon="el-icon-delete "
size="large" size="large"
@click="resetForm(true)" @click="resetForm(true)"
>{{ options.emptyText || "清空" }}</el-button> >{{ options.emptyText || "清空" }}</el-button
>
</template> </template>
</template> </template>
<template v-if="nextTabBtnShow"> <template v-if="nextTabBtnShow">
...@@ -92,7 +107,8 @@ ...@@ -92,7 +107,8 @@
icon="el-icon-caret-right" icon="el-icon-caret-right"
size="large" size="large"
@click="nextTab" @click="nextTab"
>{{ options.nextTabText || "下一页" }}</el-button> >{{ options.nextTabText || "下一页" }}</el-button
>
</el-form> </el-form>
</template> </template>
</div> </div>
...@@ -169,7 +185,20 @@ export default { ...@@ -169,7 +185,20 @@ export default {
// this.setformWatch(this.options, "form") // this.setformWatch(this.options, "form")
}) })
}, },
mounted() {
// 处理computeIndex
let domArr = document.querySelectorAll(".computeIndex")
for (let i = 0; i < domArr.length; i++) {
domArr[i].style.height = "54px"
domArr[i].innerHTML = ""
if (domArr.length / i == 2) {
domArr[i].innerHTML = "6"
}
if (i == domArr.length - 1) {
domArr[i].style.height = "53px"
}
}
},
methods: { methods: {
// 显示不符合筛查条件 // 显示不符合筛查条件
showError(data) { showError(data) {
...@@ -224,7 +253,12 @@ export default { ...@@ -224,7 +253,12 @@ export default {
func(valid, () => {}) func(valid, () => {})
}) })
}, },
onPrev() {
this.$emit("onPrev", () => {
// 完成之后的回调
this.loading = false
})
},
handleConfirm() { handleConfirm() {
this.loading = true this.loading = true
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
...@@ -257,6 +291,7 @@ export default { ...@@ -257,6 +291,7 @@ export default {
} }
}) })
this.$emit("handleConfirm", data, () => { this.$emit("handleConfirm", data, () => {
// 完成之后的回调
this.loading = false this.loading = false
}) })
} else { } else {
...@@ -359,10 +394,10 @@ export default { ...@@ -359,10 +394,10 @@ export default {
border-right: 1px solid #e5e5e5; border-right: 1px solid #e5e5e5;
// border-bottom: 1px solid #e5e5e5 !important; // border-bottom: 1px solid #e5e5e5 !important;
padding: 0px; padding: 0px;
&:hover { // &:hover {
// background-color: #ecf8ff; // background-color: #ecf8ff;
// outline: 1px dashed #ccc; // outline: 1px dashed #ccc;
} // }
} }
.el-collapse-item__header { .el-collapse-item__header {
font-size: 16px; font-size: 16px;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
<el-row class="el-upload-self"> <el-row class="el-upload-self">
<el-upload <el-upload
:multiple="multiple" :multiple="multiple"
class="avatar-uploader"
ref="upload" ref="upload"
:action="action" :action="action"
:headers="headers" :headers="headers"
...@@ -28,7 +29,9 @@ ...@@ -28,7 +29,9 @@
</template> </template>
<template v-else> <template v-else>
<el-button size="middle" :type="btnType">点击上传</el-button> <!-- <el-button size="middle" :type="btnType">点击上传</el-button> -->
<!-- <img v-if="imageUrl" :src="imageUrl" class="avatar" /> -->
<i class="el-icon-plus avatar-uploader-icon"></i>
</template> </template>
<div slot="tip" class="el-upload__tip">{{ tip }}</div> <div slot="tip" class="el-upload__tip">{{ tip }}</div>
</el-upload> </el-upload>
...@@ -220,4 +223,31 @@ export default { ...@@ -220,4 +223,31 @@ export default {
.el-upload-self { .el-upload-self {
font-size: 14px; font-size: 14px;
} }
.avatar-uploader {
display: flex;
align-items: center;
}
::v-deep .avatar-uploader .el-upload {
border: 1px solid #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
::v-deep .avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.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;
}
</style> </style>
...@@ -40,6 +40,19 @@ export const constantRoutes = [ ...@@ -40,6 +40,19 @@ export const constantRoutes = [
// hidden: true, // hidden: true,
// name: "login", // name: "login",
// }, // },
{
path: "/auditdetail",
component: Layout,
children: [
{
path: "/auditdetail",
component: () => import("@/views/audit-detail/index"),
hidden: true,
name: "auditdetail",
},
],
},
// 审核详情
{ {
path: "/followupentry", path: "/followupentry",
component: Layout, component: Layout,
......
<template>
<div>
<el-dialog
center
:visible.sync="dialogVisible"
width="40%"
show-close
@closed="cancelSubmit"
>
<slot name="content"></slot>
<slot name="footer"></slot>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return { dialogVisible: false, loading: false }
},
watch: {},
mounted() {},
methods: {
cancelSubmit() {
this.dialogVisible = false
this.$emit("onCancel")
},
// onSubmit() {
// this.$emit("onSubmit")
// },
},
}
</script>
<style lang="scss" scoped></style>
<template>
<div>
<el-container>
<el-main v-loading="pageLoading" class="transition-box">
<el-empty v-if="!isEmpty" description="暂无数据"></el-empty>
<template v-if="isEmpty">
<div ref="my-form" class="my-form">
<custom-form
ref="customForm"
:options="jsonList[1]"
:formEdit="form"
></custom-form>
<!-- <custom-form ref="form" :options="jsonList[1]"></custom-form>
<custom-form ref="form" :options="jsonList[2]"></custom-form>
<custom-form ref="form" :options="jsonList[3]"></custom-form>
<custom-form ref="form" :options="jsonList[4]"></custom-form> -->
</div>
</template>
</el-main>
<!-- <el-aside
:width="sideWidth"
class="transition-box"
:class="{ hidden: !asideShow }"
v-if="contrast"
>
<div class="side-content"></div>
</el-aside> -->
</el-container>
</div>
</template>
<script>
import { mapGetters } from "vuex"
import CustomForm from "@/components/FormComponents/CustomForm/index"
import { getCurrentFormByType } from "@/api/coop-group.js"
import { getFormDetail } from "@/api/field"
export default {
components: { CustomForm },
data() {
return {
fromLoading: false,
formTabs: [],
formTabsList: [],
jsonList: [],
form: {
name: "123",
phone: "18712412341",
},
}
},
computed: {
...mapGetters({
group: ["user/group"],
}),
isEmpty() {
return this.jsonList.length
},
sideWidth() {
return this.asideShow ? "200px" : "0px"
},
pageLoading() {
return this.loading || this.formloading
},
},
watch: {},
created() {
this.getCurrentFormByType()
},
mounted() {},
methods: {
getCurrentFormByType(type = 1) {
this.fromLoading = true
getCurrentFormByType({
type,
groupId: this.group.groupId,
})
.then((res) => {
if (res.code === 1) {
const formTabs = []
this.formTabsList = res.data.map((item, index) => {
if (index === 0) {
formTabs.push({
silent: false,
...item,
label: item.tabName,
})
} else {
formTabs.push({
id: item.id,
formId: item.formId,
silent: true,
label: item.tabName,
})
}
return {
...item,
silent: false,
label: item.tabName,
}
})
this.formTabs = formTabs
}
})
.finally(() => {
this.jsonList = []
let i = 0
this.initForm(i)
})
},
initForm(i) {
let formId = this.formTabs[i].formId
this.formloading = true
getFormDetail(formId)
.then((res) => {
if (res.code === 1 && res.data) {
const formJson = res.data.formJson
const obj = eval("(" + formJson + ")")
obj.disabled = true
obj.detail = true
this.jsonList.push(obj)
if (i == 4) {
console.log(this.jsonList)
this.formloading = false
}
}
})
.finally(() => {
if (i < this.formTabs.length - 1) {
i++
this.initForm(i)
}
})
},
},
}
</script>
<style lang="scss" scoped></style>
<template>
<div id="audit-detail">
<div class="audit-detail_header p-24">
<div class="left">
<span>当前审核</span>
<span class="f-b">【无锡市人民医院医联体】【剩余7】</span>
</div>
<div class="right">
<el-button class="btn" @click="$router.go(-1)">返回</el-button>
</div>
</div>
<div class="choose-handle p-24">
<span v-if="!editStatus">请选择审核结果:</span>
<div class="btn_group">
<el-button
v-for="(item, index) in btnGroup"
:key="index"
type="primary"
class="p-btn"
size="medium"
@click="showDialog(item.value)"
>{{ item.text }}</el-button
>
<span v-if="editStatus" class="op">驳回修改建议:胃镜图片不合规</span>
</div>
</div>
<div class="table-content p-24">
<component :is="curComponent"></component>
</div>
<public-dialog ref="editDialog" @onSubmit="onSubmit" @onCancel="onCancel">
<!-- 修改审核结果 优先触发提示 -->
<template v-if="!confirmStatus" slot="content">
<div class="title">温馨提示</div>
<div class="content">
<div class="showTips">
该病例已经审核【驳回修改】,需要改为{{
btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : ""
}}
</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="onCancel"
></el-button
>
<el-button type="primary" :loading="loading" @click="editSubmit"
></el-button
>
</div>
</template>
</public-dialog>
<public-dialog ref="publicDialog" @onSubmit="onSubmit" @onCancel="onCancel">
<!-- 审核结果回显 -->
<template v-if="!confirmStatus" slot="content">
<div class="title">
{{ btnGroup[curBtn - 1] ? btnGroup[curBtn - 1].text : "" }}
</div>
<div class="content">
<div v-if="curBtn != 1" class="noPass">
<el-form
ref="form"
label-position="top"
:model="form"
:rules="rules"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item
:label="curBtn == 2 ? '不合格原因' : '驳回修改建议'"
prop="reson"
>
<el-input
v-model="form.reson"
type="textarea"
:placeholder="
curBtn == 2 ? '请填写不合格原因' : '请填写驳回修改建议'
"
></el-input>
</el-form-item>
</el-form>
</div>
</div>
<div class="btn">
<el-button type="primary" :loading="loading" @click="onSubmit"
>确 定</el-button
>
</div>
</template>
<!-- 提交后结果 -->
<template v-if="confirmStatus" slot="content">
<div class="title">{{ btnGroup[curBtn - 1].text }}</div>
<div class="content">
<div v-if="curBtn == 1" class="pass">该病例审核合格成功!</div>
<div v-if="curBtn != 1" class="noPass">
<!-- 不合格和驳回 -->
<div class="label">
{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}
</div>
<div class="reson">
{{ form.reson }}
</div>
</div>
</div>
<div v-if="curBtn != 1" class="showTips">
该病例审核{{ curBtn == 2 ? "不合格原因" : "驳回修改建议" }}提交成功!
</div>
<div class="btn">
<el-button type="primary" @click="nextExample">下一例</el-button>
</div>
</template>
</public-dialog>
</div>
</template>
<script>
import publicDialog from "./components/publicDialog.vue"
import screenReview from "./components/screenReview.vue"
export default {
components: { publicDialog, screenReview },
data() {
return {
editStatus: false, //进入的状态是第一次审核还是修改审核,false为第一次,true为修改
form: {},
rules: {
reson: [{ required: true, message: "请填写", trigger: "blur" }],
},
btnGroup: [
{
text: "合格",
value: 1,
},
{
text: "不合格",
value: 2,
},
{
text: "驳回修改",
value: 3,
},
],
loading: false,
curBtn: 0,
curComponent: "screenReview",
confirmStatus: false,
}
},
watch: {},
mounted() {},
methods: {
showDialog(val) {
this.curBtn = val
if (!this.editStatus) {
if (this.curBtn == 1) {
// 走接口,保存合格
this.confirmStatus = true
} else if (this.curBtn == 2) {
this.rules.reson[0].message = "请输入不合格原因"
} else {
this.rules.reson[0].message = "请输入驳回修改建议"
}
this.$refs.publicDialog.dialogVisible = true
} else {
this.$refs.editDialog.dialogVisible = true
}
},
onSubmit() {
this.loading = true
// 切换文本
if (this.curBtn != 1) {
this.$refs.form.validate((valid) => {
if (valid) {
// alert("submit!")
// 保存成功,回显,调用接口
// 回调
this.confirmStatus = true
} else {
console.log("error submit!!")
return false
}
})
}
this.loading = false
// this.$refs.publicDialog.dialogVisible = true
},
onCancel() {
this.confirmStatus = false
if (this.curBtn != 1) {
this.form = {}
}
this.$refs.editDialog.dialogVisible = false
this.$refs.publicDialog.dialogVisible = false
if (this.$refs.form) {
this.$refs.form.clearValidate()
}
},
editSubmit() {
// this.$refs.editDialog.dialogVisible = false
if (this.curBtn == 1) {
// 走接口,保存合格
this.confirmStatus = true
} else if (this.curBtn == 2) {
this.rules.reson[0].message = "请输入不合格原因"
} else {
this.rules.reson[0].message = "请输入驳回修改建议"
}
this.$refs.publicDialog.dialogVisible = true
},
nextExample() {
this.onCancel()
},
},
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
border-top: none;
text-align: center;
.tips {
font-size: 16px;
}
}
.p-24 {
padding: 0 24px;
}
.f-b {
font-weight: bold;
font-size: 14px;
}
#audit-detail {
// padding: 22px 24px;
.audit-detail_header {
height: 65px;
border-bottom: 1px solid #f3f3f3;
line-height: 65px;
display: flex;
justify-content: space-between;
.right {
.btn {
width: 80px;
height: 32px;
border-radius: 4px;
}
}
}
.choose-handle {
width: 100%;
height: 72px;
line-height: 72px;
font-size: 14px;
font-family: AlibabaPuHuiTiM;
color: #333333;
box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.1);
display: flex;
.btn_group {
margin-left: 24px;
::v-deep .p-btn {
width: 100px;
border-radius: 4px;
}
}
}
}
.title {
height: 26px;
font-size: 22px;
font-family: AlibabaPuHuiTiM;
color: rgba(0, 0, 0, 0.8);
line-height: 26px;
}
.content {
margin: 58px;
.pass {
font-size: 18px;
font-family: AlibabaPuHuiTiM;
color: #30b9a6;
letter-spacing: 1px;
}
}
.btn {
margin-top: 20px;
.el-button {
width: 100px;
height: 32px;
}
}
::v-deep .el-form-item__label {
width: 100%;
text-align: left;
}
.reson {
margin-top: 20px;
}
.showTips {
color: #4e68ff;
}
.op {
font-size: 14px;
font-family: AlibabaPuHuiTiR;
color: #fa6400;
margin-left: 20px;
}
.table-content {
padding-top: 20px;
padding-bottom: 20px;
}
</style>
...@@ -104,6 +104,12 @@ export default { ...@@ -104,6 +104,12 @@ export default {
}, },
auditHandle(data, i) { auditHandle(data, i) {
console.log(data, i) console.log(data, i)
this.$router.push({
path: "/auditdetail",
query: {
id: i,
},
})
}, },
}, },
} }
......
<template> <template>
<div id="publicContent" :class="activeName=='index0' && formClass ? formClass :''"> <div
id="publicContent"
:class="activeName == 'index0' && formClass ? formClass : ''"
>
<div v-if="formTabs && formTabs.length > 0"> <div v-if="formTabs && formTabs.length > 0">
<el-button class="draftButton">{{formType == 1 ? "临时保存" : "返回"}}</el-button> <el-button class="draftButton">{{
formType == 1 ? "临时保存" : "返回"
}}</el-button>
<el-tabs <el-tabs
v-model="activeName" v-model="activeName"
type="card" type="card"
...@@ -27,6 +32,7 @@ ...@@ -27,6 +32,7 @@
contrast contrast
@setFormJson="setFormJson" @setFormJson="setFormJson"
@handleConfirm="handleConfirm" @handleConfirm="handleConfirm"
@onPrev="onPrev"
:survivalFlag="survivalFlag" :survivalFlag="survivalFlag"
></form-tab> ></form-tab>
</template> </template>
...@@ -62,6 +68,9 @@ export default { ...@@ -62,6 +68,9 @@ export default {
handleConfirm(data, done, cb) { handleConfirm(data, done, cb) {
this.addPatient(data, done, cb) this.addPatient(data, done, cb)
}, },
onPrev(done) {
this.prevTab(done)
},
}, },
created() { created() {
// 字典formType 1 筛查表单 // 字典formType 1 筛查表单
...@@ -81,30 +90,27 @@ export default { ...@@ -81,30 +90,27 @@ export default {
// } // }
// } // }
}, },
computed:{ computed: {
survivalFlag(){ survivalFlag() {
if(this.activeName=="index0" && this.formClass){ if (this.activeName == "index0" && this.formClass) {
return true return true
} } else {
else{
return false return false
} }
}, },
showIndex(){ showIndex() {
if(this.activeName=="index0" && this.formClass){ if (this.activeName == "index0" && this.formClass) {
return false return false
} } else {
else{
return true return true
} }
} },
}, },
provide() { provide() {
return { return {
configForms: this configForms: this,
} }
}, },
} }
</script> </script>
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
@scrollTop="scrollTop" @scrollTop="scrollTop"
:options="widgetFormPreview" :options="widgetFormPreview"
@handleConfirm="handleConfirm" @handleConfirm="handleConfirm"
@onPrev="onPrev"
:form-edit="formData.formEdit" :form-edit="formData.formEdit"
></custom-form> ></custom-form>
</div> </div>
...@@ -427,6 +428,9 @@ export default { ...@@ -427,6 +428,9 @@ export default {
} }
) )
}, },
onPrev(done) {
this.$emit("onPrev", done)
},
getPatientDetail() { getPatientDetail() {
this.$nextTick(() => { this.$nextTick(() => {
......
...@@ -22,6 +22,23 @@ export default { ...@@ -22,6 +22,23 @@ export default {
}, },
methods: { methods: {
nextTab() {
let i = this.activeName.split("index")[1] - 0
i++
if (i == 5) {
return
} else {
this.activeName = "index" + i
this.handleTabClick({ index: i, name: "" })
}
},
prevTab(done) {
let i = this.activeName.split("index")[1] - 0
i--
this.activeName = "index" + i
this.handleTabClick({ index: i, name: "" })
done()
},
handleTabClick({ index, name }) { handleTabClick({ index, name }) {
const { formId, id, silent } = this.formTabs[index] const { formId, id, silent } = this.formTabs[index]
console.log('表单项', this.formTabs) console.log('表单项', this.formTabs)
...@@ -50,6 +67,7 @@ export default { ...@@ -50,6 +67,7 @@ export default {
}) })
.finally((e) => { .finally((e) => {
done() done()
this.nextTab()
}) })
}, },
......
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