提交 1a8593eb 编写于 作者: xinxu.wang's avatar xinxu.wang

Merge branch 'dev-scaleHype-20190428' into 'release_followup'

Dev scale hype 20190428



See merge request !24
<template>
<div v-if="$route.name!='loginPage'">
<v-header :userName="userName" :portrait="portrait" :idType="idType"></v-header>
<v-slidebar :authList="authList" :tokenValue="token"></v-slidebar>
<v-slidebar :authList="authList" :tokenValue="token" :storageIdType="storageIdType"></v-slidebar>
<el-container>
<div class="content" id="body-content">
<transition name="router-fade" mode="out-in">
......@@ -40,6 +40,7 @@ export default {
data() {
return {
idType: 0,
storageIdType: 0,
token: '',
userName: '',
portrait: '',
......@@ -131,6 +132,7 @@ export default {
localStorage.setItem('storageIdType', res.data.idType)
localStorage.setItem('storageMaster', res.data.masterAdministratorFlag)
vm.idType = res.data.idType
vm.storageIdType = res.data.idType
vm.userName = res.data.name
vm.portrait = res.data.imageUrl
vm.authList = res.data.auth
......@@ -146,7 +148,7 @@ export default {
if(val!=undefined&&val!=null) {
vm.getUserAuth(val)
}
}
},
}
}
</script>
......
......@@ -18,10 +18,18 @@
:error="item.error">
<!-- div文本 -->
<div v-if="item.formType === 'div'" :class="item.className">{{ item.name }}</div>
<!--button-->
<el-button
v-if="item.formType === 'button'"
type="primary"
@click="item.clickFunc ? item.clickFunc($event) : defaultClick($event)"
:icon="item.icon">{{ item.btnText }}
</el-button>
<!-- input -->
<el-input
v-else-if="item.formType === 'input'"
v-model="form[item.model]"
v-model.trim="form[item.model]"
:refs="item.refs"
:type="item.type"
:class="item.className"
:disabled="item.disabled"
......@@ -102,6 +110,23 @@
@change="item.changeFun ? item.changeFun($event) : defaultFun($event)"/>
<!-- 图片 -->
<img v-else-if="item.formType === 'img'" :src="item.src||''" :alt="item.alt||''" :width="item.width">
<!--循环遍历-->
<el-row
v-else-if="item.formType === 'list'"
v-for="(itemChild, indexChild) in form[item.model]"
:key="indexChild"
style="width: 800px;margin-bottom: 15px;font-size:18px;color:#606266;">
<el-col :span="24">
<span>{{itemChild.medicinesName}}:</span>
<span>每日{{itemChild.dosageDay}}次,</span>
<span>每次{{itemChild.dosageNum}}</span>
<el-button
type="plain"
icon="el-icon-delete"
class="margin-left-20"
@click="clickDeleteFunc(form[item.model], indexChild)">删除</el-button>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
......@@ -113,7 +138,7 @@
export default {
props: {
ruleNew: Boolean,
ruleNew: Boolean,//用于关联跨模块交互
dataSource: {
type: Array,
default: () => []
......@@ -139,6 +164,7 @@
}
},
methods: {
defaultClick(){},
defaultFun() {},
defaultBlur(){},
isParent(item) {
......@@ -168,7 +194,10 @@
}
return num === item.linkageRule.length
}
}
},
clickDeleteFunc(list, index) {
list.splice(index, 1);
},
}
}
</script>
......@@ -188,6 +217,8 @@
float: none;
font-weight: bold;
margin-left: 0;
overflow: hidden;
height: auto;
}
.color-gray{
color: #a7a7a7;
......
import rangeJson from '@/utils/followup/followupUtils/range';
import rangeJson from './rangConfig';
// 这个方法,是用户在选择随访轮次(6个月,12个月)后续操作
let checkNeedRule = (val) => {
const needRule = localStorage.getItem('needRule');
if(( (!val||val=='') && (!needRule || needRule=='true') )){
const needRule = sessionStorage.getItem('needRule');
if( val!='0' && (!val||val=='') && (!needRule || needRule=='true') ){
return true;
}
return false;
......@@ -12,14 +12,24 @@ let checkNeedRule = (val) => {
// 校验范围通用方法
export const checkRange = (rule, value, callback) => {
let min,max;
let val = Number(value);
let val = parseFloat(value);
let res;
// 处理 诸如 01 这种情况
if(value && value.length>1 && value.indexOf('.')<0){
res = (new RegExp(/^[1-9]\d*$/g)).test(value);
}else{
res = true;
}
rangeJson.forEach((item)=>{
if(item.field == rule.field){
min = item.min;
max = item.max;
}
})
if(((val >= min) && (val <= max)) || checkNeedRule(val)){
const ruless = ( (val >= min) && (val <= max) && res )
// if(ruless || checkNeedRule(val)){
if( !value || ruless ){
callback()
}else{
callback(new Error(`输入范围${min}~${max}`))
......@@ -28,7 +38,7 @@ export const checkRange = (rule, value, callback) => {
// 校验手机号
export const checkMobile = (rule, value, callback) => {
var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则
const reg = /^1[3|4|5|7|8|9][0-9]{9}$/; //验证规则
const flag = reg.test(value);
if(flag){
callback()
......@@ -39,9 +49,13 @@ export const checkMobile = (rule, value, callback) => {
// 校验是否是整数
export const checkIsInteger = (rule, value, callback) => {
const num = Number.isInteger(parseFloat(value));
const val = parseFloat(value);
if(num || checkNeedRule(val)){
const num = Number.isInteger(val);
// const val = Number.parseInt(value);
// const num = /^[0-9]*[1-9][0-9]*$/.test(value);
// if(num || checkNeedRule(val)){
if( !value || num ){
callback()
}else{
callback(new Error(`输入整数`))
......@@ -52,7 +66,8 @@ export const checkIsInteger = (rule, value, callback) => {
export const checkNumberIsToFixed = (rule, value, callback) => {
const isNum = /^(([1-9][0-9]*)|(([0]\.\d{1,1}|[1-9][0-9]*\.\d{1,1})))$/;
const val = Number(value);
if(isNum.test(val) || checkNeedRule(val)){
// if(isNum.test(val) || checkNeedRule(val)){
if( !value || isNum.test(val) ){
callback()
}else{
callback(new Error(`最多输入1位小数`))
......@@ -61,11 +76,24 @@ export const checkNumberIsToFixed = (rule, value, callback) => {
// 大于0的正整数
export const checkNormalInt = (rule, value, callback) => {
const isInteger = Number.isInteger(parseFloat(value));
const val = parseFloat(value);
if((isInteger && val > 0) || checkNeedRule(val)){
const isInteger = Number.isInteger(val);
// if((isInteger && val > 0) || checkNeedRule(val)){
if( !value || (isInteger && val > 0) ){
callback()
}else{
callback(new Error(`请输入大于0的正整数`))
}
}
// 校验是否是两位小数
export const checkNumberIsToFixedTwo = (rule, value, callback) => {
const isNum = /^(-)?(0|[1-9]\d*)(\s|$|\.\d{1,2}\b)/;
const val = Number(value);
// if(isNum.test(val) || checkNeedRule(val)){
if( !value || isNum.test(val) ){
callback()
}else{
callback(new Error(`最多输入2位小数`))
}
}
import range from './range';
import rangeHype from './rangeHype';
import rangeDiabetes from './rangeDiabetes';
export default [
...range,
...rangeHype,
...rangeDiabetes
]
// 各个字段校验的配置文件
// 脑卒中字段校验的配置文件
export default [
{
field: 'fastingBloodGlucose',
......
// 高血压字段校验的配置文件
export default [
{
field: 'systolicBloodPressure',
name: '收缩压SBP',
min: 70,
max: 240
},
{
field: 'diastolicBloodPressure',
name: '舒张压DBP',
min: 50,
max: 130
},
{
field: 'bodyHeight',
name: '身高',
min: 100,
max: 250
},
{
field: 'bodyWeight',
name: '体重',
min: 35,
max: 250
},
{
field: 'nextBodyWeight',
name: '体重',
min: 35,
max: 250
},
{
field: 'fastingBloodSugar',
name: '空腹血糖值',
min: 1,
max: 33.3
},
{
field: 'glycosylatedHemoglobinPercent',
name: '糖化血红蛋白值',
min: 3.00,
max: 20.00
},
{
field: 'smokingAmount',
name: '日吸烟量',
min: 0,
max: 99
},
{
field: 'nextSmokingAmount',
name: '日吸烟量',
min: 0,
max: 99
},
{
field: 'alcoholConsumption',
name: '日饮酒量',
min: 0,
max: 99
},
{
field: 'nextAlcoholConsumption',
name: '日饮酒量',
min: 0,
max: 99
},
{
field: 'workoutOfWeek',
name: '运动情况',
min: 0,
max: 99
},
{
field: 'workoutDuration',
name: '运动情况',
min: 0,
max: 99
},
{
field: 'nextWorkoutOfWeek',
name: '运动情况',
min: 0,
max: 99
},
{
field: 'nextWorkoutDuration',
name: '运动情况',
min: 0,
max: 99
},
{
field: 'nextWorkoutDuration',
name: '运动情况',
min: 0,
max: 99
},
{
field: 'stapleFoodGram',
name: '主食摄入量',
min: 0,
max: 999
},
{
field: 'nextStapleFoodGram',
name: '主食摄入量',
min: 0,
max: 999
},
]
// 高血压字段校验的配置文件
export default [
{
field: 'systolicBloodPressure',
name: '收缩压SBP',
min: 70,
max: 240
},
{
field: 'diastolicBloodPressure',
name: '舒张压DBP',
min: 50,
max: 130
},
{
field: 'bodyHeight',
name: '身高',
min: 100,
max: 250
},
{
field: 'bodyWeight',
name: '体重',
min: 35,
max: 250
},
{
field: 'nextBodyWeight',
name: '下次随访体重',
min: 35,
max: 250
},
{
field: 'heartRate',
name: '心率',
min: 30,
max: 200
},
{
field: 'smokingAmount',
name: '本次日吸烟量',
min: 0,
max: 99
},
{
field: 'nextSmokingAmount',
name: '下次随访日吸烟量',
min: 0,
max: 99
},
{
field: 'alcoholConsumption',
name: '本次日饮酒量',
min: 0,
max: 99
},
{
field: 'nextAlcoholConsumption',
name: '下次随访日饮酒量',
min: 0,
max: 99
},
{
field: 'workoutOfWeek',
name: '本次运动情况',
min: 0,
max: 99
},
{
field: 'workoutDuration',
name: '本次运动情况',
min: 0,
max: 99
},
{
field: 'nextWorkoutOfWeek',
name: '下次随访运动情况',
min: 0,
max: 99
},
{
field: 'nextWorkoutDuration',
name: '下次随访运动情况',
min: 0,
max: 99
},
{
field: 'dosageDay',
name: '用法',
min: 0,
max: 5
},
]
......@@ -186,7 +186,7 @@
},
goToScale(val) {
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: val.doctorId, scaleNo: val.resourceId, planPatientsTimesId: val.planPatientsTimesId, showBtn: 0}});
query: {doctorId: val.doctorId, scaleNo: val.resourceId, planPatientsTimesId: val.planPatientsTimesId,planTimesId : val.planTimesId, showBtn: 0}});
}
},
watch: {
......
......@@ -15,7 +15,7 @@
</div>
<div class="plan-btns-group">
<el-button class="button-white" plain @click="cancelEdit" size="small">取 消</el-button>
<el-button class="button-green" type="primary" @click="saveModify" size="small">保 存</el-button>
<el-button class="button-green" type="primary" @click="saveModify('baseInfo')" size="small">保 存</el-button>
</div>
</div>
<el-form ref="baseInfo" :model="planDetailData" :rules="rules" label-suffix=":" label-width="140px">
......@@ -241,9 +241,18 @@
this.$router.back(-1)
});
},
saveModify() {
saveModify(formName) {
this.$refs[formName].validate((valid) => {
if(valid){
// 点击保存,先进行校验,表单字段是否通过验证
this.checkForm = true
}else{
this.$message({
message: '请填写完整表单',
type: 'error'
});
}
});
},
// 监听保存校验结果
addListenSave(val){
......
......@@ -199,7 +199,7 @@
},
goToScale(val) {
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: this.residentDetail.doctorId, scaleNo: val.resourceId, planPatientsTimesId: this.nodePlanPatientsTimesId[0].planPatientsTimesId, showBtn: 1}});
query: {doctorId: this.residentDetail.doctorId, scaleNo: val.resourceId, planPatientsTimesId: this.nodePlanPatientsTimesId[0].planPatientsTimesId,planTimesId : val.planTimesId, showBtn: 1}});
}
},
watch: {
......
<template>
<div class="dialog-wrap">
<el-dialog title="用药情况" :visible.sync="showDialog">
<el-form :model="formChosedMedical" ref="choseMed" :rules="rules">
<el-form-item label="药物名称" :label-width="formLabelWidth" prop="medicinesName">
<el-input v-model="formChosedMedical.medicinesName" autocomplete="off" placeholder="请输入药物名称" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="用法" :label-width="formLabelWidth" prop="dosageDay">
<el-input v-model="formChosedMedical.dosageDay" type="number" autocomplete="off" placeholder="请输入每日几次">
<template slot="append">次/日</template>
</el-input>
</el-form-item>
<el-form-item label="用量" :label-width="formLabelWidth" prop="dosageNum">
<el-input v-model="formChosedMedical.dosageNum" autocomplete="off" placeholder="请输入每次用量" maxlength="30">
<template slot="append">每次</template>
</el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="closeDialog">取 消</el-button>
<el-button type="primary" @click="confirmSubmit">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { checkIsInteger } from '@/utils/followup/followupUtils/checkField';
export default {
data(){
var checkRange = (rule, value, callback) => {
// let min,max;
let val = Number(value);
if((val >= 0) && (val <= 5)){
callback()
}else{
callback(new Error(`输入范围0~5`))
}
}
return {
showDialog: true,
formLabelWidth: '120px',
formChosedMedical: {
medicinesName: '', // 药物名称
dosageDay: '', // 每日次数
dosageNum: '', // 每次的剂量
},
rules: {
medicinesName: [{ required: true, message: '请输入药物名称', trigger: 'change' }],
dosageDay: [{ required: true, message: '请输入每日几次', trigger: ['change'] },{ validator: checkIsInteger, trigger: 'change' },{validator:checkRange,trigger: 'change'}],
dosageNum: [{ required: true, message: '请输入每次用量', trigger: 'change' }],
},
}
},
watch: {
showDialog(val){
this.$emit('closeDialog',val)
}
},
methods: {
closeDialog(){
this.$emit('closeDialog',false)
},
confirmSubmit(){
this.$refs['choseMed'].validate((valid) => {
if(valid){
this.$emit('closeDialog',false);
this.$emit('setMedication',this.formChosedMedical);
}
});
}
}
}
</script>
<style scoped lang="scss">
</style>
......@@ -150,7 +150,7 @@
},
goToScale(val) {
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: this.enteringInfo.doctorId, scaleNo: val.scaleNo, planPatientsTimesId: this.enteringInfo.planPatientsTimesId, showBtn: 1}});
query: {doctorId: this.enteringInfo.doctorId, scaleNo: val.scaleNo, planPatientsTimesId: this.enteringInfo.planPatientsTimesId,planTimesId : val.planTimesId, showBtn: 1}});
}
},
filters: {
......
......@@ -10,25 +10,27 @@
<div class="resident-content f-main-content screenSet">
<el-row :gutter="24" align="middle" type="flex" class="form-header">
<el-col :span="20">心脑血管病危险因素
社区、乡镇人群随访表
</el-col>
<el-col :span="4" v-if="showBtn=='1'">
<el-col :span="18">{{titleText}}</el-col>
<el-col :span="6" v-if="showBtn=='1'">
<el-button type="primary" size="small" class="formSubmit" @click="formSubmit(1)">提交</el-button>
<el-button class="button-white formTempSave" size="small" plain @click="formSubmit(2)">暂存</el-button>
</el-col>
</el-row>
<div class="title-box">
<h1>心脑血管病危险因素社区、乡镇人群随访表</h1>
<h2>(适用于社区、乡镇脑卒中高危人群满6个月、12个月时随访和中危人群满12个月时随访使用)</h2>
<h1>{{titleText}}</h1>
<h2>{{titleSmText}}</h2>
</div>
<!--模板页面除了显示居民基本信息,将病种展示作为组件引入-->
<div class="form-container">
<!--脑卒中-->
<stroke v-if="resourceId=='SCALE0003'" :showBtn="showBtn" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" />
<stroke v-if="scaleNo=='SCALE0003'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" />
<!--高血压-->
<hypertension v-if="scaleNo=='SCALE0001'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" ></hypertension>
<!--糖尿病-->
<diabetes v-if="scaleNo=='SCALE0002'" :showBtn="showBtn" :scaleType="scaleNo" :checkStart="checkStart" @checkEnd="checkEnd" :saveWay="saveWay" ></diabetes>
</div>
......@@ -40,23 +42,29 @@
<script>
import BreadCrumb from '@/components/breadcrumb'
// 糖尿病
// 脑卒中
import stroke from './patient-scale/stroke'
import hypertension from './patient-scale/hypertension'
import diabetes from './patient-scale/diabetes'
export default {
data(){
return {
titleText: '',
titleSmText: '',
breadTxt: '录入管理',
jumPathThird: '/followup/record-manage/record-list',
checkStart: false,
showBtn: '1',
resourceId: '',
// resourceId: '',
saveWay: 1,
scaleNo: ''
}
},
components: {
stroke,
hypertension,
BreadCrumb,
diabetes,
},
methods: {
formSubmit(val){
......@@ -68,24 +76,23 @@
}
},
created(){
this.resourceId = this.$route.query.resourceId;
this.resourceId = 'SCALE0003'
this.scaleNo = this.$route.query.scaleNo;
console.log('scaleNo=>',this.scaleNo)
// 0003 脑卒中、0002 糖尿病、0001 高血压
if(this.scaleNo == 'SCALE0003'){
this.titleText = '心脑血管病危险因素社区、乡镇人群随访表';
this.titleSmText = '(适用于社区、乡镇脑卒中高危人群满6个月、12个月时随访和中危人群满12个月时随访使用)';
}else if(this.scaleNo == 'SCALE0001'){
this.titleText = '高血压患者随访服务记录表';
this.titleSmText = '(本表为高血压患者在接受随访服务时由医生填写)';
}else if(this.scaleNo == 'SCALE0002'){
this.titleText = '2 型糖尿病患者随访服务记录表 ';
this.titleSmText = '(本表为2型糖尿病患者在接受随访服务时由医生填写)';
}
if(this.$route.query.showBtn=='0'){
this.showBtn = String(this.$route.query.showBtn);
}
// 0003 脑卒中、0002 糖尿病、0001 高血压
},
// beforeRouteEnter (to, from, next) {
// next(vm=>{
// if(from.name=='planDetail'){
// vm.breadTxt = '计划管理';
// vm.jumPathThird = '/followup/plan-manage/plan-list'
// }else{
// vm.breadTxt = '录入管理';
// vm.jumPathThird = '/followup/record-manage/record-list'
// }
// })
// },
}
</script>
......@@ -118,7 +125,7 @@
}
}
.title-box{
padding: 60px;
padding: 20px;
text-align: center;
h1{
font-size: 18px;
......
import { checkRange, checkIsInteger, checkNumberIsToFixed, checkNumberIsToFixedTwo } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
let hanldeValue = () => {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseAuxiliary'){
const glycosylatedHemoglobinPercent = item.formObject.glycosylatedHemoglobinPercent
const glycosylatedHemoglobinDate = item.formObject.glycosylatedHemoglobinDate
item.dataSource.forEach((item2,index2)=>{
if((glycosylatedHemoglobinPercent||glycosylatedHemoglobinDate) && item2.refs){
$this.addComponents[index].dataSource[index2].rules[0].required = true;
$this.$refs['form' + index][0].validateField(['glycosylatedHemoglobinPercent','glycosylatedHemoglobinDate']);
}else{
if(item2.refs){
if(item2.refs == 'glycosylatedHemoglobinPercent'){
// $this.addComponents[index].dataSource[index2].rules[0].required = false;
$this.addComponents[index].dataSource[index2].rules = [{ required: false, message: '请输入糖化血红蛋白值', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkNumberIsToFixedTwo , trigger: ['submit','change'] }];
}else{
$this.addComponents[index].dataSource[index2].rules[0].required = false;
}
// $this.addComponents[index].dataSource[index2].rules[0].required = false;
$this.$nextTick(()=>{
$this.$refs['form'+index][0].validate((valid) => {
});
$this.$refs['form' + index][0].clearValidate(['fastingBloodSugar','glycosylatedHemoglobinPercent','glycosylatedHemoglobinDate']);
})
}
}
})
}
})
}
return [
{
formType: 'input',
className: 'float-none',
prop: 'fastingBloodSugar',
model: 'fastingBloodSugar',
disabled: false,
label: '空腹血糖值:',
placeholder: '请输入空腹血糖值',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: 'mmol/L', type: 'append'}],
rules: [{ required: true, message: '请输入空腹血糖值', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkNumberIsToFixed , trigger: ['submit','change'] }]
},
// {
// formType: 'div',
// name: '其他检查',
// className: 'sec-title',
// },
{
formType: 'input',
className: 'float-none',
prop: 'glycosylatedHemoglobinPercent',
model: 'glycosylatedHemoglobinPercent',
refs: 'glycosylatedHemoglobinPercent',
disabled: false,
label: '糖化血红蛋白值:',
placeholder: '请输入糖化血红蛋白值',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '%', type: 'append'}],
rules: [{ required: false, message: '请输入糖化血红蛋白值', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkNumberIsToFixedTwo , trigger: ['submit','change'] }],
changeFun: hanldeValue,
// blurFunc: hanldeValue
},
{
formType: 'date-picker',
className: 'float-none',
prop: 'glycosylatedHemoglobinDate',
model: 'glycosylatedHemoglobinDate',
refs: 'glycosylatedHemoglobinDate',
placeholder: '请选择',
label: '检查日期:',
format: 'MM 月 dd 日',
valueFormat: 'MM-dd',
dateType: 'date',
type: 'date',
rules: [{required: false, message: '请选择检查日期', trigger: ['submit','change','blur']}],
spanNum: 12,
changeFun: hanldeValue,
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'name',
model: 'name',
label: '姓名:',
disabled: false,
placeholder: '请输入姓名',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: true, message: '请输入姓名', trigger: ['submit','change']}],
},
{
formType: 'input',
className: 'float-none',
prop: 'no',
model: 'no',
label: '编号:',
disabled: false,
placeholder: '请输入编号',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: false, message: '请输入编号', trigger: ['submit','change']}],
},
{
formType: 'date-picker',
className: 'float-none',
prop: 'followupDate',
model: 'followupDate',
placeholder: '请选择',
label: '随访日期:',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
dateType: 'date',
type: 'date',
rules: [{required: true, message: '请选择随访日期', trigger: ['submit','change']}],
spanNum: 12,
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'followupType',
model: 'followupType',
spanNum: 24,
label: '随访方式:',
options: [
{ label: '门诊', value: '门诊' },
{ label: '家庭', value: '家庭' },
{ label: '电话', value: '电话' },
],
rules: [{ required: true, message: '请选择随访方式', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'smokingAmount',
model: 'smokingAmount',
disabled: false,
label: '本次日吸烟量:',
placeholder: '请输入本次日吸烟量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '支/日', type: 'append'}],
rules: [{ required: true, message: '请输入日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextSmokingAmount',
model: 'nextSmokingAmount',
disabled: false,
label: '下次随访目标日吸烟量:',
placeholder: '请输入下次随访日吸烟量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '支/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'alcoholConsumption',
model: 'alcoholConsumption',
disabled: false,
label: '本次日饮酒量:',
placeholder: '请输入本次日饮酒量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '两/日', type: 'append'}],
rules: [{ required: true, message: '请输入本次日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextAlcoholConsumption',
model: 'nextAlcoholConsumption',
disabled: false,
label: '下次随访目标日饮酒量:',
placeholder: '请输入下次随访日饮酒量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '两/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'workoutOfWeek',
model: 'workoutOfWeek',
disabled: false,
label: '本次运动情况:',
placeholder: '请输入本次运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '次/周', type: 'append'}],
rules: [{ required: true, message: '请输入本次运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'workoutDuration',
model: 'workoutDuration',
disabled: false,
placeholder: '请输入本次运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '分钟/次', type: 'append'}],
rules: [{ required: true, message: '请输入本次运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextWorkoutOfWeek',
model: 'nextWorkoutOfWeek',
disabled: false,
label: '下次随访目标运动情况:',
placeholder: '请输入下次随访运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '次/周', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextWorkoutDuration',
model: 'nextWorkoutDuration',
disabled: false,
placeholder: '请输入下次随访运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '分钟/次', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'stapleFoodGram',
model: 'stapleFoodGram',
disabled: false,
label: '实际主食摄入量:',
placeholder: '请输入每天摄入主食克数',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '克/天', type: 'append'}],
rules: [{ required: true, message: '请输入每天摄入主食克数', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextStapleFoodGram',
model: 'nextStapleFoodGram',
disabled: false,
label: '目标主食摄入量:',
placeholder: '请输入每天摄入主食克数',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '克/天', type: 'append'}],
rules: [{ required: true, message: '请输入每天摄入主食克数', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'psychologicalAdjustment',
model: 'psychologicalAdjustment',
spanNum: 24,
label: '心理调整:',
options: [
{ label: '良好', value: '良好' },
{ label: '一般', value: '一般' },
{ label: '差', value: '差' },
],
rules: [{ required: true, message: '请选择心理调整', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'followMedicalPractive',
model: 'followMedicalPractive',
spanNum: 24,
label: '遵医行为:',
options: [
{ label: '良好', value: '良好' },
{ label: '一般', value: '一般' },
{ label: '差', value: '差' },
],
rules: [{ required: true, message: '请选择遵医行为情况', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'list',
className: 'float-none',
// arrList: [
// {
// medicinesName: '吗丁啉',
// dosageDay: 3,
// dosageNum: 1,
// }
// ],
prop: 'arrList',
model: 'arrList',
label: '',
disabled: true,
spanNum: 24,
rules: [{required: false, message: '', trigger: ['submit','change']}],
clickDeleteFunc: () => {
}
},
{
formType: 'button',
className: 'float-none',
prop: 'followUpOrgName',
model: 'followUpOrgName',
icon: 'el-icon-circle-plus',
btnText: '点击添加',
disabled: false,
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
clickFunc: () => {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseMedicationUse'){
if($this.addComponents[index].formObject.arrList.length >= 3) {
$this.$message.warning('最多只可添加3种药物!')
}else {
$this.dialogFormVisible = true;
}
}
})
}
},
{
formType: 'div',
name: '胰岛素',
className: 'sec-title',
},
{
formType: 'input',
className: 'float-none',
prop: 'medicinesName',
model: 'medicinesName',
label: '种类:',
disabled: false,
placeholder: '请输入胰岛素种类',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: true, message: '请输入胰岛素种类', trigger: ['submit','change']}],
},
{
formType: 'input',
className: 'float-none',
prop: 'dosageDay',
model: 'dosageDay',
label: '用法:',
disabled: false,
placeholder: '请输入胰岛素用法',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: true, message: '请输入胰岛素用法', trigger: ['submit','change']}],
},
{
formType: 'input',
className: 'float-none',
prop: 'dosageNum',
model: 'dosageNum',
label: '用量:',
disabled: false,
placeholder: '请输入胰岛素用量',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: true, message: '请输入胰岛素用量', trigger: ['submit','change']}],
},
]
}
import { checkMobile } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'radio',
className: 'obj-form-title',
prop: 'medicationObedience',
model: 'medicationObedience',
label: '服药依从性:',
disabled: false,
spanNum: 24,
options: [
{ label: '规律', value: '规律', disabled: false },
{ label: '间断', value: '间断', disabled: false },
{ label: '不服药', value: '不服药', disabled: false },
],
rules: [{ required: true, message: '请选择服药依从性', trigger: ['submit','change'] }],
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'medicalSideEffects',
model: 'medicalSideEffects',
label: '药物不良反应:',
disabled: false,
spanNum: 24,
options: [
{ label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false },
],
rules: [{ required: true, message: '请选择有无不良反应', trigger: ['submit','change'] }],
},
{
formType: 'input',
className: 'obj-form-title2',
linkageRule: [{name: 'medicalSideEffects',value: ['有']}],
prop: 'remark',
model: 'remark',
disabled: false,
placeholder: '请输入不良反应',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: true, message: '请输入不良反应', trigger: ['submit','change'] }]
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'reactiveHypoglycemia',
model: 'reactiveHypoglycemia',
label: '低血糖反应:',
disabled: false,
spanNum: 24,
options: [
{ label: '无', value: '无', disabled: false },
{ label: '偶尔', value: '偶尔', disabled: false },
{ label: '频繁', value: '频繁', disabled: false },
],
rules: [{ required: true, message: '请选择低血糖反应', trigger: ['submit','change'] }],
},
{
formType: 'radio',
className: 'obj-form-title radio-block',
prop: 'followUpClassification',
model: 'followUpClassification',
spanNum: 24,
label: '此次随访分类:',
options: [
{ label: '控制满意(血压控制满意,无其他异常)', value: '控制满意(血压控制满意,无其他异常)' },
{ label: '控制不满意(血压控制不满意,无其他异常)', value: '控制不满意(血压控制不满意,无其他异常)' },
{ label: '不良反应(存在药物不良反应)', value: '不良反应(存在药物不良反应)' },
{ label: '并发症(出现新的并发症或并发症出现异常)', value: '并发症(出现新的并发症或并发症出现异常)' },
],
rules: [{ required: true, message: '请选择此次随访分类', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
let hanldeValue = () => {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseReferral'){
const reason = item.formObject.reason
const mechanism = item.formObject.mechanism
const department = item.formObject.department
item.dataSource.forEach((item2,index2)=>{
if((reason||mechanism||department) && item2.rules){
$this.addComponents[index].dataSource[index2].rules[0].required = true;
}else{
$this.addComponents[index].dataSource[index2].rules[0].required = false;
$this.$nextTick(() => {
$this.$refs['form'+index][0].clearValidate(['reason','mechanism','department']);
})
}
})
}
// $this.$refs['form'+index][0].validate((valid) => {});
})
}
return [
{
formType: 'input',
className: 'float-none',
prop: 'reason',
model: 'reason',
label: '原因:',
disabled: false,
placeholder: '请输入原因',
spanNum: 12,
maxlength: 30,
type: 'text',
rules: [{required: false, message: '请输入原因', trigger: ['submit','change','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
{
formType: 'input',
className: 'float-none',
prop: 'mechanism',
model: 'mechanism',
label: '机构:',
disabled: false,
placeholder: '请输入机构',
spanNum: 12,
maxlength: 30,
type: 'text',
rules: [{required: false, message: '请输入机构', trigger: ['submit','change','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
{
formType: 'input',
className: 'float-none',
prop: 'department',
model: 'department',
label: '科室类别:',
disabled: false,
placeholder: '请输入科室类别',
spanNum: 12,
maxlength: 30,
type: 'text',
rules: [{required: false, message: '请输入科室类别', trigger: ['submit','change','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'systolicBloodPressure',
model: 'systolicBloodPressure',
label: '收缩压SBP:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'mmHg', type: 'append'}],
rules: [{required: true, message: '请输入收缩压SBP', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }],
},
{
formType: 'input',
className: 'float-none',
prop: 'diastolicBloodPressure',
model: 'diastolicBloodPressure',
label: '舒张压DBP:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'mmHg', type: 'append'}],
rules: [{required: true, message: '请输入舒张压DBP', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }],
},
{
formType: 'input',
className: 'float-none',
prop: 'bodyHeight',
model: 'bodyHeight',
label: '身高:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'cm', type: 'append'}],
rules: [{required: true, message: '请输入身高', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkIsInteger , trigger: ['submit','change']}],
changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){
$this.addComponents[index].formObject.bodyHeight = val;
}
})
},
blurFunc: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){
let bodyWeight = $this.addComponents[index].formObject.bodyWeight
let bodyHeight = $this.addComponents[index].formObject.bodyHeight
if(bodyWeight && bodyHeight){
bodyWeight = parseFloat(bodyWeight);
bodyHeight = parseFloat(bodyHeight);
let bmi = (bodyWeight / Math.pow((bodyHeight/100),2)).toFixed(1);
$this.addComponents[index].formObject.bmi = bmi;
}
}
})
}
},
// 体质指数(BMI)=体重(kg)÷ 身高²(m)
{
formType: 'input',
className: 'float-none',
prop: 'bodyWeight',
model: 'bodyWeight',
label: '体重:',
disabled: false,
placeholder: '请输入(体重可以带1位小数点)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg', type: 'append'}],
rules: [{required: true, message: '请输入体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}],
changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){
$this.addComponents[index].formObject.bodyWeight = val;
}
})
},
blurFunc: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){
let bodyWeight = $this.addComponents[index].formObject.bodyWeight
let bodyHeight = $this.addComponents[index].formObject.bodyHeight
if(bodyWeight && bodyHeight){
bodyWeight = parseFloat(bodyWeight);
bodyHeight = parseFloat(bodyHeight);
let bmi = (bodyWeight / Math.pow((bodyHeight/100),2)).toFixed(1);
$this.addComponents[index].formObject.bmi = bmi;
}
}
})
}
},
{
formType: 'input',
className: 'float-none',
prop: 'bmi',
model: 'bmi',
label: 'BMI(系统自动生成):',
disabled: true,
placeholder: '(这里是自动计算所得)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg/m^2', type: 'append'}],
},
{
formType: 'input',
className: 'float-none',
prop: 'nextBodyWeight',
model: 'nextBodyWeight',
label: '下次随访目标体重:',
disabled: false,
placeholder: '请输入(体重可以带1位小数点)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg', type: 'append'}],
rules: [{required: true, message: '请输入下次随访体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}],
changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){
$this.addComponents[index].formObject.nextBodyWeight = val;
}
})
},
blurFunc: ()=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSign'){
let nextBodyWeight = $this.addComponents[index].formObject.nextBodyWeight
let bodyHeight = $this.addComponents[index].formObject.bodyHeight
if(nextBodyWeight && bodyHeight){
nextBodyWeight = parseFloat(nextBodyWeight);
bodyHeight = parseFloat(bodyHeight);
let nextBmi = (nextBodyWeight / Math.pow((bodyHeight/100),2)).toFixed(1);
$this.addComponents[index].formObject.nextBmi = nextBmi;
}
}
})
}
},
{
formType: 'input',
className: 'float-none',
prop: 'nextBmi',
model: 'nextBmi',
label: '下次随访BMI(系统自动生成):',
disabled: true,
placeholder: '(这里是自动计算所得)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg/m^2', type: 'append'}],
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'dorsalisPedisArteryPulsation',
model: 'dorsalisPedisArteryPulsation',
label: '足背动脉搏动:',
disabled: false,
spanNum: 24,
options: [
{ label: '触及正常', value: '触及正常', disabled: false },
{ label: '双侧减弱', value: '双侧减弱', disabled: false },
{ label: '左侧减弱', value: '左侧减弱', disabled: false },
{ label: '右侧减弱', value: '右侧减弱', disabled: false },
{ label: '双侧消失', value: '双侧消失', disabled: false },
{ label: '左侧消失', value: '左侧消失', disabled: false },
{ label: '右侧消失', value: '右侧消失', disabled: false },
],
rules: [{ required: true, message: '请选择足背动脉搏动情况', trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'remark',
model: 'remark',
disabled: false,
label: '其他:',
placeholder: '请输入其他体征',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: false, message: '请输入其他体征', trigger: ['submit','change'] }]
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'date-picker',
className: 'float-none',
prop: 'nextFollowDay',
model: 'nextFollowDay',
placeholder: '请选择',
label: '下次随访日期:',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
dateType: 'date',
type: 'date',
rules: [{required: true, message: '请选择下次随访日期', trigger: ['submit','change']}],
spanNum: 12,
},
// {
// formType: 'input',
// className: 'float-none',
// prop: 'doctorSignature',
// model: 'doctorSignature',
// label: '随访医生签名:',
// disabled: false,
// placeholder: '请输入随访人员姓名',
// spanNum: 12,
// maxlength: 30,
// type: 'text',
// labmsg: '次',
// rules: [{required: true, message: '请输入随访医生签名', trigger: ['submit','change']}],
// },
]
}
import { checkMobile } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'radio',
className: 'obj-form-title',
prop: 'hasSymptom',
model: 'hasSymptom',
label: '是否有症状:',
disabled: false,
spanNum: 24,
options: [
{ label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false },
],
rules: [{ required: true, message: '请选择随访期间有无症状', trigger: ['submit','change'] }],
changeFun: (e) => {
if(e == '有') {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'diabetesSourseSymptom'){
$this.addComponents[index].formObject = {
...$this.addComponents[index].formObject,
symptom: []
}
}
})
}
}
},
{
formType: 'checkbox',
className: 'obj-form-title',
prop: 'symptom',
model: 'symptom',
label: '选择的症状:',
linkageRule: [{name: 'hasSymptom', value: ['有']}],
disabled: false,
changeFun: (val) => {
// console.log(val)
},
spanNum: 24,
options: [
{label: '多饮', value: '多饮', disabled: false},
{label: '多食', value: '多食', disabled: false},
{label: '多尿', value: '多尿', disabled: false},
{label: '视力模糊', value: '视力模糊', disabled: false},
{label: '感染', value: '感染', disabled: false},
{label: '手脚麻木', value: '手脚麻木', disabled: false},
{label: '下肢浮肿', value: '下肢浮肿', disabled: false},
{label: '体重明显下降', value: '体重明显下降', disabled: false},
{label: '其他', value: '其他', disabled: false},
],
rules: [{required: true, message: '选择的症状', trigger: ['submit']}]
},
{
formType: 'input',
className: 'obj-form-title2',
linkageRule: [{name: 'symptom',value: ['其他']}],
prop: 'remark',
model: 'remark',
disabled: false,
placeholder: '请输入其他症状',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: true, message: '请输入其他症状', trigger: ['submit','change'] }]
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'name',
model: 'name',
label: '姓名:',
disabled: false,
placeholder: '请输入姓名',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: true, message: '请输入姓名', trigger: ['submit','change']}],
},
{
formType: 'input',
className: 'float-none',
prop: 'no',
model: 'no',
label: '编号:',
disabled: false,
placeholder: '请输入编号',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: false, message: '请输入编号', trigger: ['submit','change']}],
},
{
formType: 'date-picker',
className: 'float-none',
prop: 'followupDate',
model: 'followupDate',
placeholder: '请选择',
label: '随访日期:',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
dateType: 'date',
type: 'date',
rules: [{required: true, message: '请选择随访日期', trigger: ['submit','change']}],
spanNum: 12,
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'followupType',
model: 'followupType',
spanNum: 24,
label: '随访方式:',
options: [
{ label: '门诊', value: '门诊' },
{ label: '家庭', value: '家庭' },
{ label: '电话', value: '电话' },
],
rules: [{ required: true, message: '请选择随访方式', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'helpCheck',
model: 'helpCheck',
disabled: false,
label: '辅助检查:',
placeholder: '请输入辅助检查',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: false, message: '请输入辅助检查', trigger: ['submit','change'] }]
},
{
formType: 'radio',
className: 'float-none',
prop: 'medicationObedience',
model: 'medicationObedience',
spanNum: 24,
label: '服药依从性:',
options: [
{ label: '规律', value: '规律' },
{ label: '间断', value: '间断' },
{ label: '不服药', value: '不服药' },
],
rules: [{ required: true, message: '请选择服药依从性', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
{
formType: 'radio',
className: 'float-none',
prop: 'medicalSideEffects',
model: 'medicalSideEffects',
spanNum: 24,
label: '药物不良反应:',
options: [
{ label: '无', value: '无' },
{ label: '有', value: '有' },
],
rules: [{ required: true, message: '请选择有无药物不良反应', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
{
formType: 'input',
className: 'float-none',
linkageRule: [{name: 'medicalSideEffects',value: ['有']}],
prop: 'adrsMark',
model: 'adrsMark',
disabled: false,
placeholder: '请输入药物不良反应',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: true, message: '请输入药物不良反应', trigger: ['submit','change'] }]
},
{
formType: 'radio',
className: 'float-none radio-block',
prop: 'followUpClassification',
model: 'followUpClassification',
spanNum: 24,
label: '此次随访分类:',
options: [
{ label: '控制满意(血压控制满意,无其他异常)', value: '控制满意(血压控制满意,无其他异常)' },
{ label: '控制不满意(血压控制不满意,无其他异常)', value: '控制不满意(血压控制不满意,无其他异常)' },
{ label: '不良反应(存在药物不良反应)', value: '不良反应(存在药物不良反应)' },
{ label: '并发症(出现新的并发症或并发症出现异常)', value: '并发症(出现新的并发症或并发症出现异常)' },
],
rules: [{ required: true, message: '请选择此次随访分类', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'smokingAmount',
model: 'smokingAmount',
disabled: false,
label: '本次日吸烟量:',
placeholder: '请输入本次日吸烟量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '支/日', type: 'append'}],
rules: [{ required: true, message: '请输入日吸烟量', trigger: ['submit','change','blur'] },{ validator: checkRange , trigger: ['submit','change','blur'] },{ validator: checkIsInteger , trigger: ['submit','change','blur'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextSmokingAmount',
model: 'nextSmokingAmount',
disabled: false,
label: '下次随访日吸烟量:',
placeholder: '请输入下次随访日吸烟量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '支/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日吸烟量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'alcoholConsumption',
model: 'alcoholConsumption',
disabled: false,
label: '本次日饮酒量:',
placeholder: '请输入本次日饮酒量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '两/日', type: 'append'}],
rules: [{ required: true, message: '请输入本次日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextAlcoholConsumption',
model: 'nextAlcoholConsumption',
disabled: false,
label: '下次随访日饮酒量:',
placeholder: '请输入下次随访日饮酒量',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '两/日', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访日饮酒量', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'workoutOfWeek',
model: 'workoutOfWeek',
disabled: false,
label: '本次运动情况:',
placeholder: '请输入本次运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '次/周', type: 'append'}],
rules: [{ required: true, message: '请输入本次运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'workoutDuration',
model: 'workoutDuration',
disabled: false,
placeholder: '请输入本次运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '分钟/次', type: 'append'}],
rules: [{ required: true, message: '请输入本次运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextWorkoutOfWeek',
model: 'nextWorkoutOfWeek',
disabled: false,
label: '下次随访运动情况:',
placeholder: '请输入下次随访运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '次/周', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'input',
className: 'float-none',
prop: 'nextWorkoutDuration',
model: 'nextWorkoutDuration',
disabled: false,
placeholder: '请输入下次随访运动情况',
spanNum: 8,
maxlength: 30,
type: 'number',
labmsg: '',
slots: [{name: '分钟/次', type: 'append'}],
rules: [{ required: true, message: '请输入下次随访运动情况', trigger: ['submit','change'] },{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }]
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'saltIntake',
model: 'saltIntake',
spanNum: 24,
label: '目前摄盐情况(咸淡):',
options: [
{ label: '轻', value: '轻' },
{ label: '中', value: '中' },
{ label: '重', value: '重' },
],
rules: [{ required: true, message: '请选择目前摄盐情况', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'nextSaltIntake',
model: 'nextSaltIntake',
spanNum: 24,
label: '下次随访摄盐情况(咸淡):',
options: [
{ label: '轻', value: '轻' },
{ label: '中', value: '中' },
{ label: '重', value: '重' },
],
rules: [{ required: true, message: '请选择下次随访摄盐情况', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'psychologicalAdjustment',
model: 'psychologicalAdjustment',
spanNum: 24,
label: '心理调整:',
options: [
{ label: '良好', value: '良好' },
{ label: '一般', value: '一般' },
{ label: '差', value: '差' },
],
rules: [{ required: true, message: '请选择心理调整', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
{
formType: 'radio',
className: 'obj-form-title',
prop: 'followMedicalPractive',
model: 'followMedicalPractive',
spanNum: 24,
label: '遵医行为:',
options: [
{ label: '良好', value: '良好' },
{ label: '一般', value: '一般' },
{ label: '差', value: '差' },
],
rules: [{ required: true, message: '请选择心里调整', trigger: ['submit','change'] }],
changeFun: (e)=>{
}
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
let hanldeValue = () => {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceMedicationUse'){
const medicinesName = item.formObject.medicinesName
const dosageDay = item.formObject.dosageDay
const dosageNum = item.formObject.dosageNum
item.dataSource.forEach((item2,index2)=>{
if((medicinesName||dosageDay||dosageNum) && item2.rules && item2.prop!='arrList' && item2.refs){
$this.addComponents[index].dataSource[index2].rules[0].required = true;
}else{
if(item2.refs){
$this.addComponents[index].dataSource[index2].rules[0].required = false;
$this.$nextTick(()=>{
$this.$refs['form' + index][0].clearValidate(['medicinesName','dosageDay','dosageNum']);
})
}
}
})
// $this.$refs['form'+index][0].validate((valid) => {
// });
}
})
}
return [
{
formType: 'list',
className: 'float-none',
arrList: [
],
prop: 'arrList',
model: 'arrList',
label: '',
disabled: true,
spanNum: 12,
rules: [{required: false, message: '', trigger: ['submit','change']}],
clickDeleteFunc: () => {
}
},
{
formType: 'button',
className: 'float-none',
prop: 'followUpOrgName',
model: 'followUpOrgName',
icon: 'el-icon-circle-plus',
btnText: '点击添加',
disabled: false,
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
clickFunc: () => {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceMedicationUse'){
if($this.addComponents[index].formObject.arrList && $this.addComponents[index].formObject.arrList.length >= 3) {
$this.$message.warning('最多只可添加3种药物!')
}else {
$this.dialogFormVisible = true;
}
}
})
}
},
{
formType: 'div',
name: '其他药物',
className: 'sec-title',
},
{
formType: 'input',
className: 'float-none',
prop: 'medicinesName',
model: 'medicinesName',
refs:'medicinesName',
label: '其他药物名称:',
disabled: false,
placeholder: '请输入其他药物',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '次',
rules: [{required: false, message: '请输入其他药物', trigger: ['submit','change','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
{
formType: 'input',
className: 'float-none',
prop: 'dosageDay',
model: 'dosageDay',
refs:'dosageDay',
label: '其他药物用法:',
disabled: false,
placeholder: '请输入其他药物用法每日几次',
spanNum: 12,
maxlength: 30,
type: 'text',
slots: [{name: '次/日', type: 'append'}],
rules: [{required: false, message: '请输入其他药物用法每日几次', trigger: ['submit','change','blur']},{ validator: checkRange , trigger: ['submit','change','blur'] },{ validator: checkIsInteger , trigger: ['submit','change','blur'] }],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
{
formType: 'input',
className: 'float-none',
prop: 'dosageNum',
model: 'dosageNum',
refs:'dosageNum',
label: '其他药物用量:',
disabled: false,
placeholder: '请输入其他药物每次用量',
spanNum: 12,
maxlength: 30,
type: 'text',
slots: [{name: '每次', type: 'append'}],
rules: [{required: false, message: '请输入其他药物每次用量', trigger: ['submit','change','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
]
}
export default ($this) => {
return [
{
formType: 'date-picker',
className: 'float-none',
prop: 'nextFollowDay',
model: 'nextFollowDay',
placeholder: '请选择',
label: '下次随访日期:',
format: 'yyyy-MM-dd',
valueFormat: 'yyyy-MM-dd',
dateType: 'date',
type: 'date',
rules: [{required: true, message: '请选择下次随访日期', trigger: ['submit','change']}],
spanNum: 12,
},
// {
// formType: 'input',
// className: 'float-none',
// prop: 'doctorSignature',
// model: 'doctorSignature',
// label: '随访医生签名:',
// disabled: false,
// placeholder: '请输入随访人员姓名',
// spanNum: 12,
// maxlength: 30,
// type: 'text',
// labmsg: '次',
// rules: [{required: true, message: '请输入随访医生签名', trigger: ['submit','change']}],
// },
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
let hanldeValue = () => {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceReferral'){
const reason = item.formObject.reason
const mechanism = item.formObject.mechanism
const department = item.formObject.department
item.dataSource.forEach((item2,index2)=>{
if((reason||mechanism||department) && item2.rules){
$this.addComponents[index].dataSource[index2].rules[0].required = true;
}else{
$this.addComponents[index].dataSource[index2].rules[0].required = false;
$this.$nextTick(()=>{
$this.$refs['form' + index][0].clearValidate(['reason','mechanism','department']);
})
}
})
// $this.$refs['form'+index][0].validate((valid) => {
// });
}
})
}
return [
{
formType: 'input',
className: 'float-none',
prop: 'reason',
model: 'reason',
refs:'reason',
label: '原因:',
disabled: false,
placeholder: '请输入原因',
spanNum: 12,
maxlength: 30,
type: 'text',
rules: [{required: false, message: '请输入原因', trigger: ['change','submit','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
{
formType: 'input',
className: 'float-none',
prop: 'mechanism',
model: 'mechanism',
refs:'mechanism',
label: '机构:',
disabled: false,
placeholder: '请输入机构',
spanNum: 12,
maxlength: 30,
type: 'text',
rules: [{required: false, message: '请输入机构', trigger: ['change','submit','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
{
formType: 'input',
className: 'float-none',
prop: 'department',
model: 'department',
refs:'department',
label: '科室类别:',
disabled: false,
placeholder: '请输入科室类别',
spanNum: 12,
maxlength: 30,
type: 'text',
rules: [{required: false, message: '请输入科室类别', trigger: ['change','submit','blur']}],
changeFun: hanldeValue,
blurFunc: hanldeValue
},
]
}
import { checkRange, checkIsInteger, checkNumberIsToFixed } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'input',
className: 'float-none',
prop: 'systolicBloodPressure',
model: 'systolicBloodPressure',
label: '收缩压SBP:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'mmHg', type: 'append'}],
rules: [{required: true, message: '请输入收缩压SBP', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }],
},
{
formType: 'input',
className: 'float-none',
prop: 'diastolicBloodPressure',
model: 'diastolicBloodPressure',
label: '舒张压DBP:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'mmHg', type: 'append'}],
rules: [{required: true, message: '请输入舒张压DBP', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }],
},
{
formType: 'input',
className: 'float-none',
prop: 'bodyHeight',
model: 'bodyHeight',
label: '身高:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'cm', type: 'append'}],
rules: [{required: true, message: '请输入身高', trigger: ['submit','change','blur']},{ validator: checkRange , trigger: ['submit','change','blur'] }, {validator: checkIsInteger , trigger: ['submit','change','blur']}],
changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){
$this.addComponents[index].formObject.bodyHeight = val;
}
})
},
blurFunc: ()=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){
let bodyWeight = $this.addComponents[index].formObject.bodyWeight
let bodyHeight = $this.addComponents[index].formObject.bodyHeight
if(bodyWeight && bodyHeight){
bodyWeight = parseFloat(bodyWeight);
bodyHeight = parseFloat(bodyHeight);
let bmi = (bodyWeight / Math.pow((bodyHeight/100),2)).toFixed(1);
$this.addComponents[index].formObject.bmi = bmi;
}
}
})
}
},
// 体质指数(BMI)=体重(kg)÷ 身高²(m)
{
formType: 'input',
className: 'float-none',
prop: 'bodyWeight',
model: 'bodyWeight',
label: '体重:',
disabled: false,
placeholder: '请输入(体重可以带1位小数点)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg', type: 'append'}],
rules: [{required: true, message: '请输入体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}],
changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){
$this.addComponents[index].formObject.bodyWeight = val;
}
})
},
blurFunc: ()=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){
let bodyWeight = $this.addComponents[index].formObject.bodyWeight
let bodyHeight = $this.addComponents[index].formObject.bodyHeight
if(bodyWeight && bodyHeight){
bodyWeight = parseFloat(bodyWeight);
bodyHeight = parseFloat(bodyHeight);
let bmi = (bodyWeight / Math.pow((bodyHeight/100),2)).toFixed(1);
$this.addComponents[index].formObject.bmi = bmi;
}
}
})
}
},
{
formType: 'input',
className: 'float-none',
prop: 'bmi',
model: 'bmi',
label: 'BMI(系统自动生成):',
disabled: true,
placeholder: '(这里是自动计算所得)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg/m^2', type: 'append'}],
},
{
formType: 'input',
className: 'float-none',
prop: 'nextBodyWeight',
model: 'nextBodyWeight',
label: '下次随访体重:',
disabled: false,
placeholder: '请输入(体重可以带1位小数点)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg', type: 'append'}],
rules: [{required: true, message: '请输入下次随访体重', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] }, {validator: checkNumberIsToFixed , trigger: ['submit','change']}],
changeFun: (val)=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){
$this.addComponents[index].formObject.nextBodyWeight = val;
}
})
},
blurFunc: ()=>{
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSign'){
let nextBodyWeight = $this.addComponents[index].formObject.nextBodyWeight
let bodyHeight = $this.addComponents[index].formObject.bodyHeight
if(nextBodyWeight && bodyHeight){
nextBodyWeight = parseFloat(nextBodyWeight);
bodyHeight = parseFloat(bodyHeight);
let nextBmi = (nextBodyWeight / Math.pow((bodyHeight/100),2)).toFixed(1);
$this.addComponents[index].formObject.nextBmi = nextBmi;
}
}
})
}
},
{
formType: 'input',
className: 'float-none',
prop: 'nextBmi',
model: 'nextBmi',
label: '下次随访BMI(系统自动生成):',
disabled: true,
placeholder: '(这里是自动计算所得)',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: 'kg/m^2', type: 'append'}],
},
{
formType: 'input',
className: 'float-none',
prop: 'heartRate',
model: 'heartRate',
label: '心率:',
disabled: false,
placeholder: '请输入',
spanNum: 8,
type: 'number',
labmsg: '次',
slots: [{name: '次/分钟', type: 'append'}],
rules: [{required: true, message: '请输入心率', trigger: ['submit','change']},{ validator: checkRange , trigger: ['submit','change'] },{ validator: checkIsInteger , trigger: ['submit','change'] }],
},
{
formType: 'input',
className: 'float-none',
prop: 'remark',
model: 'remark',
disabled: false,
label: '其他',
placeholder: '请输入其他体征',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: false, message: '请输入其他体征', trigger: ['submit','change'] }]
},
]
}
import { checkMobile } from '@/utils/followup/followupUtils/checkField';
export default ($this) => {
return [
{
formType: 'radio',
className: 'obj-form-title',
prop: 'hasSymptom',
model: 'hasSymptom',
label: '是否有症状:',
disabled: false,
spanNum: 24,
options: [
{ label: '无', value: '无', disabled: false },
{ label: '有', value: '有', disabled: false },
],
rules: [{ required: true, message: '请选择是否有症状', trigger: ['submit','change'] }],
changeFun: (e) => {
if(e == '有') {
$this.addComponents.forEach((item,index)=>{
if(item.name == 'hypeDataSourceSymptom'){
$this.addComponents[index].formObject = {
...$this.addComponents[index].formObject,
symptom: []
}
}
})
}
}
},
{
formType: 'checkbox',
className: 'float-none obj-form-title2',
linkageRule: [{name: 'hasSymptom', value: ['有']}],
prop: 'symptom',
model: 'symptom',
label: '症状类型:',
disabled: false,
changeFun: (val) => {
},
spanNum: 24,
options: [
// {label: '无症状', value: '无症状', disabled: false},
{label: '头痛头晕', value: '头痛头晕', disabled: false},
{label: '恶心呕吐', value: '恶心呕吐', disabled: false},
{label: '眼花耳鸣', value: '眼花耳鸣', disabled: false},
{label: '呼吸困难', value: '呼吸困难', disabled: false},
{label: '心悸胸闷', value: '心悸胸闷', disabled: false},
{label: '鼻衄出血不止', value: '鼻衄出血不止', disabled: false},
{label: '四肢发麻', value: '四肢发麻', disabled: false},
{label: '下肢水肿', value: '下肢水肿', disabled: false},
{label: '其他', value: '其他', disabled: false},
],
rules: [{required: true, message: '选择的症状', trigger: ['submit']}]
},
{
formType: 'input',
className: 'float-none obj-form-title3',
linkageRule: [{name: 'symptom',value: ['其他']}],
prop: 'remark',
model: 'remark',
disabled: false,
placeholder: '请输入其他症状',
spanNum: 12,
maxlength: 30,
type: 'text',
labmsg: '',
rules: [{ required: true, message: '请输入其他症状', trigger: ['submit','change'] }]
},
]
}
......@@ -50,16 +50,35 @@ export default ($this) => {
rules: [{ required: true, message: '请选择随访轮次', trigger: ['submit','change'] }],
changeFun: (e)=>{
// console.log(e)
// if(e == '12个月'){
// $this.needRule = false;
// sessionStorage.setItem('needRule',false);
// }else{
// $this.needRule = true;
// sessionStorage.setItem('needRule',true);
// }
$this.addComponents.forEach((item,index)=>{
if(item.name == 'CheckBody'){
item.dataSource.forEach((item2,index2)=>{
if(e == '12个月'){
$this.needRule = false;
localStorage.setItem('needRule',false);
}else{
$this.needRule = true;
localStorage.setItem('needRule',true);
}
sessionStorage.setItem('needRule',$this.needRule);
if(item2.rules){
$this.addComponents[index].dataSource[index2].rules[0].required = !$this.needRule;
}
})
}
},
})
}
},
]
}
......@@ -26,12 +26,14 @@
</template>
<script>
import { getDomain, getScaleModels, getScaleDetail, postScale, updateScalesStatus } from '@/utils/followup/followapis'
import { getDomain, getScaleModels, getScaleDetail, postScale, updateScalesStatus, submitScale } from '@/utils/followup/followapis'
// 量表 template
import FormScale from '@/components/followup/form/index'
// 量表模块数据模型
// 脑卒中
import dataSourceBaseInfo0 from '../models/stroke/dataSourceBaseInfo0'
import dataSourceBaseInfo from '../models/stroke/dataSourceBaseInfo'
import dataSourceBaseInfo2 from '../models/stroke/dataSourceBaseInfo2'
......@@ -48,8 +50,6 @@
import dataSourceCheckBody from '../models/stroke/dataSourceCheckBody'
import dataSourceCheckLab from '../models/stroke/dataSourceCheckLab'
import axios from 'axios';
import { submitScale } from '@/utils/followup/followapis';
export default {
data(){
......@@ -66,23 +66,7 @@
doctorId: '',
planTimesId: '',
addComponents: [],
addComponentsSourceList: [
{name: 'BaseInfo0',formObject: {},showModule: true,formName: 'stroke_001',className: 'obj-form-title',dataSource: dataSourceBaseInfo0(this), hideTitle: true, title: '一、量表脑卒中随访人员信息表'},
{name: 'BaseInfo',formObject: {},showModule: true,formName: 'stroke_002',className: 'obj-form-title',dataSource: dataSourceBaseInfo(this), title: '一、基本信息'},
{name: 'BaseInfo2',formObject: {},showModule: true,formName: 'stroke_003',className: 'obj-form-title',dataSource: dataSourceBaseInfo2(this), hideTitle: true, title: '一、基本信息'},
{name: 'LifeStyleGuide',formObject: {},showModule: true,formName: 'stroke_004',className: 'obj-form-title',dataSource: dataSourceLifeStyleGuide(this), title: '二、随访期间生活方式'},
{name: 'MainSickControl',formObject: {},showModule: true,formName: 'stroke_005',className: 'obj-form-title',dataSource: dataSourceMainSickControl(this), title: '三、随访期间主要病史及控制情况-脑血管病'},
{name: 'MainSickControl2',formObject: {},showModule: true,formName: 'stroke_006',className: 'obj-form-title',dataSource: dataSourceMainSickControl2(this), hideTitle: true,ruleNew:true, title: '三、随访期间主要病史及控制情况-MRS评分(卒中患者12个月随访必填)'},
{name: 'MainSickControl3',formObject: {},showModule: true,formName: 'stroke_007',className: 'obj-form-title',dataSource: dataSourceMainSickControl3(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-心脏病'},
{name: 'MainSickControl4',formObject: {},showModule: true,formName: 'stroke_008',className: 'obj-form-title',dataSource: dataSourceMainSickControl4(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-高血压'},
{name: 'MainSickControl5',formObject: {},showModule: true,formName: 'stroke_009',className: 'obj-form-title',dataSource: dataSourceMainSickControl5(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-血脂异常'},
{name: 'MainSickControl6',formObject: {},showModule: true,formName: 'stroke_010',className: 'obj-form-title',dataSource: dataSourceMainSickControl6(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-糖尿病'},
{name: 'TreatmentSituation',formObject: {},showModule: true,formName: 'stroke_011',className: 'obj-form-title',dataSource: dataSourceTreatmentSituation(this), title: '四、本次随访期间血管病变的外科手术或介入治疗情况'},
{name: 'TreatmentSituation2',formObject: {},showModule: true,formName: 'stroke_012',className: 'obj-form-title',dataSource: dataSourceTreatmentSituation2(this), hideTitle: true, title: '四、本次随访期间血管病变的外科手术或介入治疗情况-冠状动脉'},
{name: 'TreatmentSituation3',formObject: {},showModule: true,formName: 'stroke_013',className: 'obj-form-title',dataSource: dataSourceTreatmentSituation3(this), hideTitle: true, title: '四、本次随访期间血管病变的外科手术或介入治疗情况-出血性卒中外科治疗'},
{name: 'CheckBody',formObject: {bmi: 0,},showModule: true,formName: 'stroke_014',className: 'obj-form-title',dataSource: dataSourceCheckBody(this), ruleNew:true,title: '五、体格检查(高危人群12个月随访必做)'},
{name: 'CheckLab',formObject: {},showModule: true,formName: 'stroke_015',className: 'obj-form-title',dataSource: dataSourceCheckLab(this),ruleNew:true, title: '六、实验室检查(高危人群12个月随访必填)'},
],
addComponentsSourceList: [],
formData: {},//整个表单对象
}
},
......@@ -90,6 +74,7 @@
FormScale,
},
props: {
scaleType: String,//病种类型
checkStart: Boolean,
saveWay: Number,
showBtn: String,
......@@ -143,11 +128,12 @@
})
});
}
this.$emit('checkEnd',false);
}else{
this.dataSubmit();
}
this.$emit('checkEnd',false);
})
......@@ -176,23 +162,47 @@
}
},
created(){
this.planPatientsTimesId = this.$route.query.planPatientsTimesId
this.scaleNo = this.$route.query.scaleNo
this.doctorId = this.$route.query.doctorId
this.planTimesId = this.$route.query.planTimesId;
// 获取量表类型
this.initScaleType();
// 获取白名单域名
this.getWhiteDomain();
localStorage.setItem('needRule',this.needRule);
sessionStorage.setItem('needRule',this.needRule);
},
methods: {
// 获取量表类型
initScaleType(){
this.addComponentsSourceList = [
{name: 'BaseInfo0',formObject: {},showModule: true,formName: 'stroke_001',className: 'obj-form-title',dataSource: dataSourceBaseInfo0(this), hideTitle: true, title: '一、量表脑卒中随访人员信息表'},
{name: 'BaseInfo',formObject: {},showModule: true,formName: 'stroke_002',className: 'obj-form-title',dataSource: dataSourceBaseInfo(this), title: '一、基本信息'},
{name: 'BaseInfo2',formObject: {},showModule: true,formName: 'stroke_003',className: 'obj-form-title',dataSource: dataSourceBaseInfo2(this), hideTitle: true, title: '一、基本信息'},
{name: 'LifeStyleGuide',formObject: {},showModule: true,formName: 'stroke_004',className: 'obj-form-title',dataSource: dataSourceLifeStyleGuide(this), title: '二、随访期间生活方式'},
{name: 'MainSickControl',formObject: {},showModule: true,formName: 'stroke_005',className: 'obj-form-title',dataSource: dataSourceMainSickControl(this), title: '三、随访期间主要病史及控制情况-脑血管病'},
{name: 'MainSickControl2',formObject: {},showModule: true,formName: 'stroke_006',className: 'obj-form-title',dataSource: dataSourceMainSickControl2(this), hideTitle: true,ruleNew:true, title: '三、随访期间主要病史及控制情况-MRS评分(卒中患者12个月随访必填)'},
{name: 'MainSickControl3',formObject: {},showModule: true,formName: 'stroke_007',className: 'obj-form-title',dataSource: dataSourceMainSickControl3(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-心脏病'},
{name: 'MainSickControl4',formObject: {},showModule: true,formName: 'stroke_008',className: 'obj-form-title',dataSource: dataSourceMainSickControl4(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-高血压'},
{name: 'MainSickControl5',formObject: {},showModule: true,formName: 'stroke_009',className: 'obj-form-title',dataSource: dataSourceMainSickControl5(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-血脂异常'},
{name: 'MainSickControl6',formObject: {},showModule: true,formName: 'stroke_010',className: 'obj-form-title',dataSource: dataSourceMainSickControl6(this), hideTitle: true, title: '三、随访期间主要病史及控制情况-糖尿病'},
{name: 'TreatmentSituation',formObject: {},showModule: true,formName: 'stroke_011',className: 'obj-form-title',dataSource: dataSourceTreatmentSituation(this), title: '四、本次随访期间血管病变的外科手术或介入治疗情况'},
{name: 'TreatmentSituation2',formObject: {},showModule: true,formName: 'stroke_012',className: 'obj-form-title',dataSource: dataSourceTreatmentSituation2(this), hideTitle: true, title: '四、本次随访期间血管病变的外科手术或介入治疗情况-冠状动脉'},
{name: 'TreatmentSituation3',formObject: {},showModule: true,formName: 'stroke_013',className: 'obj-form-title',dataSource: dataSourceTreatmentSituation3(this), hideTitle: true, title: '四、本次随访期间血管病变的外科手术或介入治疗情况-出血性卒中外科治疗'},
{name: 'CheckBody',formObject: {bmi: 0,},showModule: true,formName: 'stroke_014',className: 'obj-form-title',dataSource: dataSourceCheckBody(this), ruleNew:true,title: '五、体格检查(高危人群12个月随访必做)'},
{name: 'CheckLab',formObject: {},showModule: true,formName: 'stroke_015',className: 'obj-form-title',dataSource: dataSourceCheckLab(this),ruleNew:true, title: '六、实验室检查(高危人群12个月随访必填)'},
]
},
// 获取白名单域名
getWhiteDomain(){
getDomain().then(res=>{
if(res.code=='000000'){
this.domain = res.data
this.domain = res.data;
// 获取量表模块
this.getFormModules();
if(this.showBtn!='0'){
// 获取量表详情
this.getFormDetail();
}
}else{
......@@ -312,10 +322,9 @@
line-height: 60px;
height: 60px;
font-weight: bold;
font-size: 18px;
font-size: 22px;
border-bottom: 1px dashed #ccc;
}
}
}
</style>
......@@ -225,7 +225,7 @@
}
}else if(this.formList.scalesList.length === 1){
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: this.formList.doctorId, scaleNo: this.formList.scalesList[0].resourceId, planPatientsTimesId: row.fuPlanPatientTimesId,planTimesId : row.fuPlanTimesId, showBtn: 1}})
query: {doctorId: this.formList.doctorId, scaleNo: this.formList.scalesList[0].resourceId, planPatientsTimesId: row.fuPlanPatientTimesId,planTimesId : row.planTimesId, showBtn: 1}})
}else {
this.$message.warning('暂无量表!')
}
......@@ -263,9 +263,9 @@
// this.statusForm = getArguments[1];
},
goFormView(item) {
this.selectFormShow = false
this.selectFormShow = false;
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: this.ScaleData.doctorId, scaleNo: item.resourceId, planPatientsTimesId: this.ScaleData.planPatientsTimesId, showBtn: 1}});
query: {doctorId: this.ScaleData.doctorId, scaleNo: item.resourceId, planPatientsTimesId: this.ScaleData.planPatientsTimesId,planTimesId : item.planTimesId, showBtn: 1}});
},
closeForm() {
this.selectFormShow = false;
......
......@@ -206,7 +206,7 @@ export default {
goFormView(item) {
this.selectFormShow = false
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: this.ScaleData.doctorId, scaleNo: item.resourceId, planPatientsTimesId: this.ScaleData.planPatientsTimesId, showBtn: 1}});
query: {doctorId: this.ScaleData.doctorId, scaleNo: item.resourceId, planPatientsTimesId: this.ScaleData.planPatientsTimesId,planTimesId : item.planTimesId, showBtn: 1}});
},
closeForm() {
this.selectFormShow = false;
......@@ -222,7 +222,7 @@ export default {
}
}else if(this.formList.scalesList.length === 1){
this.$router.push({path: '/followup/record-manage/form-template',
query: {doctorId: this.formList.doctorId, scaleNo: this.formList.scalesList[0].resourceId, planPatientsTimesId: row.planPatientTimesId, showBtn: 1}})
query: {doctorId: this.formList.doctorId, scaleNo: this.formList.scalesList[0].resourceId, planPatientsTimesId: row.planPatientTimesId,planTimesId : row.planTimesId, showBtn: 1}})
}else {
this.$message.warning('暂无量表!')
}
......
......@@ -27,6 +27,10 @@ import { isNotEmptyUtils } from '../../utils/utils'
let vm = null
export default {
props: {
storageIdType: {
type: Number,
default: 0
},
tokenValue: {
type: String
},
......@@ -70,27 +74,6 @@ export default {
index: 'role'
}
]
}, {
title: '随访管理',
icon: 'el-icon-edit-outline',
index: 'followup',
subs: [
{
title: '计划管理',
icon: 'el-icon-setting',
index: 'followup/plan-manage/plan-list'
},
{
title: '预约管理',
icon: 'el-icon-setting',
index: 'followup/reservation-manage/reservation-list'
},
{
title: '录入管理',
icon: 'el-icon-setting',
index: 'followup/record-manage/record-list'
}
]
}
]
}
......@@ -101,7 +84,12 @@ export default {
}
},
created() {
vm = this
vm = this;
},
mounted(){
if(vm.storageIdType==2){
vm.setFollowSide()
}
},
watch: {
authList(newVal, oldVal){
......@@ -114,10 +102,39 @@ export default {
if(!newVal.P003) { // 角色管理
vm.items[2].subs[0].index = 'blank'
}
},
storageIdType(val,ov){
if(val==2){
vm.setFollowSide()
}
}
},
methods: {
setFollowSide(){
const followSider = {
title: '随访管理',
icon: 'el-icon-edit-outline',
index: 'followup',
subs: [
{
title: '计划管理',
icon: 'el-icon-setting',
index: 'followup/plan-manage/plan-list'
},
{
title: '预约管理',
icon: 'el-icon-setting',
index: 'followup/reservation-manage/reservation-list'
},
{
title: '录入管理',
icon: 'el-icon-setting',
index: 'followup/record-manage/record-list'
}
]
}
vm.items.push(followSider);
}
}
}
</script>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册