赞
踩
<template>
<div class="rectification">
<div class="border-b" style="width:100%">
<!--导航选择事件-->
<!-- <el-menu :default-active="activeStep" @select="jump" style="border-right:0px;display: flex;">
<el-menu-item class="labelccyc" v-for="(tab,index) in tabs" :index="`${index}`" :key="tab.index">
<i class="el-icon-menu"></i>
<span slot="title" :title="tab.labelTitle">{{tab.labelTitle}}</span>
</el-menu-item>
</el-menu> -->
<div style="height:42px;line-height:42px;">
<el-row style="width:100%;">
<el-col :span="20">
<div style="display: flex;align-items: center;padding:0px 10px;">
<el-button type="primary"
style="background: #409eff;border: 1px solid #409eff;width: 25px;height: 24px;display: flex;justify-content: center;align-items: center;"
size="mini"
icon="el-icon-arrow-left"
circle
@click="goBack"></el-button>
<div style="margin-left:10px;font-size: 15px;font-weight: 600;color: #333333;">{{this.$route.query.diseaseTypeName}}</div>
</div>
</el-col>
<!-- <el-col :span="4">
<div style="width:100%;text-align: right;padding:0px 14px">
<el-button type="primary" @click="getfillin()"><i class="el-icon-warning" style="margin-right:5px;"></i>填报要求</el-button>
</div>
</el-col> -->
</el-row>
</div>
</div>
<div style="display: flex;">
<div class="border-r" style="width:20%;height:auto">
<el-tabs class="customer-tab" type="card" v-model="tabName">
<div style="width:100%;height:auto;">
<div>
<div class="p-l-10 "
style="float: left;lineHeight:40px;font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 600;
color: #333333;
width:100%;
display: flex;
align-items: center;"
v-for="(tab, index) in tabs"
:key="index"
@click="jump(tab, index)"
>
<i class="el-icon-menu" :style="tabName == tab.labelTitle?'color:#4d84ff':''"></i>
<el-tooltip class="item" effect="dark" :content="tab.labelTitle" placement="top-start">
<span
:class="tabName == tab.labelTitle?'tabspanxz labelccyc':'tabspan labelccyc' "
>{{tab.labelTitle}}</span>
</el-tooltip>
</div>
</div>
</div>
</el-tabs>
</div>
<!--绑定scroll事件需要监听-->
<div class="registers">
<span
slot="footer"
class="footer_btn_box border-b"
style="display: flex;justify-content: flex-end;align-items: center;height: 50px;padding: 0px 10px;"
>
<!-- color:#FAAD14 -->
<el-button type="primary" @click="getfillin()"><i class="el-icon-warning" style="margin-right:5px;"></i>填报要求</el-button>
<el-button type="primary" @click="resetForm()">保存内容</el-button>
<el-button type="primary" @click="submitForm()">提交审核</el-button>
</span>
<!-- <div class="scroll_cls"> -->
<div class="scroll-content" @scroll="onScroll">
<div v-for="(tab, index) in tabs" :key="index">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item :name="tab.labelTitle">
<template #title>
<div class="scroll-item" style="width:100%" :id="tab.id">
<el-row style="width:100%">
<el-col :span="21">
<!-- <i class="el-icon-user-solid" style="color:#497EFF;font-size:16px"></i> -->
<span class="circle "></span>
<span :style="tab.isbt?'color:red':'color: #3362CD;'">{{tab.labelTitle}}</span>
</el-col>
<el-col :span="3" style="text-align: right;padding: 0px 5px;">
<span><el-button type="primary" @click="getcomplete(tab)">完成</el-button></span>
</el-col>
</el-row>
</div>
</template>
<div v-for="(eldata, eldataindex) in tab.children" :key="eldataindex">
<!-- eldata.labelType=='title' 二级标题 -->
<div v-if="eldata.labelType=='title' && eldata.labelShow" class="tablistrowejtitle border-b">{{eldata.labelTitle}}</div>
<!-- eldata.labelType=='title' 二级下的内容 -->
<div v-if="eldata.labelType=='title'">
<div
v-if="item.labelShow"
class="tablistrow border-b"
v-for="(item, itindex) in eldata.children"
:key="itindex"
>
<div class="tablistrowlable">
<span class="btbj" v-if="item.isbt">*</span>
<span class="btbj" v-else style="color:#ffffff">*</span>
{{item.labelTitle}}
</div>
<div
class="cont border-l"
style="flex:1;display: flex;padding:0px 2px;min-height: 42px;align-items: center;"
>
<div v-if="item.labelType=='checkbox'" style="width:60%">
<el-checkbox-group v-model="item.labelValue" @change="getcheckbox(item,tab)">
<el-checkbox
:title="radioitem.dictLabel"
:label="radioitem.dictValue"
v-for="(radioitem, radioitemindex) in item.arrlist"
:key="radioitemindex"
>{{radioitem.dictLabel}}</el-checkbox>
</el-checkbox-group>
</div>
<div v-if="item.labelType=='radio'">
<el-radio-group v-model="item.labelValue" @change="getcheckbox(item,tab)">
<el-radio :label="radioitem.dictValue" v-for="(radioitem, radioitemindex) in item.arrlist" :key="radioitemindex">{{radioitem.dictLabel}}</el-radio>
</el-radio-group>
</div>
<div v-if="item.labelType=='data'" style="width:60%">
<el-date-picker
@change="getdatatime(item,eldata)"
style="width:100%"
v-model="item.labelValue"
value-format="yyyy-MM-dd"
:editable="false"
type="date"
></el-date-picker>
</div>
<div v-if="item.labelType=='select'" style="width:60%">
<el-select v-model="item.labelValue" filterable clearable placeholder="请选择" style="width:100%" @click.native="getTypeList(item)" @change="getcheckbox(item,tab)">
<!-- <el-option label="请选择" value=""></el-option> -->
<el-option :label="radioitem.dictLabel" v-for="(radioitem, radioitemindex) in item.arrlist" :key="radioitemindex" :value="radioitem.dictValue" ></el-option>
</el-select>
</div>
<div v-if="item.labelType=='input'" style="width:60%">
<el-input
clearable
style="width:100%"
v-model="item.labelValue"
maxlength="30"
></el-input>
</div>
<div v-if="item.labelType=='number'" style="width:60%">
<el-input
clearable
style="width:100%"
οninput="value=value.replace(/[^\d.]/g, '')"
v-model="item.labelValue"
></el-input>
</div>
<div class="tablistrowbttsy" v-if="item.bttsy">{{item.bttsy}}</div>
</div>
</div>
</div>
<!--没有二级 一级下的内容 -->
<div v-else>
<div v-if="eldata.labelShow" class="tablistrow border-b">
<div class="tablistrowlable">
<span class="btbj" v-if="eldata.isbt">*</span>
<span class="btbj" v-else style="color:#ffffff">*</span>
{{eldata.labelTitle}}
</div>
<div
class="cont border-l"
style="flex:1;display: flex;padding:0px 2px;min-height: 42px;align-items: center;"
>
<div v-if="eldata.labelType=='checkbox'" style="width:60%">
<el-checkbox-group v-model="eldata.labelValue" @change="getcheckbox(eldata,tab)">
<el-checkbox
:title="radioitem.dictLabel"
:label="radioitem.dictValue"
v-for="(radioitem, radioitemindex) in eldata.arrlist"
:key="radioitemindex"
>{{radioitem.dictLabel}}</el-checkbox>
<!-- <el-checkbox label="2">考查患者体力活动和日</el-checkbox> -->
</el-checkbox-group>
</div>
<div v-if="eldata.labelType=='radio'">
<el-radio-group v-model="eldata.labelValue" @change="getcheckbox(eldata,tab)">
<el-radio :label="radioitem.dictValue" v-for="(radioitem, radioitemindex) in eldata.arrlist" :key="radioitemindex">{{radioitem.dictLabel}}</el-radio>
<!-- <el-radio label="6">备选项</el-radio> -->
</el-radio-group>
</div>
<div v-if="eldata.labelType=='data'" style="width:60%">
<el-date-picker
@change="getdatatime(eldata,tab)"
style="width:100%"
v-model="eldata.labelValue"
value-format="yyyy-MM-dd"
:editable="false"
type="date"
></el-date-picker>
</div>
<div v-if="eldata.labelType=='select'" style="width:60%">
<el-select v-model="eldata.labelValue" filterable clearable placeholder="请选择" style="width:100%" @click.native="getTypeList(eldata,tab)" @change="getcheckbox(eldata,tab)">
<!-- <el-option label="请选择" value=""></el-option> -->
<el-option :label="radioitem.dictLabel" v-for="(radioitem, radioitemindex) in eldata.arrlist" :key="radioitemindex" :value="radioitem.dictValue" ></el-option>
</el-select>
</div>
<div v-if="eldata.labelType=='input'" style="width:60%">
<el-input
clearable
style="width:100%"
v-model="eldata.labelValue"
maxlength="30"
></el-input>
</div>
<div v-if="eldata.labelType=='number'" style="width:60%">
<el-input
clearable
style="width:100%"
οninput="value=value.replace(/[^\d.]/g, '')"
v-model="eldata.labelValue"
></el-input>
</div>
<div class="tablistrowbttsy" v-if="eldata.bttsy">{{eldata.bttsy}}</div>
</div>
</div>
</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
<!-- <span
slot="footer"
class="footer_btn_box"
style="display: flex;justify-content: center;align-items: center;height: 50px;"
>
<el-button type="primary" @click="submitForm()">提交</el-button>
<el-button @click="resetForm()">取消</el-button>
</span> -->
</div>
</div>
<!-- 填报要求 -->
<el-dialog title="填报要求" :visible.sync="fillinopen" width="500px" append-to-body>
<div style="margin-bottom: 20px;">
<p style="margin: 0 0 10px 0;"><span style="color: #333333;">上报内容:</span></p>
<div class="layoutArea">
<div class="column">
<p style="font-size: 16px;text-indent: 29px;margin-bottom: 2px;"><span>主要诊断 ICD-10 编码:J45,J46;年龄≥18 岁的出院患者。 </span></p>
<p> </p>
</div>
</div>
<p style="margin: 10px 0 10px 0;"><span style="color: #333333;">无需上报内容:</span></p>
<div class="layoutArea">
<div class="column">
<p style="font-size: 16px;text-indent: 29px;margin-bottom: 2px;"><span>主要诊断 ICD-10 编码:J45,J46;年龄≥18 岁的出院患者。 </span></p>
<p style="font-size: 16px;text-indent: 29px;margin-bottom: 2px;"><span>主要诊断 ICD-10 编码:J45,J46;年龄≥18 岁的出院患者。 </span></p>
</div>
</div>
<p style="margin: 10px 0 10px 0;"><span style="color: #333333;">无需上报内容:</span></p>
<div class="layoutArea">
<div class="column">
<p style="font-size: 16px;text-indent: 29px;margin-bottom: 2px;"><span>主要诊断 ICD-10 编码:J45,J46;年龄≥18 岁的出院患者。 </span></p>
<p style="font-size: 16px;text-indent: 29px;margin-bottom: 2px;"><span>主要诊断 ICD-10 编码:J45,J46;年龄≥18 岁的出院患者。 </span></p>
</div>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { truncate } from "fs";
import { reportgetReportData,getSubContents,reportsaveInfo } from "@/api/singlediseasemanage/singlediseasefillin";
import { listData,} from "@/api/system/dict/data";
// import { questionNumListByRole } from "@/api/handleView/workPreview";
export default {
name: "rectification",
components: {},
data() {
return {
fillinopen: false, //填报弹窗显示隐藏
anTagFlag: false, //防重复提交
// activeStep: "0",
ruleForm: {},
activeNames: [],
isrowgl: false, //高亮
tabIndex: "0",
contentStyleObj: {
height: "500px"
},
tabName: "基本信息",
tabPosition: "bottom", //底部页签
paramsdata: [],
tabs: [
// {
// id: "jb1",
// labelTitle:"基本信息",
// isczbt: "", //是否存在必填
// children:[
// {
// id:'jb1_01',
// labelTitle: "适用的ICD-10编码与疾病名称",
// labelValue: "3333",
// isbt: true, //是否存必填
// bttsy: "", //必填提示语是否显示
// labelShow: true,//是否显示
// labelType: "title",
// children: [
// {
// labelTitle: "名称",
// labelKey: "name1",
// labelValue: "3333",
// isbt: true, //是否存必填
// bttsy: "", //必填提示语是否显示
// labelType: "input",
// labelShow: true //是否显示
// },
// {
// labelTitle: "区域",
// labelKey: "region1",
// labelValue: [],
// isbt: true,
// bttsy: "",
// labelType: "checkbox",
// labelShow: true
// },
// {
// labelTitle: "时间",
// labelKey: "date11",
// labelValue: "2023-01-20",
// labelType: "data",
// isbt: false,
// bttsy: "",
// labelShow: true
// },
// {
// labelTitle: "是否",
// labelKey: "delivery1",
// labelValue: "",
// labelType: "radio",
// isbt: true,
// bttsy: "",
// labelShow: true
// },
// {
// labelTitle: "类型",
// labelKey: "type1",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false,
// labelShowxs:'delivery1=1'
// },
// {
// labelTitle: "资源1",
// labelKey: "resource",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false,
// labelShowxs:'delivery1=1&&type1=2'
// },
// {
// labelTitle: "备注1",
// labelKey: "desc",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// }
// ]
// },
// {
// id:'jb1_012',
// labelTitle: "适用的ICD-10编码与疾病名称22",
// labelValue: "3333",
// isbt: true, //是否存必填
// bttsy: "", //必填提示语是否显示
// labelShow: true,//是否显示
// labelType: "title",
// children: [
// {
// labelTitle: "名称",
// labelKey: "name2",
// labelValue: "3333",
// isbt: true, //是否存必填
// bttsy: "", //必填提示语是否显示
// labelType: "input",
// labelShow: true //是否显示
// },
// {
// labelTitle: "区域",
// labelKey: "region2",
// labelValue: [],
// isbt: true,
// bttsy: "",
// labelType: "checkbox",
// labelShow: true
// },
// {
// labelTitle: "时间",
// labelKey: "date12",
// labelValue: "2023-01-20",
// labelType: "data",
// isbt: false,
// bttsy: "",
// labelShow: true
// },
// {
// labelTitle: "是否",
// labelKey: "delivery2",
// labelValue: "",
// labelType: "radio",
// isbt: true,
// bttsy: "",
// labelShow: true
// },
// {
// labelTitle: "类型",
// labelKey: "type2",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// },
// {
// labelTitle: "资源",
// labelKey: "resource2",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// },
// {
// labelTitle: "备注",
// labelKey: "desc2",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// }
// ]
// }
// ],
// },
// {
// id: "jb2",
// labelTitle:"工作变动",
// isczbt: "", //是否存在必填
// children:[
// {
// labelTitle: "名称",
// labelKey: "name1",
// labelValue: "3333",
// isbt: true, //是否存必填
// bttsy: "", //必填提示语是否显示
// labelType: "input",
// labelShow: true //是否显示
// },
// {
// labelTitle: "区域",
// labelKey: "region1",
// labelValue: [],
// isbt: true,
// bttsy: "",
// labelType: "checkbox",
// labelShow: true
// },
// {
// labelTitle: "时间",
// labelKey: "date11",
// labelValue: "2023-01-20",
// labelType: "data",
// isbt: false,
// bttsy: "",
// labelShow: true
// },
// {
// labelTitle: "是否",
// labelKey: "delivery1",
// labelValue: "",
// labelType: "radio",
// isbt: true,
// bttsy: "",
// labelShow: true
// },
// {
// labelTitle: "类型",
// labelKey: "type1",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// },
// {
// labelTitle: "资源1",
// labelKey: "resource",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// },
// {
// labelTitle: "备注1",
// labelKey: "desc",
// labelValue: "",
// isbt: true,
// bttsy: "",
// labelShow: false
// }
// ],
// },
],
Rowdata: "",
labelDictTypelist:[]
};
},
mounted() {
this.$nextTick(() => {
console.log(1);
window.addEventListener("scroll", this.onScroll, true);
});
this.getreportgetReportData()
},
methods: {
goBack(){
this.$router.push({
path: "/singlediseasemanage/reportthedisease",
});
},
//获取页面数据
getreportgetReportData(){
this.loading = true;
var params={
diseaseTypeCode:this.$route.query.diseaseTypeCode,
dsDetailId:this.$route.query.dsDetailId?this.$route.query.dsDetailId:"",
}
reportgetReportData(params).then(response => {
// this.tablelist = response.rows;
// this.total = response.total;
response.data.reportData.forEach(element => {
this.activeNames.push(element.labelTitle)
//查询多选和单选结果集
element.isbt=""
if(element.children){
element.children.forEach(item => {//直接从二级开始
if(item.labelType=='title'){
if(item.children && item.children.length>0){
item.children.forEach(it => {
if(it.labelType =='radio' || it.labelType=='checkbox' || it.labelType=='select'){
if(it.labelType=='checkbox'){
if(it.labelValue){
it.labelValue=it.labelValue.split(',')
}else{
it.labelValue=[]
}
}
// it.arrlist=[]//放入公共字段放结果集
this.$nextTick(() => {
// this.getselectlist(it)
if(it.labelDictType){
this.getselectlist(it)
}
})
}
});
}
}else{
if(item.labelType =='radio' || item.labelType=='checkbox' || item.labelType=='select'){
if(item.labelType=='checkbox'){
if(item.labelValue){
item.labelValue=item.labelValue.split(',')
}else{
item.labelValue=[]
}
}
// item.arrlist=[]//放入公共字段放结果集
this.$nextTick(() => {
if(item.labelDictType){
this.getselectlist(item)
}
})
}
}
});
}
});
this.tabs=response.data.reportData
console.log(response,"============")
this.loading = false;
}
);
},
//获取日期方法 验证
getdatatime(row,tab){
console.log(tab,"====tab=======")
console.log(row,"====row111=======")
if(row.labelKey=='CM-0-2-4-1'){//入院日期 判断如愿如期大于 发病日期
tab.children.forEach(element => {
if(element.labelKey=='CM-0-2-2-2'){
if (new Date(element.labelValue).getTime() >= new Date(row.labelValue).getTime()) {
// this.$message.error("入院日期时间应大于发病日期时间");
row.bttsy='入院日期时间应大于发病日期时间'
return
}else{
row.bttsy=''
}
}
});
}
},
//select和checkbox方法
getcheckbox(row,tab){
console.log(tab,"====tab=======")
console.log(row,"====row111=======")
//验证
//获取参数
this.paramsdata = [];
this.tabs.forEach(element => {
element.children.forEach(item => {//直接从二级开始
if(item.labelType=='title'){//判断是标题
if(item.children&&item.children.length>0){
// console.log(item,"===============item")
item.children.forEach(it => {
if(it.labelType!='title'){
// 参数梳理 --------------------------start
//为多选的时候 值改为string
if (it.labelType == "checkbox") {
var params = {
labelKey: it.labelKey,
labelValue:it.labelValue.join(","),
};
} else {
var params = {
labelKey: it.labelKey,
labelValue: it.labelValue
};
}
this.paramsdata.push(params);
// 参数梳理 --------------------------end
}
});
}
}else{//一级下内容
console.log(item,"===============item11")
if (item.labelType == "checkbox") {
//为多选的时候 值改为string
var params = {
labelKey: item.labelKey,
labelValue:item.labelValue.join(","),
};
} else {
var params = {
labelKey: item.labelKey,
labelValue: item.labelValue
};
}
this.paramsdata.push(params);
}
});
});
// console.log(JSON.stringify(this.paramsdata),"==========this.paramsdata")
var params={
diseaseTypeCode:this.$route.query.diseaseTypeCode,
labelKey:row.labelKey,
contents:this.paramsdata
}
console.log(JSON.stringify(params),"==========this.paramsdata")
//获取页面要显示隐藏的字段
getSubContents(params).then(res=>{
if(res.code=='200'){
if(res.data.length>0){
res.data.forEach(itdata => {
this.tabs.forEach(element => {
element.children.forEach(item => {//直接从二级开始
if(itdata.id==item.id){
item.labelShow= itdata.labelShow
this.$forceUpdate();
}
// if(item.labelType=='title'){//判断是标题
if(item.children&&item.children.length>0){
// console.log(item,"==============1111111=item")
item.children.forEach(it => {
if(it.labelType!='title'){
// console.log(itdata.labelKey==it.labelKey,itdata.labelKey,it.labelKey,"===itdata.labelKey==it.labelKey")
if(itdata.id==it.id){
it.labelShow= itdata.labelShow
this.$forceUpdate();
}
}
});
}
// }else{//一级下内容
// console.log(itdata.labelKey==item.labelKey,itdata.labelKey,item.labelKey,"===itdata.labelKey==it.labelKey")
// if(itdata.labelKey==item.labelKey){
// item.labelShow= itdata.labelShow
// this.$forceUpdate();
// }
// }
});
});
});
}
}
}).catch(() => {
// this.anTagFlag = false;
});
},
//点击select结果集
getselectlist(row) {
// console.log(row,row.labelType,"=============row=="+row.labelDictType)
var params={
pageNum: 1,
pageSize: 1000,
dictType: row.labelDictType,
}
listData(params).then(response => {
// this.labelDictTypelist = response.rows;
console.log(response.rows,"==============response.rows")
row.arrlist=response.rows
});
},
/** 查询字典类型列表 */
getTypeList(row) {
// if(params){
// this.zdParameters=params
// }
// listData(this.zdParameters).then(response => {
// response.rows.forEach(element => {
// element.dictValue=element.dictValue+''
// });
// this.diseaseTypelist = response.rows;
// // this.zdParameters.total= response.total;
// });
},
//填报要求
getfillin(){
this.fillinopen=true
},
// 点击完成完成
getcomplete(element){
console.log(element,"=======element=========")
var ishowyjtitle=false//一级标题是否显示
element.children.forEach(item => {//直接从二级开始
// for(var i=0;i<element.children.length;i++){
// var item=element.children[i]
if(item.labelType=='title'){//判断是标题
if(item.children&&item.children.length>0){
// console.log(item,"===============item")
// item.children.forEach(it => {
for(var j=0;j<item.children.length;j++){
var it=item.children[j]
if(it.labelType!='title'){
// 参数梳理 --------------------------start
//为多选的时候 值改为string
if (it.labelType == "checkbox") {
var params = {
labelKey: it.labelKey,
labelValue:it.labelValue.join(","),
};
} else {
var params = {
labelKey: it.labelKey,
labelValue: it.labelValue
};
}
this.paramsdata.push(params);
// 参数梳理 --------------------------end
// console.log(this.paramsdata,"==========this.paramsdata")
//处理必填项 是否显示 --------------
this.getlabletitleishow(it,element)
if(this.getlabletitleishow(it,element)){
ishowyjtitle=true
}
}
}
}
}else{//一级下内容
if (item.labelType == "checkbox") {
//为多选的时候 值改为string
var params = {
labelKey: item.labelKey,
labelValue:item.labelValue.join(","),
};
} else {
var params = {
labelKey: item.labelKey,
labelValue: item.labelValue
};
}
this.paramsdata.push(params);
// console.log(this.paramsdata,"==========this.paramsdata")
this.getlabletitleishow(item,element)
if(this.getlabletitleishow(item,element)){
ishowyjtitle=true
}
}
})
if(ishowyjtitle){
element.isbt=true
}else{
element.isbt=false
}
},
getlabletitleishow(item,element){
if(item.labelShow){
// console.log(item,"===============item11")
if (item.labelType == "checkbox") {
//多选判断必填提示语是否显示
if (item.isbt && item.labelValue.length>0) {
//判断必填提示语是否显示
if(item.bttsy=='该项为必填项'){
item.bttsy = ""
}
} else {
item.bttsy = "该项为必填项";
}
}else {
if (item.isbt && !item.labelValue) {
//判断必填提示语是否显示
item.bttsy = "该项为必填项";
} else {
if(item.bttsy=='该项为必填项'){
item.bttsy = ""
}
}
}
if (item.bttsy) {
// console.log(item.bttsy,"===============bttsy")
//判断标题是否存在必填项没填写
// element.isbt = true;
return true
}else{
// element.isbt = false;
return false
}
// console.log(element,"===============element22")
}
},
//保存内容
resetForm(){
this.paramsdata = [];
var ishowyjtitle=false//判断是否存在必填项
this.tabs.forEach(element => {
element.children.forEach(item => {//直接从二级开始
if(item.labelType=='title'){//判断是标题
if(item.children&&item.children.length>0){
// console.log(item,"===============item")
item.children.forEach(it => {
if(it.labelType!='title'){
// 参数梳理 --------------------------start
//为多选的时候 值改为string
if (it.labelType == "checkbox") {
var params = {
labelKey: it.labelKey,
labelValue:it.labelValue.join(","),
};
} else {
var params = {
labelKey: it.labelKey,
labelValue: it.labelValue
};
}
this.paramsdata.push(params);
}
});
}
}else{//一级下内容
// console.log(item,"===============item11")
if (item.labelType == "checkbox") {
//为多选的时候 值改为string
var params = {
labelKey: item.labelKey,
labelValue:item.labelValue.join(","),
};
} else {
var params = {
labelKey: item.labelKey,
labelValue: item.labelValue
};
}
this.paramsdata.push(params);
// console.log(item.labelValue,"==========item.labelValue")
}
});
// console.log(this.paramsdata,"==========this.paramsdata")
});
this.$nextTick(() => {
if (this.anTagFlag) {
return;
}
this.anTagFlag = true;
var params={
diseaseTypeCode:this.$route.query.diseaseTypeCode,
id:"",
contents:this.paramsdata
}
console.log(params,"==========params.params")
reportsaveInfo(params).then(res=>{
if(res.code=='200'){
this.$message({
message: "提交成功",
type: "success"
});
setTimeout(()=>{
this.anTagFlag = false;
},500)
}
}).catch(() => {
this.anTagFlag = false;
});
})
},
//提交审核
submitForm() {
this.paramsdata = [];
var ishowyjtitle=false//判断是否存在必填项
this.tabs.forEach(element => {
element.children.forEach(item => {//直接从二级开始
if(item.labelType=='title'){//判断是标题
if(item.children&&item.children.length>0){
// console.log(item,"===============item")
item.children.forEach(it => {
if(it.labelType!='title'){
// 参数梳理 --------------------------start
//为多选的时候 值改为string
if (it.labelType == "checkbox") {
var params = {
labelKey: it.labelKey,
labelValue:it.labelValue.join(","),
};
} else {
var params = {
labelKey: it.labelKey,
labelValue: it.labelValue
};
}
this.paramsdata.push(params);
// 参数梳理 --------------------------end
// console.log(this.paramsdata,"==========this.paramsdata")
//处理必填项 是否显示 --------------
this.getlabletitleishow(it,element)
if(this.getlabletitleishow(it,element)){
ishowyjtitle=true
}
// if(it.labelShow){
// if (it.labelType == "checkbox") {
// //多选判断必填提示语是否显示
// if (it.isbt && it.labelValue.length>0) {
// //判断必填提示语是否显示
// it.bttsy = "";
// } else {
// it.bttsy = "该项为必填项";
// }
// } else {
// if (it.isbt && !it.labelValue) {
// //判断必填提示语是否显示
// it.bttsy = "该项为必填项";
// } else {
// it.bttsy = "";
// }
// }
// if (it.bttsy) {
// //判断标题是否存在必填项没填写
// element.isbt = true;
// } else {
// element.isbt = false;
// }
// }
}
});
}
}else{//一级下内容
// console.log(item,"===============item11")
if (item.labelType == "checkbox") {
//为多选的时候 值改为string
var params = {
labelKey: item.labelKey,
labelValue:item.labelValue.join(","),
};
} else {
var params = {
labelKey: item.labelKey,
labelValue: item.labelValue
};
}
this.paramsdata.push(params);
// console.log(item.labelValue,"==========item.labelValue")
//判断必填项是否必填
this.getlabletitleishow(item,element)
//如果有一个存在必填项没填写 一级标题变红
if(this.getlabletitleishow(item,element)){
ishowyjtitle=true
}
// if(item.labelShow){
// if (item.labelType == "checkbox") {
// //多选判断必填提示语是否显示
// if (item.isbt && item.labelValue.length>0) {
// //判断必填提示语是否显示
// item.bttsy = "";
// } else {
// item.bttsy = "该项为必填项";
// }
// } else {
// if (item.isbt && !item.labelValue) {
// //判断必填提示语是否显示
// item.bttsy = "该项为必填项";
// } else {
// item.bttsy = "";
// }
// }
// if (item.bttsy) {
// //判断标题是否存在必填项没填写
// element.isbt = true;
// return
// } else {
// element.isbt = false;
// }
// }
}
});
// console.log(this.paramsdata,"==========this.paramsdata")
console.log(ishowyjtitle,"=============ishowyjtitle")
if(ishowyjtitle){
element.isbt=true
}else{
element.isbt=false
}
});
this.$nextTick(() => {
if(ishowyjtitle){
this.$message({
message: "请逐条核对信息",
type: "warning"
});
return;
}
if (this.anTagFlag) {
return;
}
this.anTagFlag = true;
var params={
diseaseTypeCode:this.$route.query.diseaseTypeCode,
id:"",
contents:this.paramsdata
}
console.log(params,"==========params.params")
reportsaveInfo(params).then(res=>{
if(res.code=='200'){
this.$message({
message: "提交成功",
type: "success"
});
setTimeout(()=>{
this.anTagFlag = false;
},500)
}
}).catch(() => {
this.anTagFlag = false;
});
})
},
// 滚动条滚动
onScroll(e) {
// let scrollItems = document.querySelectorAll(".scroll-item");
// for (let i = scrollItems.length - 1; i >= 0; i--) {
// // 判断滚动条滚动距离是否大于当前滚动项可滚动距离
// let judge =
// e.target.scrollTop >=
// scrollItems[i].offsetTop - scrollItems[0].offsetTop;
// if (judge) {
// console.log(i,"=========i")
// this.tabIndex = i.toString();
// // 找对应的tab-name值
// this.tabName = this.tabs[this.tabIndex].labelTitle;
// break;
// }
// }
},
//锚点定位开始----------------------------------------------
jump(tab, index) {
this.tabName = tab.labelTitle;
let id1 = this.activeNames.findIndex(arr => arr == tab.labelTitle); //id1为对象的数组下标
if (id1 == "-1") {
this.activeNames.push(tab.labelTitle);
}
// else{
// this.activeNames.splice(id1, 1);//删除该对象,实现局部刷新的功能
// }
let target = document.querySelector(".scroll-content");
let scrollItems = document.querySelectorAll(".scroll-item");
// 判断滚动条是否滚动到底部
if (target.scrollHeight <= target.scrollTop + target.clientHeight) {
this.tabIndex = index;
}
let totalY = scrollItems[index].offsetTop - scrollItems[0].offsetTop; // 锚点元素距离其offsetParent(这里是body)顶部的距离(待滚动的距离)
let distance = document.querySelector(".scroll-content").scrollTop; // 滚动条距离滚动区域顶部的距离
// let distance = document.body.scrollTop || document.documentElement.scrollTop || window.pageYOffset // 滚动条距离滚动区域顶部的距离(滚动区域为窗口)
// 滚动动画实现, 使用setTimeout的递归实现平滑滚动,将距离细分为50小段,10ms滚动一次
// 计算每一小段的距离
let step = totalY / 50;
if (totalY > distance) {
smoothDown(document.querySelector(".scroll-content"));
} else {
let newTotal = distance - totalY;
step = newTotal / 50;
smoothUp(document.querySelector(".scroll-content"));
}
// 参数element为滚动区域
function smoothDown(element) {
if (distance < totalY) {
distance += step;
element.scrollTop = distance;
setTimeout(smoothDown.bind(this, element), 10);
} else {
element.scrollTop = totalY;
}
}
// 参数element为滚动区域
function smoothUp(element) {
if (distance > totalY) {
distance -= step;
element.scrollTop = distance;
setTimeout(smoothUp.bind(this, element), 10);
} else {
element.scrollTop = totalY;
}
}
},
handleChange(val) {
console.log(val);
}
}
};
</script>
<style scoped lang="scss">
.scroll-content {
// height: 630px;
height: calc(100vh - 180px);
// border:1px solid;
overflow: auto;
}
.rectification {
width: 100%;
background: #fff;
font-size: 14px;
// display: flex;
.registers {
width: 100%;
// margin-top: 4px;
height: calc(100vh - 127px);
padding: 0px 4px;
// border: 1px solid;
// overflow-y: auto;
// overflow-x: hidden;
.tablistrowejtitle{
height:42px;
line-height: 42px;
font-size: 14px;
font-weight: 600;
padding: 0px 8px;
background-color: #FAFAFA;
}
.tablistrow {
// border: 1px solid #DCDFE6;
height: auto;
min-height: 42px;
padding: 0px 8px;
display: flex;
align-items: center;
justify-content: flex-start;
// padding:0px 5px;
.btbj {
width: 5px;
padding: 0px 2px;
color: red;
}
.tablistrowlable {
width: 370px;
// background-color: #FAFAFA;
}
.tablistrowbttsy {
// width: 130px;
// width:60%;
color: red;
padding: 0px 5px;
display: flex;
align-items: center;
}
}
}
.circle {
display: inline-block;
background: #3362CD;
width: 2px;
height: 20px;
padding: 0 !important;
border-radius: 2px;
margin: 0 8px;
vertical-align: middle;
margin-top: -4px;
}
}
//需要提取公共样式
.border-r {
border-right: 1px solid #dcdfe6;
}
.border-l {
border-left: 1px solid #dcdfe6;
}
.border-t {
border-top: 1px solid #dcdfe6;
}
.border-b {
border-bottom: 1px solid #dcdfe6;
}
::v-deep {
.el-dialog__body {
padding: 20px 20px;
}
.el-collapse-item__header {
height: 40px;
line-height: 40px;
// border: 1px solid #ECECEC;
background-color: #e8eeff;
font-weight: 600;
font-size: 14px;
}
.demo-table-expand {
font-size: 0;
}
.demo-table-expand label {
width: 90px;
color: #333333;
}
.demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
width: 60%;
}
.el-collapse-item__wrap {
border-bottom: 0px solid #e6ebf5;
}
}
::v-deep {
.el-checkbox__label {
// widows: 60%;;
// overflow: hidden;
// white-space: nowrap;
// text-overflow: ellipsis;
height: 42px;
line-height: 42px;
}
.el-radio__label {
height: 42px;
line-height: 42px;
}
.el-collapse-item__content {
padding-bottom: 0px;
}
.el-menu-item:hover, .el-menu-item:focus {
background-color: #ffffff;
}
.el-checkbox {
display: block;
display: flex;
align-items: center;
}
.el-checkbox__label {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
::v-deep.customer-tab {
// width: 100%;
// height: 50px;
// background-color: #f5f7fa;
// padding: 4px;
.tabspanxz{
height: 42px;
line-height: 42px;
border-radius: 5px;
font-weight: 400;
padding: 0px 8px;
max-width:283px;
// min-width: 100px;
// width: 213px;
color:#4d84ff;
}
.tabspan{
height: 42px;
line-height: 42px;
border-radius: 5px;
font-weight: 400;
padding: 0px 8px;
max-width:283px;
// min-width: 100px;
// width: 130px;
}
}
::v-deep.el-tabs--card > .el-tabs__header {
border-bottom: none;
margin: 0;
.el-tabs__nav {
width: 100%;
display: flex;
justify-content: space-around;
border: none;
.el-tabs__item {
width: 25%;
text-align: center;
border: none;
}
.is-active {
border-radius: 4px;
background-color: #005bd9;
color: #fff;
}
}
}
</style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。