已重命名2个文件
已修改12个文件
已添加2个文件
| | |
| | | return request({ |
| | | url: "/smartor/organization/list", |
| | | method: "get", |
| | | params: data, |
| | | }); |
| | | } |
| | | // åéçä¿¡ |
| | |
| | | this.sipConfig.sipUri = `${this.randomNum}@192.168.10.124`; |
| | | } else if (orgName == "龿³å¸äººæ°å»é¢") { |
| | | this.sipConfig.sipUri = `${this.randomNum}@10.10.0.220`; |
| | | } else if (orgName == "æå·å¸ç¬¬ä¸äººæ°å»é¢æ¹æ»¨é¢åº"||orgName == "æå·å¸ç¬¬ä¸äººæ°å»é¢å´å±±é¢åº") { |
| | | } else if (orgName == "第ä¸äººæ°å»é¢æ¹æ»¨é¢åº"||orgName == "第ä¸äººæ°å»é¢å´å±±é¢åº") { |
| | | this.sipConfig.sipUri = `${this.randomNum}@192.169.129.198`; |
| | | } |
| | | } catch (error) { |
| | |
| | | Vue.filter(key, filters[key]); |
| | | } |
| | | import moment from "moment" |
| | | // 1. å¨main.js䏿·»å é误çå¬ |
| | | window.addEventListener('unhandledrejection', (event) => { |
| | | if (event.reason && event.reason.message && |
| | | event.reason.message.includes('Loading chunk')) { |
| | | // éæ°å è½½é¡µé¢ |
| | | window.location.reload(); |
| | | } |
| | | }); |
| | | |
| | | Vue.prototype.$moment = moment; |
| | | |
| | |
| | | localStorage.setItem("YongHuID", "1512710152715767808"); |
| | | localStorage.setItem("YongHuXM", "LDRMYY"); |
| | | } else if (orgid == "1" && campusid == 1) { |
| | | localStorage.setItem("orgname", "æå·å¸ç¬¬ä¸äººæ°å»é¢æ¹æ»¨é¢åº"); |
| | | localStorage.setItem("orgname", "第ä¸äººæ°å»é¢æ¹æ»¨é¢åº"); |
| | | localStorage.setItem("ZuHuID", ""); |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| | | localStorage.setItem("YongHuXM", ""); |
| | | } else if (orgid == "1" && campusid == 2) { |
| | | localStorage.setItem("orgname", "æå·å¸ç¬¬ä¸äººæ°å»é¢å´å±±é¢åº"); |
| | | localStorage.setItem("orgname", "第ä¸äººæ°å»é¢å´å±±é¢åº"); |
| | | localStorage.setItem("ZuHuID", ""); |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| | |
| | | } else if (orgid == "47246116333112211A1001") { |
| | | localStorage.setItem("orgname", "ç¼äºå¿äººæ°å»é¢"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000010"); |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| | | localStorage.setItem("YongHuXM", ""); |
| | | } else if (orgid == "47226079133110211G1001") { |
| | | localStorage.setItem("orgname", "丽水å¸å¦å¹¼ä¿å¥é¢"); |
| | | localStorage.setItem("ZuHuID", "1429338802177000014"); |
| | | localStorage.setItem("deptCode", ""); |
| | | localStorage.setItem("YongHuID", ""); |
| | | localStorage.setItem("YongHuXM", ""); |
| | |
| | | commit("SET_nickNAME", user.nickName); |
| | | commit("SET_Id", user.userId); |
| | | commit("SET_hisUserId", user.hisUserId); |
| | | |
| | | // if (user.userName == "admin") { |
| | | // commit("SET_leaveldeptcodes", []); |
| | | // commit("SET_leavehospitaldistrictcodes", []); |
| | | // } else { |
| | | // commit("SET_leavehospitaldistrictcodes", user.belongWards); |
| | | // commit("SET_leaveldeptcodes", user.belongDepts); |
| | | // } |
| | | commit("SET_leavehospitaldistrictcodes", user.belongWards); |
| | | commit("SET_leaveldeptcodes", user.belongDepts); |
| | | commit("SET_AVATAR", avatar); |
| | |
| | | wsUrl: "wss://10.10.0.220:7443", |
| | | domain: "10.10.0.220", |
| | | }, |
| | | æå·å¸ç¬¬ä¸äººæ°å»é¢æ¹æ»¨é¢åº: { |
| | | 第ä¸äººæ°å»é¢æ¹æ»¨é¢åº: { |
| | | wsUrl: "wss://192.169.129.198:7443", |
| | | domain: "192.169.129.198", |
| | | }, |
| | | æå·å¸ç¬¬ä¸äººæ°å»é¢å´å±±é¢åº: { |
| | | 第ä¸äººæ°å»é¢å´å±±é¢åº: { |
| | | wsUrl: "wss://192.169.129.198:7443", |
| | | domain: "192.169.129.198", |
| | | }, |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- å»¶ç»æ¤çé¡µé¢ --> |
| | | <div class="ContinuityCarePage" id="app-container"> |
| | | <!-- 第ä¸é¨åï¼æ£è
åºç¡ä¿¡æ¯ --> |
| | | <div class="patient-info-section"> |
| | | <div class="headline"> |
| | | <div>æ£è
åºç¡ä¿¡æ¯</div> |
| | | </div> |
| | | <div class="patient-info-form"> |
| | | <el-form |
| | | ref="patientForm" |
| | | :model="patientForm" |
| | | :rules="patientRules" |
| | | label-width="120px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ£è
å§å" prop="name"> |
| | | <el-input |
| | | v-model="patientForm.name" |
| | | placeholder="请è¾å
¥æ£è
å§å" |
| | | maxlength="30" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ§å«" prop="sex"> |
| | | <el-select |
| | | v-model="patientForm.sex" |
| | | placeholder="è¯·éæ©" |
| | | clearable |
| | | > |
| | | <el-option label="ç·" :value="1"></el-option> |
| | | <el-option label="女" :value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å¹´é¾" prop="age"> |
| | | <el-input |
| | | v-model="patientForm.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="3" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="èç³»çµè¯" prop="telcode"> |
| | | <el-input |
| | | v-model="patientForm.telcode" |
| | | placeholder="请è¾å
¥èç³»çµè¯" |
| | | maxlength="20" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ä½é¢å·" prop="hospitalNumber"> |
| | | <el-input |
| | | v-model="patientForm.hospitalNumber" |
| | | placeholder="请è¾å
¥ä½é¢å·" |
| | | maxlength="50" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="åºé¢æ¥æ" prop="dischargeDate"> |
| | | <el-date-picker |
| | | v-model="patientForm.dischargeDate" |
| | | type="date" |
| | | placeholder="éæ©åºé¢æ¥æ" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 100%" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯æåç§°" prop="diagnosis"> |
| | | <el-input |
| | | v-model="patientForm.diagnosis" |
| | | placeholder="请è¾å
¥è¯æåç§°" |
| | | maxlength="100" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="责任æ¤å£«" prop="nurseName"> |
| | | <el-input |
| | | v-model="patientForm.nurseName" |
| | | placeholder="请è¾å
¥è´£ä»»æ¤å£«" |
| | | maxlength="50" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="å±
ä½å°å" prop="address"> |
| | | <el-input |
| | | v-model="patientForm.address" |
| | | placeholder="请è¾å
¥è¯¦ç»å±
ä½å°å" |
| | | maxlength="200" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="亲å±å§å" prop="relativeName"> |
| | | <el-input |
| | | v-model="patientForm.relativeName" |
| | | placeholder="请è¾å
¥äº²å±å§å" |
| | | maxlength="30" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="亲å±çµè¯" prop="relativeTel"> |
| | | <el-input |
| | | v-model="patientForm.relativeTel" |
| | | placeholder="请è¾å
¥äº²å±çµè¯" |
| | | maxlength="20" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- å»¶ç»æ¤çæ±æ»ä¿¡æ¯ --> |
| | | <el-row :gutter="20" v-if="continuitySummary.continueCount > 0"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="å»¶ç»æ¤çæ±æ»"> |
| | | <div class="continuity-summary"> |
| | | <div class="summary-item"> |
| | | <span class="label">å»¶ç»æ¬¡æ°ï¼</span> |
| | | <span class="value" |
| | | >{{ continuitySummary.continueCount }} 次</span |
| | | > |
| | | </div> |
| | | <div class="summary-item"> |
| | | <span class="label">ææ°æå¡ï¼</span> |
| | | <span class="value">{{ |
| | | formatDisplayTime(continuitySummary.continueTimeNow) |
| | | }}</span> |
| | | </div> |
| | | <div class="summary-item"> |
| | | <span class="label">䏿¬¡æå¡ï¼</span> |
| | | <span class="value">{{ |
| | | formatDisplayTime(continuitySummary.continueTimeNext) |
| | | }}</span> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- æä½æé® --> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | @click="savePatientInfo" |
| | | :loading="savingPatientInfo" |
| | | > |
| | | ä¿åæ£è
ä¿¡æ¯ |
| | | </el-button> |
| | | <el-button @click="resetPatientInfo">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <!-- 第äºé¨åï¼æå¡åºç¡ä¿¡æ¯ --> |
| | | <div class="basic-info-section"> |
| | | <div class="headline"> |
| | | <div>æå¡åºç¡ä¿¡æ¯</div> |
| | | </div> |
| | | <div class="basic-info-container"> |
| | | <!-- å·¦åé¨åï¼å½åæå¡é访å
容ï¼åªè¯»ï¼ --> |
| | | <div class="followup-content readonly-content"> |
| | | <div class="sub-headline"> |
| | | <i class="el-icon-document"></i> å½åæå¡é访å
容ï¼åªè¯»ï¼ |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | @click="toggleQuestionSelection" |
| | | style="margin-left: 10px" |
| | | > |
| | | {{ showQuestionSelector ? "éèé®é¢éå" : "éåå»¶ç»é®é¢" }} |
| | | </el-button> |
| | | </div> |
| | | |
| | | <!-- é®é¢éå颿¿ --> |
| | | <div v-if="showQuestionSelector" class="question-selector-panel"> |
| | | <div class="selector-header"> |
| | | <span>è¯·éæ©å»¶ç»é®é¢ï¼å¯å¤éï¼ï¼</span> |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | @click="confirmQuestionSelection" |
| | | > |
| | | 确认éå |
| | | </el-button> |
| | | </div> |
| | | <div class="question-list"> |
| | | <el-checkbox-group v-model="selectedQuestionIds"> |
| | | <div |
| | | v-for="(question, index) in availableQuestions" |
| | | :key="question.id" |
| | | class="question-item" |
| | | > |
| | | <el-checkbox :label="question.id"> |
| | | <div class="question-content"> |
| | | <span class="question-index" |
| | | >{{ question.index + 1 }}.</span |
| | | > |
| | | <span class="question-text">{{ question.text }}</span> |
| | | </div> |
| | | </el-checkbox> |
| | | </div> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <div class="content-container"> |
| | | <el-tabs v-model="activeName" type="border-card"> |
| | | <el-tab-pane name="wj"> |
| | | <span slot="label" |
| | | ><i class="el-icon-notebook-1"></i> é®å·éè®¿ç»æ</span |
| | | > |
| | | <div class="CONTENT"> |
| | | <div class="title">{{ taskname ? taskname : "é®å·" }}</div> |
| | | <div class="preview-left" v-if="!Voicetype"> |
| | | <div |
| | | class="topic-dev" |
| | | v-for="(item, index) in tableDatatop" |
| | | :key="item.id" |
| | | > |
| | | <!-- åé --> |
| | | <div |
| | | :class="getTopicClass(item)" |
| | | :key="index" |
| | | v-if="item.scriptType == 1 && !item.astrict" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã[åé]<span>{{ |
| | | item.scriptContent |
| | | }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="item.scriptResult" disabled> |
| | | <el-radio |
| | | v-for="( |
| | | items, indexs |
| | | ) in item.svyTaskTemplateTargetoptions" |
| | | :class="getOptionClass(items)" |
| | | :key="indexs" |
| | | :label="items.optioncontent" |
| | | >{{ items.optioncontent }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | <div |
| | | v-if="item.showAppendInput || item.answerps" |
| | | class="append-input-container" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请è¾å
¥å
·ä½ä¿¡æ¯" |
| | | v-model="item.answerps" |
| | | readonly |
| | | ></el-input> |
| | | </div> |
| | | <div v-show="item.prompt"> |
| | | <el-alert :title="item.prompt" type="warning"> |
| | | </el-alert> |
| | | </div> |
| | | </div> |
| | | <!-- å¤é --> |
| | | <div |
| | | :class=" |
| | | item.isabnormal |
| | | ? 'scriptTopic-isabnormal' |
| | | : 'scriptTopic-dev' |
| | | " |
| | | :key="index" |
| | | v-if="item.scriptType == 2 && !item.astrict" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã[å¤é]<span>{{ |
| | | item.scriptContent |
| | | }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group |
| | | v-model="item.scriptResult" |
| | | disabled |
| | | > |
| | | <el-checkbox |
| | | :class="items.isabnormal ? 'red-star' : ''" |
| | | v-for="( |
| | | items, indexs |
| | | ) in item.svyTaskTemplateTargetoptions" |
| | | :key="indexs" |
| | | :label="items.optioncontent" |
| | | > |
| | | {{ items.optioncontent }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | <div v-show="item.prompt && item.scriptResult[0]"> |
| | | <el-alert :title="item.prompt" type="warning"> |
| | | </el-alert> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div |
| | | class="scriptTopic-dev" |
| | | :key="index" |
| | | v-if="item.scriptType == 4 && !item.astrict" |
| | | > |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã[é®ç]<span>{{ |
| | | item.scriptContent |
| | | }}</span> |
| | | <span v-if="item.valueType == 3">(åªè½è¾å
¥æ°å)</span> |
| | | </div> |
| | | <div class="dev-xx" v-if="item.valueType == 3"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请è¾å
¥çæ¡" |
| | | v-model="item.scriptResult" |
| | | readonly |
| | | > |
| | | </el-input> |
| | | </div> |
| | | <div class="dev-xx" v-else> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请è¾å
¥çæ¡" |
| | | v-model="item.scriptResult" |
| | | readonly |
| | | > |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="preview-left" v-else> |
| | | <div |
| | | class="topic-dev" |
| | | v-for="(item, index) in tableDatatop" |
| | | :key="item.id" |
| | | > |
| | | <div v-if="item.targetvalue"> |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã[åé]<span>{{ |
| | | item.questiontext |
| | | }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="item.matchedtext" disabled> |
| | | <el-radio |
| | | v-for="(items, index) in item.scriptResult" |
| | | :key="index" |
| | | :label="items" |
| | | :class="items.isabnormal ? 'red-star' : ''" |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | <div v-show="item.prompt"> |
| | | <el-alert :title="item.prompt" type="warning"> |
| | | </el-alert> |
| | | </div> |
| | | </div> |
| | | <div class="scriptTopic-dev" :key="index" v-else> |
| | | <div class="dev-text"> |
| | | {{ index + 1 }}ã[é®ç]<span>{{ |
| | | item.scriptContent |
| | | }}</span> |
| | | <span v-if="item.valueType == 3">(åªè½è¾å
¥æ°å)</span> |
| | | </div> |
| | | <div class="dev-xx" v-if="item.valueType == 3"> |
| | | <el-input |
| | | type="text" |
| | | placeholder="请è¾å
¥çæ¡" |
| | | v-model="item.scriptResult" |
| | | readonly |
| | | > |
| | | </el-input> |
| | | </div> |
| | | <div class="dev-xx" v-else> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请è¾å
¥çæ¡" |
| | | v-model="item.scriptResult" |
| | | readonly |
| | | > |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="yy"> |
| | | <span slot="label" |
| | | ><i class="el-icon-headset"></i> è¯é³é访详æ
</span |
| | | > |
| | | <div class="borderdiv"> |
| | | <div class="title">{{ taskname ? taskname : "é®å·" }}</div> |
| | | <div class="voice-audio"> |
| | | 宿´è¯é³ï¼ |
| | | <mini-audio |
| | | :audio-source=" |
| | | voice ? voice : '@assets/order/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </div> |
| | | <div class="preview-left"> |
| | | <div v-for="item in voiceDatatop"> |
| | | <div class="leftside"> |
| | | <i class="el-icon-phone-outline"></i |
| | | ><span>{{ item.questiontext }}</span> |
| | | </div> |
| | | <div class="offside"> |
| | | <i class="el-icon-user"></i> |
| | | <div class="offside-value"> |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="{ minRows: 1 }" |
| | | v-model="item.asrtext" |
| | | readonly |
| | | ></el-input> |
| | | <div> |
| | | <mini-audio |
| | | :audio-source=" |
| | | item.questionvoice |
| | | ? item.questionvoice |
| | | : '@assets/order/example.mp3' |
| | | " |
| | | ></mini-audio> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- å³åé¨åï¼åæ¬¡å»¶ç»æ¤çæå¡ --> |
| | | <!-- å³åé¨åï¼åæ¬¡å»¶ç»æ¤çæå¡ --> |
| | | <div class="continuity-history"> |
| | | <div class="sub-headline"> |
| | | <i class="el-icon-time"></i> 忬¡å»¶ç»æ¤çæå¡ |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-plus" |
| | | @click="addContinuityTab" |
| | | style="margin-left: 10px" |
| | | >æ°å¢å»¶ç»æ¤ç</el-button |
| | | > |
| | | </div> |
| | | <div class="history-content"> |
| | | <el-tabs |
| | | v-model="activeContinuityTab" |
| | | type="card" |
| | | closable |
| | | @tab-remove="removeContinuityTab" |
| | | @tab-click="handleTabClick" |
| | | > |
| | | <el-tab-pane |
| | | v-for="(item, index) in continuityTabs" |
| | | :key="item.name" |
| | | :label="item.title" |
| | | :name="item.name" |
| | | > |
| | | <div class="continuity-form"> |
| | | <el-form |
| | | :ref="'continuityForm' + index" |
| | | :model="item.form" |
| | | :rules="continuityRules" |
| | | label-width="120px" |
| | | > |
| | | <!-- å»¶ç»é®é¢è¡¨å --> |
| | | <el-form-item label="å»¶ç»é®é¢" prop="continuityProblems"> |
| | | <div class="continuity-problems-form"> |
| | | <div class="problems-header"> |
| | | <span>å·²éåçå»¶ç»é®é¢ï¼</span> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-plus" |
| | | @click="addContinuityProblem(index)" |
| | | > |
| | | æ°å¢é®é¢ |
| | | </el-button> |
| | | </div> |
| | | |
| | | <!-- å·²éåçé®é¢å表 --> |
| | | <div |
| | | v-if=" |
| | | item.form.continuityProblems && |
| | | item.form.continuityProblems.length > 0 |
| | | " |
| | | class="problems-list-container" |
| | | > |
| | | <div |
| | | v-for="(problem, problemIndex) in item.form |
| | | .continuityProblems" |
| | | :key="problemIndex" |
| | | class="problem-item" |
| | | > |
| | | <div class="problem-content"> |
| | | <div class="problem-meta"> |
| | | <span class="problem-index" |
| | | >é®é¢ {{ problemIndex + 1 }}</span |
| | | > |
| | | <el-select |
| | | v-model="problem.questionId" |
| | | placeholder="éæ©é®é¢" |
| | | size="small" |
| | | style="width: 300px; margin: 0 10px" |
| | | @change=" |
| | | handleProblemChange( |
| | | index, |
| | | problemIndex, |
| | | $event |
| | | ) |
| | | " |
| | | > |
| | | <el-option |
| | | v-for="q in availableQuestions" |
| | | :key="q.id" |
| | | :label="q.text" |
| | | :value="q.id" |
| | | > |
| | | <span |
| | | >{{ q.index + 1 }}. |
| | | {{ truncateText(q.text, 40) }}</span |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- ä¿®å¤ï¼ä¼ éæ£ç¡®çç´¢å¼ --> |
| | | <el-button |
| | | type="danger" |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | circle |
| | | @click=" |
| | | removeContinuityProblem(index, problemIndex) |
| | | " |
| | | > |
| | | </el-button> |
| | | </div> |
| | | |
| | | <!-- é®å·å¼é®é¢å±ç¤ºåºå --> |
| | | <div |
| | | v-if="problem.questionId" |
| | | class="question-display-area" |
| | | > |
| | | <!-- æ ¹æ®é®é¢ç±»åå¨ææ¸²æ --> |
| | | <div |
| | | v-if=" |
| | | getQuestionOriginalData(problem.questionId) |
| | | " |
| | | class="question-render" |
| | | > |
| | | <!-- åéç±»å --> |
| | | <div |
| | | v-if=" |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).scriptType == 1 |
| | | " |
| | | class="question-item-render" |
| | | > |
| | | <div class="question-text"> |
| | | <strong>[åé]</strong> |
| | | <span>{{ |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).scriptContent |
| | | }}</span> |
| | | </div> |
| | | <div class="question-options"> |
| | | <el-radio-group |
| | | v-model="problem.selectedOption" |
| | | > |
| | | <el-radio |
| | | v-for="option in getQuestionOriginalData( |
| | | problem.questionId |
| | | ).svyTaskTemplateTargetoptions" |
| | | :key="option.optioncontent" |
| | | :label="option.optioncontent" |
| | | :class="getOptionClass(option)" |
| | | > |
| | | {{ option.optioncontent }} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </div> |
| | | <!-- éå è¾å
¥æ¡ --> |
| | | <div |
| | | v-if="problem.showAppendInput" |
| | | class="append-input" |
| | | style="margin-top: 10px" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请è¾å
¥å
·ä½ä¿¡æ¯" |
| | | v-model="problem.appendInput" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- å¤éç±»å --> |
| | | <div |
| | | v-else-if=" |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).scriptType == 2 |
| | | " |
| | | class="question-item-render" |
| | | > |
| | | <div class="question-text"> |
| | | <strong>[å¤é]</strong> |
| | | <span>{{ |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).scriptContent |
| | | }}</span> |
| | | </div> |
| | | <div class="question-options"> |
| | | <el-checkbox-group |
| | | v-model="problem.selectedOptions" |
| | | > |
| | | <el-checkbox |
| | | v-for="option in getQuestionOriginalData( |
| | | problem.questionId |
| | | ).svyTaskTemplateTargetoptions" |
| | | :key="option.optioncontent" |
| | | :label="option.optioncontent" |
| | | :class=" |
| | | option.isabnormal ? 'red-star' : '' |
| | | " |
| | | > |
| | | {{ option.optioncontent }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 填空/é®çç±»å --> |
| | | <div |
| | | v-else-if=" |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).scriptType == 4 |
| | | " |
| | | class="question-item-render" |
| | | > |
| | | <div class="question-text"> |
| | | <strong>[é®ç]</strong> |
| | | <span>{{ |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).scriptContent |
| | | }}</span> |
| | | <span |
| | | v-if=" |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).valueType == 3 |
| | | " |
| | | >(åªè½è¾å
¥æ°å)</span |
| | | > |
| | | </div> |
| | | <div class="question-options"> |
| | | <el-input |
| | | v-if=" |
| | | getQuestionOriginalData( |
| | | problem.questionId |
| | | ).valueType == 3 |
| | | " |
| | | type="text" |
| | | placeholder="请è¾å
¥çæ¡" |
| | | v-model="problem.answer" |
| | | style="width: 200px" |
| | | ></el-input> |
| | | <el-input |
| | | v-else |
| | | type="textarea" |
| | | :rows="2" |
| | | placeholder="请è¾å
¥çæ¡" |
| | | v-model="problem.answer" |
| | | style="width: 100%" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-else class="no-question-data"> |
| | | é®é¢æ°æ®å è½½ä¸... |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- åæçé®é¢æè¿°çåæ®µ --> |
| | | <div class="problem-detail"> |
| | | <div class="detail-row"> |
| | | <span class="detail-label">å½åç¶æï¼</span> |
| | | <el-select |
| | | v-model="problem.status" |
| | | placeholder="éæ©ç¶æ" |
| | | size="small" |
| | | style="width: 120px; margin-right: 20px" |
| | | > |
| | | <el-option |
| | | label="æªå¤ç" |
| | | value="pending" |
| | | ></el-option> |
| | | <el-option |
| | | label="å¤çä¸" |
| | | value="processing" |
| | | ></el-option> |
| | | <el-option |
| | | label="已解å³" |
| | | value="resolved" |
| | | ></el-option> |
| | | <el-option |
| | | label="æç»å
³æ³¨" |
| | | value="watching" |
| | | ></el-option> |
| | | </el-select> |
| | | |
| | | <span |
| | | class="detail-label" |
| | | v-if="problem.status === 'resolved'" |
| | | style="margin-left: 20px" |
| | | > |
| | | è§£å³æ¥æï¼ |
| | | </span> |
| | | <el-date-picker |
| | | v-if="problem.status === 'resolved'" |
| | | v-model="problem.resolvedDate" |
| | | type="date" |
| | | placeholder="éæ©è§£å³æ¥æ" |
| | | value-format="yyyy-MM-dd" |
| | | size="small" |
| | | style="width: 150px; margin-left: 10px" |
| | | ></el-date-picker> |
| | | </div> |
| | | |
| | | <!-- <div class="detail-row"> |
| | | <span class="detail-label">é®é¢æè¿°ï¼</span> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="2" |
| | | v-model="problem.description" |
| | | placeholder="è¯·è¯¦ç»æè¿°è¯¥å»¶ç»é®é¢ï¼å¯è®°å½è¯ä¼°ç»æãå¤ç建议çï¼" |
| | | size="small" |
| | | style="flex: 1" |
| | | ></el-input> |
| | | </div> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | |
| | | <!-- å»¶ç»æ§æ¤çè®°å½ --> |
| | | <el-form-item label="æ¤çè®°å½" prop="careRecord"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="4" |
| | | v-model="item.form.careRecord" |
| | | placeholder="请è¾å
¥å»¶ç»æ§æ¤çè®°å½" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- 责任æ¤å£«ãå访形å¼ãæå¡æ¶é´ --> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="责任æ¤å£«" prop="dutyNurse"> |
| | | <el-input |
| | | v-model="item.form.dutyNurse" |
| | | placeholder="请è¾å
¥è´£ä»»æ¤å£«" |
| | | clearable |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å访形å¼" prop="visitType"> |
| | | <el-select |
| | | v-model="item.form.visitType" |
| | | placeholder="è¯·éæ©å访形å¼" |
| | | style="width: 100%" |
| | | clearable |
| | | > |
| | | <el-option |
| | | label="çµè¯å访" |
| | | value="phone" |
| | | ></el-option> |
| | | <el-option |
| | | label="ä¸é¨å访" |
| | | value="home" |
| | | ></el-option> |
| | | <el-option |
| | | label="é¨è¯å访" |
| | | value="clinic" |
| | | ></el-option> |
| | | <el-option |
| | | label="微信å访" |
| | | value="wechat" |
| | | ></el-option> |
| | | <el-option label="å
¶ä»" value="other"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | | label="䏿¬¡æå¡æ¶é´" |
| | | prop="nextServiceTime" |
| | | > |
| | | <el-date-picker |
| | | v-model="item.form.nextServiceTime" |
| | | type="datetime" |
| | | placeholder="鿩䏿¬¡å»¶ç»æå¡æ¶é´" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | | > |
| | | </el-date-picker> |
| | | <div |
| | | class="time-tip" |
| | | v-if="item.form.nextServiceTime" |
| | | > |
| | | è·ä¸æ¬¡æå¡è¿æ |
| | | {{ calculateDaysLeft(item.form.nextServiceTime) }} |
| | | 天 |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æå¡æ¶é´" prop="serviceTime"> |
| | | <el-date-picker |
| | | v-model="item.form.serviceTime" |
| | | type="datetime" |
| | | placeholder="éæ©æå¡æ¶é´" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | style="width: 100%" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- 䏿¬¡å»¶ç»æå¡æ¶é´ --> |
| | | |
| | | <!-- æä½æé® --> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | @click="saveContinuityTab(index)" |
| | | :loading="item.saving" |
| | | > |
| | | ä¿å |
| | | </el-button> |
| | | <el-button @click="resetContinuityTab(index)"> |
| | | éç½® |
| | | </el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | getsearchrResults, |
| | | getPersonVoices, |
| | | getTaskservelist, |
| | | Editsingletaskson, |
| | | } from "@/api/AiCentre/index"; |
| | | import { |
| | | messagelistpatient, |
| | | alterpatient, |
| | | listcontactinformation, |
| | | } from "@/api/patient/homepage"; |
| | | |
| | | export default { |
| | | dicts: ["sys_yujing"], |
| | | data() { |
| | | return { |
| | | // è·¯ç±åæ° |
| | | taskid: "", |
| | | id: "", |
| | | sendname: "", |
| | | patid: "", |
| | | Voicetype: 0, |
| | | serviceType: "", |
| | | |
| | | // é访å
容ç¸å
³ |
| | | activeName: "wj", |
| | | taskname: "", |
| | | voice: "", |
| | | tableDatatop: [], |
| | | voiceDatatop: [], |
| | | form: {}, |
| | | userform: {}, |
| | | // æ°å¢ï¼é®é¢éæ©ç¸å
³ |
| | | showQuestionSelector: false, |
| | | selectedQuestionIds: [], |
| | | // æ£è
åºç¡ä¿¡æ¯è¡¨å |
| | | patientForm: { |
| | | name: "", |
| | | sex: "", |
| | | age: "", |
| | | telcode: "", |
| | | hospitalNumber: "", |
| | | dischargeDate: "", |
| | | diagnosis: "", |
| | | nurseName: "", |
| | | address: "", |
| | | relativeName: "", |
| | | relativeTel: "", |
| | | }, |
| | | patientRules: { |
| | | name: [{ required: true, message: "请è¾å
¥æ£è
å§å", trigger: "blur" }], |
| | | age: [ |
| | | { required: true, message: "请è¾å
¥å¹´é¾", trigger: "blur" }, |
| | | { pattern: /^\d+$/, message: "å¹´é¾å¿
须为æ°å", trigger: "blur" }, |
| | | ], |
| | | telcode: [ |
| | | { required: true, message: "请è¾å
¥èç³»çµè¯", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3-9]\d{9}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | savingPatientInfo: false, |
| | | |
| | | // å»¶ç»æ¤çç¸å
³ |
| | | activeContinuityTab: "continuity-0", |
| | | continuityTabs: [], |
| | | continuityTabIndex: 0, |
| | | continuityRules: { |
| | | // ç§»é¤continuityProblemsçéªè¯è§å |
| | | careRecord: [ |
| | | { required: true, message: "请è¾å
¥æ¤çè®°å½", trigger: "blur" }, |
| | | ], |
| | | dutyNurse: [ |
| | | { required: true, message: "请è¾å
¥è´£ä»»æ¤å£«", trigger: "blur" }, |
| | | ], |
| | | visitType: [ |
| | | { required: true, message: "è¯·éæ©å访形å¼", trigger: "change" }, |
| | | ], |
| | | serviceTime: [ |
| | | { required: true, message: "è¯·éæ©æå¡æ¶é´", trigger: "change" }, |
| | | ], |
| | | nextServiceTime: [ |
| | | { required: true, message: "è¯·éæ©ä¸æ¬¡æå¡æ¶é´", trigger: "change" }, |
| | | ], |
| | | }, |
| | | |
| | | // å¯éçå»¶ç»é®é¢ï¼ä»å·¦ä¾§é®å·ä¸æåï¼ |
| | | availableQuestions: [], |
| | | |
| | | // å»¶ç»æ¤çæ±æ»ä¿¡æ¯ |
| | | continuitySummary: { |
| | | continueCount: 0, |
| | | continueTimeNow: "", |
| | | continueTimeNext: "", |
| | | continueContent: "", |
| | | }, |
| | | |
| | | // å
¶ä» |
| | | logsheetlist: [], |
| | | }; |
| | | }, |
| | | created() { |
| | | this.taskid = this.$route.query.taskid; |
| | | this.id = this.$route.query.id; |
| | | this.sendname = this.$route.query.sendname; |
| | | this.patid = this.$route.query.patid; |
| | | this.Voicetype = this.$route.query.Voicetype || 0; |
| | | this.serviceType = this.$route.query.serviceType; |
| | | |
| | | this.getTaskservelist(this.id); |
| | | }, |
| | | methods: { |
| | | // è·å䏻颿 ·å¼ç±» |
| | | getTopicClass(item) { |
| | | console.log(item.isabnormal, "getTopicClass"); |
| | | |
| | | if (item.isabnormal == 1) { |
| | | return "scriptTopic-isabnormal"; |
| | | } else if (item.isabnormal == 2) { |
| | | return "scriptTopic-warning"; |
| | | } else { |
| | | return "scriptTopic-dev"; |
| | | } |
| | | }, |
| | | |
| | | // è·åéé¡¹æ ·å¼ç±» |
| | | getOptionClass(items) { |
| | | if (items.isabnormal == 1) { |
| | | return "red-star"; |
| | | } else if (items.isabnormal == 2) { |
| | | return "yellow-star"; |
| | | } |
| | | return ""; |
| | | }, |
| | | |
| | | // è·åé®å·æ°æ® |
| | | getsearchrResults(id) { |
| | | getsearchrResults({ |
| | | taskid: this.taskid, |
| | | patid: this.patid, |
| | | subId: id ? id : this.id, |
| | | isFinish: false, |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.tableDatatop = res.data.scriptResult; |
| | | |
| | | this.tableDatatop.forEach((item) => { |
| | | if (item.scriptType == 2) item.scriptResult = []; |
| | | if (item.scriptResultId && item.scriptType != 2) { |
| | | item.isoption = 3; |
| | | item.scriptResult = item.scriptResult; |
| | | } else if (item.scriptResultId && item.scriptType == 2) { |
| | | item.scriptResult = item.scriptResult.split("&"); |
| | | item.isoption = 3; |
| | | } |
| | | }); |
| | | this.taskname = res.data.taskName; |
| | | this.overdata(); |
| | | // æåå¯éçå»¶ç»é®é¢ |
| | | this.extractAvailableQuestions(); |
| | | } |
| | | }); |
| | | }, |
| | | overdata() { |
| | | this.tableDatatop.forEach((item, index) => { |
| | | var obj = item.svyTaskTemplateTargetoptions.find( |
| | | (items) => items.optioncontent == item.scriptResult |
| | | ); |
| | | if (obj) { |
| | | console.log(obj, "obj"); |
| | | if (obj.isabnormal) { |
| | | this.tableDatatop[index].isabnormal = obj.isabnormal; |
| | | } |
| | | this.$forceUpdate(); |
| | | } |
| | | }); |
| | | }, |
| | | // æåå¯éçå»¶ç»é®é¢ |
| | | extractAvailableQuestions() { |
| | | this.availableQuestions = this.tableDatatop |
| | | .filter( |
| | | (item) => item.scriptContent && item.scriptContent.trim() !== "" |
| | | ) |
| | | .map((item, index) => ({ |
| | | id: `question-${index}`, |
| | | index: index, |
| | | text: item.scriptContent, |
| | | originalIndex: index, |
| | | })); |
| | | }, // 忢é®é¢éæ©é¢æ¿æ¾ç¤º |
| | | toggleQuestionSelection() { |
| | | this.showQuestionSelector = !this.showQuestionSelector; |
| | | if (this.showQuestionSelector) { |
| | | // éç½®éæ© |
| | | this.selectedQuestionIds = []; |
| | | } |
| | | }, |
| | | // æ·»å å»¶ç»é®é¢ |
| | | addContinuityProblem(tabIndex) { |
| | | this.continuityTabs[tabIndex].form.continuityProblems.push({ |
| | | questionId: "", |
| | | status: "pending", |
| | | description: "", |
| | | resolvedDate: "", |
| | | createTime: new Date().toISOString(), |
| | | // æ°å¢å段ï¼ç¨äºé®å·å¼äº¤äº |
| | | selectedOption: "", // åéçæ¡ |
| | | selectedOptions: [], // å¤éçæ¡ |
| | | answer: "", // å¡«ç©ºçæ¡ |
| | | showAppendInput: false, // æ¯å¦æ¾ç¤ºéå è¾å
¥æ¡ |
| | | appendInput: "", // éå è¾å
¥å
容 |
| | | }); |
| | | }, |
| | | // æ ¹æ®é®é¢IDè·ååå§é®é¢æ°æ® |
| | | getQuestionOriginalData(questionId) { |
| | | if (!questionId) return null; |
| | | const originalIndex = this.availableQuestions.find( |
| | | (q) => q.id === questionId |
| | | )?.originalIndex; |
| | | if (originalIndex !== undefined && this.tableDatatop[originalIndex]) { |
| | | return this.tableDatatop[originalIndex]; |
| | | } |
| | | return null; |
| | | }, |
| | | // ç§»é¤å»¶ç»é®é¢ |
| | | removeContinuityProblem(tabIndex, problemIndex) { |
| | | this.continuityTabs[tabIndex].form.continuityProblems.splice( |
| | | problemIndex, |
| | | 1 |
| | | ); |
| | | }, |
| | | |
| | | // å¤çé®é¢éæ©åæ´ |
| | | handleProblemChange(tabIndex, problemIndex, questionId) { |
| | | const problem = |
| | | this.continuityTabs[tabIndex].form.continuityProblems[problemIndex]; |
| | | |
| | | if (!questionId) { |
| | | problem.description = ""; |
| | | // æ¸
ç©ºçæ¡åæ®µ |
| | | problem.selectedOption = ""; |
| | | problem.selectedOptions = []; |
| | | problem.answer = ""; |
| | | problem.showAppendInput = false; |
| | | problem.appendInput = ""; |
| | | return; |
| | | } |
| | | |
| | | // èªå¨å¡«å
é®é¢æè¿° |
| | | const question = this.availableQuestions.find((q) => q.id === questionId); |
| | | if (question) { |
| | | problem.description = `é®é¢ï¼${question.text}`; |
| | | } |
| | | |
| | | // æ ¹æ®é®é¢ç±»ååå§åçæ¡åæ®µ |
| | | const originalData = this.getQuestionOriginalData(questionId); |
| | | if (originalData) { |
| | | // åå§ååéçæ¡ |
| | | if (originalData.scriptType === 1) { |
| | | problem.selectedOption = originalData.scriptResult || ""; |
| | | // æ£æ¥æ¯å¦éè¦æ¾ç¤ºéå è¾å
¥æ¡ |
| | | problem.showAppendInput = originalData.showAppendInput || false; |
| | | problem.appendInput = originalData.answerps || ""; |
| | | } |
| | | // åå§åå¤éçæ¡ |
| | | else if (originalData.scriptType === 2) { |
| | | problem.selectedOptions = Array.isArray(originalData.scriptResult) |
| | | ? [...originalData.scriptResult] |
| | | : originalData.scriptResult |
| | | ? originalData.scriptResult.split("&") |
| | | : []; |
| | | } |
| | | // åå§åå¡«ç©ºçæ¡ |
| | | else if (originalData.scriptType === 4) { |
| | | problem.answer = originalData.scriptResult || ""; |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // æ ¹æ®é®é¢IDè·åé®é¢ææ¬ |
| | | getQuestionText(questionId) { |
| | | if (!questionId) return "æªéæ©é®é¢"; |
| | | const question = this.availableQuestions.find((q) => q.id === questionId); |
| | | return question |
| | | ? `${question.index + 1}. ${question.text}` |
| | | : "é®é¢å·²å é¤"; |
| | | }, |
| | | |
| | | // æªæææ¬ |
| | | truncateText(text, length) { |
| | | if (!text) return ""; |
| | | return text.length > length ? text.substring(0, length) + "..." : text; |
| | | }, |
| | | // 确认é®é¢éæ© |
| | | confirmQuestionSelection() { |
| | | if (this.selectedQuestionIds.length === 0) { |
| | | this.$modal.msgWarning("请è³å°éæ©ä¸ä¸ªå»¶ç»é®é¢"); |
| | | return; |
| | | } |
| | | |
| | | // è·åå½åæ¿æ´»çæ ç¾é¡µç´¢å¼ |
| | | const activeTabIndex = this.continuityTabs.findIndex( |
| | | (tab) => tab.name === this.activeContinuityTab |
| | | ); |
| | | |
| | | if (activeTabIndex === -1) { |
| | | this.$modal.msgError("æªæ¾å°æ¿æ´»çå»¶ç»æ¤çæ ç¾é¡µ"); |
| | | return; |
| | | } |
| | | |
| | | // æ·»å éä¸çé®é¢å°å½åæ ç¾é¡µ |
| | | this.selectedQuestionIds.forEach((questionId) => { |
| | | // æ£æ¥æ¯å¦å·²åå¨ç¸åé®é¢ |
| | | const exists = this.continuityTabs[ |
| | | activeTabIndex |
| | | ].form.continuityProblems.some( |
| | | (problem) => problem.questionId === questionId |
| | | ); |
| | | |
| | | if (!exists) { |
| | | this.continuityTabs[activeTabIndex].form.continuityProblems.push({ |
| | | questionId: questionId, |
| | | status: "pending", |
| | | description: "", |
| | | resolvedDate: "", |
| | | createTime: new Date().toISOString(), |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // å
³é鿩颿¿ |
| | | this.showQuestionSelector = false; |
| | | this.selectedQuestionIds = []; |
| | | |
| | | this.$modal.msgSuccess( |
| | | `已添å ${this.selectedQuestionIds.length} 个延ç»é®é¢` |
| | | ); |
| | | }, |
| | | |
| | | // ç§»é¤å»¶ç»é®é¢ |
| | | removeContinuityProblem(tabIndex, problemIndex) { |
| | | this.continuityTabs[tabIndex].form.continuityProblems.splice( |
| | | problemIndex, |
| | | 1 |
| | | ); |
| | | }, |
| | | |
| | | // è·åè¯é³æ°æ® |
| | | getPersonVoices(id) { |
| | | let obj = { |
| | | taskid: this.taskid, |
| | | patid: this.patid, |
| | | subId: id ? id : this.id, |
| | | }; |
| | | |
| | | getPersonVoices(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | this.voiceDatatop = res.data.serviceSubtaskDetails; |
| | | this.voice = res.data.voice; |
| | | this.activeName = "yy"; |
| | | this.taskname = res.data.taskName; |
| | | this.tableDatatop = res.data.filteredDetails; |
| | | this.tableDatatop.forEach((item) => { |
| | | if (item.targetvalue) { |
| | | item.scriptResult = item.targetvalue.split("&"); |
| | | } else { |
| | | item.scriptResult = []; |
| | | } |
| | | }); |
| | | |
| | | // æåå¯éçå»¶ç»é®é¢ |
| | | this.extractAvailableQuestions(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // è·ååºç¡ä¿¡æ¯ |
| | | getuserinfo() { |
| | | const queryParams = { |
| | | pid: Number(this.patid), |
| | | allhosp: "0", |
| | | }; |
| | | |
| | | messagelistpatient(queryParams).then((response) => { |
| | | if (response.rows[0]) { |
| | | this.userform = response.rows[0]; |
| | | this.initPatientForm(); |
| | | } |
| | | }); |
| | | |
| | | listcontactinformation({ patid: this.patid }).then((response) => { |
| | | this.tableData = response.rows; |
| | | if (this.tableData.length) { |
| | | this.patientForm.relativeName = this.tableData[0].relation || ""; |
| | | this.patientForm.relativeTel = this.tableData[0].contactway || ""; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // åå§åæ£è
表å |
| | | initPatientForm() { |
| | | if (this.userform) { |
| | | this.patientForm.name = this.userform.name || ""; |
| | | this.patientForm.sex = this.userform.sex || ""; |
| | | this.patientForm.age = this.userform.age || ""; |
| | | this.patientForm.telcode = this.userform.telcode || ""; |
| | | this.patientForm.address = this.userform.placeOfResidence || ""; |
| | | this.patientForm.hospitalNumber = this.userform.medicalRecordNo || ""; |
| | | } |
| | | |
| | | if (this.form) { |
| | | this.patientForm.dischargeDate = |
| | | this.formatTime(this.form.endtime) || ""; |
| | | this.patientForm.diagnosis = this.form.leavediagname || ""; |
| | | this.patientForm.nurseName = this.form.nurseName || ""; |
| | | } |
| | | }, |
| | | |
| | | // è·åæ£è
è®°å½ |
| | | getTaskservelist(id) { |
| | | getTaskservelist({ |
| | | patid: this.patid, |
| | | subId: id, |
| | | pageSize: 100, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.form = res.rows[0].serviceSubtaskList.find( |
| | | (item) => item.id == this.id |
| | | ); |
| | | this.logsheetlist = res.rows[0].serviceSubtaskList; |
| | | |
| | | // åå§åæ£è
ä¿¡æ¯ |
| | | this.initPatientForm(); |
| | | |
| | | // å è½½åå²å»¶ç»æ¤çæ°æ® |
| | | this.loadContinuityHistory(); |
| | | this.getuserinfo(); |
| | | } |
| | | |
| | | if (this.Voicetype) { |
| | | this.getPersonVoices(); |
| | | } else { |
| | | this.getsearchrResults(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // å è½½åå²å»¶ç»æ¤çæ°æ® |
| | | loadContinuityHistory() { |
| | | if (this.form && this.form.continueContent) { |
| | | try { |
| | | const historyData = JSON.parse(this.form.continueContent); |
| | | this.continuityTabs = historyData.map((item, index) => ({ |
| | | name: `continuity-${index}`, |
| | | title: `å»¶ç»æ¤ç${index + 1}`, |
| | | form: { |
| | | continuityProblems: item.continuityProblems || [], |
| | | careRecord: item.careRecord || "", |
| | | dutyNurse: item.dutyNurse || "", |
| | | visitType: item.visitType || "", |
| | | serviceTime: item.serviceTime || "", |
| | | nextServiceTime: item.nextServiceTime || "", |
| | | }, |
| | | saving: false, |
| | | })); |
| | | |
| | | if (this.continuityTabs.length > 0) { |
| | | this.activeContinuityTab = this.continuityTabs[0].name; |
| | | } |
| | | |
| | | // æ´æ°æ±æ»ä¿¡æ¯ |
| | | this.updateContinuitySummary(); |
| | | } catch (error) { |
| | | console.error("è§£æå»¶ç»æ¤çå岿°æ®å¤±è´¥:", error); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // æ´æ°å»¶ç»æ¤çæ±æ»ä¿¡æ¯ |
| | | updateContinuitySummary() { |
| | | if (this.form) { |
| | | this.continuitySummary.continueCount = this.form.continueCount || 0; |
| | | this.continuitySummary.continueTimeNow = |
| | | this.form.continueTimeNow || ""; |
| | | this.continuitySummary.continueTimeNext = |
| | | this.form.continueTimeNext || ""; |
| | | this.continuitySummary.continueContent = |
| | | this.form.continueContent || ""; |
| | | } |
| | | }, |
| | | |
| | | // æ·»å å»¶ç»æ¤çæ ç¾é¡µ |
| | | addContinuityTab() { |
| | | console.log(this.continuityTabs.length); |
| | | if (this.continuityTabs.length) { |
| | | this.continuityTabIndex = this.continuityTabs.length; |
| | | } |
| | | const newIndex = this.continuityTabIndex + 1; |
| | | const newTab = { |
| | | name: `continuity-${newIndex}`, |
| | | title: `å»¶ç»æ¤ç${newIndex}`, |
| | | form: { |
| | | continuityProblems: [], |
| | | careRecord: "", |
| | | dutyNurse: "", |
| | | visitType: "", |
| | | serviceTime: "", |
| | | nextServiceTime: "", |
| | | }, |
| | | saving: false, |
| | | }; |
| | | |
| | | this.continuityTabs.push(newTab); |
| | | this.continuityTabIndex = newIndex; |
| | | this.activeContinuityTab = newTab.name; |
| | | }, |
| | | |
| | | // ç§»é¤å»¶ç»æ¤çæ ç¾é¡µ |
| | | removeContinuityTab(targetName) { |
| | | const tabs = this.continuityTabs; |
| | | let activeName = this.activeContinuityTab; |
| | | |
| | | if (activeName === targetName) { |
| | | tabs.forEach((tab, index) => { |
| | | if (tab.name === targetName) { |
| | | const nextTab = tabs[index + 1] || tabs[index - 1]; |
| | | if (nextTab) { |
| | | activeName = nextTab.name; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | this.activeContinuityTab = activeName; |
| | | this.continuityTabs = tabs.filter((tab) => tab.name !== targetName); |
| | | }, |
| | | |
| | | // å¤çæ ç¾é¡µç¹å» |
| | | handleTabClick(tab) { |
| | | this.activeContinuityTab = tab.name; |
| | | }, |
| | | |
| | | // 计ç®è·ç¦»ä¸æ¬¡æå¡è¿æå¤å°å¤© |
| | | calculateDaysLeft(nextServiceTime) { |
| | | if (!nextServiceTime) return 0; |
| | | |
| | | const nextTime = new Date(nextServiceTime); |
| | | const now = new Date(); |
| | | const diffTime = nextTime - now; |
| | | const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); |
| | | |
| | | return diffDays > 0 ? diffDays : 0; |
| | | }, |
| | | |
| | | // ä¿åå»¶ç»æ¤çæ ç¾é¡µ |
| | | saveContinuityTab(index) { |
| | | const formRef = this.$refs[`continuityForm${index}`]; |
| | | if (!formRef) return; |
| | | |
| | | // éªè¯åºæ¬è¡¨å |
| | | formRef[0].validate((valid) => { |
| | | if (valid) { |
| | | // éªè¯å»¶ç»é®é¢æ¯å¦å®æ´ |
| | | const problems = this.continuityTabs[index].form.continuityProblems; |
| | | let hasError = false; |
| | | |
| | | problems.forEach((problem, problemIndex) => { |
| | | if (!problem.questionId) { |
| | | hasError = true; |
| | | this.$modal.msgError(`第${problemIndex + 1}个延ç»é®é¢æªéæ©`); |
| | | } |
| | | }); |
| | | |
| | | if (hasError) { |
| | | return false; |
| | | } |
| | | |
| | | this.continuityTabs[index].saving = true; |
| | | |
| | | // æ´æ°æ±æ»ä¿¡æ¯ |
| | | this.updateContinuitySummaryFromTabs(); |
| | | |
| | | // è°ç¨ä¿åAPI |
| | | this.saveContinuityData(); |
| | | } else { |
| | | this.$modal.msgError("请填å宿´ä¿¡æ¯"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // æ´æ°å»¶ç»æ¤çæ±æ»ä¿¡æ¯ |
| | | updateContinuitySummaryFromTabs() { |
| | | if (this.continuityTabs.length === 0) return; |
| | | |
| | | // æ¾å°ææ°çæå¡æ¶é´ |
| | | let latestTime = ""; |
| | | let nextTime = ""; |
| | | let totalProblems = 0; |
| | | |
| | | this.continuityTabs.forEach((tab) => { |
| | | if (tab.form.serviceTime) { |
| | | if ( |
| | | !latestTime || |
| | | new Date(tab.form.serviceTime) > new Date(latestTime) |
| | | ) { |
| | | latestTime = tab.form.serviceTime; |
| | | } |
| | | } |
| | | if (tab.form.nextServiceTime) { |
| | | if ( |
| | | !nextTime || |
| | | new Date(tab.form.nextServiceTime) < new Date(nextTime) |
| | | ) { |
| | | nextTime = tab.form.nextServiceTime; |
| | | } |
| | | } |
| | | |
| | | // ç»è®¡é®é¢æ°é |
| | | totalProblems += tab.form.continuityProblems.length; |
| | | }); |
| | | |
| | | this.continuitySummary.continueCount = this.continuityTabs.length; |
| | | this.continuitySummary.continueTimeNow = latestTime; |
| | | this.continuitySummary.continueTimeNext = nextTime; |
| | | |
| | | // æå»ºå®æ´çå»¶ç»æ¤çæ°æ® |
| | | const continuityData = this.continuityTabs.map((tab) => ({ |
| | | ...tab.form, |
| | | tabTitle: tab.title, |
| | | tabName: tab.name, |
| | | })); |
| | | |
| | | this.continuitySummary.continueContent = JSON.stringify(continuityData); |
| | | this.continuitySummary.totalProblems = totalProblems; |
| | | }, |
| | | |
| | | // ä¿åå»¶ç»æ¤çæ°æ® |
| | | saveContinuityData() { |
| | | const vm = this; |
| | | |
| | | // éªè¯æ¯ä¸ªé®é¢çquestionIdæ¯å¦å·²éæ© |
| | | let hasEmptyQuestion = false; |
| | | this.continuityTabs.forEach((tab, tabIndex) => { |
| | | tab.form.continuityProblems.forEach((problem, problemIndex) => { |
| | | if (!problem.questionId) { |
| | | hasEmptyQuestion = true; |
| | | vm.$modal.msgError( |
| | | `第${tabIndex + 1}个æ ç¾é¡µç第${problemIndex + 1}个é®é¢æªéæ©` |
| | | ); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | if (hasEmptyQuestion) { |
| | | return; |
| | | } |
| | | |
| | | const formData = { |
| | | id: vm.id, |
| | | patid: vm.patid, |
| | | taskid: vm.taskid, |
| | | continueFlag: 2, |
| | | continueCount: vm.continuitySummary.continueCount, |
| | | continueTimeNow: vm.continuitySummary.continueTimeNow, |
| | | continueTimeNext: vm.continuitySummary.continueTimeNext, |
| | | continueContent: vm.continuitySummary.continueContent, |
| | | // å¯ä»¥æ·»å é®å·çæ¡çæ´å |
| | | // questionnaireAnswers: vm.continuityTabs.map((tab) => ({ |
| | | // tabName: tab.name, |
| | | // problems: tab.form.continuityProblems.map((problem) => ({ |
| | | // questionId: problem.questionId, |
| | | // answer: |
| | | // problem.selectedOption || |
| | | // problem.selectedOptions || |
| | | // problem.answer, |
| | | // status: problem.status, |
| | | // description: problem.description, |
| | | // })), |
| | | // })), |
| | | }; |
| | | |
| | | Editsingletaskson(formData) |
| | | .then((res) => { |
| | | if (res.code === 200) { |
| | | vm.$modal.msgSuccess("å»¶ç»æ¤çè®°å½ä¿åæå"); |
| | | // éç½®ä¿åç¶æ |
| | | vm.continuityTabs.forEach((tab) => { |
| | | tab.saving = false; |
| | | }); |
| | | } else { |
| | | vm.$modal.msgError("ä¿å失败"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error("ä¿å失败:", error); |
| | | vm.$modal.msgError("ä¿å失败"); |
| | | vm.continuityTabs.forEach((tab) => { |
| | | tab.saving = false; |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // éç½®å»¶ç»æ¤çæ ç¾é¡µ |
| | | resetContinuityTab(index) { |
| | | this.continuityTabs[index].form = { |
| | | continuityProblems: [], |
| | | careRecord: "", |
| | | dutyNurse: "", |
| | | visitType: "", |
| | | serviceTime: "", |
| | | nextServiceTime: "", |
| | | }; |
| | | this.$refs[`continuityForm${index}`][0].clearValidate(); |
| | | }, |
| | | |
| | | // ä¿åæ£è
ä¿¡æ¯ |
| | | savePatientInfo() { |
| | | this.$refs.patientForm.validate((valid) => { |
| | | if (valid) { |
| | | this.savingPatientInfo = true; |
| | | |
| | | // æ´æ°userformæ°æ® |
| | | const updatedUserform = { |
| | | ...this.userform, |
| | | name: this.patientForm.name, |
| | | sex: this.patientForm.sex, |
| | | age: this.patientForm.age, |
| | | telcode: this.patientForm.telcode, |
| | | placeOfResidence: this.patientForm.address, |
| | | medicalRecordNo: this.patientForm.hospitalNumber, |
| | | }; |
| | | |
| | | alterpatient(updatedUserform) |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æ£è
ä¿¡æ¯ä¿åæå"); |
| | | this.userform = updatedUserform; |
| | | } else { |
| | | this.$modal.msgError("æ£è
ä¿¡æ¯ä¿®æ¹å¤±è´¥"); |
| | | } |
| | | this.savingPatientInfo = false; |
| | | }) |
| | | .catch((error) => { |
| | | console.error("ä¿å失败:", error); |
| | | this.$modal.msgError("ä¿å失败"); |
| | | this.savingPatientInfo = false; |
| | | }); |
| | | } else { |
| | | this.$modal.msgError("请填å宿´ä¿¡æ¯"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // éç½®æ£è
ä¿¡æ¯ |
| | | resetPatientInfo() { |
| | | this.initPatientForm(); |
| | | this.$refs.patientForm.clearValidate(); |
| | | }, |
| | | |
| | | // æ¶é´æ ¼å¼å |
| | | formatTime(time) { |
| | | if (!time) return ""; |
| | | return time.split(" ")[0]; |
| | | }, |
| | | |
| | | // æ ¼å¼åæ¾ç¤ºæ¶é´ |
| | | formatDisplayTime(time) { |
| | | if (!time) return "æªè®¾ç½®"; |
| | | return time.replace(" ", " "); |
| | | }, |
| | | |
| | | // å¼å¸¸å渲æ |
| | | tableRowClassName({ row }) { |
| | | if (row.id == this.id) { |
| | | return "warning-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .ContinuityCarePage { |
| | | margin: 10px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 20px; |
| | | } |
| | | |
| | | .headline { |
| | | font-size: 20px; |
| | | height: 40px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 10px; |
| | | margin-bottom: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | color: #333; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .sub-headline { |
| | | font-size: 16px; |
| | | height: 36px; |
| | | padding-left: 8px; |
| | | margin-bottom: 15px; |
| | | display: flex; |
| | | align-items: center; |
| | | color: #409eff; |
| | | font-weight: 500; |
| | | border-bottom: 2px solid #e4e7ed; |
| | | padding-bottom: 8px; |
| | | |
| | | i { |
| | | margin-right: 8px; |
| | | font-size: 18px; |
| | | } |
| | | } |
| | | |
| | | /* 第ä¸é¨åï¼æå¡åºç¡ä¿¡æ¯ */ |
| | | .basic-info-section { |
| | | margin: 0 10px; |
| | | padding: 20px; |
| | | background: #fff; |
| | | border: 1px solid #dcdfe6; |
| | | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | border-radius: 4px; |
| | | |
| | | .basic-info-container { |
| | | display: flex; |
| | | gap: 20px; |
| | | min-height: 1000px; |
| | | |
| | | @media screen and (max-width: 1200px) { |
| | | flex-direction: column; |
| | | } |
| | | } |
| | | |
| | | .followup-content { |
| | | flex: 1; |
| | | min-width: 0; |
| | | |
| | | &.readonly-content { |
| | | background: #f8f9fa; |
| | | border-radius: 8px; |
| | | padding: 15px; |
| | | border: 1px solid #e4e7ed; |
| | | } |
| | | |
| | | .content-container { |
| | | height: calc(1000px - 60px); |
| | | overflow: hidden; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | ::v-deep .el-tabs { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .el-tabs__content { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | |
| | | .el-tab-pane { |
| | | height: 100%; |
| | | overflow: hidden; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .continuity-history { |
| | | flex: 1; |
| | | min-width: 0; |
| | | background: #fff; |
| | | border-radius: 8px; |
| | | padding: 15px; |
| | | border: 1px solid #e4e7ed; |
| | | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); |
| | | |
| | | .history-content { |
| | | height: calc(1000px - 60px); |
| | | overflow: hidden; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | ::v-deep .el-tabs { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .el-tabs__content { |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | padding: 15px 0; |
| | | |
| | | .continuity-form { |
| | | padding: 0 10px; |
| | | |
| | | .el-form { |
| | | .selected-problems { |
| | | margin-top: 10px; |
| | | padding: 10px; |
| | | background: #f5f7fa; |
| | | border-radius: 4px; |
| | | border: 1px solid #e4e7ed; |
| | | } |
| | | |
| | | .time-tip { |
| | | margin-top: 5px; |
| | | font-size: 12px; |
| | | color: #67c23a; |
| | | font-style: italic; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .patient-info-section { |
| | | margin: 0 10px 20px 10px; |
| | | padding: 20px; |
| | | background: #fff; |
| | | border: 1px solid #dcdfe6; |
| | | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | border-radius: 4px; |
| | | |
| | | .patient-info-form { |
| | | .continuity-summary { |
| | | padding: 15px; |
| | | background: #ddf0f8; |
| | | border-radius: 8px; |
| | | border: 1px solid #b3e0f2; |
| | | |
| | | .summary-item { |
| | | display: inline-block; |
| | | margin-right: 30px; |
| | | margin-bottom: 8px; |
| | | |
| | | .label { |
| | | font-weight: 500; |
| | | color: #333; |
| | | } |
| | | |
| | | .value { |
| | | color: #409eff; |
| | | font-weight: 500; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* å
±äº«æ ·å¼ */ |
| | | .CONTENT { |
| | | padding: 10px; |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .title { |
| | | font-size: 18px; |
| | | font-weight: bold; |
| | | margin-bottom: 20px; |
| | | text-align: center; |
| | | color: #333; |
| | | } |
| | | } |
| | | |
| | | .preview-left { |
| | | margin: 10px; |
| | | padding: 20px; |
| | | border: 1px solid #dcdfe6; |
| | | border-radius: 4px; |
| | | max-height: 800px; |
| | | overflow-y: auto; |
| | | background: #fff; |
| | | flex: 1; |
| | | |
| | | .topic-dev { |
| | | margin-bottom: 20px; |
| | | font-size: 16px; |
| | | |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | font-weight: 500; |
| | | color: #333; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .scriptTopic-dev { |
| | | padding: 15px; |
| | | border-radius: 4px; |
| | | background: #fafafa; |
| | | border: 1px solid #e4e7ed; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .scriptTopic-isabnormal { |
| | | padding: 15px; |
| | | border-radius: 4px; |
| | | background: #fff5f5; |
| | | border: 1px solid #f56c6c; |
| | | color: #f56c6c; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .scriptTopic-warning { |
| | | padding: 15px; |
| | | border-radius: 4px; |
| | | background: #fff9e6; |
| | | border: 1px solid #e6a23c; |
| | | color: #e6a23c; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .red-star { |
| | | ::v-deep.el-radio__label { |
| | | position: relative; |
| | | padding-right: 10px; |
| | | } |
| | | |
| | | ::v-deep.el-radio__label::after { |
| | | content: "*"; |
| | | color: #f56c6c; |
| | | position: absolute; |
| | | right: -5px; |
| | | top: 0; |
| | | } |
| | | } |
| | | |
| | | .yellow-star { |
| | | ::v-deep.el-radio__label { |
| | | position: relative; |
| | | padding-right: 10px; |
| | | } |
| | | |
| | | ::v-deep.el-radio__label::after { |
| | | content: "*"; |
| | | color: #e6a23c; |
| | | position: absolute; |
| | | right: -5px; |
| | | top: 0; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | |
| | | .borderdiv { |
| | | height: 100%; |
| | | padding: 10px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .title { |
| | | font-size: 18px; |
| | | font-weight: bold; |
| | | margin-bottom: 20px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .voice-audio { |
| | | display: flex; |
| | | align-items: center; |
| | | color: #59a0f0; |
| | | margin-bottom: 20px; |
| | | padding: 10px; |
| | | background: #f5f7fa; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .preview-left { |
| | | flex: 1; |
| | | margin: 0; |
| | | |
| | | .leftside { |
| | | margin: 15px 0; |
| | | |
| | | span { |
| | | display: inline-block; |
| | | padding: 8px 12px; |
| | | background: #409eff; |
| | | color: #fff; |
| | | border-radius: 8px; |
| | | max-width: 80%; |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .offside { |
| | | display: flex; |
| | | flex-direction: row-reverse; |
| | | margin: 15px 0; |
| | | |
| | | .offside-value { |
| | | padding: 8px 12px; |
| | | background: #67c23a; |
| | | color: #fff; |
| | | border-radius: 8px; |
| | | max-width: 80%; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* ååºå¼è®¾è®¡ */ |
| | | @media (max-width: 768px) { |
| | | .ContinuityCarePage { |
| | | margin: 5px; |
| | | gap: 10px; |
| | | } |
| | | |
| | | .basic-info-section, |
| | | .patient-info-section { |
| | | margin: 0 5px; |
| | | padding: 10px; |
| | | } |
| | | |
| | | .basic-info-container { |
| | | gap: 10px !important; |
| | | } |
| | | |
| | | .patient-info-form { |
| | | .el-row { |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .el-col { |
| | | width: 100% !important; |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | |
| | | .preview-left { |
| | | margin: 5px; |
| | | padding: 10px; |
| | | } |
| | | } |
| | | /* é®é¢éæ©å¨é¢æ¿ */ |
| | | .question-selector-panel { |
| | | margin-bottom: 20px; |
| | | padding: 15px; |
| | | background: #f8f9fa; |
| | | border: 1px solid #e4e7ed; |
| | | border-radius: 8px; |
| | | |
| | | .selector-header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 15px; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #e4e7ed; |
| | | |
| | | span { |
| | | font-weight: 500; |
| | | color: #333; |
| | | } |
| | | } |
| | | |
| | | .question-list { |
| | | max-height: 200px; |
| | | overflow-y: auto; |
| | | padding-right: 10px; |
| | | |
| | | .question-item { |
| | | margin-bottom: 10px; |
| | | padding: 8px 12px; |
| | | background: #fff; |
| | | border-radius: 6px; |
| | | border: 1px solid #e4e7ed; |
| | | transition: all 0.3s; |
| | | |
| | | &:hover { |
| | | border-color: #409eff; |
| | | background: #f0f7ff; |
| | | } |
| | | |
| | | .question-content { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | |
| | | .question-index { |
| | | font-weight: 600; |
| | | color: #409eff; |
| | | min-width: 30px; |
| | | } |
| | | |
| | | .question-text { |
| | | flex: 1; |
| | | line-height: 1.5; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* å»¶ç»é®é¢è¡¨å */ |
| | | .continuity-problems-form { |
| | | .problems-header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 15px; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #e4e7ed; |
| | | |
| | | span { |
| | | font-weight: 500; |
| | | color: #333; |
| | | } |
| | | } |
| | | |
| | | .problems-list { |
| | | .problem-item { |
| | | margin-bottom: 20px; |
| | | padding: 15px; |
| | | background: #f8f9fa; |
| | | border-radius: 8px; |
| | | border: 1px solid #e4e7ed; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .problem-content { |
| | | .problem-meta { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 15px; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px dashed #e4e7ed; |
| | | |
| | | .problem-index { |
| | | font-weight: 500; |
| | | color: #409eff; |
| | | min-width: 80px; |
| | | } |
| | | } |
| | | |
| | | .problem-detail { |
| | | .detail-row { |
| | | display: flex; |
| | | align-items: flex-start; |
| | | margin-bottom: 10px; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .detail-label { |
| | | font-weight: 500; |
| | | color: #666; |
| | | min-width: 100px; |
| | | line-height: 32px; |
| | | } |
| | | |
| | | .detail-value { |
| | | flex: 1; |
| | | line-height: 1.5; |
| | | color: #333; |
| | | padding: 5px 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .empty-problems { |
| | | text-align: center; |
| | | padding: 30px 0; |
| | | background: #fafafa; |
| | | border-radius: 8px; |
| | | border: 1px dashed #e4e7ed; |
| | | } |
| | | } |
| | | /* å»¶ç»é®é¢åè¡¨å®¹å¨ - æ·»å æ»å¨ */ |
| | | .problems-list-container { |
| | | max-height: 400px; /* æ§å¶æå¤§é«åº¦ */ |
| | | overflow-y: auto; |
| | | padding-right: 10px; |
| | | margin-bottom: 15px; |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 6px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | background: #f1f1f1; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | background: #c1c1c1; |
| | | border-radius: 3px; |
| | | |
| | | &:hover { |
| | | background: #a8a8a8; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* é®å·å¼é®é¢å±ç¤º */ |
| | | .question-display-area { |
| | | margin: 15px 0; |
| | | padding: 15px; |
| | | background: #fff; |
| | | border-radius: 8px; |
| | | border: 1px solid #e4e7ed; |
| | | |
| | | .question-item-render { |
| | | .question-text { |
| | | margin-bottom: 15px; |
| | | font-size: 14px; |
| | | line-height: 1.5; |
| | | color: #333; |
| | | |
| | | strong { |
| | | color: #409eff; |
| | | margin-right: 5px; |
| | | } |
| | | |
| | | span { |
| | | color: #666; |
| | | } |
| | | } |
| | | |
| | | .question-options { |
| | | margin-left: 20px; |
| | | |
| | | .el-radio, |
| | | .el-checkbox { |
| | | display: block; |
| | | margin-bottom: 8px; |
| | | margin-right: 20px; |
| | | } |
| | | } |
| | | |
| | | .append-input { |
| | | margin-left: 20px; |
| | | margin-top: 10px; |
| | | } |
| | | } |
| | | |
| | | .no-question-data { |
| | | text-align: center; |
| | | color: #999; |
| | | padding: 20px; |
| | | font-style: italic; |
| | | } |
| | | } |
| | | |
| | | /* è°æ´é®é¢è¯¦æ
å¸å± */ |
| | | .problem-detail { |
| | | margin-top: 5px; |
| | | padding-top: 5px; |
| | | padding-bottom: 20px; |
| | | margin-bottom: 10px; |
| | | border-bottom: 1px dashed #6e9af4; |
| | | |
| | | .detail-row { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 15px; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .detail-label { |
| | | font-weight: 500; |
| | | color: #666; |
| | | min-width: 80px; |
| | | white-space: nowrap; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* ååºå¼è°æ´ */ |
| | | @media (max-width: 768px) { |
| | | .problems-list-container { |
| | | max-height: 300px; |
| | | } |
| | | |
| | | .problem-detail { |
| | | .detail-row { |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | |
| | | .detail-label { |
| | | margin-bottom: 5px; |
| | | min-width: auto; |
| | | } |
| | | |
| | | .el-select, |
| | | .el-date-picker { |
| | | width: 100% !important; |
| | | margin: 5px 0 !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /* ååºå¼è°æ´ */ |
| | | @media (max-width: 768px) { |
| | | .question-selector-panel { |
| | | padding: 10px; |
| | | |
| | | .question-list { |
| | | .question-item { |
| | | padding: 6px 8px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .continuity-problems-form { |
| | | .problems-list { |
| | | .problem-item { |
| | | padding: 10px; |
| | | |
| | | .problem-content { |
| | | .problem-meta { |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | |
| | | .el-select { |
| | | width: 100% !important; |
| | | margin: 10px 0; |
| | | } |
| | | } |
| | | |
| | | .problem-detail { |
| | | .detail-row { |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | |
| | | .detail-label { |
| | | margin-bottom: 5px; |
| | | min-width: auto; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /* æ»å¨æ¡ç¾å */ |
| | | .preview-left, |
| | | .history-content .el-tabs__content, |
| | | .content-container .el-tabs__content { |
| | | &::-webkit-scrollbar { |
| | | width: 6px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | background: #f1f1f1; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | background: #c1c1c1; |
| | | border-radius: 3px; |
| | | |
| | | &:hover { |
| | | background: #a8a8a8; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <!-- <div class="leftvlue" style="margin-bottom: 20px"> |
| | | <el-row :gutter="10"> |
| | | <el-col :span="2.5" v-for="(item, index) in cardlist" :key="index"> |
| | | <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=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ item.value ? item.value : 0 }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="ysfleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <span>表åå·²åé</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ yfsvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2.5"> |
| | | <div class="errleftvlue"> |
| | | <el-card shadow="hover"> |
| | | <div style="padding: 8px"> |
| | | <span>å¼å¸¸</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ ycvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2.5" v-if="orgname == 'çç«åå¾·ç¿ èé¢åº'"> |
| | | <div class="jgleftvlue"> |
| | | <el-card shadow="hover "> |
| | | <div style="padding: 8px"> |
| | | <span>è¦å</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ jgvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> --> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-form |
| | | :model="topqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="ä»»å¡åç§°"> |
| | | <el-input |
| | | v-model="topqueryParams.taskName" |
| | | placeholder="è¯·éæ©ä»»å¡åç§°" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="åºé¢æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åºé访æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRangefs" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ£è
å§å" prop="sendname"> |
| | | <el-input |
| | | v-model="topqueryParams.sendname" |
| | | placeholder="请è¾å
¥æ£è
å§å" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è¯æåç§°" prop="leavediagname"> |
| | | <el-input |
| | | v-model="topqueryParams.leavediagname" |
| | | placeholder="请è¾å
¥è¯æåç§°" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é访人å" prop="updateBy"> |
| | | <el-input |
| | | v-model="topqueryParams.updateBy" |
| | | placeholder="请è¾å
¥é访人å" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="主治å»ç" prop="drname"> |
| | | <el-input |
| | | v-model="topqueryParams.drname" |
| | | placeholder="请è¾å
¥ä¸»æ²»å»ç" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="ç»ç®¡å»ç" prop="managementDoctor"> |
| | | <el-input |
| | | v-model="topqueryParams.managementDoctor" |
| | | placeholder="请è¾å
¥ä¸»æ²»å»ç" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="æ¥æéå¶" prop="status"> |
| | | <el-select v-model="endOut" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in endOuts" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <el-form-item label="æ£è
èå´" prop="status"> |
| | | <el-cascader |
| | | v-model="topqueryParams.scopetype" |
| | | placeholder="é»è®¤å
¨é¨" |
| | | :options="sourcetype" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | @change="handleChange" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="ä»»å¡ç¶æ" prop="status"> |
| | | <el-select v-model="topqueryParams.sendstate" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="æåºæ¹å¼" prop="status"> |
| | | <el-select v-model="topqueryParams.sort" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in topicoptionssort" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery(1)" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-divider></el-divider> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-warning-outline" |
| | | size="medium" |
| | | @click="toleadExport(1)" |
| | | >æ§è¡å¤±è´¥</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-warning" |
| | | size="medium" |
| | | @click="toleadExport(2)" |
| | | >ç»æå¼å¸¸</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | ref="userform" |
| | | :data="userList" |
| | | :row-class-name="tableRowClassName" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | fixed |
| | | width="150" |
| | | show-overflow-tooltip |
| | | align="center" |
| | | key="taskName" |
| | | prop="taskName" |
| | | /> |
| | | <!-- <el-table-column label="åºå·" fixed align="center" key="id" prop="id" /> --> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | align="center" |
| | | key="sendname" |
| | | prop="sendname" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click=" |
| | | gettoken360(scope.row.sfzh, scope.row.drcode, scope.row.drname) |
| | | " |
| | | ><span class="button-textsc">{{ |
| | | scope.row.sendname |
| | | }}</span></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è¯æåç§°" |
| | | align="center" |
| | | key="leavediagname" |
| | | prop="leavediagname" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å»¶ç»æ¤ç次æ°" |
| | | align="center" |
| | | key="continueCount" |
| | | prop="continueCount" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ææ°å»¶ç»æ¤çæ¶é´" |
| | | sortable |
| | | align="center" |
| | | prop="finishtime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.continueTimeNext) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="䏿¬¡å»¶ç»æ¤çæ¶é´" |
| | | sortable |
| | | align="center" |
| | | prop="finishtime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.continueTimeNow) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ä»»å¡ç¶æ" |
| | | align="center" |
| | | key="sendstate" |
| | | prop="sendstate" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | :content="scope.row.remark" |
| | | placement="top-start" |
| | | > |
| | | <div v-if="scope.row.sendstate == 1"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >表åå·²é¢å</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 2"> |
| | | <el-tag type="primary" :disable-transitions="false" |
| | | >å¾
é访</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 3"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >表åå·²åé</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 4"> |
| | | <el-tag type="info" :disable-transitions="false">䏿§è¡</el-tag> |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 5"> |
| | | <el-tag type="danger" :disable-transitions="false" |
| | | >åé失败</el-tag |
| | | > |
| | | </div> |
| | | <div v-if="scope.row.sendstate == 6"> |
| | | <el-tag type="success" :disable-transitions="false" |
| | | >已宿</el-tag |
| | | > |
| | | </div> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ä»»å¡å¼å¸¸è¯´æ" |
| | | width="120" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" --> |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="å¤çæè§" |
| | | align="center" |
| | | key="suggest" |
| | | prop="suggest" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_suggest" |
| | | :value="scope.row.suggest" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="馿¬¡éè®¿å®ææ¶é´" |
| | | sortable |
| | | align="center" |
| | | prop="finishtime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.finishtime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åºé¢æ¥æ" |
| | | width="200" |
| | | align="center" |
| | | key="endtime" |
| | | prop="endtime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.endtime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | label="åºéè®¿æ¥æ" |
| | | width="200" |
| | | align="center" |
| | | key="longSendTime" |
| | | prop="longSendTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.longSendTime) }}</span> |
| | | </template></el-table-column |
| | | > |
| | | <el-table-column |
| | | label="主治å»ç" |
| | | width="120" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="é访人å" |
| | | align="center" |
| | | key="updateBy" |
| | | prop="updateBy" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | v-if="orgname != '丽水å¸ä¸å»é¢'" |
| | | label="ç»ç®¡å»ç" |
| | | align="center" |
| | | key="managementDoctor" |
| | | prop="managementDoctor" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="åºé¢å¤©æ°" |
| | | width="120" |
| | | align="center" |
| | | key="endDay" |
| | | prop="endDay" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.endDay ? scope.row.endDay + "天" : "" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="身份è¯å·ç " |
| | | width="200" |
| | | align="center" |
| | | key="sfzh" |
| | | prop="sfzh" |
| | | /> |
| | | <el-table-column |
| | | label="èç³»çµè¯" |
| | | width="200" |
| | | align="center" |
| | | key="phone" |
| | | prop="phone" |
| | | /> |
| | | <el-table-column |
| | | label="责任æ¤å£«" |
| | | width="120" |
| | | align="center" |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="ç§å®¤" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç
åº" |
| | | align="center" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="åºé¢é访模æ¿åç§°" |
| | | align="center" |
| | | key="templatename" |
| | | prop="templatename" |
| | | width="200" |
| | | /> |
| | | <el-table-column |
| | | label="任塿§è¡æ¹å¼" |
| | | align="center" |
| | | key="preachform" |
| | | prop="preachform" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.preachform">{{ item }}ã </span> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column |
| | | label="ä»»å¡åéæµç¨" |
| | | align="center" |
| | | key="serviceSubtaskRecordList" |
| | | prop="serviceSubtaskRecordList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.serviceSubtaskRecordList" |
| | | >{{ item.remark }}ã |
| | | </span> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="ä»»å¡ç»æè¯´æ" |
| | | width="220" |
| | | align="center" |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tooltip |
| | | :content="scope.row.remark" |
| | | placement="top" |
| | | effect="dark" |
| | | > |
| | | <el-tag |
| | | type="warning" |
| | | v-if="scope.row.sendstate != 5 && scope.row.sendstate != 4" |
| | | >{{ scope.row.remark }}</el-tag |
| | | > |
| | | <el-tag type="warning" v-else>{{ scope.row.remark }}</el-tag> |
| | | </el-tooltip> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | fixed="right" |
| | | width="120" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button size="medium" type="text" @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | ><i class="el-icon-s-order"></i>æ¥ç详æ
</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="topqueryParams.pageNum" |
| | | :limit.sync="topqueryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-row> |
| | | <!-- 满æåº¦å¼¹æ¡ --> |
| | | <el-dialog |
| | | title="é访满æåº¦è¯å" |
| | | :visible.sync="scoreDialogVisible" |
| | | width="80%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-table :data="selectedRows" border style="width: 100%"> |
| | | <el-table-column |
| | | label="å§å" |
| | | width="100" |
| | | align="center" |
| | | prop="sendname" |
| | | /> |
| | | <el-table-column |
| | | label="ä»»å¡åç§°" |
| | | width="180" |
| | | align="center" |
| | | prop="taskName" |
| | | /> |
| | | <!-- æ°å¢è¯åå --> |
| | | <el-table-column |
| | | label="ç宿§(20)" |
| | | align="center" |
| | | key="authenticity" |
| | | prop="authenticity" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.authenticity" |
| | | :min="0" |
| | | :max="20" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ä¸å¨å
宿(20)" |
| | | align="center" |
| | | key="weekFinish" |
| | | prop="weekFinish" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.weekFinish" |
| | | :min="0" |
| | | :max="20" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è§èæ§(10)" |
| | | align="center" |
| | | key="standard" |
| | | prop="standard" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.standard" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="åæ¶æ§(10)" |
| | | align="center" |
| | | key="timeliness" |
| | | prop="timeliness" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.timeliness" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="宣ææ
åµ(10)" |
| | | align="center" |
| | | key="library" |
| | | prop="library" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.library" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç¯å¢æ»¡æåº¦(10)" |
| | | align="center" |
| | | key="environment" |
| | | prop="environment" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.environment" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="å»ç满æåº¦(10)" |
| | | align="center" |
| | | key="doctorSatisfaction" |
| | | prop="doctorSatisfaction" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.doctorSatisfaction" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ¤å£«æ»¡æåº¦(10)" |
| | | align="center" |
| | | key="nurseSatisfaction" |
| | | prop="nurseSatisfaction" |
| | | width="150" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input-number |
| | | v-model="scope.row.nurseSatisfaction" |
| | | :min="0" |
| | | :max="10" |
| | | :step="1" |
| | | size="small" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ»å" |
| | | align="center" |
| | | key="total" |
| | | prop="total" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ calculateTotal(scope.row) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="scoreDialogVisible = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="saveScores">ä¿å</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- æ·»å æä¿®æ¹å½±åéè®¿å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="amendtag ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å" width="100" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ§å«" width="100" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in sextype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å¹´é¾" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="è¿æ»¤å»ç" width="100" prop="filterDrname"> |
| | | <el-input |
| | | v-model="form.filterDrname" |
| | | placeholder="请è¾å
¥å»çå§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="è¿æ»¤åå "> |
| | | <el-input |
| | | v-model="form.notrequiredreason" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥è¿æ»¤åå " |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | title="åéæ¶é´è®¾ç½®" |
| | | :visible.sync="modificationVisible" |
| | | width="45%" |
| | | > |
| | | <div style="margin-bottom: 20px; color: red"> |
| | | ç»ä¸ä¿®æ¹å½å¤©æªåéç任塿¶é´ |
| | | </div> |
| | | |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="120px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="å鿥æ"> |
| | | <el-date-picker |
| | | v-model="ruleForm.value1" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¶é´æ®µ" prop="type"> |
| | | <el-checkbox-group v-model="ruleForm.type"> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="ä¸å" name="type"></el-checkbox> |
| | | <el-checkbox label="æä¸" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value2" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åæ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value3" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æä¸æ¶é´åºé´" required> |
| | | <el-time-picker |
| | | is-range |
| | | v-model="ruleForm.value4" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¶é´" |
| | | end-placeholder="ç»ææ¶é´" |
| | | placeholder="éæ©æ¶é´èå´" |
| | | > |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="modificationVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="modificationVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 忬¡é访 --> |
| | | <el-dialog title="æ£è
忬¡é访" :visible.sync="dialogFormVisible"> |
| | | <el-form ref="zcform" :rules="zcrules" :model="zcform" label-width="80px"> |
| | | <el-form-item label="ä»»å¡åç§°"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.taskName" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£è
åç§°"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.sendname" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¹´é¾"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.age" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç§å®¤"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.deptname" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç
åº"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.leavehospitaldistrictname" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="é访æ¹å¼" prop="resource"> |
| | | <el-radio-group v-model="zcform.resource"> |
| | | <el-radio label="1">æ¬ç
åºé访</el-radio> |
| | | <el-radio label="2">é访ä¸å¿é访</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="å³å»åé"> |
| | | <el-switch v-model="zcform.delivery"></el-switch> |
| | | </el-form-item> --> |
| | | <el-form-item label="åºé¢æ¶é´"> |
| | | <el-input |
| | | style="width: 400px" |
| | | disabled |
| | | v-model="zcform.endtime" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="éè®¿å®ææ¶é´" prop="date1"> |
| | | <el-date-picker |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | v-model="zcform.date1" |
| | | style="width: 100%" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="é访记å½"> |
| | | <el-input type="textarea" v-model="zcform.remark"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="setupsubtask">确认å建æå¡</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | } from "@/api/system/user"; |
| | | import { |
| | | getTaskservelist, |
| | | buidegetTasklist, |
| | | addserviceSubtask, |
| | | query360PatInfo, |
| | | addsatisfaction, |
| | | } from "@/api/AiCentre/index"; |
| | | import { alterpatient, particularpatient } from "@/api/patient/homepage"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import store from "@/store"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "Discharge", |
| | | dicts: ["sys_normal_disable", "sys_user_sex", "sys_yujing", "sys_suggest"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | dialogFormVisible: false, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "æ°å¢å½±åé访", |
| | | // æ¯å¦æ¾ç¤ºä¿®æ¹ãæ·»å å¼¹åºå± |
| | | addalteropen: false, |
| | | // ä¿®æ¹åéæ¶é´å¯¹è¯æ¡ |
| | | modificationVisible: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | dateRangefs: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | ruleForm: { |
| | | type: [], |
| | | }, |
| | | zcform: {}, |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | jgvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | | preachform: "", |
| | | previewVisible: false, //å½±åé访é¢è§å¼¹æ¡ |
| | | radio: "", |
| | | radios: [], |
| | | previewtype: 2, //é¢è§å½±åé访类å |
| | | total: 0, // æ»æ¡æ° |
| | | // 满æåº¦è°æ¥æ°æ® |
| | | scoreDialogVisible: false, |
| | | selectedRows: [], |
| | | |
| | | value: [], |
| | | list: [], |
| | | |
| | | sourcetype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç§å®¤", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "ç
åº", |
| | | children: [], |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "å
¨é¨", |
| | | }, |
| | | ], |
| | | loading: false, |
| | | cardlist: [ |
| | | { |
| | | name: "åºé¢æå¡æ»é", |
| | | value: 0, |
| | | }, |
| | | // { |
| | | // name: "æ£è
è¿æ»¤", |
| | | // value: 0, |
| | | // }, |
| | | { |
| | | name: "éé访", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "åé失败", |
| | | value: 0, |
| | | }, |
| | | { |
| | | name: "å¾
é访", |
| | | value: 0, |
| | | }, |
| | | // { |
| | | // name: "å·²åé", |
| | | // value: 0, |
| | | // }, |
| | | |
| | | // { |
| | | // name: "表åå·²åé", |
| | | // value: 0, |
| | | // }, |
| | | ], |
| | | zcrules: { |
| | | date1: [ |
| | | { required: true, message: "è¯·éæ©é访æ¹å¼", trigger: "change" }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©é访æ¶é´", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | // 表ååæ° |
| | | form: { |
| | | phonenumber: "", |
| | | totagid: "", |
| | | types: "", |
| | | nickName: "", |
| | | qystatus: "", |
| | | btstatus: "", |
| | | }, |
| | | // endOut: 1, |
| | | endOut: localStorage.getItem("orgname") == "丽水å¸ä¸å»é¢" ? 0 : 1, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | endOuts: [ |
| | | { |
| | | value: 0, |
| | | label: "æªæ¢è³å½æ¥æå¡", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "å
¨é¨æå¡", |
| | | }, |
| | | ], |
| | | topicoptionssort: [ |
| | | { |
| | | value: 0, |
| | | label: "åºé¢æ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "åºé¢æ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "åéæ¶é´(æ£åº)", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "åéæ¶é´(ååº)", |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: "åºéè®¿æ¥æ(æ£åº)", |
| | | }, |
| | | { |
| | | value: 8, |
| | | label: "åºéè®¿æ¥æ(ååº)", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sort: localStorage.getItem("orgname") == "丽水å¸ä¸å»é¢" ? 8 : 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) 7åºéè®¿æ¥æ(ååº) åºéè®¿æ¥æ(æ£åº) |
| | | searchscope: 3, |
| | | continueFlag: 2, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }, |
| | | orgname: "", |
| | | propss: { multiple: true }, |
| | | options: [], |
| | | |
| | | topicoptions: [ |
| | | { |
| | | value: null, |
| | | label: "å
¨é¨", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "表åå·²é¢å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "å¾
é访", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "表åå·²åé", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "䏿§è¡", |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: "åé失败", |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: "已宿", |
| | | }, |
| | | ], |
| | | sextype: [ |
| | | { |
| | | value: 1, |
| | | label: "ç·", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "女", |
| | | }, |
| | | ], |
| | | topicoptionsyj: [ |
| | | { |
| | | value: 1, |
| | | label: "å¼å¸¸", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "è¦å", |
| | | }, |
| | | { |
| | | value: 0, |
| | | label: "æ£å¸¸", |
| | | }, |
| | | ], |
| | | url: "http://9.208.2.190:8090/smartor/serviceExternal/query360PatInfo", |
| | | postData: { |
| | | XiaoXiTou: { |
| | | FaSongFCSJC: "ZJHES", |
| | | FaSongJGID: localStorage.getItem("orgid"), |
| | | FaSongJGMC: localStorage.getItem("orgname"), |
| | | FaSongSJ: "2025-01-09Â 17:29:36", |
| | | FaSongXTJC: "SUIFANGXT", |
| | | FaSongXTMC: "é访系ç»", |
| | | XiaoXiID: "5FA92AFB-9833-4608-87C7-F56A654AC171", |
| | | XiaoXiLX: "SC_LC_360STCX", |
| | | XiaoXiMC: "360 è§å¾æ¥è¯¢", |
| | | ZuHuID: localStorage.getItem("ZuHuID"), |
| | | ZuHuMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YeWuXX: { |
| | | BingRenXX: { |
| | | ZhengJianHM: "", |
| | | ZhengJianLXDM: "01", |
| | | ZhengJianLXMC: "å±
æ°èº«ä»½è¯", |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | }, |
| | | YongHuXX: { |
| | | XiTongID: "SUIFANGXT", |
| | | XiTongMC: "é访系ç»", |
| | | YongHuID: localStorage.getItem("YongHuID"), |
| | | YongHuXM: localStorage.getItem("YongHuXM"), |
| | | ZuZhiJGID: localStorage.getItem("orgid"), |
| | | ZuZhiJGMC: localStorage.getItem("orgname"), |
| | | idp: "lyra", |
| | | }, |
| | | }, |
| | | }, |
| | | amendtag: false, |
| | | errtype: "", |
| | | leavehospitaldistrictcode: "", |
| | | serviceState: [], |
| | | checkboxlist: [], |
| | | // è¡¨åæ ¡éª |
| | | rules: {}, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.serviceState = store.getters.serviceState; |
| | | this.checkboxlist = store.getters.checkboxlist; |
| | | this.errtype = this.$route.query.errtype; |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | this.leavehospitaldistrictcode = |
| | | this.$route.query.leavehospitaldistrictcode; |
| | | this.sourcetype[0].children = store.getters.belongDepts.map((dept) => { |
| | | return { |
| | | label: dept.deptName, |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | this.sourcetype[1].children = store.getters.belongWards.map((dept) => { |
| | | return { |
| | | label: dept.districtName, |
| | | value: dept.districtCode, |
| | | }; |
| | | }); |
| | | if (this.errtype) { |
| | | this.toleadExport(2); |
| | | } else { |
| | | this.getList(1); |
| | | } |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | | activated() { |
| | | this.getList(1); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢é访æå¡å表 */ |
| | | getList(refresh) { |
| | | // é»è®¤å
¨é¨ |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | if (this.endOut == 0) { |
| | | this.topqueryParams.endSendDateTime = this.formatDateToYYYYMMDDHHMMSS( |
| | | this.getEndOfDay() |
| | | ); |
| | | } else { |
| | | // this.topqueryParams.endSendDateTime = null; |
| | | } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | console.log(this.topqueryParams.leavehospitaldistrictcodes, "11"); |
| | | } |
| | | this.loading = true; |
| | | if ( |
| | | this.topqueryParams.leavehospitaldistrictcodes[0] && |
| | | this.topqueryParams.leaveldeptcodes[0] |
| | | ) { |
| | | this.topqueryParams.deptOrDistrict = 2; |
| | | } else { |
| | | this.topqueryParams.deptOrDistrict = 1; |
| | | } |
| | | getTaskservelist(this.topqueryParams).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | // this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[1].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.jgvalue = response.rows[0].jg; |
| | | this.cardlist[2].value = response.rows[0].fssb; |
| | | this.cardlist[3].value = response.rows[0].dsf; |
| | | // this.cardlist[4].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // æ¥æ¾id对åºç对象 |
| | | const item = this.checkboxlist.find( |
| | | (item) => item.value == value |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿ånull |
| | | return item ? item.label : null; |
| | | }); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | // æ¶é´ |
| | | getEndOfDay() { |
| | | const date = new Date(); // å建ä¸ä¸ªè¡¨ç¤ºå½åæ¶é´çDate对象 |
| | | date.setHours(23, 59, 59, 0); // å°æ¶é´è®¾ç½®ä¸º23:59:59.000 |
| | | return date; |
| | | }, |
| | | formatDateToYYYYMMDDHHMMSS(date) { |
| | | const year = date.getFullYear(); |
| | | const month = String(date.getMonth() + 1).padStart(2, "0"); // æä»½è¡¥é¶ |
| | | const day = String(date.getDate()).padStart(2, "0"); // æ¥æè¡¥é¶ |
| | | const hours = String(date.getHours()).padStart(2, "0"); |
| | | const minutes = String(date.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(date.getSeconds()).padStart(2, "0"); |
| | | |
| | | return `${year}-${month}-${day}`; |
| | | }, |
| | | affiliation() { |
| | | this.topqueryParams.managementDoctorCode = store.getters.hisUserId; |
| | | this.getList(1); |
| | | }, |
| | | onthatday() { |
| | | this.topqueryParams.startSendDateTime = this.getCurrentDate(); |
| | | this.topqueryParams.endSendDateTime = this.getCurrentDate(); |
| | | this.getList(1); |
| | | }, |
| | | getCurrentDate() { |
| | | const now = new Date(); |
| | | return now.toISOString().slice(0, 10); // æªåå10个å符ï¼å³ YYYY-MM-DD |
| | | }, |
| | | buidegetTasklist(type) { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | // æ¥åå¼å¸¸è·³è½¬ |
| | | if (this.errtype) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push( |
| | | this.leavehospitaldistrictcode |
| | | ); |
| | | } |
| | | let obj = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | leavehospitaldistrictcodes: |
| | | this.topqueryParams.leavehospitaldistrictcodes, |
| | | sendstates: [2, 3], |
| | | leaveldeptcodes: this.topqueryParams.leaveldeptcodes, |
| | | }; |
| | | buidegetTasklist(obj).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.jgvalue = response.rows[0].jg; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | | // this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | | if (item.endtime) { |
| | | item.endDay = this.daysBetween(item.endtime); |
| | | } |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // æ¥æ¾id对åºç对象 |
| | | const item = this.checkboxlist.find( |
| | | (item) => item.value == value |
| | | ); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿ånull |
| | | return item ? item.label : null; |
| | | }); |
| | | } |
| | | }); |
| | | this.total = response.total; |
| | | }); |
| | | }, |
| | | // æ¥çé¨è¯é访详æ
|
| | | Referencequestion(row) { |
| | | this.previewVisible = true; |
| | | }, |
| | | // æ·»å å¼¹æ¡æç´¢ |
| | | remoteMethod(query) { |
| | | if (query !== "") { |
| | | this.loading = true; |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | this.options = this.list.filter((item) => { |
| | | return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1; |
| | | }); |
| | | }, 200); |
| | | } else { |
| | | this.options = []; |
| | | } |
| | | }, |
| | | // å½±åéè®¿ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼') |
| | | .then(function () { |
| | | return changeUserStatus(row.userId, row.status); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery(refresh) { |
| | | if (this.topqueryParams.searchscope == 3) { |
| | | this.topqueryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.topqueryParams.leavehospitaldistrictcodes = |
| | | store.getters.belongWards.map((obj) => obj.districtCode); |
| | | } |
| | | this.topqueryParams.pageNum = 1; |
| | | this.topqueryParams.startOutHospTime = this.dateRange[0]; |
| | | this.topqueryParams.endOutHospTime = this.dateRange[1]; |
| | | this.topqueryParams.startSendDateTime = this.dateRangefs[0]; |
| | | this.topqueryParams.endSendDateTime = this.dateRangefs[1]; |
| | | this.getList(refresh); |
| | | }, |
| | | // æ£è
èå´å¤ç |
| | | handleChange(value) { |
| | | let type = value[0]; |
| | | let code = value.slice(-1)[0]; |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | if (type == 1) { |
| | | this.topqueryParams.leaveldeptcodes.push(code); |
| | | this.topqueryParams.leavehospitaldistrictcodes = []; |
| | | this.topqueryParams.searchscope = 1; |
| | | } else if (type == 2) { |
| | | this.topqueryParams.leavehospitaldistrictcodes.push(code); |
| | | this.topqueryParams.leaveldeptcodes = []; |
| | | this.topqueryParams.searchscope = 2; |
| | | } else { |
| | | this.topqueryParams.searchscope = 3; |
| | | } |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.dateRangefs = []; |
| | | this.topqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sort: 2, //0 åºé¢æ¶é´(æ£åº) 1 åºé¢æ¶é´(ååº) 2 åéæ¶é´(æ£åº) 3 åéæ¶é´(ååº) |
| | | searchscope: 3, |
| | | continueFlag: 2, |
| | | visitCount: 1, |
| | | scopetype: [], |
| | | leaveldeptcodes: [], |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.handleQuery(1); |
| | | }, |
| | | handleSelectionChange(rows) { |
| | | this.selectedRows = rows.map((row) => { |
| | | // åå§åè¯ååæ®µ |
| | | return { |
| | | ...row, |
| | | authenticity: row.authenticity || 0, |
| | | weekFinish: row.weekFinish || 0, |
| | | standard: row.standard || 0, |
| | | timeliness: row.timeliness || 0, |
| | | library: row.library || 0, |
| | | environment: row.environment || 0, |
| | | doctorSatisfaction: row.doctorSatisfaction || 0, |
| | | nurseSatisfaction: row.nurseSatisfaction || 0, |
| | | }; |
| | | }); |
| | | |
| | | if (this.selectedRows.length > 0) { |
| | | this.multiple = false; |
| | | } else { |
| | | this.multiple = true; |
| | | } |
| | | }, |
| | | |
| | | // è®¡ç®æ»å |
| | | calculateTotal(row) { |
| | | return ( |
| | | (row.authenticity || 0) + |
| | | (row.weekFinish || 0) + |
| | | (row.standard || 0) + |
| | | (row.timeliness || 0) + |
| | | (row.library || 0) + |
| | | (row.environment || 0) + |
| | | (row.doctorSatisfaction || 0) + |
| | | (row.nurseSatisfaction || 0) |
| | | ); |
| | | }, |
| | | |
| | | // ä¿åè¯å |
| | | saveScores() { |
| | | this.selectedRows.forEach((item) => { |
| | | item.createBy = null; |
| | | item.patName = item.sendname; |
| | | item.hospitaldistrictname = item.leavehospitaldistrictname; |
| | | }); |
| | | addsatisfaction(this.selectedRows).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message.success("è¯åä¿åæå"); |
| | | this.scoreDialogVisible = false; |
| | | this.selectedRows = []; |
| | | this.$refs.userform.clearSelection(); |
| | | } else { |
| | | this.$modal.msgWarning("è¯åä¿å失败"); |
| | | this.scoreDialogVisible = false; |
| | | this.selectedRows = []; |
| | | this.$refs.userform.clearSelection(); |
| | | } |
| | | }); |
| | | // è¿éå¯ä»¥æ·»å ä¿åé»è¾ï¼å¦è°ç¨APIä¿åè¯å |
| | | }, |
| | | //å é¤é项 |
| | | handleClose(tag) { |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | }, |
| | | //è§¦åæ°å¢è¾å
¥ |
| | | showInput() { |
| | | this.inputVisible = true; |
| | | this.$nextTick((_) => { |
| | | this.$refs.saveTagInput.$refs.input.focus(); |
| | | }); |
| | | }, |
| | | //è·å失å»ç¦ç¹è§¦å |
| | | handleInputConfirm() { |
| | | let inputValue = this.inputValue; |
| | | if (inputValue) { |
| | | this.dynamicTags.push(inputValue); |
| | | } |
| | | this.inputVisible = false; |
| | | this.inputValue = ""; |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.$router.push({ |
| | | path: "/followvisit/QuestionnaireTask", |
| | | query: { |
| | | type: 2, |
| | | serviceType: 2, |
| | | }, |
| | | }); |
| | | }, |
| | | //æ£è
360跳转 |
| | | gettoken360(sfzh, drcode, drname) { |
| | | // this.$modal.msgWarning("360åè½ææªå¼é"); |
| | | |
| | | this.postData.YeWuXX.BingRenXX.ZhengJianHM = sfzh; |
| | | |
| | | query360PatInfo(this.postData).then((res) => { |
| | | if (res.data.url) { |
| | | window.open(res.data.url, "_blank"); |
| | | // this.linkUrl = res.data.url; |
| | | } else { |
| | | this.$modal.msgWarning("360æ¥è¯¢æ ç»æ"); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** éç½®å¯ç æé®æä½ */ |
| | | handleResetPwd(row) { |
| | | this.$prompt('请è¾å
¥"' + row.userName + '"çæ°å¯ç ', "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | closeOnClickModal: false, |
| | | inputPattern: /^.{5,20}$/, |
| | | inputErrorMessage: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | }) |
| | | .then(({ value }) => { |
| | | resetUserPwd(row.userId, value).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æåï¼æ°å¯ç æ¯ï¼" + value); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.Labelchange = false; |
| | | this.reset(); |
| | | }, |
| | | /** æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | this.form.isoperation = 2; |
| | | this.form.notrequiredFlag = 1; |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("æ£è
è¿æ»¤æå"); |
| | | }); |
| | | |
| | | this.reset(); |
| | | this.Labelchange = false; |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // å
¨é¨åæ¢ |
| | | AllStop() { |
| | | this.$modal |
| | | .confirm("æ¯å¦åæ¢å
¨é¨ä»»å¡ï¼") |
| | | .then(function () { |
| | | return console.log("忢æå"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgWarning("忢æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // å
¨é¨å¼å§ |
| | | AllStarted() { |
| | | this.$modal |
| | | .confirm("æ¯å¦å¼å¯å
¨é¨ä»»å¡ï¼") |
| | | .then(function () { |
| | | return console.log("å¼å¯æå"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("å¼å¯æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // ä»»å¡éç½® |
| | | TaskReset() { |
| | | this.$modal |
| | | .confirm("æ¯å¦éç½®éä¸çä»»å¡é¡¹ï¼") |
| | | .then(function () { |
| | | return console.log("é䏿å"); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("éç½®æå"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 设置åéæ¶é´ |
| | | Sendtimesetting() { |
| | | this.modificationVisible = true; |
| | | }, |
| | | // 跳转详æ
页 |
| | | Seedetails(row) { |
| | | let type = ""; |
| | | console.log(row, "rwo"); |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/ContinueFordetails/", |
| | | query: { |
| | | taskid: row.taskid, |
| | | patid: row.patid, |
| | | id: row.id, |
| | | Voicetype: type, |
| | | visitCount: this.topqueryParams.visitCount, |
| | | }, |
| | | }); |
| | | }, |
| | | // 忬¡é访 |
| | | followupvisit(row) { |
| | | this.zcform = row; |
| | | this.zcform.endtime = this.formatTime(this.zcform.endtime); |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | onSubmit() {}, |
| | | // æåæå¡ |
| | | handlestop(row) { |
| | | let objson = row; |
| | | this.$modal |
| | | .confirm( |
| | | 'æ¯å¦ç¡®è®¤æåä»»å¡å称为"' + |
| | | row.taskName + |
| | | 'æ£è
å称为"' + |
| | | row.sendname + |
| | | '"çæ°æ®é¡¹ï¼' |
| | | ) |
| | | .then(() => { |
| | | getTaskservelist({ |
| | | patid: row.patid, |
| | | taskid: row.taskid, |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | objson.sendstate = 4; |
| | | objson.remark = "æå¡æå"; |
| | | Editsingletaskson(objson).then((res) => { |
| | | if (res.code) { |
| | | this.$modal.msgSuccess("è®°å½æå"); |
| | | this.getList(1); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // æ£è
è¿æ»¤è§¦å |
| | | handleUpdate(row) { |
| | | particularpatient(row.patid).then((response) => { |
| | | this.form = response.data; |
| | | this.form.filterDrname = store.getters.nickName; |
| | | }); |
| | | this.amendtag = true; |
| | | this.Labelchange = true; |
| | | }, |
| | | // ä¾¿æ·æé® |
| | | toleadExport(too) { |
| | | if (too == 1) { |
| | | this.topqueryParams.sendstate = 4; |
| | | this.topqueryParams.excep = null; |
| | | } else if (too == 2) { |
| | | this.topqueryParams.excep = 1; |
| | | } |
| | | this.handleQuery(); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.topqueryParams.pageNum = null; |
| | | this.topqueryParams.pageSize = null; |
| | | this.download( |
| | | "smartor/serviceSubtask/patItemExport", |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | // å¼å¸¸å渲æ |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (row.excep == 1) { |
| | | return "warning-row"; |
| | | } else if (row.excep == 2) { |
| | | return "remind-row"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // åå»ºåæ¬¡é访æå¡ |
| | | setupsubtask() { |
| | | this.$refs["zcform"].validate((valid) => { |
| | | if (valid) { |
| | | this.zcform.remark = |
| | | this.zcform.remark + "ã" + this.getCurrentTime() + "ã"; |
| | | let form = structuredClone(this.zcform); |
| | | form.longSendTime = this.formatTime(form.date1); |
| | | form.finishtime = ""; |
| | | if (form.resource) { |
| | | if (form.resource == 2) { |
| | | form.serviceType = 13; |
| | | } |
| | | } else { |
| | | this.$modal.msgError("æªéæ©é访æ¹å¼"); |
| | | } |
| | | form.id = null; |
| | | form.sendstate = 2; |
| | | form.preachform = form.preachformson; |
| | | form.longTask = 0; |
| | | addserviceSubtask(form).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("å建æå"); |
| | | } else { |
| | | this.$modal.msgError("å建失败"); |
| | | } |
| | | this.dialogFormVisible = false; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | getCurrentTime() { |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, "0"); |
| | | const day = String(now.getDate()).padStart(2, "0"); |
| | | const hours = String(now.getHours()).padStart(2, "0"); |
| | | const minutes = String(now.getMinutes()).padStart(2, "0"); |
| | | const seconds = String(now.getSeconds()).padStart(2, "0"); |
| | | |
| | | return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-button--primary.is-plain { |
| | | color: #ffffff; |
| | | background: #409eff; |
| | | border-color: #4fabe9; |
| | | } |
| | | |
| | | .document { |
| | | // width: 100px; |
| | | height: 50px; |
| | | } |
| | | ::v-deep.el-table .warning-row { |
| | | background: #eec4c4; |
| | | } |
| | | ::v-deep.el-table .remind-row { |
| | | background: #fcf5aa; |
| | | } |
| | | |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | |
| | | .download { |
| | | text-align: center; |
| | | |
| | | .el-upload__tip { |
| | | font-size: 23px; |
| | | } |
| | | |
| | | .el-upload__text { |
| | | font-size: 23px; |
| | | } |
| | | } |
| | | |
| | | .uploading { |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | .button-new-tag { |
| | | margin-left: 10px; |
| | | height: 32px; |
| | | line-height: 30px; |
| | | padding-top: 0; |
| | | padding-bottom: 0; |
| | | } |
| | | |
| | | .input-new-tag { |
| | | width: 90px; |
| | | margin-left: 10px; |
| | | vertical-align: bottom; |
| | | } |
| | | |
| | | .drexamine { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 30px; |
| | | background: #daeaf5; |
| | | |
| | | img { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | |
| | | .qrcode-dialo { |
| | | // text-align: center; |
| | | // display: flex; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.leftvlue .el-card__body { |
| | | background: #f2f8ff; |
| | | color: #324a9b; |
| | | } |
| | | ::v-deep.leftvlue .el-card__body:hover { |
| | | background: #3664d9; |
| | | color: #fff; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | ::v-deep.errleftvlue .el-card__body { |
| | | background: #fdd0d7; |
| | | } |
| | | ::v-deep.errleftvlue .el-card__body:hover { |
| | | background: #f88d96; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | ::v-deep.jgleftvlue .el-card__body:hover { |
| | | background: #f7f075; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | |
| | | ::v-deep.ysfleftvlue .el-card__body { |
| | | background: #d0fdd8; |
| | | } |
| | | ::v-deep.ysfleftvlue .el-card__body:hover { |
| | | background: #0abc54; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | .button-bb { |
| | | font-weight: 500; |
| | | background-color: #2ba05c; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-xq { |
| | | font-weight: 500; |
| | | background-color: #409eff; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-sc { |
| | | font-weight: 500; |
| | | background-color: #b3a21f; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | .button-zx { |
| | | background: #324a9b; |
| | | padding: 5px; |
| | | border-radius: 1px; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | .purple-button { |
| | | background-color: #7e22ce; |
| | | border-color: #7e22ce; |
| | | color: #fff; |
| | | } |
| | | |
| | | .purple-button:hover, |
| | | .purple-button:focus { |
| | | background-color: #9333ea; |
| | | border-color: #9333ea; |
| | | } |
| | | |
| | | .purple-button:active { |
| | | background-color: #6b21a8; |
| | | border-color: #6b21a8; |
| | | } |
| | | .button-textxga { |
| | | color: #de7897; |
| | | } |
| | | .purple-button.is-disabled { |
| | | background-color: #d8b4fe; |
| | | border-color: #d8b4fe; |
| | | opacity: 1; /* ä¿æç¦ç¨ç¶æéæåº¦ */ |
| | | } |
| | | // é项å使¾å¤§ |
| | | // ::v-deep.el-checkbox-group { |
| | | // span { |
| | | // font-size: 24px; |
| | | // } |
| | | // } |
| | | </style> |
| | |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2.5" v-if="orgname == 'çç«åå¾·ç¿ èé¢åº'"> |
| | | <div class="jgleftvlue"> |
| | | <el-card shadow="hover "> |
| | | <div style="padding: 8px"> |
| | | <span>è¦å</span> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | font-size: 18px; |
| | | margin-top: 10px; |
| | | font-weight: 600; |
| | | " |
| | | > |
| | | {{ jgvalue }} |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-row :gutter="20"> |
| | |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-col :span="1.5" v-if="orgname == 'æ¯å®ç²æèªæ²»å¿äººæ°å»é¢'"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-tooltip |
| | |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | jgvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | | preachform: "", |
| | |
| | | value: 1, |
| | | label: "å¼å¸¸", |
| | | }, |
| | | { |
| | | { |
| | | value: 2, |
| | | label: "è¦å", |
| | | }, |
| | |
| | | // this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[1].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.jgvalue = response.rows[0].jg; |
| | | this.cardlist[2].value = response.rows[0].fssb; |
| | | this.cardlist[3].value = response.rows[0].dsf; |
| | | // this.cardlist[4].value = response.rows[0].yfs2; |
| | |
| | | buidegetTasklist(obj).then((response) => { |
| | | this.userList = response.rows[0].serviceSubtaskList; |
| | | this.total = response.total; |
| | | if (refresh) { |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | | // this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | } |
| | | this.cardlist[0].value = |
| | | Number(response.rows[0].wzx) + Number(response.rows[0].ysf); |
| | | this.cardlist[1].value = response.rows[0].wzx; |
| | | this.cardlist[2].value = response.rows[0].ysf; |
| | | this.ycvalue = response.rows[0].yc; |
| | | this.jgvalue = response.rows[0].jg; |
| | | this.cardlist[3].value = response.rows[0].fssb; |
| | | this.cardlist[4].value = response.rows[0].dsf; |
| | | // this.cardlist[5].value = response.rows[0].yfs2; |
| | | this.yfsvalue = response.rows[0].yfs; |
| | | this.loading = false; |
| | | this.userList.forEach((item) => { |
| | | let idArray = null; |
| | |
| | | Seedetails(row) { |
| | | let type = ""; |
| | | console.log(row, "rwo"); |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | if (row.type == 1) { |
| | | type = 1; |
| | | } |
| | | this.$router.push({ |
| | | path: "/followvisit/record/detailpage/", |
| | | query: { |
| | |
| | | } else if (too == 2) { |
| | | this.topqueryParams.excep = 1; |
| | | } |
| | | this.handleQuery(); |
| | | this.handleQuery(1); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | |
| | | background: #f88d96; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | ::v-deep.jgleftvlue .el-card__body:hover { |
| | | background: #f7f075; |
| | | cursor: pointer; /* é¼ æ æ¬æµ®æ¶å为æå½¢ */ |
| | | } |
| | | |
| | | ::v-deep.ysfleftvlue .el-card__body { |
| | | background: #d0fdd8; |
| | |
| | | <!-- 人工å¤ç --> |
| | | <div class="manual-action"> |
| | | <div class="Followuserinfos"> |
| | | <div> |
| | | <!-- 顶鍿ä½åºå --> |
| | | <div class="section-header"> |
| | | <h3><i class="el-icon-s-operation"></i> 人工å¤ç</h3> |
| | | <div class="header-actions"> |
| | | <!-- åºç¡æä½æé®ç» --> |
| | | <div class="action-group basic-actions"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | @click="Editsingletasksonyic('')" |
| | | > |
| | | ä¿ååºç¡ä¿¡æ¯ |
| | | </el-button> |
| | | |
| | | <!-- æ°å¢ï¼å»¶ç»æ¤çæé® --> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | @click="handleContinuationCare" |
| | | v-if="showContinuationCareBtn" |
| | | > |
| | | å»¶ç»æ¤ç |
| | | </el-button> |
| | | |
| | | <el-button |
| | | type="primary" |
| | | round |
| | | @click="sendAgain" |
| | | v-if="form.isVisitAgain != 2" |
| | | > |
| | | 忬¡é访 |
| | | </el-button> |
| | | </div> |
| | | |
| | | <!-- å¼å¸¸ç¶æéæ©å¨ --> |
| | | <div class="action-group tag-selector"> |
| | | <el-select |
| | | v-model="selectedTag" |
| | | placeholder="è¯·éæ©å¼å¸¸ç¶æ" |
| | | clearable |
| | | style="width: 150px; margin-right: 10px" |
| | | > |
| | | <el-option |
| | | v-for="item in tagOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <span style="display: flex; align-items: center"> |
| | | <span |
| | | class="color-indicator" |
| | | :style="{ backgroundColor: item.color }" |
| | | ></span> |
| | | <span>{{ item.label }}</span> |
| | | </span> |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | <!-- å½åéæ©çé¢è²æç¤ºå¨ --> |
| | | <div |
| | | v-if="selectedTag" |
| | | class="color-indicator selected-indicator" |
| | | :style="{ backgroundColor: getSelectedTagColor() }" |
| | | ></div> |
| | | |
| | | <!-- æ 记说ææç¤º --> |
| | | <el-tooltip |
| | | v-if="selectedTag" |
| | | effect="light" |
| | | :content="getSelectedDescription()" |
| | | placement="top" |
| | | > |
| | | <i class="el-icon-info tag-info-icon"></i> |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 表ååºå --> |
| | | <div class="form-content"> |
| | | <el-form |
| | | ref="userform" |
| | | :model="form" |
| | | :rules="userrules" |
| | | label-width="120px" |
| | | label-width="100px" |
| | | > |
| | | <div class="headline"> |
| | | <div>人工å¤ç</div> |
| | | <div style="margin: 0 30px"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | @click="Editsingletasksonyic('')" |
| | | >ä¿ååºç¡ä¿¡æ¯</el-button |
| | | > |
| | | </div> |
| | | <div> |
| | | <el-button |
| | | type="primary" |
| | | round |
| | | v-if="this.form.isVisitAgain != 2" |
| | | @click="sendAgain()" |
| | | >忬¡é访</el-button |
| | | > |
| | | </div> |
| | | <div class="tag-selector-container"> |
| | | <el-select |
| | | v-model="selectedTag" |
| | | placeholder="è¯·éæ©å¼å¸¸ç¶æ" |
| | | clearable |
| | | style="width: 150px; margin-right: 10px" |
| | | > |
| | | <el-option |
| | | v-for="item in tagOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <span style="display: flex; align-items: center"> |
| | | <span |
| | | class="color-indicator" |
| | | :style="{ backgroundColor: item.color }" |
| | | ></span> |
| | | <span>{{ item.label }}</span> |
| | | </span> |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | <!-- å½åéæ©çé¢è²æç¤ºå¨ --> |
| | | <div |
| | | v-if="selectedTag" |
| | | class="color-indicator selected-indicator" |
| | | :style="{ backgroundColor: getSelectedTagColor() }" |
| | | ></div> |
| | | |
| | | <!-- æ 记说ææç¤º --> |
| | | <el-tooltip |
| | | v-if="selectedTag" |
| | | effect="light" |
| | | :content="getSelectedDescription()" |
| | | placement="top" |
| | | > |
| | | <i class="el-icon-info tag-info-icon"></i> |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | <!-- è系信æ¯è¡ --> |
| | | <el-row> |
| | | <el-col :span="14" |
| | | ><el-form-item label="èç³»çµè¯"> |
| | | <el-col :span="14"> |
| | | <el-form-item label="èç³»çµè¯"> |
| | | <el-input |
| | | placeholder="èç³»çµè¯ç¼ºå¤±" |
| | | v-model="userform.telcode" |
| | |
| | | @click="handleCall(userform.telcode, 'tel')" |
| | | :disabled="!isValidPhone(userform.telcode)" |
| | | ></el-button> |
| | | </el-input> </el-form-item |
| | | ></el-col> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- è系人信æ¯è¡ --> |
| | | <el-row> |
| | | <el-col :span="14" |
| | | ><el-form-item label="è系人çµè¯"> |
| | | <el-col :span="14"> |
| | | <el-form-item label="è系人çµè¯"> |
| | | <el-input |
| | | placeholder="è系人çµè¯ç¼ºå¤±" |
| | | v-model="userform.relativetelcode" |
| | |
| | | handleCall(userform.relativetelcode, 'relative') |
| | | " |
| | | :disabled="!isValidPhone(userform.relativetelcode)" |
| | | ></el-button |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="10" |
| | | ><el-form-item label="è系人å
³ç³»"> |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="å
³ç³»"> |
| | | <el-input |
| | | placeholder="è系人å
³ç³»ç¼ºå¤±" |
| | | v-model="userform.relation" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- éè¯æ§å¶åºå --> |
| | | <div class="call-controls"> |
| | | <CallButton |
| | | ref="callButton" |
| | |
| | | /> |
| | | </div> |
| | | </div> |
| | | <el-form-item label="é访å
容" v-if="orgname == '丽水å¸ä¸å»é¢'"> |
| | | <el-input type="textarea" v-model="form.remark"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="é访记å½" v-else> |
| | | |
| | | <!-- é访å
容/è®°å½ --> |
| | | <el-form-item |
| | | :label="orgname == '丽水å¸ä¸å»é¢' ? 'é访å
容' : 'é访记å½'" |
| | | > |
| | | <el-input type="textarea" v-model="form.remark"></el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- é访æ
åµ --> |
| | | <el-form-item label="é访æ
åµ" v-if="orgname == '丽水å¸ä¸å»é¢'"> |
| | | <el-radio-group v-model="form.taskSituation"> |
| | | <el-radio |
| | |
| | | :label="city.value" |
| | | :value="city.value" |
| | | :key="city.value" |
| | | >{{ city.label }}</el-radio |
| | | > |
| | | {{ city.label }} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | |
| | | <!-- å¤çæè§ --> |
| | | <el-form-item label="å¤çæè§"> |
| | | <div> |
| | | <div class="opinion-buttons"> |
| | | <el-button |
| | | plain |
| | | type="warning" |
| | | @click="Editsingletaskson('1')" |
| | | >æä¸å¤ç</el-button |
| | | > |
| | | æä¸å¤ç |
| | | </el-button> |
| | | <el-button |
| | | plain |
| | | type="success" |
| | | @click="Editsingletaskson('2')" |
| | | >ç
æ
稳å®</el-button |
| | | > |
| | | ç
æ
ç¨³å® |
| | | </el-button> |
| | | <el-button |
| | | plain |
| | | type="primary" |
| | | @click="Editsingletaskson('3')" |
| | | >éç¥å°±è¯</el-button |
| | | > |
| | | <el-button plain type="info" @click="Editsingletaskson('5')" |
| | | >ä¸å¿é访</el-button |
| | | > |
| | | <el-button type="primary" round @click="sendAgainmsg" |
| | | >çä¿¡åé</el-button |
| | | > |
| | | éç¥å°±è¯ |
| | | </el-button> |
| | | <el-button plain type="info" @click="Editsingletaskson('5')"> |
| | | 人工é访 |
| | | </el-button> |
| | | <el-button type="primary" round @click="sendAgainmsg"> |
| | | çä¿¡åé |
| | | </el-button> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <div class="detailed"> |
| | | <h3>æ£è
æ¡£æ¡ä¿¡æ¯</h3> |
| | | <el-form ref="userform" :model="userform" 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-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="æ§å«" prop="telcode"> |
| | | <el-select v-model="userform.sex" placeholder="è¯·éæ©"> |
| | | <el-option label="ç·" :value="1"> </el-option> |
| | | <el-option label="女" :value="2"> </el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å¹´é¾" prop="name"> |
| | | <el-input |
| | | v-model="userform.age" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="20" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <!-- æ£è
æ¡£æ¡ä¿¡æ¯ --> |
| | | <div class="detailed"> |
| | | <h3>æ£è
æ¡£æ¡ä¿¡æ¯</h3> |
| | | <el-form ref="userform" :model="userform" 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-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å«" prop="sex"> |
| | | <el-select v-model="userform.sex" placeholder="è¯·éæ©"> |
| | | <el-option label="ç·" :value="1"> </el-option> |
| | | <el-option label="女" :value="2"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å¹´é¾" prop="age"> |
| | | <el-input |
| | | v-model="userform.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="20" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="èç³»æ¹å¼" prop="telcode"> |
| | | <el-input |
| | | v-model="userform.telcode" |
| | | placeholder="请è¾å
¥èç³»æ¹å¼" |
| | | maxlength="20" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="亲å±èç³»æ¹å¼" prop="name"> |
| | | <el-input |
| | | v-model="userform.relativetelcode" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="20" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="è¯æåç§°" prop="name"> |
| | | <el-input |
| | | v-model="form.leavediagname" |
| | | placeholder="请è¾å
¥è¯æ" |
| | | maxlength="50" |
| | | ></el-input> </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" |
| | | ><el-form-item label="å±
ä½å°" prop="placeOfResidence"> |
| | | <el-input |
| | | v-model="userform.placeOfResidence" |
| | | placeholder="å½ãçãå°å¸ãåºå¿ãè¡éç详ç»ä¿¡æ¯" |
| | | maxlength="50" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="èç³»æ¹å¼" prop="telcode"> |
| | | <el-input |
| | | v-model="userform.telcode" |
| | | placeholder="请è¾å
¥èç³»æ¹å¼" |
| | | maxlength="20" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="亲å±èç³»æ¹å¼" prop="relativetelcode"> |
| | | <el-input |
| | | v-model="userform.relativetelcode" |
| | | placeholder="请è¾å
¥äº²å±èç³»æ¹å¼" |
| | | maxlength="20" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="è¯æåç§°" prop="leavediagname"> |
| | | <el-input |
| | | v-model="form.leavediagname" |
| | | placeholder="请è¾å
¥è¯æ" |
| | | maxlength="50" |
| | | ></el-input> |
| | | </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"> |
| | | <el-form-item label="å±
ä½å°" prop="placeOfResidence"> |
| | | <el-input |
| | | v-model="userform.placeOfResidence" |
| | | placeholder="å½ãçãå°å¸ãåºå¿ãè¡éç详ç»ä¿¡æ¯" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | isEndingCall: false, |
| | | CaldialogVisible: false, |
| | | currentCall: null, // å½åéè¯å¯¹è±¡ |
| | | // æ°å¢åè½æ°æ® |
| | | showPatientInfo: true, |
| | | showContinuationCareBtn: false, // æ§å¶å»¶ç»æ¤çæé®æ¾ç¤º |
| | | // è·¯ç±çå¬ç¸å
³ |
| | | routeWatcher: null, |
| | | lastRoutePath: this.$route.path, |
| | |
| | | this.visitCount = this.$route.query.visitCount; |
| | | this.serviceType = this.$route.query.serviceType; |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | if (this.orgname == "çç«åå¾·ç¿ èé¢åº") { |
| | | this.showContinuationCareBtn = true; |
| | | } |
| | | |
| | | if (this.orgname == "ç¼äºå¿ä¸å»å»é¢") { |
| | | this.options = [ |
| | | { |
| | |
| | | methods: { |
| | | // è·å䏻颿 ·å¼ç±» |
| | | getTopicClass(item) { |
| | | console.log(item.isabnormal, "getTopicClass"); |
| | | |
| | | // æ ¹æ®ç¶æå¼è¿å对åºçæ ·å¼ç±» |
| | | if (item.isabnormal == 1) { |
| | | return "scriptTopic-isabnormal"; // å¼å¸¸ - çº¢è² |
| | |
| | | scriptid: item.id, |
| | | excep: excep, |
| | | questiontext: item.scriptContent, |
| | | categoryid: item.categoryid, |
| | | answerps: item.answerps || null, // æ·»å éå ä¿¡æ¯ |
| | | }; |
| | | if (item.scriptType == 2 && item.scriptResult[0]) { |
| | |
| | | // å·æ°æ°æ® |
| | | this.getTaskservelist(); |
| | | }, |
| | | // å»¶ç»æ¤ç |
| | | handleContinuationCare() { |
| | | if (this.form.continueFlag != 2) { |
| | | this.$modal.confirm("æ¯å¦ä¸ºæ¬æ¬¡æå¡åå»ºå»¶ç»æ¤çï¼").then(() => { |
| | | this.$router.push({ |
| | | path: "/followvisit/ContinueFordetails/", |
| | | query: { |
| | | taskid: this.taskid, |
| | | patid: this.patid, |
| | | id: this.id, |
| | | Voicetype: this.Voicetype, |
| | | visitCount: this.visitCount, |
| | | }, |
| | | }); |
| | | }); |
| | | } else { |
| | | this.$router.push({ |
| | | path: "/followvisit/ContinueFordetails/", |
| | | query: { |
| | | taskid: this.taskid, |
| | | patid: this.patid, |
| | | id: this.id, |
| | | Voicetype: this.Voicetype, |
| | | visitCount: this.visitCount, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | }, |
| | | // deactivated() { |
| | | // console.log(11); |
| | |
| | | padding: 30px; |
| | | border: 1px solid #dcdfe6; |
| | | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | max-height: 618px; |
| | | max-height: 716px; |
| | | /* 设置æå¤§é«åº¦ */ |
| | | overflow-y: auto; |
| | | /* å
容è¶
è¿é«åº¦æ¶æ¾ç¤ºæ»å¨æ¡ */ |
| | |
| | | margin-bottom: 20px; |
| | | } |
| | | } |
| | | /* 人工å¤çé¨åæ ·å¼ */ |
| | | .manual-action { |
| | | flex: 1; |
| | | min-width: 0; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | |
| | | .Followuserinfos { |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 20px; |
| | | padding: 20px; |
| | | background: #fff; |
| | | border-radius: 8px; |
| | | box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
| | | height: 100%; |
| | | overflow-y: auto; |
| | | } |
| | | } |
| | | |
| | | /* 头é¨åºå */ |
| | | .section-header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding-bottom: 15px; |
| | | border-bottom: 2px solid #f0f0f0; |
| | | margin-bottom: 20px; |
| | | flex-wrap: wrap; |
| | | gap: 15px; |
| | | |
| | | h3 { |
| | | margin: 0; |
| | | color: #409eff; |
| | | font-size: 18px; |
| | | font-weight: 600; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 8px; |
| | | |
| | | i { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | |
| | | .header-actions { |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | gap: 15px; |
| | | |
| | | .action-group { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* åºç¡æä½æé® */ |
| | | .basic-actions { |
| | | .el-button { |
| | | min-width: 100px; |
| | | } |
| | | } |
| | | |
| | | /* å¼å¸¸ç¶æéæ©å¨ */ |
| | | .tag-selector { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 10px; |
| | | |
| | | .current-tag { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 8px; |
| | | padding: 6px 12px; |
| | | background: #f8f9fa; |
| | | border: 1px solid; |
| | | border-radius: 4px; |
| | | font-size: 12px; |
| | | transition: all 0.3s; |
| | | |
| | | &:hover { |
| | | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .color-indicator { |
| | | width: 16px; |
| | | height: 16px; |
| | | border-radius: 3px; |
| | | margin-right: 8px; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .selected-indicator { |
| | | margin-left: 10px; |
| | | width: 20px; |
| | | height: 20px; |
| | | } |
| | | |
| | | .tag-info-icon { |
| | | margin-left: 10px; |
| | | color: #909399; |
| | | cursor: pointer; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | /* 表ååºå */ |
| | | .form-content { |
| | | background: #f8f9fa; |
| | | border-radius: 8px; |
| | | padding: 20px; |
| | | margin-bottom: 20px; |
| | | |
| | | .el-form { |
| | | .el-row { |
| | | margin: 0 -10px; |
| | | } |
| | | |
| | | .el-col { |
| | | padding: 0 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* éè¯æ§å¶åºå */ |
| | | .call-controls { |
| | | margin: 15px 0; |
| | | |
| | | .hangup-container { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | gap: 10px; |
| | | margin: 15px 0; |
| | | } |
| | | |
| | | .hangup-btn { |
| | | width: 120px; |
| | | height: 40px; |
| | | font-size: 14px; |
| | | border-radius: 20px; |
| | | box-shadow: 0 2px 8px rgba(244, 67, 54, 0.3); |
| | | transition: all 0.3s ease; |
| | | } |
| | | |
| | | .hangup-btn:hover:not(:disabled) { |
| | | transform: translateY(-2px); |
| | | box-shadow: 0 4px 12px rgba(244, 67, 54, 0.4); |
| | | } |
| | | |
| | | .call-timer { |
| | | font-size: 12px; |
| | | color: #666; |
| | | background: #f5f5f5; |
| | | padding: 4px 12px; |
| | | border-radius: 12px; |
| | | font-family: "Courier New", monospace; |
| | | } |
| | | |
| | | .call-status-container { |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | .status-alert { |
| | | border-radius: 8px; |
| | | transition: all 0.3s ease; |
| | | } |
| | | |
| | | .status-alert.status-calling { |
| | | border-left: 4px solid #e6a23c; |
| | | } |
| | | |
| | | .status-alert.status-connected { |
| | | border-left: 4px solid #67c23a; |
| | | animation: pulse 2s infinite; |
| | | } |
| | | |
| | | .status-alert.status-ended { |
| | | border-left: 4px solid #909399; |
| | | } |
| | | |
| | | .sip-registering { |
| | | margin: 10px 0; |
| | | } |
| | | |
| | | .registering-alert { |
| | | border-radius: 8px; |
| | | background-color: #f4f4f5; |
| | | border-left: 4px solid #909399; |
| | | } |
| | | } |
| | | |
| | | /* å¤çæè§æé®ç» */ |
| | | .opinion-buttons { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | gap: 10px; |
| | | align-items: center; |
| | | |
| | | .el-button { |
| | | flex: 1; |
| | | min-width: 120px; |
| | | } |
| | | } |
| | | |
| | | /* æ£è
æ¡£æ¡ä¿¡æ¯ */ |
| | | .detailed { |
| | | width: 100%; |
| | | border-radius: 8px; |
| | | padding: 20px; |
| | | margin-bottom: 20px; |
| | | background-color: #ddf0f8; |
| | | border: 1px solid #b3e0f2; |
| | | |
| | | h3 { |
| | | margin: 0 0 20px 0; |
| | | color: #333; |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 8px; |
| | | |
| | | &:before { |
| | | content: ""; |
| | | display: block; |
| | | width: 4px; |
| | | height: 16px; |
| | | background: #409eff; |
| | | border-radius: 2px; |
| | | } |
| | | } |
| | | |
| | | .el-form { |
| | | .el-row { |
| | | margin: 0 -10px; |
| | | } |
| | | |
| | | .el-col { |
| | | padding: 0 10px; |
| | | margin-bottom: 15px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* å¨ç»ææ */ |
| | | @keyframes pulse { |
| | | 0% { |
| | | opacity: 1; |
| | | } |
| | | 50% { |
| | | opacity: 0.7; |
| | | } |
| | | 100% { |
| | | opacity: 1; |
| | | } |
| | | } |
| | | |
| | | /* ååºå¼è®¾è®¡ */ |
| | | @media screen and (max-width: 1200px) { |
| | | .section-header { |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | gap: 15px; |
| | | } |
| | | |
| | | .header-actions { |
| | | width: 100%; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .opinion-buttons { |
| | | .el-button { |
| | | min-width: calc(50% - 8px); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 768px) { |
| | | .Followuserinfos { |
| | | padding: 15px; |
| | | } |
| | | |
| | | .form-content, |
| | | .detailed { |
| | | padding: 15px; |
| | | } |
| | | |
| | | .header-actions { |
| | | flex-direction: column; |
| | | align-items: stretch; |
| | | |
| | | .action-group { |
| | | flex-direction: column; |
| | | align-items: stretch; |
| | | |
| | | .el-select { |
| | | width: 100%; |
| | | margin-right: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .opinion-buttons { |
| | | flex-direction: column; |
| | | |
| | | .el-button { |
| | | width: 100%; |
| | | } |
| | | } |
| | | |
| | | .detailed { |
| | | .el-form { |
| | | .el-col { |
| | | width: 100%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* æ»å¨æ¡ç¾å */ |
| | | .Followuserinfos { |
| | | &::-webkit-scrollbar { |
| | | width: 6px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | background: #f1f1f1; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | background: #c1c1c1; |
| | | border-radius: 3px; |
| | | |
| | | &:hover { |
| | | background: #a8a8a8; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /* æé®å¾æ ä¼å */ |
| | | .el-icon-phone { |
| | | transition: all 0.3s; |
| | | } |
| | | |
| | | .el-button[disabled] .el-icon-phone { |
| | | color: #c0c4cc; |
| | | } |
| | | |
| | | .el-button:not([disabled]) .el-icon-phone { |
| | | color: #409eff; |
| | | } |
| | | |
| | | .el-button:not([disabled]):hover .el-icon-phone { |
| | | color: #66b1ff; |
| | | transform: scale(1.1); |
| | | } |
| | | </style> |
| ÎļþÃû´Ó src/views/login-ls.vue ÐÞ¸Ä |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- 丽===================水 --> |
| | | <el-form-item prop="orgid"> |
| | | <el-form-item prop="medicalCode"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="loginForm.orgid" |
| | | v-model="loginForm.medicalCode" |
| | | placeholder="è¯·éæ©é¢åº" |
| | | > |
| | | <el-option |
| | |
| | | }); |
| | | }, |
| | | getorganization() { |
| | | getorganization().then((res) => { |
| | | getorganization({ pageSize: 30 }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.options = res.rows.map((item) => ({ |
| | | value: item.orgid, |
| | | value: item.medicalCode, |
| | | // value: item.medicalCode, |
| | | label: item.organizationName, |
| | | })); |
| | | } |
| | |
| | | } |
| | | |
| | | // å¨æè®¾ç½® campusid åæ° |
| | | const selectedOrg = this.options.find(item => item.value === this.loginForm.orgid); |
| | | const selectedOrg = this.options.find(item => item.value === this.loginForm.medicalCode); |
| | | console.log(selectedOrg); |
| | | |
| | | if (selectedOrg) { |
| | | if (selectedOrg.label.includes('æ¹æ»¨')) { |
| | | this.loginForm.campusid = 1; |
| | | this.loginForm.orgid = 1; |
| | | } else if (selectedOrg.label.includes('å´å±±')) { |
| | | this.loginForm.campusid = 2; |
| | | this.loginForm.orgid = 1; |
| | | } else { |
| | | this.loginForm.campusid = 1; // é»è®¤å¼æå
¶ä»å¤ç |
| | | this.loginForm.orgid = 1; |
| | | } |
| | | } |
| | | |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- 丽===================水 --> |
| | | <el-form-item prop="medicalCode"> |
| | | <el-form-item prop="orgid"> |
| | | <el-select |
| | | style="width: 100%" |
| | | v-model="loginForm.medicalCode" |
| | | v-model="loginForm.orgid" |
| | | placeholder="è¯·éæ©é¢åº" |
| | | > |
| | | <el-option |
| | |
| | | code: "", |
| | | orgid: "H41010500003", |
| | | }, |
| | | options: [ |
| | | ], |
| | | options: [], |
| | | loginRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" }, |
| | |
| | | }); |
| | | }, |
| | | getorganization() { |
| | | getorganization().then((res) => { |
| | | getorganization({ pageSize: 30 }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.options = res.rows.map((item) => ({ |
| | | value: item.medicalCode, |
| | | // value: item.medicalCode, |
| | | value: item.orgid, |
| | | label: item.organizationName, |
| | | })); |
| | | } |
| | |
| | | }; |
| | | }, |
| | | handleLogin() { |
| | | this.$refs.loginForm.validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | this.$refs.loginForm.validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | |
| | | if (this.loginForm.rememberMe) { |
| | | Cookies.set("username", this.loginForm.username, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { |
| | | expires: 30, |
| | | }); |
| | | Cookies.set("rememberMe", this.loginForm.rememberMe, { |
| | | expires: 30, |
| | | }); |
| | | } else { |
| | | Cookies.remove("username"); |
| | | Cookies.remove("password"); |
| | | Cookies.remove("rememberMe"); |
| | | } |
| | | |
| | | // å¨æè®¾ç½® campusid åæ° |
| | | const selectedOrg = this.options.find(item => item.value === this.loginForm.medicalCode); |
| | | console.log(selectedOrg); |
| | | |
| | | if (selectedOrg) { |
| | | if (selectedOrg.label.includes('æ¹æ»¨')) { |
| | | this.loginForm.campusid = 1; |
| | | this.loginForm.orgid = 1; |
| | | } else if (selectedOrg.label.includes('å´å±±')) { |
| | | this.loginForm.campusid = 2; |
| | | this.loginForm.orgid = 1; |
| | | } else { |
| | | this.loginForm.campusid = 1; // é»è®¤å¼æå
¶ä»å¤ç |
| | | this.loginForm.orgid = 1; |
| | | } |
| | | } |
| | | |
| | | this.$store |
| | | .dispatch("Login", this.loginForm) |
| | | .then((res) => { |
| | | if (this.loginForm.username == "admin") { |
| | | this.$router.push({ path: "/index" }).catch(() => {}); |
| | | if (this.loginForm.rememberMe) { |
| | | Cookies.set("username", this.loginForm.username, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { |
| | | expires: 30, |
| | | }); |
| | | Cookies.set("rememberMe", this.loginForm.rememberMe, { |
| | | expires: 30, |
| | | }); |
| | | } else { |
| | | this.$router |
| | | .push({ path: "/followvisit/discharge" }) |
| | | .catch(() => {}); |
| | | Cookies.remove("username"); |
| | | Cookies.remove("password"); |
| | | Cookies.remove("rememberMe"); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | |
| | | // å¨æè®¾ç½® campusid åæ° |
| | | const selectedOrg = this.options.find( |
| | | (item) => item.value === this.loginForm.orgid |
| | | ); |
| | | if (selectedOrg) { |
| | | if (selectedOrg.label.includes("æ¹æ»¨")) { |
| | | this.loginForm.campusid = 1; |
| | | } else if (selectedOrg.label.includes("å´å±±")) { |
| | | this.loginForm.campusid = 2; |
| | | } else { |
| | | this.loginForm.campusid = 1; // é»è®¤å¼æå
¶ä»å¤ç |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | this.$store |
| | | .dispatch("Login", this.loginForm) |
| | | .then((res) => { |
| | | if (this.loginForm.username == "admin") { |
| | | this.$router.push({ path: "/index" }).catch(() => {}); |
| | | } else { |
| | | this.$router |
| | | .push({ path: "/followvisit/discharge" }) |
| | | .catch(() => {}); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes = store.getters.belongWards.map( |
| | | (obj) => obj.districtCode |
| | | ); |
| | | this.getList(); |
| | | // this.listDept(); |
| | | this.gettabList(); |
| | |
| | | leavehospitaldistrictcodes: [], |
| | | }; |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #3664D9; |
| | | color: #3664d9; |
| | | } |
| | | </style> |
| | |
| | | this.queryParams.leaveldeptcodes = store.getters.belongDepts.map( |
| | | (obj) => obj.deptCode |
| | | ); |
| | | this.queryParams.leavehospitaldistrictcodes = store.getters.belongWards.map( |
| | | (obj) => obj.districtCode |
| | | ); |
| | | this.getList(); |
| | | // this.listDept(); |
| | | this.gettabList(); |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="任塿§è¡æ¹å¼" |
| | | align="center" |
| | | key="preachform" |
| | | prop="preachform" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.preachform" |
| | | >{{ item }}ã |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="visitTime" |
| | | align="center" |
| | | label="åºé访æ¶é´" |
| | |
| | | allDeptCodes: [], |
| | | // å卿æç
åºä»£ç |
| | | allWardCodes: [], |
| | | checkboxlist: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | forms: { |
| | |
| | | created() { |
| | | this.getDeptTree(); |
| | | this.getList(); |
| | | this.checkboxlist = store.getters.checkboxlist; |
| | | this.orgname = localStorage.getItem("orgname"); |
| | | }, |
| | | |
| | |
| | | ? this.allDeptCodes |
| | | : this.queryParams.deptcodes, |
| | | }; |
| | | |
| | | this.loading = true; |
| | | // ç§»é¤å¯è½åå¨ç"all"å¼ |
| | | delete params.leavehospitaldistrictcodes.all; |
| | | delete params.deptcodes.all; |
| | | getSfStatistics(params).then((response) => { |
| | | console.log(response); |
| | | this.loading = false; |
| | | |
| | | // this.total = response.total; |
| | | this.userList = this.customSort(response.data); |
| | | }); |
| | |
| | | this.infotitleVisible = true; |
| | | this.infotitle = title; |
| | | this.infotitlelist = row; // å设rowå°±æ¯éè¦å±ç¤ºçè¯¦ç»æ°ç» |
| | | console.log(this.infotitlelist, "this.infotitlelist"); |
| | | |
| | | this.infotitlelist.forEach((item) => { |
| | | let idArray = null; |
| | | |
| | | if (item.preachform) { |
| | | if (item.endtime) { |
| | | item.preachformson = item.preachform; |
| | | idArray = item.preachform.split(","); |
| | | } |
| | | |
| | | item.preachform = idArray.map((value) => { |
| | | // æ¥æ¾id对åºç对象 |
| | | const item = this.checkboxlist.find((item) => item.value == value); |
| | | // 妿æ¾å°å¯¹åºçidï¼è¿ålabelå¼ï¼å¦åè¿ånull |
| | | return item ? item.label : null; |
| | | }); |
| | | } |
| | | }); |
| | | // åå§åå è½½ |
| | | this.loadIndex = 0; |
| | | this.currentDisplayList = []; |
| | |
| | | |
| | | // 模æå¼æ¥å è½½ï¼å®é
å¯è½æ¯ç´æ¥åçæ¬å°æ°æ® |
| | | setTimeout(() => { |
| | | console.log(this.infotitlelist, "this.infotitlelist"); |
| | | |
| | | const nextChunk = this.infotitlelist.slice( |
| | | this.loadIndex, |
| | | this.loadIndex + this.pageSize |
| | |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `https://www.health-y.cn/lssf`, |
| | | // target: `http://192.168.100.10:8098`, |
| | | // target: `http://192.168.100.10:8096`, |
| | | // target: `http://192.168.100.10:8094`,//çç«åå¾· |
| | | // target: `http://192.168.100.10:8095`,//æ°å |
| | | target:`http://localhost:8095`, |