| | |
| | | method: 'get', |
| | | }) |
| | | }; |
| | | // 患者过滤列表 |
| | | export function listfiltration(data) { |
| | | return request({ |
| | | url: '/smartor/filterlist/list', |
| | | method: 'get', |
| | | params:data |
| | | }) |
| | | }; |
| | | // 删除患者过滤 |
| | | export function delfiltration(userId) { |
| | | return request({ |
| | | url: '/smartor/filterlist/remove/'+userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | | // 修改过滤患者 |
| | | export function editfiltration(data) { |
| | | return request({ |
| | | url: '/smartor/filterlist/edit', |
| | | method: 'post', |
| | | data:data |
| | | }) |
| | | }; |
| | | // 修改过滤患者 |
| | | export function addfiltration(data) { |
| | | return request({ |
| | | url: '/smartor/filterlist/add', |
| | | method: 'post', |
| | | data:data |
| | | }) |
| | | }; |
| | | // 查询过滤患者详情 |
| | | export function infofiltration(userId) { |
| | | return request({ |
| | | url: '/smartor/filterlist/getInfo/'+userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | |
| | | <template> |
| | | <div> |
| | | <div class="topicxq" v-for="item in TargetoptionList"> |
| | | <el-form :model="ruleForm" :rules="rules"> |
| | | <el-form :rules="rules"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="12" |
| | | ><el-form-item prop="targetvalue" label="选项名称"> |
| | |
| | | commit('SET_DEFAULT_ROUTES', sidebarRoutes) |
| | | commit('SET_TOPBAR_ROUTES', sidebarRoutes) |
| | | resolve(rewriteRoutes) |
| | | console.log(res.data,'路由数据'); |
| | | |
| | | }) |
| | | }) |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 通用js方法封装处理 |
| | | * Copyright (c) 2019 ruoyi |
| | | */ |
| | | import dayjs from 'dayjs'; |
| | | import dayjs from "dayjs"; |
| | | |
| | | // 日期格式化 |
| | | export function parseTime(time, pattern) { |
| | | if (arguments.length === 0 || !time) { |
| | | return null |
| | | return null; |
| | | } |
| | | const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' |
| | | let date |
| | | if (typeof time === 'object') { |
| | | date = time |
| | | const format = pattern || "{y}-{m}-{d} {h}:{i}:{s}"; |
| | | let date; |
| | | if (typeof time === "object") { |
| | | date = time; |
| | | } else { |
| | | if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { |
| | | time = parseInt(time) |
| | | } else if (typeof time === 'string') { |
| | | time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), ''); |
| | | if (typeof time === "string" && /^[0-9]+$/.test(time)) { |
| | | time = parseInt(time); |
| | | } else if (typeof time === "string") { |
| | | time = time |
| | | .replace(new RegExp(/-/gm), "/") |
| | | .replace("T", " ") |
| | | .replace(new RegExp(/\.[\d]{3}/gm), ""); |
| | | } |
| | | if ((typeof time === 'number') && (time.toString().length === 10)) { |
| | | time = time * 1000 |
| | | if (typeof time === "number" && time.toString().length === 10) { |
| | | time = time * 1000; |
| | | } |
| | | date = new Date(time) |
| | | date = new Date(time); |
| | | } |
| | | const formatObj = { |
| | | y: date.getFullYear(), |
| | |
| | | h: date.getHours(), |
| | | i: date.getMinutes(), |
| | | s: date.getSeconds(), |
| | | a: date.getDay() |
| | | } |
| | | a: date.getDay(), |
| | | }; |
| | | const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { |
| | | let value = formatObj[key] |
| | | let value = formatObj[key]; |
| | | // Note: getDay() returns 0 on Sunday |
| | | if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } |
| | | if (result.length > 0 && value < 10) { |
| | | value = '0' + value |
| | | if (key === "a") { |
| | | return ["日", "一", "二", "三", "四", "五", "六"][value]; |
| | | } |
| | | return value || 0 |
| | | }) |
| | | return time_str |
| | | if (result.length > 0 && value < 10) { |
| | | value = "0" + value; |
| | | } |
| | | return value || 0; |
| | | }); |
| | | return time_str; |
| | | } |
| | | // 过滤器 |
| | | export function formatTime(val){ |
| | | return dayjs(val).format('YYYY-MM-DD') |
| | | if (val) { |
| | | return dayjs(val).format("YYYY-MM-DD"); |
| | | } else { |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | // 表单重置 |
| | |
| | | // 添加日期范围 |
| | | export function addDateRange(params, dateRange, propName) { |
| | | let search = params; |
| | | search.params = typeof (search.params) === 'object' && search.params !== null && !Array.isArray(search.params) ? search.params : {}; |
| | | search.params = |
| | | typeof search.params === "object" && |
| | | search.params !== null && |
| | | !Array.isArray(search.params) |
| | | ? search.params |
| | | : {}; |
| | | dateRange = Array.isArray(dateRange) ? dateRange : []; |
| | | if (typeof (propName) === 'undefined') { |
| | | search.params['beginTime'] = dateRange[0]; |
| | | search.params['endTime'] = dateRange[1]; |
| | | if (typeof propName === "undefined") { |
| | | search.params["beginTime"] = dateRange[0]; |
| | | search.params["endTime"] = dateRange[1]; |
| | | } else { |
| | | search.params['begin' + propName] = dateRange[0]; |
| | | search.params['end' + propName] = dateRange[1]; |
| | | search.params["begin" + propName] = dateRange[0]; |
| | | search.params["end" + propName] = dateRange[1]; |
| | | } |
| | | return search; |
| | | } |
| | |
| | | } |
| | | var actions = []; |
| | | Object.keys(datas).some((key) => { |
| | | if (datas[key].value == ('' + value)) { |
| | | if (datas[key].value == "" + value) { |
| | | actions.push(datas[key].label); |
| | | return true; |
| | | } |
| | | }) |
| | | }); |
| | | if (actions.length === 0) { |
| | | actions.push(value); |
| | | } |
| | | return actions.join(''); |
| | | return actions.join(""); |
| | | } |
| | | |
| | | // 回显数据字典(字符串、数组) |
| | |
| | | Object.keys(value.split(currentSeparator)).some((val) => { |
| | | var match = false; |
| | | Object.keys(datas).some((key) => { |
| | | if (datas[key].value == ('' + temp[val])) { |
| | | if (datas[key].value == "" + temp[val]) { |
| | | actions.push(datas[key].label + currentSeparator); |
| | | match = true; |
| | | } |
| | | }) |
| | | }); |
| | | if (!match) { |
| | | actions.push(temp[val] + currentSeparator); |
| | | } |
| | | }) |
| | | return actions.join('').substring(0, actions.join('').length - 1); |
| | | }); |
| | | return actions.join("").substring(0, actions.join("").length - 1); |
| | | } |
| | | |
| | | // 字符串格式化(%s ) |
| | | export function sprintf(str) { |
| | | var args = arguments, flag = true, i = 1; |
| | | var args = arguments, |
| | | flag = true, |
| | | i = 1; |
| | | str = str.replace(/%s/g, function () { |
| | | var arg = args[i++]; |
| | | if (typeof arg === 'undefined') { |
| | | if (typeof arg === "undefined") { |
| | | flag = false; |
| | | return ''; |
| | | return ""; |
| | | } |
| | | return arg; |
| | | }); |
| | | return flag ? str : ''; |
| | | return flag ? str : ""; |
| | | } |
| | | |
| | | // 转换字符串,undefined,null等转化为"" |
| | |
| | | } |
| | | } |
| | | return source; |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * 构造树型结构数据 |
| | |
| | | */ |
| | | export function handleTree(data, id, parentId, children) { |
| | | let config = { |
| | | id: id || 'id', |
| | | parentId: parentId || 'parentId', |
| | | childrenList: children || 'children' |
| | | id: id || "id", |
| | | parentId: parentId || "parentId", |
| | | childrenList: children || "children", |
| | | }; |
| | | |
| | | var childrenListMap = {}; |
| | |
| | | * @param {*} params 参数 |
| | | */ |
| | | export function tansParams(params) { |
| | | let result = '' |
| | | let result = ""; |
| | | for (const propName of Object.keys(params)) { |
| | | const value = params[propName]; |
| | | var part = encodeURIComponent(propName) + "="; |
| | | if (value !== null && value !== "" && typeof (value) !== "undefined") { |
| | | if (typeof value === 'object') { |
| | | if (value !== null && value !== "" && typeof value !== "undefined") { |
| | | if (typeof value === "object") { |
| | | for (const key of Object.keys(value)) { |
| | | if (value[key] !== null && value[key] !== "" && typeof (value[key]) !== 'undefined') { |
| | | let params = propName + '[' + key + ']'; |
| | | if ( |
| | | value[key] !== null && |
| | | value[key] !== "" && |
| | | typeof value[key] !== "undefined" |
| | | ) { |
| | | let params = propName + "[" + key + "]"; |
| | | var subPart = encodeURIComponent(params) + "="; |
| | | result += subPart + encodeURIComponent(value[key]) + "&"; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | return result |
| | | return result; |
| | | } |
| | | |
| | | // 验证是否为blob格式 |
| | |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="重新随访" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="followupvisit(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-bb" |
| | | ><i class="el-icon-s-promotion"></i>重新随访</span |
| | | ></el-button |
| | | ><i class="el-icon-s-promotion"></i></span |
| | | ></el-button> |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="停止" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handlestop(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-sc" |
| | | ><i class="el-icon-delete"></i>停止</span |
| | | ></el-button |
| | | ><span class="button-sc"><i class="el-icon-delete"></i></span |
| | | ></el-button> |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="查看任务详情" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>查看详情</span |
| | | ></el-button |
| | | > |
| | | ><span class="button-zx"><i class="el-icon-s-order"></i></span |
| | | ></el-button> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | ><i class="el-icon-s-promotion"></i>任务发起</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | v-if="scope.row.sendState == 1 || scope.row.sendState == 3" |
| | | size="medium" |
| | | type="text" |
| | | @click="immediateExecution(scope.row)" |
| | | ><span class="button-lj" |
| | | ><i class="el-icon-s-promotion"></i>立即执行</span |
| | | ></el-button |
| | | > |
| | | |
| | | <el-button size="medium" type="text" @click="newAdd(scope.row)" |
| | | ><span class="button-xj" |
| | | ><i class="el-icon-circle-plus-outline"></i>依照新增</span |
| | | ><i class="el-icon-circle-plus-outline"></i>任务终止</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | |
| | | width="50%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-tabs type="border-card" v-model="activname"> |
| | | <el-tab-pane> |
| | | <span slot="label"><i class="el-icon-date"></i> 正常发起</span> |
| | | <div style="font-size: 20px; color: red; margin-bottom: 20px"> |
| | | 请确认任务"{{ taskform.taskName }}"的执行时间 |
| | | </div> |
| | |
| | | {{ taskform.showTimeNoon[1] }}</span |
| | | > |
| | | </div> |
| | | <div style="text-align: right"> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="立即执行"> |
| | | <div style="font-size: 20px; color: red; margin-bottom: 20px"> |
| | | 此操作将立即发起并执行任务:{{ taskform.taskName }},请谨慎操作! |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <div style="text-align: right; margin: 20px 0"> |
| | | <el-button style="margin-right: 20px" @click="taskformVisible = false" |
| | | >取 消</el-button |
| | | > |
| | |
| | | }, |
| | | ], |
| | | tasktopic: "2", //新增类型 |
| | | activname: "", |
| | | value: [], |
| | | list: [], |
| | | loading: false, |
| | |
| | | }, |
| | | // 确认发起 |
| | | confirmSponsor(row) { |
| | | if (this.activname == 0) { |
| | | this.TaskOperation.taskId = row.taskid; |
| | | this.TaskOperation.sendState = 2; |
| | | TaskTemplateSendExecution(this.TaskOperation).then((res) => { |
| | |
| | | this.getList(); |
| | | } |
| | | }); |
| | | } else if (this.activname == 1) { |
| | | this.immediateExecution(row); |
| | | } |
| | | }, |
| | | |
| | | // 立即执行 |
| | |
| | | placeholder="请输入题目内容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="" |
| | | prop="scriptContent" |
| | | v-if="topicobj.scriptType == 3" |
| | | > |
| | | <div style="display: flex; margin-bottom: 10px"> |
| | | <div class="tsgnames" @click="tsgnametos">插入填空</div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="收集信息" v-if="topicobj.scriptType == 3"> |
| | | <el-card class="box-card" style="width: 200%"> |
| | | <div |
| | | v-for="item in topicobj.svyLibScriptOptions" |
| | | style="margin-bottom: 10px" |
| | | > |
| | | <el-input |
| | | type="text" |
| | | placeholder="填入内容信息" |
| | | v-model="item.aaa" |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | @click="deletexuanx(item)" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | ></el-button> |
| | | <span slot="prepend">{{ |
| | | "(" + item.orderno + ")" |
| | | }}</span> |
| | | </el-input> |
| | | </div> |
| | | </el-card> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-form-item label="题目说明"> |
| | | <el-input |
| | | style="width: 40vw" |
| | |
| | | this.dynamicTags = this.topicobj.svyLibScriptTagList.map( |
| | | this.processElement |
| | | ); |
| | | this.scriptTypels = this.topicobj.scriptType; |
| | | this.variablelist = JSON.parse(this.topicobj.otherdata) |
| | | ? JSON.parse(this.topicobj.otherdata) |
| | | : this.variablelist; |
| | |
| | | }, |
| | | // 判断指标 |
| | | changefn(item) { |
| | | if (this.topicobj.targetname) { |
| | | console.log(item); |
| | | |
| | | if ( |
| | | this.topicobj.targetname || |
| | | this.topicobj.svyLibScriptOptions[0].optioncontent |
| | | ) { |
| | | this.$modal |
| | | .confirm("更改类型后选项将清空是否继续?") |
| | | .then(() => { |
| | |
| | | }; |
| | | this.gettargetInfo(); |
| | | }, |
| | | // 便捷标签 |
| | | tsgnameto(row) { |
| | | |
| | | // 便捷标签插入填空 |
| | | tsgnametos(row) { |
| | | let inputValueArr = ""; |
| | | let value = this.testuserList.length + 1; |
| | | |
| | | let el = document.querySelector("#" + this.currentInputId); |
| | | //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index) |
| | | if (this.currentInputId == "scriptContent") { |
| | | inputValueArr = this.topicobj.scriptContent.split(""); |
| | | } else if (this.currentInputId == "nomatchtext") { |
| | | inputValueArr = this.topicobj.nomatchtext.split(""); |
| | | } else if (this.currentInputId == "sliencetext") { |
| | | inputValueArr = this.topicobj.sliencetext.split(""); |
| | | } else if (this.currentInputId == "noclearlytext") { |
| | | inputValueArr = this.topicobj.noclearlytext.split(""); |
| | | } else if (this.currentInputId == "submoduletext") { |
| | | inputValueArr = this.topicobj.submoduletext.split(""); |
| | | if (this.currentInputId == "targetdesc") { |
| | | inputValueArr = this.indexform.targetdesc.split(""); |
| | | } else { |
| | | return; |
| | | } |
| | |
| | | // 拿到选中文字的长度(后续可以用来替换选中的文字) |
| | | let selectLength = el.selectionEnd - el.selectionStart; |
| | | // 将要插入/替换的文字插入/替换(value.name是要插入/替换的字符串) |
| | | inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`); |
| | | inputValueArr.splice( |
| | | el.selectionStart, |
| | | selectLength, |
| | | "__" + value + "__" |
| | | ); |
| | | this.testuserList.push({ |
| | | orderno: value, |
| | | optiondesc: "", |
| | | isoperation: 1, |
| | | }); |
| | | // 把数组重新转换为字符串并赋值 |
| | | inputValueArr = inputValueArr.join(""); |
| | | |
| | | console.log(inputValueArr); |
| | | if (this.currentInputId == "scriptContent") { |
| | | this.topicobj.scriptContent = inputValueArr; |
| | | } else if (this.currentInputId == "nomatchtext") { |
| | | this.topicobj.nomatchtext = inputValueArr; |
| | | } else if (this.currentInputId == "sliencetext") { |
| | | this.topicobj.sliencetext = inputValueArr; |
| | | } else if (this.currentInputId == "noclearlytext") { |
| | | this.topicobj.noclearlytext = inputValueArr; |
| | | } else if (this.currentInputId == "submoduletext") { |
| | | this.topicobj.submoduletext = inputValueArr; |
| | | if (this.currentInputId == "targetdesc") { |
| | | this.indexform.targetdesc = inputValueArr; |
| | | } else { |
| | | return; |
| | | } |
| | |
| | | .tsgname:hover { |
| | | background: #3366f5; |
| | | } |
| | | .tsgnames { |
| | | width: 90px; |
| | | margin-right: 10px; |
| | | text-align: center; |
| | | cursor: pointer; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | background: #66c18c; |
| | | color: #ffff; |
| | | font-size: 18px; |
| | | border-radius: 5px; |
| | | } |
| | | .tsgnames:hover { |
| | | background: #20894d; |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |
| | |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="medium" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:user:edit']" |
| | | >修改</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | |
| | | <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | key="id" |
| | | prop="id" |
| | | /> |
| | | <el-table-column label="姓名" align="center" key="name" prop="name" /> |
| | | <el-table-column label="姓名(缺)" align="center" key="name" prop="name" /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | <el-table-column |
| | | label="年龄" |
| | | label="审核人" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | key="checkBy" |
| | | prop="checkBy" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="审核状态" |
| | | align="center" |
| | | key="checkFlag" |
| | | prop="checkFlag" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="证件编号" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="过滤类型" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="过滤原因" |
| | | align="center" |
| | | key="tagList" |
| | | prop="tagList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.tagList">{{ item }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="证件类型" |
| | | align="center" |
| | | key="idcardtype" |
| | | prop="idcardtype" |
| | | key="filterdesc" |
| | | prop="filterdesc" |
| | | width="120" |
| | | /><el-table-column |
| | | label="证件编号" |
| | | label="过滤申请说明" |
| | | align="center" |
| | | key="idcardno" |
| | | prop="idcardno" |
| | | key="filternotes" |
| | | prop="filternotes" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="操作日期" |
| | | label="申请日期" |
| | | align="center" |
| | | key="archivetime" |
| | | prop="archivetime" |
| | | key="applyTime" |
| | | prop="applyTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | <span>{{ formatTime(scope.row.applyTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="审核日期" |
| | | align="center" |
| | | key="checkTime" |
| | | prop="checkTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.checkTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | fixed="right" |
| | | width="190" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>取消过滤</span |
| | |
| | | import { delUser } from "@/api/system/user"; |
| | | |
| | | import { |
| | | messagelistpatient, |
| | | alterpatient, |
| | | addpatient, |
| | | listfiltration, |
| | | editfiltration, |
| | | addfiltration, |
| | | particularpatient, |
| | | deletepatient, |
| | | delfiltration, |
| | | Exporterrorpatient, |
| | | toleadpatient, |
| | | } from "@/api/patient/homepage"; |
| | |
| | | /** 查询患者列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | messagelistpatient(this.queryParams).then((response) => { |
| | | listfiltration(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | |
| | | this.Labelchange = true; |
| | | this.amendtag = false; |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | console.log(row); |
| | | const userIds = row.patid || this.ids; |
| | | particularpatient(userIds).then((response) => { |
| | | console.log(response); |
| | | this.form = response.data; |
| | | }); |
| | | this.amendtag = true; |
| | | this.Labelchange = true; |
| | | }, |
| | | |
| | | |
| | | //修改/新增患者 |
| | | submitForm() { |
| | | if (this.amendtag) { |
| | | alterpatient(this.form) |
| | | editfiltration(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | |
| | | this.$modal.msgSuccess("修改成功"); |
| | | }); |
| | | } else { |
| | | addpatient(this.form) |
| | | addfiltration(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | |
| | | |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | const userIds = row.id || this.ids; |
| | | this.$modal |
| | | .confirm('是否确认删除用户编号为"' + userIds + '"的数据项?') |
| | | .then(function () { |
| | | return deletepatient(userIds); |
| | | return delfiltration(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | |
| | | }, |
| | | ], |
| | | |
| | | cardlist: [ |
| | | { |
| | | name: "患者总数", |
| | | value: 123, |
| | | }, |
| | | { |
| | | name: "在院患者", |
| | | value: 23, |
| | | }, |
| | | { |
| | | name: "离院患者", |
| | | value: 41, |
| | | }, |
| | | { |
| | | name: "诊疗患者", |
| | | value: 56, |
| | | }, |
| | | { |
| | | name: "离世患者", |
| | | value: 0, |
| | | }, |
| | | ], |
| | | |
| | | // 表单参数 |
| | | form: { |
| | | name: "", |
| | |
| | | <div> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <el-card |
| | | shadow="hover" |
| | | :body-style="item.router ? ' cursor: pointer' : 'cursor: default'" |
| | | > |
| | | <div style="padding: 8px" @click="$router.push(item.router)"> |
| | | <span>{{ item.name }}</span> |
| | | <div |
| | | style=" |
| | |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-zoom-in"></i>查看</span |
| | | ><i class="el-icon-zoom-in"></i>详情编辑</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | <!-- <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>修改</span |
| | | ></el-button |
| | | > |
| | | > --> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | |
| | | </el-dialog> |
| | | <!-- 跳转服务对话框 --> |
| | | <el-dialog title="选择服务类型" :visible.sync="serviceVisible"> |
| | | <el-card class="box-card"> |
| | | <el-radio-group v-model="serviceradio"> |
| | | <el-radio :label="1">宣教随访</el-radio> |
| | | <el-radio :label="2">门诊服务</el-radio> |
| | |
| | | <el-radio :label="5">体检通知</el-radio> |
| | | <el-radio :label="6">问卷服务</el-radio> |
| | | </el-radio-group> |
| | | </el-card> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="serviceVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="CreateService">创建服务</el-button> |
| | |
| | | { |
| | | name: "在院患者", |
| | | value: 23, |
| | | router: "/patient/inpatient", |
| | | }, |
| | | { |
| | | name: "离院患者", |
| | | name: "出院患者", |
| | | value: 41, |
| | | router: "/patient/hospital", |
| | | }, |
| | | { |
| | | name: "诊疗患者", |
| | | name: "门诊患者", |
| | | value: 56, |
| | | router: "/patient/outpatient", |
| | | }, |
| | | { |
| | | name: "离世患者", |
| | |
| | | } |
| | | ::v-deep.leftvlue .el-card__body:hover { |
| | | background: #8dc8f8; |
| | | cursor: pointer; /* 鼠标悬浮时变为手形 */ |
| | | } |
| | | .leftvlue { |
| | | width: 80%; |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="序号" |
| | | fixed |
| | | align="center" |
| | | key="id" |
| | | prop="id" |
| | | /> |
| | | <el-table-column label="序号" fixed align="center" key="id" prop="id" /> |
| | | <el-table-column |
| | | label="姓名" |
| | | fixed |
| | |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="重新通知" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="followupvisit(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-bb" |
| | | ><i class="el-icon-s-promotion"></i>重新通知</span |
| | | ><i class="el-icon-s-promotion"></i></span |
| | | ></el-button |
| | | > |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="停止" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handlestop(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-sc" |
| | | ><i class="el-icon-delete"></i>停止</span |
| | | ></el-button |
| | | ><span class="button-sc"><i class="el-icon-delete"></i></span |
| | | ></el-button> |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="查看任务详情" |
| | | placement="top" |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>查看详情</span |
| | | ></el-button |
| | | > |
| | | ><span class="button-zx"><i class="el-icon-s-order"></i></span |
| | | ></el-button> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | message: "用户名称长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "用户昵称不能为空", trigger: "blur" }, |
| | |
| | | /** 查询门诊随访列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | getTaskservelist(this.topqueryParams).then( |
| | | (response) => { |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }); |
| | | }, |
| | | // 查看门诊随访详情 |
| | | Referencequestion(row) { |
| | |
| | | <div v-if="indexform.scriptType == 3"> |
| | | <el-form-item label="收集信息"> |
| | | <el-card class="box-card"> |
| | | <div v-for="item in indexform.targetoptionList"> |
| | | <span>{{ "(" + item.orderno + ")" }}</span> |
| | | <div v-for="item in testuserList" style="margin-bottom: 10px"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="填入收集信息" |
| | | v-model="indexform.optiondesc" |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | @click="deloption(item)" |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | circle |
| | | ></el-button> |
| | | <span slot="prepend">{{ "(" + item.orderno + ")" }}</span> |
| | | </el-input> |
| | | </div> |
| | | </el-card> |
| | |
| | | radio: "主分类", |
| | | testvalue: "", |
| | | testgovalue: "", |
| | | creatype:'',//指标临时类型 |
| | | creatype: "", //指标临时类型 |
| | | hasValue: true, |
| | | classifyform: { |
| | | categoryname: "", |
| | |
| | | mode: [], |
| | | optionstag: [], |
| | | targetoptionList: [], |
| | | Temporarytype: "", |
| | | |
| | | // 查询参数 |
| | | queryParams: { |
| | |
| | | this.deletefenl = row.title; |
| | | } |
| | | }, |
| | | // 便捷标签 |
| | | // 便捷标签插入填空 |
| | | tsgnameto(row) { |
| | | let inputValueArr = ""; |
| | | let value = indexform.targetoptionList.length + 1; |
| | | let value = this.testuserList.length + 1; |
| | | |
| | | let el = document.querySelector("#" + this.currentInputId); |
| | | //el.selectionStart; 这就是当前光标所在的位置(字符串中字符的index) |
| | |
| | | selectLength, |
| | | "__" + value + "__" |
| | | ); |
| | | this.indexform.targetoptionList.push({ |
| | | this.testuserList.push({ |
| | | orderno: value, |
| | | optiondesc: "", |
| | | isoperation: 1, |
| | | }); |
| | | // 把数组重新转换为字符串并赋值 |
| | | inputValueArr = inputValueArr.join(""); |
| | |
| | | } |
| | | }, |
| | | Changtype(item) { |
| | | console.log(this.testuserList); |
| | | console.log(item, "选项变更的处理"); |
| | | if (item==3) { |
| | | this.$modal |
| | | .confirm('更改类型为填空后选项将清空是否继续?') |
| | | .then(() => { |
| | | |
| | | if (item == 3 && this.testuserList[0].targetvalue) { |
| | | this.$modal |
| | | .confirm("更改类型为填空后选项将清空是否继续?") |
| | | .then(() => { |
| | | this.testuserList = []; |
| | | this.Temporarytype = this.indexform.scriptType; |
| | | }) |
| | | .catch(() => { |
| | | |
| | | this.indexform.scriptType = this.Temporarytype; |
| | | }); |
| | | } else if (item == 3) { |
| | | this.testuserList = []; |
| | | this.Temporarytype = this.indexform.scriptType; |
| | | } |
| | | { |
| | | this.Temporarytype = this.indexform.scriptType; |
| | | } |
| | | }, |
| | | // 疾病----------------------- |
| | |
| | | console.log(this.targetoptionList, "aaaa.targetoptionList"); |
| | | this.testuserList.splice(index, 1); // 从索引位置删除一个元素 |
| | | this.sortFn(); |
| | | |
| | | if (this.indexform.scriptType == 3) { |
| | | this.$modal.msgWarning( |
| | | "填空项已删除请手动删除题目内容中对应的填空项" |
| | | ); |
| | | } |
| | | } else { |
| | | console.log("未找到该对象"); |
| | | } |
| | | }, |
| | | |
| | | syioption(row) { |
| | | const index = this.getIndexInArray(this.testuserList, row); |
| | | const item = this.testuserList.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | |
| | | this.indexform = {}; |
| | | this.indexform = row; |
| | | this.indexform.scriptType = Number(row.scriptType); |
| | | this.Temporarytype = this.indexform.scriptType; |
| | | if (!row.targetoptionList[0]) { |
| | | row.targetoptionList = [ |
| | | { |
| | |
| | | targetregex: "", |
| | | targetregex2: "", |
| | | isoperation: 1, |
| | | orderno: 1, |
| | | dynamiccruxs: [], |
| | | nodynamiccruxs: [], |
| | | dynamiccruxsJson: "", |