Commit e1d250d8 authored by miaojiale's avatar miaojiale

Merge branch 'dev_lyj' into dev_Miaojiale

parents f409246a a2350871
...@@ -49,9 +49,11 @@ ...@@ -49,9 +49,11 @@
> >
<template slot="title"> <template slot="title">
{{ g.label }} {{ g.label }}
<span v-if="g.label == '二、排除标准'" class="noCol">{{ <span v-if="g.label == '二、排除标准'" class="noCol">
{{
errorText errorText
}}</span> }}
</span>
</template> </template>
<form-content <form-content
v-if="collapseNames.includes(g.prop)" v-if="collapseNames.includes(g.prop)"
...@@ -75,9 +77,7 @@ ...@@ -75,9 +77,7 @@
size="large" size="large"
:disabled="disabled" :disabled="disabled"
@click="onPrev" @click="onPrev"
> >上一步</el-button>
上一步
</el-button>
</template> </template>
<template v-if="options.submitBtn"> <template v-if="options.submitBtn">
<el-button <el-button
...@@ -87,8 +87,7 @@ ...@@ -87,8 +87,7 @@
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
...@@ -96,8 +95,7 @@ ...@@ -96,8 +95,7 @@
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">
...@@ -107,8 +105,7 @@ ...@@ -107,8 +105,7 @@
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>
...@@ -373,7 +370,7 @@ export default { ...@@ -373,7 +370,7 @@ export default {
border: none; border: none;
.el-collapse-item { .el-collapse-item {
&:nth-child(1) { &:nth-child(1) {
border-top: 1px solid #e5e5e5; border-top: 1px solid #cccccc;
} }
} }
.el-collapse-item__content { .el-collapse-item__content {
...@@ -383,7 +380,7 @@ export default { ...@@ -383,7 +380,7 @@ export default {
border-radius: 4px; border-radius: 4px;
background: #fafafa; background: #fafafa;
padding-left: 20px; padding-left: 20px;
border: 1px solid #e5e5e5; border: 1px solid #cccccc;
border-bottom-color: #ccc; border-bottom-color: #ccc;
border-top: 0px; border-top: 0px;
font-size: 14px; font-size: 14px;
...@@ -393,9 +390,9 @@ export default { ...@@ -393,9 +390,9 @@ export default {
.el-collapse-item__wrap { .el-collapse-item__wrap {
border: none; border: none;
padding: 10px; padding: 10px;
border-left: 1px solid #e5e5e5; border-left: 1px solid #cccccc;
border-right: 1px solid #e5e5e5; border-right: 1px solid #cccccc;
// border-bottom: 1px solid #e5e5e5 !important; // border-bottom: 1px solid #cccccc !important;
padding: 0px; padding: 0px;
// &:hover { // &:hover {
// background-color: #ecf8ff; // background-color: #ecf8ff;
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
:columns="columns.column || columns.children.column" :columns="columns.column || columns.children.column"
:group="options.group" :group="options.group"
@formChange="formChange" @formChange="formChange"
:showIndex="showIndex"
></form-item-self> ></form-item-self>
</el-col> </el-col>
</template> </template>
...@@ -75,11 +76,18 @@ export default { ...@@ -75,11 +76,18 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
showIndex: {
type: Boolean,
},
}, },
data() { data() {
return {} return {}
}, },
provide(){
return{
showIndex: this.showIndex
}
},
computed: { computed: {
isShowIm() { isShowIm() {
return function (val) { return function (val) {
......
...@@ -18,9 +18,9 @@ ...@@ -18,9 +18,9 @@
" "
:label-width="item.labelWidth ? `${item.labelWidth}px` : ''" :label-width="item.labelWidth ? `${item.labelWidth}px` : ''"
:prop="item.prop" :prop="item.prop"
:rules="item.rules"
:class="isEmpty" :class="isEmpty"
> >
<!-- :rules="item.rules" -->
<div class="flex"> <div class="flex">
<div> <div>
<!-- <el-upload-self <!-- <el-upload-self
...@@ -304,10 +304,10 @@ ...@@ -304,10 +304,10 @@
></el-date-picker>--> ></el-date-picker>-->
</template> </template>
</div> </div>
<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>
......
...@@ -49,7 +49,11 @@ ...@@ -49,7 +49,11 @@
> >
<template slot="title"> <template slot="title">
{{ g.label }} {{ g.label }}
<span v-if="g.label == '二、排除标准'" class="noCol">{{errorText}}</span> {{g.showIndex}}
<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)"
...@@ -59,6 +63,8 @@ ...@@ -59,6 +63,8 @@
:options="options" :options="options"
:is-show-important="isShowImportant" :is-show-important="isShowImportant"
@showError="showError" @showError="showError"
:showIndex="g.showIndex"
:class="g.showIndex?'simple-form':'index-form'"
></form-content> ></form-content>
</el-collapse-item> </el-collapse-item>
</template> </template>
...@@ -155,7 +161,7 @@ export default { ...@@ -155,7 +161,7 @@ export default {
}, },
}, },
watch: { watch: {
formEdit: { formEdit:{
handler() { handler() {
this.initfields(this.formEdit) this.initfields(this.formEdit)
}, },
...@@ -307,20 +313,21 @@ export default { ...@@ -307,20 +313,21 @@ export default {
this.loading = false this.loading = false
this.$nextTick(() => { this.$nextTick(() => {
// 子组件数据初始化完成后 // 子组件数据初始化完成后
setTimeout(() => { // setTimeout(() => {
this.initfields(this.formEdit) this.initfields(this.formEdit)
}, 0) // }, 0)
if (this.$refs.form && this.$refs.form.clearValidate) { if (this.$refs.form && this.$refs.form.clearValidate) {
this.$refs.form.clearValidate() this.$refs.form.clearValidate()
} }
this.$forceUpdate();
}) })
}, },
// 绑定部分值(此时表单已渲染) // 绑定部分值(此时表单已渲染)
initfields(obj) { initfields(obj) {
for (let k in obj) { for (let k in obj) {
if (this.form.hasOwnProperty(k)) { // if (this.form.hasOwnProperty(k)) {
this.form[k] = obj[k] this.form[k] = obj[k]
} // }
} }
}, },
}, },
...@@ -334,7 +341,7 @@ export default { ...@@ -334,7 +341,7 @@ export default {
border: none; border: none;
.el-collapse-item { .el-collapse-item {
&:nth-child(1) { &:nth-child(1) {
border-top: 1px solid #e5e5e5; border-top: 1px solid #cccccc;
} }
} }
.el-collapse-item__content { .el-collapse-item__content {
...@@ -343,7 +350,7 @@ export default { ...@@ -343,7 +350,7 @@ export default {
.el-collapse-item__header { .el-collapse-item__header {
background: #fafafa; background: #fafafa;
padding-left: 20px; padding-left: 20px;
border: 1px solid #e5e5e5; border: 1px solid #cccccc;
border-bottom-color: #ccc; border-bottom-color: #ccc;
border-top: 0px; border-top: 0px;
font-size: 14px; font-size: 14px;
...@@ -353,9 +360,9 @@ export default { ...@@ -353,9 +360,9 @@ export default {
.el-collapse-item__wrap { .el-collapse-item__wrap {
border: none; border: none;
padding: 10px; padding: 10px;
border-left: 1px solid #e5e5e5; // border-left: 1px solid #cccccc;
border-right: 1px solid #e5e5e5; // border-right: 1px solid #cccccc;
// border-bottom: 1px solid #e5e5e5 !important; // border-bottom: 1px solid #cccccc !important;
padding: 0px; padding: 0px;
&:hover { &:hover {
// background-color: #ecf8ff; // background-color: #ecf8ff;
...@@ -396,4 +403,21 @@ export default { ...@@ -396,4 +403,21 @@ export default {
} }
} }
} }
.index-form {
::v-deep {
// .el-form-item {
.el-form-item__label {
text-align: left;
background: #fafafa;
font-size: 14px;
color: #333333;
border-right: 1px solid #cccccc;
width: 80px !important;
padding: 18px 10px;
margin-right: 20px;
text-align: center;
}
}
// }
}
</style> </style>
...@@ -66,14 +66,14 @@ export const constantRoutes = [ ...@@ -66,14 +66,14 @@ export const constantRoutes = [
], ],
}, },
{ {
path: "/followaduit", path: "/followaudit",
component: Layout, component: Layout,
children: [ children: [
{ {
path: "/followaduit", path: "/followaudit",
component: () => import("@/views/followupentry/followaduit"), component: () => import("@/views/followupentry/followaudit"),
hidden: true, hidden: true,
name: "followaduit", name: "followaudit",
}, },
], ],
}, },
......
...@@ -104,9 +104,9 @@ export default { ...@@ -104,9 +104,9 @@ export default {
} }
}, },
auditHandle(data, i) { auditHandle(data, i) {
console.log(data,i) console.log(data,i,"表单")
if(this.type=="1"){ if(this.type=="1"){
this.$router.push("/followaduit") this.$router.push("/followaudit")
} }
}, },
}, },
......
<template> <template>
<!-- 随访调查录入 --> <!-- 随访调查录入 -->
<div> <div class="follow-form">
<ConfigForms form-type="2" formClass="follow-form"></ConfigForms> <!-- <ConfigForms form-type="2" formClass="follow-form"></ConfigForms> -->
<read-form ref="form" :options="followupForm" :formEdit="formEdit"></read-form>
</div> </div>
</template> </template>
<script> <script>
import ConfigForms from "@/views/screening/components/ConfigForms.vue" import ConfigForms from "@/views/screening/components/ConfigForms.vue"
import ReadForm from "@/components/FormComponents/ReadForm/index"
export default { export default {
name: "FollowupEntry", name: "FollowupAudit",
components: { components: {
ConfigForms, ConfigForms,
ReadForm
}, },
data() { data() {
return { return {
form:{ followupForm:{
column: [], column: [],
labelPosition: 'right', labelPosition: 'right',
labelSuffix: '', labelSuffix: '',
...@@ -36,6 +39,7 @@ export default { ...@@ -36,6 +39,7 @@ export default {
collapse: true, collapse: true,
display: true, display: true,
labelWidth: 8, labelWidth: 8,
showIndex:true,
column: [{ column: [{
type: 'input', type: 'input',
display: true, display: true,
...@@ -225,6 +229,10 @@ export default { ...@@ -225,6 +229,10 @@ export default {
}] }]
}, },
] ]
},
formEdit:{
name:"djksh",
contact_phone:"12345678"
} }
} }
}, },
...@@ -233,5 +241,54 @@ export default { ...@@ -233,5 +241,54 @@ export default {
} }
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
::v-deep {
.el-tabs--card > .el-tabs__header {
width: calc(100% - 100px);
border-bottom: none;
}
.el-tabs--card > .el-tabs__header .el-tabs__nav {
border: none;
}
.el-tabs--card > .el-tabs__header .el-tabs__item {
min-width: 116px;
text-align: center;
background: #f0f1fa;
font-size: 14px;
border: none;
}
.el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
background: #4e68ff;
color: #fff;
}
}
.follow-form {
::v-deep {
.el-collapse-item__header {
// border-width: 0px 0px 0px;
border: none !important;
}
.row24 {
border-top: 1px solid #cccccc;
}
.custom-form-item {
border-width: 1px 0px 0px;
}
.el-collapse-item {
margin-bottom: 20px;
border-radius: 4px;
overflow: hidden;
border: 1px solid #cccccc;
}
.el-collapse-item__wrap {
border: none;
}
// .row24.el-col-lg-12:nth-child(2n) {
// border-width: 0px 0px 0px 1px;
// }
.el-form-item {
padding: 0px;
}
}
}
</style> </style>
<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 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 followReview from "./components/followReview.vue"
export default {
components: { publicDialog, followReview },
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: "followReview",
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>
<template> <template>
<div <div id="publicContent" :class="activeName == 'index0' && formClass ? formClass : ''">
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">{{ <el-button class="draftButton">
{{
formType == 1 ? "临时保存" : "返回" formType == 1 ? "临时保存" : "返回"
}}</el-button> }}
</el-button>
<el-tabs <el-tabs
v-model="activeName" v-model="activeName"
type="card" type="card"
......
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