Commit c6ac0b41 authored by miaojiale's avatar miaojiale

1. 增加临时保存按钮提交逻辑

2. 草稿箱列表页删除接口
3.增加编辑页
parent 7c67e700
...@@ -43,6 +43,14 @@ export function addPatient(data = {}, type = "") { ...@@ -43,6 +43,14 @@ export function addPatient(data = {}, type = "") {
}) })
} }
// 删除草稿
export function deletePatient(data) {
return request({
url: `/disease-data/data/patient/${data}`,
method: "delete",
})
}
/* 患者数据详情 */ /* 患者数据详情 */
export function getPatientDetail(params = {}) { export function getPatientDetail(params = {}) {
return request({ return request({
...@@ -137,10 +145,6 @@ export function getZsyzyPatientInfo(params = {}) { ...@@ -137,10 +145,6 @@ export function getZsyzyPatientInfo(params = {}) {
}) })
} }
// 急性胰腺炎-评分表 // 急性胰腺炎-评分表
// 评分表新增修改 // 评分表新增修改
......
...@@ -269,6 +269,47 @@ export default { ...@@ -269,6 +269,47 @@ export default {
this.loading = false this.loading = false
}) })
}, },
// 临时保存
temporarySave() {
//? 只传数据
this.$refs.form.validate((valid) => {
if (valid) {
const data = {}
const form = this.deepClone(this.form)
Object.keys(form).forEach((k) => {
if (form[k] === undefined) {
data[k] = ""
return false
}
if (k === "YZZKJC") {
// 牙周表格
data[k] = JSON.stringify(form[k])
} else if (
Array.isArray(form[k]) &&
form[k][0] &&
isObject(form[k][0])
) {
// 子表单 去除前端添加的显隐辅助数据($_)和 删除按钮辅助数据(showDelBtn)
data[k] = form[k].map((item) => {
for (let key in item) {
if (["$_keyField", "$_hidden", "showDelBtn"].includes(key))
delete item[key]
}
return item
})
} else {
data[k] = form[k]
}
})
this.$emit("temporaryConfirm", data, () => {
// 完成之后的回调
this.loading = false
})
} else {
this.loading = false
}
})
},
handleConfirm() { handleConfirm() {
this.loading = true this.loading = true
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
......
let formJson = let formJson = {
{column:[],labelPosition:'left',labelSuffix:'',labelWidth:180,gutter:0,menuBtn:true,submitBtn:true,submitText:'下一步',emptyBtn:false,emptyText:'上一步',nextTabBtn:true,nextTabText:'下一页',menuPosition:'center',prevBtn:true,group:[{label:'个人信息',prop:'1669708504829_2651',arrow:true,collapse:true,display:true,labelWidth:8,column:[{type:'input',display:true,importantField:false,styles:{},prop:'name',label:'姓名',fieldType:'varchar',fieldLength:'15',tableName:'患者信息',tableCode:'gas_patient_info',tableId:'1595347991491833857',notFilter:false,cType:'',subfield:false,autoRequired:0,personalRequired:0,lg:12,span:12,width:24,xs:12,sm:12,md:12,readonly:false,required:true,rules:[{required:true,message:'姓名必须填写'}]},{type:'date',display:true,importantField:false,styles:{},format:'yyyy-MM-dd',valueFormat:'yyyy-MM-dd',prop:'survey_time',dicType:'',label:'调查时间',fieldType:'datetime',tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,span:12,xs:12,sm:12,md:12,lg:12,required:true,rules:[{required:true,message:'调查时间必须填写'}],personalRequired:0},{type:'input',display:true,importantField:false,styles:{},prop:'phone',label:'手机号',fieldType:'varchar',fieldLength:'15',tableName:'患者信息',tableCode:'gas_patient_info',tableId:'1595347991491833857',notFilter:false,cType:'',subfield:false,span:12,xs:12,sm:12,md:12,lg:12,required:true,rules:[{required:true,message:'手机号必须填写'},{validator:function checkTel(rule, value, callback) {\n if (!value) {\n return callback(new Error(\"请输入手机号\"));\n }\n\n var reg = /^1[3,4,5,6,7,8,9][0-9]{9}$/;\n reg.test(value);\n\n if (!reg.test(value)) {\n callback(new Error(\"请输入正确的手机号\"));\n } else {\n callback();\n }\n},trigger:'change'}],pattern:'checkTel'},{type:'input',display:true,importantField:false,styles:{},prop:'link_phone',label:'联系号码',fieldType:'varchar',fieldLength:'128',tableName:'患者信息',tableCode:'gas_patient_info',tableId:'1595347991491833857',notFilter:false,cType:'',subfield:false,span:12,xs:12,sm:12,md:12,lg:12,width:24,rules:[{required:true,message:'联系号码必须填写'}],required:true},{type:'date',display:true,importantField:false,styles:{},prop:'birthday',label:'出生日期',fieldType:'date',fieldLength:'',format:'yyyy-MM-dd',valueFormat:'yyyy-MM-dd',dicType:'',tableName:'患者信息',tableCode:'gas_patient_info',tableId:'1595347991491833857',notFilter:false,cType:'',subfield:false,span:12,xs:12,sm:12,md:12,lg:12,required:true,rules:[{required:true,message:'出生日期必须填写'}],disabled:true,value:' '},{type:'input',display:true,importantField:false,styles:{},prop:'age',label:'年龄',fieldType:'int',fieldLength:'11',tableName:'患者信息',tableCode:'gas_patient_info',tableId:'1595347991491833857',notFilter:false,cType:'',subfield:false,span:12,xs:12,sm:12,md:12,lg:12,required:true,rules:[{required:true,message:'年龄必须填写'}],readonly:false,disabled:true},{type:'radio',display:true,importantField:false,styles:{},autoRequired:0,personalRequired:0,prop:'sex',dicData:[{label:'女',value:'2',id:'1595351964546281474',parentId:''},{label:'男',value:'1',id:'1595351940139626497',parentId:''}],dynamicshSet:[],dicType:'d-sex',props:{label:'label',value:'value'},label:'性别',fieldType:'varchar',fieldLength:'20',tableName:'患者信息',tableCode:'gas_patient_info',tableId:'1595347991491833857',notFilter:false,cType:'',subfield:false,span:24,xs:24,sm:24,md:24,lg:24,required:true,rules:[{required:true,message:'请选择性别'}]}]},{label:'家族史',prop:'1669708827460_97007',arrow:true,collapse:true,display:true,labelWidth:8,column:[{type:'radio',display:true,importantField:false,styles:{},prop:'is_first_degree',label:'一级亲属(父母、子女、兄弟姐妹)罹患胃癌情况',dicData:[{label:'是',value:'1',id:'1595347527757000705',parentId:''},{label:'否',value:'0',id:'1595347502595371010',parentId:''}],dynamicshSet:[{value:'1',target:'family_count'},{value:'1',target:'min_age'}],dicType:'d-sf',props:{label:'label',value:'value'},fieldType:'tinyint',fieldLength:'2',tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,autoRequired:0,personalRequired:0,span:24,xs:24,sm:24,md:24,lg:24,required:true,rules:[{required:true,message:'请选择一级亲属(父母、子女、兄弟姐妹)罹患胃癌情况'}]},{type:'input',display:true,importantField:false,styles:{},prop:'family_count',label:'数量',fieldType:'int',fieldLength:'11',tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,span:24,labelSuffix:'(1)',xs:24,sm:24,md:24,lg:24,required:true,rules:[{required:true,message:'数量必须填写'}]},{type:'input',display:true,importantField:false,styles:{},prop:'min_age',label:'诊断时最小年龄',fieldType:'int',fieldLength:'11',tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,autoRequired:0,personalRequired:0,span:24,labelSuffix:'(2)',xs:24,sm:24,md:24,lg:24,width:24,rules:[{required:true,message:'诊断时最小年龄必须填写'}],required:true},{type:'radio',display:true,importantField:false,styles:{},prop:'is_other_sickness',label:'一级亲属罹患其他恶性肿瘤情况',fieldType:'tinyint',fieldLength:'2',dicData:[{label:'是',value:'1',id:'1595347527757000705',parentId:''},{label:'否',value:'0',id:'1595347502595371010',parentId:''}],dynamicshSet:[{value:'1',target:'family_other_count'},{value:'1',target:'other_sickness'}],dicType:'d-sf',props:{label:'label',value:'value'},tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,xs:24,sm:24,md:24,lg:24,span:24,width:24,rules:[{required:true,message:'请选择一级亲属罹患其他恶性肿瘤情况'}],required:true,autoRequired:0,personalRequired:0,labelSuffix:'2'},{type:'input',display:true,importantField:false,styles:{},prop:'family_other_count',label:'一级亲属罹患其他恶性肿瘤数量',fieldType:'int',fieldLength:'11',dicData:[{label:'是',value:'1',id:'1595347527757000705',parentId:''},{label:'否',value:'0',id:'1595347502595371010',parentId:''}],dynamicshSet:[],dicOption:'static',dicType:'',props:{label:'label',value:'value'},tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,lg:24,xs:24,sm:24,md:24,autoRequired:0,personalRequired:0,span:24,width:24,labelSuffix:'(1)',required:true,rules:[{required:true,message:'一级亲属罹患其他恶性肿瘤数量必须填写'}]},{type:'input',display:true,importantField:false,styles:{},prop:'other_sickness',label:'一级亲属罹患其它恶性肿瘤名称',fieldType:'varchar',fieldLength:'255',tableName:'问卷调查',tableCode:'gas_question',tableId:'1597462007689347074',notFilter:false,cType:'',subfield:false,autoRequired:0,personalRequired:0,span:24,labelSuffix:'(2)',xs:24,sm:24,md:24,lg:24,width:24,rules:[{required:true,message:'一级亲属罹患其它恶性肿瘤名称必须填写'}],required:true}]}]} column: [],
labelPosition: "left",
labelSuffix: "",
labelWidth: 180,
gutter: 0,
menuBtn: true,
submitBtn: true,
submitText: "下一步",
emptyBtn: false,
emptyText: "上一步",
nextTabBtn: true,
nextTabText: "下一页",
menuPosition: "center",
prevBtn: true,
group: [
{
label: "个人信息",
prop: "1669708504829_2651",
arrow: true,
collapse: true,
display: true,
labelWidth: 8,
column: [
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "name",
label: "姓名",
fieldType: "varchar",
fieldLength: "15",
tableName: "患者信息",
tableCode: "gas_patient_info",
tableId: "1595347991491833857",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
lg: 12,
span: 12,
width: 24,
xs: 12,
sm: 12,
md: 12,
readonly: false,
required: true,
rules: [{ required: true, message: "姓名必须填写" }],
},
{
type: "date",
display: true,
importantField: false,
styles: {},
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
prop: "survey_time",
dicType: "",
label: "调查时间",
fieldType: "datetime",
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
span: 12,
xs: 12,
sm: 12,
md: 12,
lg: 12,
required: true,
rules: [{ required: true, message: "调查时间必须填写" }],
personalRequired: 0,
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "phone",
label: "手机号",
fieldType: "varchar",
fieldLength: "15",
tableName: "患者信息",
tableCode: "gas_patient_info",
tableId: "1595347991491833857",
notFilter: false,
cType: "",
subfield: false,
span: 12,
xs: 12,
sm: 12,
md: 12,
lg: 12,
required: true,
rules: [],
pattern: "checkTel",
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "link_phone",
label: "联系号码",
fieldType: "varchar",
fieldLength: "128",
tableName: "患者信息",
tableCode: "gas_patient_info",
tableId: "1595347991491833857",
notFilter: false,
cType: "",
subfield: false,
span: 12,
xs: 12,
sm: 12,
md: 12,
lg: 12,
width: 24,
rules: [{ required: true, message: "联系号码必须填写" }],
required: true,
},
{
type: "date",
display: true,
importantField: false,
styles: {},
prop: "birthday",
label: "出生日期",
fieldType: "date",
fieldLength: "",
format: "yyyy-MM-dd",
valueFormat: "yyyy-MM-dd",
dicType: "",
tableName: "患者信息",
tableCode: "gas_patient_info",
tableId: "1595347991491833857",
notFilter: false,
cType: "",
subfield: false,
span: 12,
xs: 12,
sm: 12,
md: 12,
lg: 12,
required: true,
rules: [{ required: true, message: "出生日期必须填写" }],
disabled: true,
value: " ",
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "age",
label: "年龄",
fieldType: "int",
fieldLength: "11",
tableName: "患者信息",
tableCode: "gas_patient_info",
tableId: "1595347991491833857",
notFilter: false,
cType: "",
subfield: false,
span: 12,
xs: 12,
sm: 12,
md: 12,
lg: 12,
required: true,
rules: [{ required: true, message: "年龄必须填写" }],
readonly: false,
disabled: true,
},
{
type: "radio",
display: true,
importantField: false,
styles: {},
autoRequired: 0,
personalRequired: 0,
prop: "sex",
dicData: [
{
label: "",
value: "2",
id: "1595351964546281474",
parentId: "",
},
{
label: "",
value: "1",
id: "1595351940139626497",
parentId: "",
},
],
dynamicshSet: [],
dicType: "d-sex",
props: { label: "label", value: "value" },
label: "性别",
fieldType: "varchar",
fieldLength: "20",
tableName: "患者信息",
tableCode: "gas_patient_info",
tableId: "1595347991491833857",
notFilter: false,
cType: "",
subfield: false,
span: 24,
xs: 24,
sm: 24,
md: 24,
lg: 24,
required: true,
rules: [{ required: true, message: "请选择性别" }],
},
],
},
{
label: "家族史",
prop: "1669708827460_97007",
arrow: true,
collapse: true,
display: true,
labelWidth: 8,
column: [
{
type: "radio",
display: true,
importantField: false,
styles: {},
prop: "is_first_degree",
label: "一级亲属(父母、子女、兄弟姐妹)罹患胃癌情况",
dicData: [
{
label: "",
value: "1",
id: "1595347527757000705",
parentId: "",
},
{
label: "",
value: "0",
id: "1595347502595371010",
parentId: "",
},
],
dynamicshSet: [
{ value: "1", target: "family_count" },
{ value: "1", target: "min_age" },
],
dicType: "d-sf",
props: { label: "label", value: "value" },
fieldType: "tinyint",
fieldLength: "2",
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
span: 24,
xs: 24,
sm: 24,
md: 24,
lg: 24,
required: true,
rules: [
{
required: true,
message: "请选择一级亲属(父母、子女、兄弟姐妹)罹患胃癌情况",
},
],
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "family_count",
label: "数量",
fieldType: "int",
fieldLength: "11",
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
span: 24,
labelSuffix: "(1)",
xs: 24,
sm: 24,
md: 24,
lg: 24,
required: true,
rules: [{ required: true, message: "数量必须填写" }],
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "min_age",
label: "诊断时最小年龄",
fieldType: "int",
fieldLength: "11",
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
span: 24,
labelSuffix: "(2)",
xs: 24,
sm: 24,
md: 24,
lg: 24,
width: 24,
rules: [{ required: true, message: "诊断时最小年龄必须填写" }],
required: true,
},
{
type: "radio",
display: true,
importantField: false,
styles: {},
prop: "is_other_sickness",
label: "一级亲属罹患其他恶性肿瘤情况",
fieldType: "tinyint",
fieldLength: "2",
dicData: [
{
label: "",
value: "1",
id: "1595347527757000705",
parentId: "",
},
{
label: "",
value: "0",
id: "1595347502595371010",
parentId: "",
},
],
dynamicshSet: [
{ value: "1", target: "family_other_count" },
{ value: "1", target: "other_sickness" },
],
dicType: "d-sf",
props: { label: "label", value: "value" },
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
xs: 24,
sm: 24,
md: 24,
lg: 24,
span: 24,
width: 24,
rules: [
{ required: true, message: "请选择一级亲属罹患其他恶性肿瘤情况" },
],
required: true,
autoRequired: 0,
personalRequired: 0,
labelSuffix: "2",
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "family_other_count",
label: "一级亲属罹患其他恶性肿瘤数量",
fieldType: "int",
fieldLength: "11",
dicData: [
{
label: "",
value: "1",
id: "1595347527757000705",
parentId: "",
},
{
label: "",
value: "0",
id: "1595347502595371010",
parentId: "",
},
],
dynamicshSet: [],
dicOption: "static",
dicType: "",
props: { label: "label", value: "value" },
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
lg: 24,
xs: 24,
sm: 24,
md: 24,
autoRequired: 0,
personalRequired: 0,
span: 24,
width: 24,
labelSuffix: "(1)",
required: true,
rules: [
{ required: true, message: "一级亲属罹患其他恶性肿瘤数量必须填写" },
],
},
{
type: "input",
display: true,
importantField: false,
styles: {},
prop: "other_sickness",
label: "一级亲属罹患其它恶性肿瘤名称",
fieldType: "varchar",
fieldLength: "255",
tableName: "问卷调查",
tableCode: "gas_question",
tableId: "1597462007689347074",
notFilter: false,
cType: "",
subfield: false,
autoRequired: 0,
personalRequired: 0,
span: 24,
labelSuffix: "(2)",
xs: 24,
sm: 24,
md: 24,
lg: 24,
width: 24,
rules: [
{ required: true, message: "一级亲属罹患其它恶性肿瘤名称必须填写" },
],
required: true,
},
],
},
],
}
...@@ -213,19 +213,21 @@ html { ...@@ -213,19 +213,21 @@ html {
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
} }
.is-background{ .is-background {
button,.el-pager li{ button,
.el-pager li {
border-radius: 6px !important; border-radius: 6px !important;
} }
button,.el-pager li:not(.active){ button,
border: 1px solid #D9D9D9; .el-pager li:not(.active) {
border: 1px solid #d9d9d9;
background: transparent !important; background: transparent !important;
} }
.el-input__inner{ .el-input__inner {
border-radius: 6px !important; border-radius: 6px !important;
} }
} }
/* 分页结束 */ /* 分页结束 */
/* 菜单开始 */ /* 菜单开始 */
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
show-close show-close
@closed="cancelSubmit" @closed="cancelSubmit"
:close-on-click-modal="false" :close-on-click-modal="false"
:show-close="false" :show-close="showClose"
> >
<slot name="content"></slot> <slot name="content"></slot>
<slot name="footer"></slot> <slot name="footer"></slot>
...@@ -19,6 +19,11 @@ export default { ...@@ -19,6 +19,11 @@ export default {
data() { data() {
return { dialogVisible: false, loading: false } return { dialogVisible: false, loading: false }
}, },
props: {
showClose: {
default: false,
},
},
watch: {}, watch: {},
mounted() {}, mounted() {},
methods: { methods: {
......
<template> <template>
<div class="dataCenter"> <div class="container" style="max-height: 89vh">
<div class="header">草稿箱</div> <div v-show="!isDetail">
<div class="content"> <div class="header">草稿箱</div>
<customs-table <div class="content">
ref="table" <customs-table
:table-data="tableData" ref="table"
:columns="columns" :table-data="tableData"
:header-class="'newHeader'" :columns="columns"
:list-loading="listLoading" :header-class="'newHeader'"
:current-page="pageIndex" :list-loading="listLoading"
:total-count="total" :current-page="pageIndex"
:page-sizes="pageSizes" :total-count="total"
:page-size="pageSize" :page-sizes="pageSizes"
@pageSizeChange="handleSizeChange" :page-size="pageSize"
@currentPageChange="handleCurrentChange" @pageSizeChange="handleSizeChange"
/> @currentPageChange="handleCurrentChange"
/>
</div>
</div>
<div v-if="isDetail">
<div>
<el-button icon="el-icon-back" @click="isDetail = false"
>返 回</el-button
>
</div>
<div class="form_content">
<ConfigForms
form-type="1"
:patient-id="patientId"
:disabled="disabled"
></ConfigForms>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import CustomsTable from "@/components/CustomsTable" import CustomsTable from "@/components/CustomsTable"
import paginationMixin from "@/components/TabComponents/mixin" import paginationMixin from "@/components/TabComponents/mixin"
import ConfigForms from "./components/ConfigForms.vue"
import { mapGetters } from "vuex" import { mapGetters } from "vuex"
import { getPatientPage } from "@/api/patient.js" import { getPatientPage, deletePatient } from "@/api/patient.js"
export default { export default {
// 数据概览 // 数据概览
name: "", name: "",
components: { components: {
CustomsTable, CustomsTable,
ConfigForms,
}, },
mixins: [paginationMixin], mixins: [paginationMixin],
data() { data() {
return { return {
isDetail: false, //! 控制详情显隐
listLoading: false, listLoading: false,
columns: [ columns: [
{ {
...@@ -90,7 +109,7 @@ export default { ...@@ -90,7 +109,7 @@ export default {
operType: "button", operType: "button",
operations: [ operations: [
{ {
func: this.rowOpration, func: this.handleAdd,
formatter(row) { formatter(row) {
return { return {
label: "编辑", label: "编辑",
...@@ -99,7 +118,7 @@ export default { ...@@ -99,7 +118,7 @@ export default {
}, },
}, },
{ {
func: this.rowOpration, func: this.deletePatient,
formatter(row) { formatter(row) {
return { return {
label: "删除", label: "删除",
...@@ -124,6 +143,12 @@ export default { ...@@ -124,6 +143,12 @@ export default {
watch: {}, watch: {},
mounted() {}, mounted() {},
methods: { methods: {
handleAdd({ patientId, name }, index, disabled = false) {
this.disabled = disabled
this.patientId = patientId || null
this.name = name
this.isDetail = true
},
setSelectedIndex(i) { setSelectedIndex(i) {
console.log(this.selectedIndex) console.log(this.selectedIndex)
this.selectedIndex = i this.selectedIndex = i
...@@ -151,6 +176,25 @@ export default { ...@@ -151,6 +176,25 @@ export default {
} }
}) })
}, },
deletePatient(row) {
this.$confirm(`是否删除【${row.name}】?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deletePatient(row.patientId).then((res) => {
if (res.code === 1) {
this.$message({
type: "success",
message: "删除成功!",
})
this.handleSearch()
}
})
})
.catch(() => {})
},
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({
...@@ -168,8 +212,8 @@ export default { ...@@ -168,8 +212,8 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.dataCenter { .container {
padding: 24px 0; padding: 24px;
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
...@@ -187,5 +231,8 @@ export default { ...@@ -187,5 +231,8 @@ export default {
.content { .content {
padding: 0 24px; padding: 0 24px;
} }
.form_content {
height: calc(100% - 50px);
}
} }
</style> </style>
<template> <template>
<div <div
id="publicContent" id="publicContent"
:style="{
padding:
$route.path == '/screening/draft'
? ' 10px 24px 60px;'
: ' 32px 24px 60px;',
}"
:class="activeName == 'index0' && formClass ? formClass : ''" :class="activeName == 'index0' && formClass ? formClass : ''"
> >
<div v-if="formTabs && formTabs.length > 0"> <div v-if="formTabs && formTabs.length > 0">
...@@ -8,6 +14,7 @@ ...@@ -8,6 +14,7 @@
v-if="!disabled" v-if="!disabled"
class="draftButton" class="draftButton"
:loading="loading" :loading="loading"
:disabled="!infoCompelete"
@click="onSubmit(formType)" @click="onSubmit(formType)"
>{{ formType == 1 ? "临时保存" : "返回" }}</el-button >{{ formType == 1 ? "临时保存" : "返回" }}</el-button
> >
...@@ -24,8 +31,8 @@ ...@@ -24,8 +31,8 @@
:key="form.id" :key="form.id"
:label="form.label" :label="form.label"
:name="'index' + index" :name="'index' + index"
disabled
> >
<!-- disabled -->
<transition mode="out-in" name="fade-transform"> <transition mode="out-in" name="fade-transform">
<div v-show="activeName === 'index' + index"> <div v-show="activeName === 'index' + index">
<template v-if="form.formId"> <template v-if="form.formId">
...@@ -42,6 +49,7 @@ ...@@ -42,6 +49,7 @@
@setFormJson="setFormJson" @setFormJson="setFormJson"
@handleConfirm="handleConfirm" @handleConfirm="handleConfirm"
@onPrev="onPrev" @onPrev="onPrev"
@temporaryConfirm="temporaryConfirm"
></form-tab> ></form-tab>
</template> </template>
</div> </div>
...@@ -50,7 +58,10 @@ ...@@ -50,7 +58,10 @@
</el-tabs> </el-tabs>
</div> </div>
<el-empty v-else description="暂无数据"></el-empty> <el-empty v-else description="暂无数据"></el-empty>
<public-dialog ref="showDialog"> <public-dialog
ref="showDialog"
:showClose="dialogType == 'draft' ? true : false"
>
<!-- 保存草稿 --> <!-- 保存草稿 -->
<template v-if="dialogType == 'draft'" slot="content"> <template v-if="dialogType == 'draft'" slot="content">
<div class="title center">已保存至草稿箱!</div> <div class="title center">已保存至草稿箱!</div>
...@@ -114,6 +125,7 @@ export default { ...@@ -114,6 +125,7 @@ export default {
// survivalFlag:false // survivalFlag:false
dialogType: "", dialogType: "",
loading: false, loading: false,
infoCompelete: false,
formInitial: {}, // 第四步的数据 formInitial: {}, // 第四步的数据
} }
}, },
...@@ -135,7 +147,36 @@ export default { ...@@ -135,7 +147,36 @@ export default {
}, },
watch: { watch: {
activeName(val) { activeName(val) {
console.log(this.formId) if (!this.disabled) {
if (!["index0"].includes(val)) {
this.infoCompelete = true
} else {
this.infoCompelete = false
}
}
if (val == "index1") {
// 第二步问卷调查
this.$nextTick(() => {
let { birthday } = JSON.parse(sessionStorage.getItem("index1Data"))
let date = new Date(String(birthday).replace(/-/g, "/"))
let d = new Date()
let age =
d.getFullYear() -
date.getFullYear() -
(d.getMonth() < date.getMonth() ||
(d.getMonth() == date.getMonth() && d.getDate() < date.getDate())
? 1
: 0)
//!
this.formInitial = {
birthday,
age,
}
})
} else {
this.formInitial = false
}
if (val == "index3") { if (val == "index3") {
// 第四步风险评估 // 第四步风险评估
this.$nextTick(() => { this.$nextTick(() => {
...@@ -161,27 +202,6 @@ export default { ...@@ -161,27 +202,6 @@ export default {
// } // }
}) })
}) })
} else if (val == "index1") {
// 第二步问卷调查
this.$nextTick(() => {
let { birthday } = JSON.parse(sessionStorage.getItem("index1Data"))
let date = new Date(String(birthday).replace(/-/g, "/"))
let d = new Date()
let age =
d.getFullYear() -
date.getFullYear() -
(d.getMonth() < date.getMonth() ||
(d.getMonth() == date.getMonth() && d.getDate() < date.getDate())
? 1
: 0)
//!
this.formInitial = {
birthday,
age,
}
})
} else {
this.formInitial = false
} }
}, },
}, },
...@@ -198,16 +218,28 @@ export default { ...@@ -198,16 +218,28 @@ export default {
form: data.data, form: data.data,
}) })
}, },
temporaryConfirm(data, done, cb) {
this.addPatient(data, done, cb, () => {
console.log("倒了")
this.$refs.showDialog.dialogVisible = true
this.loading = false
})
},
onPrev(done) { onPrev(done) {
this.prevTab(done) this.prevTab(done)
}, },
onSubmit(type) { onSubmit(type) {
this.loading = true // this.loading = true
if (type == 1) { if (type == 1) {
// 临时保存草稿 // 临时保存草稿
this.dialogType = "draft" this.dialogType = "draft"
this.$refs.showDialog.dialogVisible = true // 保存逻辑处理
this.loading = false // !获取当前tab的formTab
let formTab = this.$refs.formTabs.filter(
(e) => e.form.formId == this.formId
)[0]
formTab.temporarySave()
// console.log(formTab)
} else if (type == 2) { } else if (type == 2) {
//提交 //提交
this.dialogType = "submit" this.dialogType = "submit"
...@@ -227,7 +259,6 @@ export default { ...@@ -227,7 +259,6 @@ export default {
this.$refs.formTabs[i].initForm() this.$refs.formTabs[i].initForm()
} }
// 清空红字:不符合筛查条件 // 清空红字:不符合筛查条件
this.$refs.showDialog.dialogVisible = false this.$refs.showDialog.dialogVisible = false
}, },
viewJump() { viewJump() {
...@@ -245,7 +276,6 @@ export default { ...@@ -245,7 +276,6 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
#publicContent { #publicContent {
padding: 32px 24px;
position: relative; position: relative;
.draftButton { .draftButton {
position: absolute; position: absolute;
...@@ -288,6 +318,13 @@ export default { ...@@ -288,6 +318,13 @@ export default {
margin-top: 10px; margin-top: 10px;
} }
::v-deep { ::v-deep {
.el-button.is-disabled {
color: #c0c4cc !important;
cursor: not-allowed;
background-image: none;
background-color: #fff;
border-color: #ebeef5 !important;
}
.el-tabs__item.is-disabled { .el-tabs__item.is-disabled {
color: #252c49; color: #252c49;
} }
......
...@@ -42,7 +42,11 @@ ...@@ -42,7 +42,11 @@
</el-switch>--> </el-switch>-->
</div> </div>
</el-row> </el-row>
<div ref="my-form" class="my-form" :class="externalScroll ? 'no-scroll' : ''"> <div
ref="my-form"
class="my-form"
:class="externalScroll ? 'no-scroll' : ''"
>
<!-- <read-form <!-- <read-form
ref="form" ref="form"
:options="survivalForm" :options="survivalForm"
...@@ -55,6 +59,7 @@ ...@@ -55,6 +59,7 @@
@scrollTop="scrollTop" @scrollTop="scrollTop"
@handleConfirm="handleConfirm" @handleConfirm="handleConfirm"
@onPrev="onPrev" @onPrev="onPrev"
@temporaryConfirm="temporaryConfirm"
></custom-form> ></custom-form>
</div> </div>
</template> </template>
...@@ -163,6 +168,62 @@ export default { ...@@ -163,6 +168,62 @@ export default {
this.getRecordList() this.getRecordList()
} }
}, },
// 临时保存
temporarySave() {
this.$refs.form.temporarySave()
},
// 临时保存确定
temporaryConfirm(data, done) {
this.$emit(
"temporaryConfirm",
{
data,
formId: this.form.formId, // 每个大表单的id
patientId: this.patientId || this.patientStandbyId,
formRecordId: this.formData.formRecordId || this.newformRecordId, // 是否为编辑的表单id
statusMap: {
patient_from: this.$store.getters["table/selectedIndex"],
is_draft: 1, //是否为草稿
check_status: 1, // 审核状态
},
},
done,
(res) => {
// 多次填写的表单新增时,获取最新数据
if (this.form.fillType === 1 && !this.formData.formRecordId) {
this.getRecordList(res.data.formRecordId)
}
this.formatData(res, this.form.fillType !== 1)
}
)
},
handleConfirm(data, done) {
this.$emit(
"handleConfirm",
{
data,
formId: this.form.formId, // 每个大表单的id
patientId: this.patientId || this.patientStandbyId,
formRecordId: this.formData.formRecordId || this.newformRecordId, // 是否为编辑的表单id
statusMap: {
patient_from: this.$store.getters["table/selectedIndex"],
is_draft: 0, //是否为草稿
check_status: 1, // 审核状态
},
},
done,
(res) => {
// 多次填写的表单新增时,获取最新数据
if (this.form.fillType === 1 && !this.formData.formRecordId) {
this.getRecordList(res.data.formRecordId)
}
this.formatData(res, this.form.fillType !== 1)
}
)
},
onPrev(done) {
this.$emit("onPrev", done)
},
scrollTop() { scrollTop() {
this.$refs["my-form"].scrollTop = 0 this.$refs["my-form"].scrollTop = 0
}, },
...@@ -229,34 +290,6 @@ export default { ...@@ -229,34 +290,6 @@ export default {
}) })
}, },
handleConfirm(data, done) {
this.$emit(
"handleConfirm",
{
data,
formId: this.form.formId, // 每个大表单的id
patientId: this.patientId || this.patientStandbyId,
formRecordId: this.formData.formRecordId || this.newformRecordId, // 是否为编辑的表单id
statusMap: {
patient_from: this.$store.getters["table/selectedIndex"],
is_draft: 1, //是否为草稿
check_status: 1, // 审核状态
},
},
done,
(res) => {
// 多次填写的表单新增时,获取最新数据
if (this.form.fillType === 1 && !this.formData.formRecordId) {
this.getRecordList(res.data.formRecordId)
}
this.formatData(res, this.form.fillType !== 1)
}
)
},
onPrev(done) {
this.$emit("onPrev", done)
},
getPatientDetail() { getPatientDetail() {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.form && this.$refs.form.resetForm() this.$refs.form && this.$refs.form.resetForm()
...@@ -388,18 +421,19 @@ export default { ...@@ -388,18 +421,19 @@ export default {
z-index: 9; z-index: 9;
} }
.header { .header {
height: 20px; height: 36px;
// box-shadow: 0 1px 4px rgb(0 21 41 / 8%); box-shadow: 0 5px 4px rgb(0 21 41 / 8%);
padding-right: 20px; padding-right: 20px;
position: relative; position: relative;
font-size: 15px; font-size: 15px;
z-index: 999;
} }
} }
.el-aside { .el-aside {
padding-left: 10px; padding-left: 10px;
border-left: 1px solid #ccc; border-left: 1px solid #ccc;
.side-content { .side-content {
// height: calc(100vh - #{"272px"}); height: calc(100vh - #{"272px"});
// overflow: auto; // overflow: auto;
} }
} }
......
...@@ -56,8 +56,8 @@ export default { ...@@ -56,8 +56,8 @@ export default {
...this.formTabsList.find((_) => _.id === id), ...this.formTabsList.find((_) => _.id === id),
}) })
}, },
async addPatient(data, done, cb, type) { async addPatient(data, done, cb, ConfigFormsCallback) {
addPatient(data, type) addPatient(data, "")
.then((res) => { .then((res) => {
// this.$message.success("操作成功") // this.$message.success("操作成功")
if (res.data) { if (res.data) {
...@@ -74,7 +74,16 @@ export default { ...@@ -74,7 +74,16 @@ export default {
}) })
.finally((e) => { .finally((e) => {
done() done()
this.nextTab() console.log("走了", ConfigFormsCallback)
if (
ConfigFormsCallback &&
Object.prototype.toString.call(ConfigFormsCallback) ===
"[object Function]"
) {
ConfigFormsCallback()
} else {
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