| | |
| | | // 新增角色 |
| | | export function addRole(data) { |
| | | return request({ |
| | | url: '/system/role', |
| | | url: '/system/role/add', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | |
| | | password |
| | | } |
| | | return request({ |
| | | url: '/system/user/resetPwd/edit', |
| | | url: '/system/user/resetPwd', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | |
| | | <el-col :span="20" |
| | | ><el-form-item label="选项说明"> |
| | | <el-input |
| | | type="text" |
| | | style="width: 500px;" |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请输入" |
| | | v-model="item.optiondesc" |
| | | show-word-limit |
| | |
| | | targetvalue: [ |
| | | { required: true, message: "请输入选项名称", trigger: "blur" }, |
| | | ], |
| | | isabnormal: [ |
| | | { required: true, message: "请输入选项名称", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | > |
| | | <el-col :span="7"> |
| | | <div style="display: flex"> |
| | | <div class="subtitle">出院随访</div> |
| | | <div class="subtitle">满意度调查</div> |
| | | <div class="grid-contents bg-purple-light">0次</div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <div style="display: flex"> |
| | | <div class="subtitle">出院宣教</div> |
| | | <div class="subtitle">其他通知</div> |
| | | <div class="grid-contents bg-purple-light">0次</div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="7"> |
| | | <div style="display: flex"> |
| | | <div class="subtitle">复诊通知</div> |
| | | <div class="grid-contents bg-purple-light">0次</div> |
| | | </div> |
| | | </el-col> </el-row |
| | | </el-row |
| | | > |
| | | <el-row> |
| | | <el-col :span="3" |
| | |
| | | > |
| | | <el-col :span="7"> |
| | | <div style="display: flex"> |
| | | <div class="subtitle">出院随访</div> |
| | | <div class="subtitle">在院宣教</div> |
| | | <div class="grid-contents bg-purple-light">0次</div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="7"> |
| | | <div style="display: flex"> |
| | | <div class="subtitle">出院宣教</div> |
| | | <div class="subtitle">在院评估</div> |
| | | <div class="grid-contents bg-purple-light">0次</div> |
| | | </div> |
| | | </el-col> |
| | | |
| | | <el-col :span="7"> |
| | | <div style="display: flex"> |
| | | <div class="subtitle">复诊通知</div> |
| | | <div class="subtitle">其他通知</div> |
| | | <div class="grid-contents bg-purple-light">0次</div> |
| | | </div> |
| | | </el-col> </el-row |
| | |
| | | </div> |
| | | <div v-if="Editprogress == 1"> |
| | | <el-card class="box-card"> |
| | | <el-form :inline="true" :model="topicobj" class="demo-form-inline"> |
| | | <el-form :inline="true" ref="topicobj" :model="topicobj" :rules="rules" class="demo-form-inline"> |
| | | <div class="headline"> |
| | | 基础信息配置 |
| | | <span style="margin-left: 30px" |
| | |
| | | <div style="margin-left: 8%"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="问题分类"> |
| | | <el-form-item label="问题分类" prop="categoryid"> |
| | | <el-select |
| | | v-model="topicobj.categoryid" |
| | | size="medium" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="评价类型"> |
| | | <el-form-item label="评价类型" prop="scoretype"> |
| | | <el-select |
| | | v-model="topicobj.scoretype" |
| | | placeholder="请选择分类" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8" v-if="topicobj.scoretype == 1"> |
| | | <el-form-item label="题目得分"> |
| | | <el-form-item label="题目得分" prop="score"> |
| | | <el-input |
| | | v-model="topicobj.score" |
| | | placeholder="请输入分数" |
| | |
| | | |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目标题"> |
| | | ><el-form-item label="题目标题" prop="scriptTopic"> |
| | | <el-input |
| | | v-model="topicobj.scriptTopic" |
| | | placeholder="请输入标题" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | | ><el-form-item label="是否可用"> |
| | | ><el-form-item label="是否可用" prop="isavailable"> |
| | | <el-radio-group v-model="topicobj.isavailable"> |
| | | <el-radio |
| | | @change="$forceUpdate()" |
| | |
| | | </el-radio-group> |
| | | </el-form-item></el-col |
| | | > |
| | | <el-col :span="8"> |
| | | <el-form-item label="是否必填"> |
| | | <!-- <el-col :span="8"> |
| | | <el-form-item label="是否必填" prop="ismandatory"> |
| | | <el-radio-group v-model="topicobj.ismandatory"> |
| | | <el-radio |
| | | @change="$forceUpdate()" |
| | |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="语言"> |
| | | <el-form-item label="语言" prop="language"> |
| | | <el-select |
| | | v-model="topicobj.language" |
| | | size="medium" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8" |
| | | ><el-form-item label="题目类型"> |
| | | ><el-form-item label="题目类型" prop="scriptType"> |
| | | <el-select |
| | | v-model="topicobj.scriptType" |
| | | @change="changefn" |
| | |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="8" |
| | | ><el-form-item label="适用方式"> |
| | | ><el-form-item label="适用方式" prop="suitway"> |
| | | <el-select |
| | | v-model="topicobj.suitway" |
| | | disabled |
| | |
| | | </el-option> </el-select></el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-form-item label="题目内容"> |
| | | <el-form-item label="题目内容" prop="scriptContent"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> --> |
| | | <el-form-item label="题目说明"> |
| | | <el-form-item label="题目说明" prop="targetname"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | |
| | | <el-input |
| | | type="textarea" |
| | | :rows="4" |
| | | placeholder="此处展示收集信息" |
| | | placeholder="此处展示问答题收集信息" |
| | | v-model="testgovalue" |
| | | > |
| | | </el-input> |
| | |
| | | align="center" |
| | | key="targetdesc" |
| | | prop="targetdesc" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="语言" |
| | | align="center" |
| | | key="language" |
| | | prop="language" |
| | | width="200" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | |
| | | svyLibScriptOptions: [], |
| | | svyLibScriptTagList: [], |
| | | suitway: "1", |
| | | scoretype:'4', |
| | | language:'普通话', |
| | | }, |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | |
| | | valuetype: [], |
| | | usable: [], |
| | | mode: [], //方式 |
| | | // 表单校验 |
| | | rules: { |
| | | categoryid: [ |
| | | { required: true, message: "问题分类不能为空", trigger: "blur" }, |
| | | ], |
| | | scoretype: [ |
| | | { required: true, message: "评价类型不能为空", trigger: "blur" }, |
| | | ], |
| | | language: [ |
| | | { required: true, message: "语言不能为空", trigger: "blur" }, |
| | | ], |
| | | isavailable: [ |
| | | { required: true, message: "可用状态不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptTopic: [ |
| | | { required: true, message: "题目标题不能为空", trigger: "blur" }, |
| | | ], |
| | | ismandatory: [ |
| | | { required: true, message: "是否必填不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptType: [ |
| | | { required: true, message: "题目类型不能为空", trigger: "blur" }, |
| | | ], |
| | | suitway: [ |
| | | { required: true, message: "适用方式不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptContent: [ |
| | | { required: true, message: "题目内容不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | |
| | | }, |
| | | // 新增或修改详情 |
| | | compileissue() { |
| | | this.$refs["topicobj"].validate((valid) => { |
| | | if (valid) { |
| | | this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map( |
| | | (item) => { |
| | | if (item.isoperation != 1 && item.isoperation != 3) { |
| | |
| | | if (this.illnesslistapi.length) { |
| | | deltargetillness(this.illnesslistapi.join(",")).then((res) => {}); |
| | | } |
| | | } |
| | | }) |
| | | |
| | | |
| | | }, |
| | | // 判断分值 |
| | | Scorejudgment() { |
| | |
| | | > |
| | | <el-row :gutter="10"> |
| | | <el-col :span="10"> |
| | | <el-form-item label="问卷分类" prop="region"> |
| | | <el-form-item label="问卷分类" prop="categoryid"> |
| | | <el-select |
| | | v-model="ruleForm.categoryid" |
| | | size="medium" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="评价类型"> |
| | | <el-form-item label="评价类型" prop="scoreType"> |
| | | <el-select |
| | | v-model="ruleForm.scoreType" |
| | | placeholder="请选择分类" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="问卷标题" prop="name"> |
| | | <el-form-item label="问卷标题" prop="svyname"> |
| | | <div style="width: 30%"> |
| | | <el-input v-model="ruleForm.svyname"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="问卷描述"> |
| | | <el-form-item label="问卷描述" prop="description"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | |
| | | ></el-form-item> |
| | | |
| | | <el-row> |
| | | <el-form-item label="标签" prop="desc"> |
| | | <el-form-item prop="dynamicTags" > |
| | | <template #label> |
| | | 标签 |
| | | <el-tooltip |
| | | class="item" |
| | | effect="light" |
| | | content="准确、扼要、多重的标签,可以让您在系统使用中方便的查找到该模版。" |
| | | placement="top-start" |
| | | > |
| | | <i class="el-icon-warning-outline"></i> |
| | | </el-tooltip> |
| | | <!-- 在标签后插入红色星号 --> |
| | | </template> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | |
| | | </el-form-item> |
| | | </el-row> |
| | | <div class="xinz-infs"> |
| | | <el-form-item label="适用疾病" prop="region"> |
| | | <el-form-item > |
| | | <template #label> |
| | | 适用疾病 |
| | | <el-tooltip |
| | | class="item" |
| | | effect="light" |
| | | content="选择好适用疾病后,可以方便您通过疾病诊断查找到对应的病人!" |
| | | placement="top-start" |
| | | > |
| | | <i class="el-icon-warning-outline"></i> |
| | | </el-tooltip> |
| | | </template> |
| | | <el-tag |
| | | v-for="tag in displayedTags" |
| | | :key="tag.icdid" |
| | |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="可用状态" prop="region"> |
| | | <el-form-item label="可用状态" prop="isAvailable"> |
| | | <el-radio-group v-model="ruleForm.isAvailable"> |
| | | <el-radio |
| | | v-for="(item, index) in usable" |
| | |
| | | </el-form-item></el-col |
| | | > |
| | | </el-row> |
| | | <el-form-item label="问卷方式" prop="region"> |
| | | <el-form-item label="问卷方式" prop="suitway"> |
| | | <el-select |
| | | v-model="ruleForm.suitway" |
| | | size="medium" |
| | |
| | | </el-form-item></el-col |
| | | > |
| | | </el-row> |
| | | <el-form-item label="问卷结束语"> |
| | | <el-form-item label="问卷结束语" prop="conclusion"> |
| | | <el-input |
| | | style="width: 40vw" |
| | | type="textarea" |
| | |
| | | svyTemplateLibScripts: [], |
| | | tempDetpRelevances: [], |
| | | svyLibTemplateTagList: [], |
| | | scoreType:'4', |
| | | isAvailable:'0' |
| | | }, |
| | | indexform: { |
| | | svyLibTemplateTargetoptions: [], |
| | | }, |
| | | rules: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | categoryid: [ |
| | | { required: true, message: "问卷分类不能为空", trigger: "blur" }, |
| | | ], |
| | | scoreType: [ |
| | | { required: true, message: "评价类型不能为空", trigger: "blur" }, |
| | | ], |
| | | svyname: [ |
| | | { required: true, message: "问卷标题不能为空", trigger: "blur" }, |
| | | ], |
| | | isAvailable: [ |
| | | { required: true, message: "可用状态不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptTopic: [ |
| | | { required: true, message: "题目标题不能为空", trigger: "blur" }, |
| | | ], |
| | | ismandatory: [ |
| | | { required: true, message: "是否必填不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptType: [ |
| | | { required: true, message: "题目类型不能为空", trigger: "blur" }, |
| | | ], |
| | | suitway: [ |
| | | { required: true, message: "问卷方式不能为空", trigger: "blur" }, |
| | | ], |
| | | conclusion: [ |
| | | { required: true, message: "问卷结束语不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | rulesa: {}, |
| | | optionsclass: [], //分类列表 |
| | | optionlist: [ |
| | |
| | | svyTemplateLibScripts: [], |
| | | tempDetpRelevances: [], |
| | | svyLibTemplateTagList: [], |
| | | }; |
| | | scoreType:'4', |
| | | isAvailable:'0' |
| | | }, |
| | | this.topicobj = {}; |
| | | |
| | | if (this.id) { |
| | |
| | | }, |
| | | submitForm(formName) { |
| | | this.$modal.loading("正在修正保存数据,请稍候..."); |
| | | if (this.ruleForm.suitway) { |
| | | if (Array.isArray(this.ruleForm.suitway)) { |
| | | this.ruleForm.suitway = this.ruleForm.suitway.join(","); |
| | | } |
| | | if (!this.ruleForm.categoryid) { |
| | |
| | | }, |
| | | // 表单校验 |
| | | rules: { |
| | | // userName: [ |
| | | // { required: true, message: "用户名称不能为空", trigger: "blur" }, |
| | | // { |
| | | // min: 2, |
| | | // max: 20, |
| | | // message: "用户名称长度必须介于 2 和 20 之间", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // nickName: [ |
| | | // { required: true, message: "用户昵称不能为空", trigger: "blur" }, |
| | | // ], |
| | | // password: [ |
| | | // { required: true, message: "用户密码不能为空", trigger: "blur" }, |
| | | // { |
| | | // min: 5, |
| | | // max: 20, |
| | | // message: "用户密码长度必须介于 5 和 20 之间", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // email: [ |
| | | // { |
| | | // type: "email", |
| | | // message: "请输入正确的邮箱地址", |
| | | // trigger: ["blur", "change"], |
| | | // }, |
| | | // ], |
| | | // phonenumber: [ |
| | | // { |
| | | // pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | // message: "请输入正确的手机号码", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | // IDnumber: [ |
| | | // { |
| | | // pattern: |
| | | // /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | // message: "请输入正确的身份证号码", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | name: [ |
| | | { required: true, message: "用户名称不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "用户名称长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | |
| | | sex: [{ required: true, message: "性别不能为空", trigger: "blur" }], |
| | | age: [{ required: true, message: "年龄不能为空", trigger: "blur" }], |
| | | nation: [{ required: true, message: "民族不能为空", trigger: "blur" }], |
| | | telcode: [ |
| | | { required: true, message: "联系方式不能为空", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | idcardtype: [ |
| | | { required: true, message: "证件类型不能为空", trigger: "blur" }, |
| | | ], |
| | | idcardno: [ |
| | | { required: true, message: "证件号能为空", trigger: "blur" }, |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | message: "请输入正确的身份证号码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | placeOfResidence: [ |
| | | { required: true, message: "居住地不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | }, |
| | | //修改/新增患者 |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.amendtag) { |
| | | this.form.isoperation = 2; |
| | | alterpatient(this.form) |
| | |
| | | this.reset(); |
| | | // this.idds = ""; |
| | | this.Labelchange = false; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** 删除按钮操作 */ |
| | |
| | | <el-button type="primary" @click="savefile">保存患者档案</el-button> |
| | | </div> |
| | | <div class="detailed"> |
| | | <el-form |
| | | ref="userform" |
| | | :model="userform" |
| | | :rules="rules" |
| | | label-width="100px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="患者姓名" prop="name"> |
| | | <el-input |
| | | v-model="userform.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><div class="grid-content bg-purple"> |
| | | 患者姓名:<span class="spanvalue">{{ userform.name }}</span> |
| | | </div></el-col |
| | | > |
| | | <el-col :span="12" |
| | | ><div class="grid-content bg-purple"> |
| | | 联系电话:<span class="spanvalue">{{ userform.telcode }}</span> |
| | | </div></el-col |
| | | > |
| | | ><el-form-item label="联系方式" prop="telcode"> |
| | | <el-input |
| | | v-model="userform.telcode" |
| | | placeholder="请输入联系方式" |
| | | maxlength="30" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="出生地" prop="birthplace"> |
| | | <el-input |
| | | v-model="userform.birthplace" |
| | | placeholder="国、省、地市、区县、街道等详细信息" |
| | | maxlength="50" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><div class="grid-content bg-purple"> |
| | | 出生地:<span class="spanvalue">{{ userform.birthplace }}</span> |
| | | </div></el-col |
| | | > |
| | | ><el-form-item label="居住地" prop="placeOfResidence"> |
| | | <el-input |
| | | v-model="userform.placeOfResidence" |
| | | placeholder="国、省、地市、区县、街道等详细信息" |
| | | maxlength="50" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><div class="grid-content bg-purple"> |
| | | 居住地:<span class="spanvalue">{{ |
| | | userform.placeOfResidence |
| | | }}</span> |
| | | </div></el-col |
| | | > |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><div class="xinz-inf"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="标签" prop="desc"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | | type="success" |
| | | v-for="tag in dynamicTags" |
| | | v-if="tag.isoperation != 3" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClose(tag)" |
| | |
| | | @click="showInput" |
| | | >+ 新增标签</el-button |
| | | > |
| | | </div></el-col |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="top-message"> |
| | | <div class="headline">病史</div> |
| | | <div class="detailed"> |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-form :model="form" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="过往疾病" prop="name"> |
| | |
| | | { label: "测量时间", width: "", prop: "name" }, |
| | | { label: "体温", width: "", prop: "sex" }, |
| | | ], |
| | | // 表单校验 |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: "用户名称不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "用户名称长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | |
| | | sex: [{ required: true, message: "性别不能为空", trigger: "blur" }], |
| | | age: [{ required: true, message: "年龄不能为空", trigger: "blur" }], |
| | | nation: [{ required: true, message: "民族不能为空", trigger: "blur" }], |
| | | telcode: [ |
| | | { required: true, message: "联系方式不能为空", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | idcardtype: [ |
| | | { required: true, message: "证件类型不能为空", trigger: "blur" }, |
| | | ], |
| | | idcardno: [ |
| | | { required: true, message: "证件号能为空", trigger: "blur" }, |
| | | ], |
| | | placeOfResidence: [ |
| | | { required: true, message: "居住地不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | // 保存患者档案 |
| | | savefile() { |
| | | // this.userform.tagList = this.dynamicTags; |
| | | this.$refs["userform"].validate((valid) => { |
| | | if (valid) { |
| | | this.userform.isoperation = 2; |
| | | this.userform.tagList = this.dynamicTags; |
| | | alterpatient(this.userform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("基础信息保存成功"); |
| | |
| | | }); |
| | | // 病史 |
| | | this.medicalhistory(); |
| | | } |
| | | }); |
| | | }, |
| | | // 病史 |
| | | medicalhistory() { |
| | |
| | | }, |
| | | handleClose(tag) { |
| | | const lindex = this.dynamicTags.indexOf(tag); |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.userform.tagList[lindex].isoperation = 3; |
| | | // this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.dynamicTags[lindex].isoperation = 3; |
| | | }, |
| | | |
| | | showInput() { |
| | |
| | | }; |
| | | } |
| | | console.log(tagvalue); |
| | | this.userform.tagList.push(tagvalue); |
| | | // this.userform.tagList.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue); |
| | | console.log(this.userform.tagList); |
| | | console.log(this.dynamicTags); |
| | |
| | | <div>基础信息</div> |
| | | </div> |
| | | <div class="jic-value"> |
| | | <el-form ref="form" :model="form" label-width="105px"> |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="125px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务名称"> |
| | | ><el-form-item label="任务名称" prop="taskName"> |
| | | <el-input |
| | | style="width: 220px" |
| | | v-model="form.taskName" |
| | | placeholder="请输入任务名称" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务类型"> |
| | | <el-select |
| | | v-model="serviceType" |
| | | placeholder="请选择新增类型" |
| | | > |
| | | <el-option |
| | | v-for="item in tasktypes" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | |
| | | <el-form-item label="任务描述"> |
| | | <el-form-item label="任务描述" prop="taskDesc"> |
| | | <el-input |
| | | type="textarea" |
| | | v-model="form.taskDesc" |
| | | placeholder="请输入任务描述" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="发送设置:"> |
| | | <el-form-item label="服务形式" prop="taskDesc"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item.value" |
| | | > |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="执行设置" prop="sendType"> |
| | | <el-radio-group v-model="form.sendType"> |
| | | <el-radio :label="1">时间段发送</el-radio> |
| | | <el-radio :label="3">时间点发送</el-radio> |
| | | <el-radio :label="2">即刻发送</el-radio> |
| | | <el-radio :label="1">时间段执行</el-radio> |
| | | <el-radio :label="3">时间点执行</el-radio> |
| | | <el-radio :label="2">即刻执行</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="发送日期:" v-if="form.sendType == 1"> |
| | | <el-form-item |
| | | label="执行日期" |
| | | v-if="form.sendType == 1" |
| | | prop="daytime" |
| | | > |
| | | <el-date-picker |
| | | v-model="daytime" |
| | | @change="changeTimeday" |
| | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="发送时间点:" v-if="form.sendType == 3"> |
| | | <el-form-item |
| | | label="执行时间点" |
| | | v-if="form.sendType == 3" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <el-date-picker |
| | |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="发送时间段:" v-if="form.sendType == 1"> |
| | | <el-form-item |
| | | label="执行时间段" |
| | | v-if="form.sendType == 1" |
| | | prop="daytime" |
| | | > |
| | | <div style="display: flex"> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段一</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">①</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段二</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">②</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </el-time-picker> |
| | | </div> |
| | | <div style="margin-right: 10px"> |
| | | <span style="font-size: 18px; margin-right: 10px" |
| | | >时间段三</span |
| | | > |
| | | <span style="font-size: 18px; margin-right: 10px">③</span> |
| | | <el-time-picker |
| | | is-range |
| | | arrow-control |
| | |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="服务形式"> |
| | | <el-checkbox-group v-model="checkList"> |
| | | <el-checkbox |
| | | v-for="(item, index) in checkboxlist" |
| | | :key="index" |
| | | :label="item.value" |
| | | > |
| | | {{ item.label }}</el-checkbox |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="10" |
| | | ><el-form-item label="模板名称"> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>任务使用模板</div> |
| | | <div style="margin-left: 20px"> |
| | | <el-form :model="form"> |
| | | <el-form-item label=""> |
| | | <el-input |
| | | style="width: 300px" |
| | | :disabled="true" |
| | | v-model="form.templatename" |
| | | placeholder="请在下列选择" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="4"> |
| | | placeholder="请点击右侧选择" |
| | | /> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-edit" |
| | |
| | | @click="previewfnmb" |
| | | circle |
| | | ></el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jic"> |
| | | <div class="headline"> |
| | | <div>变量匹配量参</div> |
| | | </div> |
| | | |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <div style="margin-bottom: 10px">模板中使用的变量:</div> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-table :data="variableList" style="width: 100%"> |
| | | <el-table-column |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="患者名称:"> |
| | | <el-form-item label="患者:"> |
| | | <el-input |
| | | v-model="patientqueryParams.name" |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | questionList: [], |
| | | // 患者表单 |
| | | tableLabelhz: [ |
| | | // { label: "序号", width: "", prop: "patid" }, |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人(缺)", width: "", prop: "update_by" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "", prop: "deptName" }, |
| | | { label: "就诊/出院日期", width: "280", prop: "inhosptime" }, |
| | | ], |
| | | |
| | | tableLabelwj: [ |
| | |
| | | label: "体检病人", |
| | | }, |
| | | ], |
| | | tasktypes: [ |
| | | { |
| | | value: 1, |
| | | label: "监测评估", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "出院随访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "门诊随访", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "宣教关怀", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "复诊管理", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "满意度调查", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "患者报告", |
| | | }, |
| | | |
| | | { |
| | | value: 8, |
| | | label: "其他通知", |
| | | }, |
| | | ], |
| | | rules: { |
| | | taskName: [ |
| | | { required: true, message: "任务名称不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "任务名称长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | |
| | | taskDesc: [ |
| | | { required: true, message: "任务描述不能为空", trigger: "blur" }, |
| | | ], |
| | | sendType: [ |
| | | { required: true, message: "发送设置不能为空", trigger: "blur" }, |
| | | ], |
| | | daytime: [{ required: true, message: "民族不能为空", trigger: "blur" }], |
| | | }, |
| | | quote: false, |
| | | serviceType:null, |
| | | }; |
| | |
| | | }, |
| | | // 保存 |
| | | submitForm(formName) { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.checkList[0]) { |
| | | this.form.preachform = this.checkList.join(","); |
| | | |
| | | } else { |
| | | this.$modal.msgError("请选择服务类型"); |
| | | return; |
| | | } |
| | | if (!this.form.patTaskRelevances[0]) { |
| | | this.$modal.msgError("请选择病人"); |
| | | return; |
| | | } |
| | | const filteredArray = this.variableList.filter( |
| | | (item) => |
| | | item.name !== "姓名" && item.name !== "电话" && item.name !== "地址" |
| | | item.name !== "姓名" && |
| | | item.name !== "电话" && |
| | | item.name !== "地址" |
| | | ); |
| | | console.log(filteredArray, "存前变量"); |
| | | this.form.textParam = this.convertFormat2ToFormat1(filteredArray); |
| | | if (this.form.taskid) { |
| | | this.form.isoperation = 2; |
| | |
| | | path: "/followvisit/tasklist", |
| | | query: { tasktopic: this.form.serviceType }, |
| | | }); |
| | | } |
| | | }); |
| | | }else{ |
| | | this.$modal.msgError("表单内容未完善,请检查"); |
| | | } |
| | | }); |
| | | }, |
| | |
| | | }); |
| | | if (this.patientqueryParams.allhosp == 1) { |
| | | this.tableLabelhz = [ |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "身份证", width: "200", prop: "idcardno" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "主任医师", width: "", prop: "drname" }, |
| | | { label: "就诊科室", width: "", prop: "deptName" }, |
| | | { label: "入院日期", width: "", prop: "inhosptime" }, |
| | | { label: "创建人", width: "", prop: "createBy" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "", prop: "deptName" }, |
| | | { label: "就诊/出院日期", width: "280", prop: "inhosptime" }, |
| | | ]; |
| | | } else if (this.patientqueryParams.allhosp == 2) { |
| | | this.tableLabelhz = [ |
| | | { label: "患者名称", width: "", prop: "name" }, |
| | | { label: "患者", width: "", prop: "name" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "诊断", width: "", prop: "diagname" }, |
| | |
| | | margin: 20px; |
| | | .headline { |
| | | font-size: 24px; |
| | | height: 40px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | // justify-content: space-between; |
| | | .Add-details { |
| | | font-size: 18px; |
| | | color: #02a7f0; |
| | |
| | | <div class="tsgname" @click="tsgnameto">插入填空</div> |
| | | </div> |
| | | </el-form-item> --> |
| | | <el-form-item label="标签" prop="desc" v-if="!measurement"> |
| | | <el-form-item label="标签" prop="dynamicTags" v-if="!measurement"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | |
| | | </el-form-item> |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="24"> |
| | | <el-form-item> |
| | | <el-form-item prop="valueType"> |
| | | <template #label> |
| | | 值类型 |
| | | <el-tooltip |
| | |
| | | > |
| | | <el-row v-if="!measurement"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="题目类型"> |
| | | <el-form-item label="题目类型" prop="scriptType"> |
| | | <el-radio-group |
| | | @input="Changtype" |
| | | v-model="indexform.scriptType" |
| | |
| | | { required: true, message: "指标分类不能为空", trigger: "blur" }, |
| | | ], |
| | | language: [ |
| | | { required: true, message: "指标语言不能为空", trigger: "blur" }, |
| | | { required: true, message: "语言不能为空", trigger: "blur" }, |
| | | ], |
| | | isAvailable: [ |
| | | { required: true, message: "指标语言不能为空", trigger: "blur" }, |
| | | { required: true, message: "可用状态不能为空", trigger: "blur" }, |
| | | ], |
| | | targetdesc: [ |
| | | { required: true, message: "指标描述不能为空", trigger: "blur" }, |
| | | ], |
| | | dynamicTags: [ |
| | | { required: true, message: "标签不能为空", trigger: "blur" }, |
| | | ], |
| | | valueType: [ |
| | | { required: true, message: "值类型不能为空", trigger: "blur" }, |
| | | ], |
| | | scriptType: [ |
| | | { required: true, message: "题目类型不能为空", trigger: "blur" }, |
| | | ], |
| | | suitWayList: [ |
| | | { required: true, message: "适用场景不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | |
| | | targetregex: "", |
| | | targetregex2: "", |
| | | isoperation: 1, |
| | | isabnormal:0, |
| | | picturePath: "", |
| | | dynamiccruxs: [], |
| | | nodynamiccruxs: [], |
| | |
| | | |
| | | const name = process.env.VUE_APP_TITLE || '患者智慧服务系统' // 网页标题 |
| | | |
| | | const port = process.env.port || process.env.npm_config_port || 8093 // 端口 |
| | | const port = process.env.port || process.env.npm_config_port || 8096 // 端口 |
| | | |
| | | // vue.config.js 配置说明 |
| | | //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions |
| | |
| | | proxy: { |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `http://192.168.1.10:8095`, |
| | | target: `http://192.168.1.10:8095`, |
| | | // target:`http://localhost:8095`, |
| | | target: `http://192.168.101.135:8095`, |
| | | // target: `http://192.168.101.135:8095`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |