123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043 |
- <template>
- <div id="table_data">
- <div class="cell clearfix" v-if="weekTime == 'thisWeek'">
- <el-input
- size="small"
- style="width: 400px;"
- class="filter-item"
- v-model.trim="keywords"
- placeholder="病人名称/透析号"
- />
- <el-button
- size="small"
- class="filter-item"
- type="primary"
- icon="el-icon-search"
- @click="search"
- >搜索</el-button
- >
- </div>
-
- <el-dialog :visible.sync="searchTableVisible" width="80%">
- <el-table
- :data="schedulePatients"
- :header-cell-style="{
- backgroundColor: 'rgb(245, 247, 250)',
- color: '#606266'
- }"
- :row-style="{ color: '#303133' }"
- style="width: 100%"
- border
- >
- <el-table-column label="姓名" width="120">
- <template slot-scope="scope">
- {{ scope.row.patient }}
- </template>
- </el-table-column>
- <el-table-column label="透析日期" width="200">
- <template slot-scope="scope">
- {{ getDialysisDate(scope.row) }}
- </template>
- </el-table-column>
- <el-table-column label="分区">
- <template slot-scope="scope">
- {{ scope.row.zone.name }}
- </template>
- </el-table-column>
- <el-table-column label="班次" width="80">
- <template slot-scope="scope">
- {{ getSchedulesType(scope.row.schedule_type) }}
- </template>
- </el-table-column>
- <el-table-column label="机号" width="80">
- <template slot-scope="scope">
- {{ scope.row.number.number }}
- </template>
- </el-table-column>
- <el-table-column label="透析模式" width="100">
- <template slot-scope="scope">
- {{ scope.row.mode.name }}
- </template>
- </el-table-column>
- <el-table-column label="操作" align="center" width="300">
- <template slot-scope="scope">
- <el-button
- size="mini"
- type="primary"
- @click="CancelSchedule(scope.row.id)"
- >
- 取消排班
- </el-button>
- <el-button
- size="mini"
- type="primary"
- @click="changeMachineNumber(scope.$index, scope.row)"
- >
- 调整机号
- </el-button>
- <el-button
- size="mini"
- type="primary"
- @click="changeMode(scope.$index, scope.row)"
- >
- 调整模式
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-dialog>
-
- <el-table
- :row-style="{ color: '#303133' }"
- :header-cell-style="{
- backgroundColor: 'rgb(245, 247, 250)',
- color: '#606266'
- }"
- :data="scheduleZone"
- :span-method="objectSpanMethod"
- @cell-click="clickThis"
- :summary-method="getSummaries"
- show-summary
- :row-class-name="rowClass"
- :cell-class-name="cellClass"
- sum-text="总数"
- :height="tableContainHeight"
- ref="table"
- style="width: 100%;cursor: pointer;"
- >
- <el-table-column
- prop="area"
- label="分区"
- width="80"
- align="center"
- fixed
- ></el-table-column>
- <el-table-column
- prop="cut"
- label="机号"
- width="80"
- align="center"
- fixed
- ></el-table-column>
- <el-table-column
- :label="'周一 (' + weekTitle[0] + ')'"
- width="215"
- align="center"
- >
- <el-table-column prop="Mon_M" label="上" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Mon_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Mon_A" label="下" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Mon_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Mon_N" label="晚" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Mon_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
- <el-table-column
- :label="'周二 (' + weekTitle[1] + ')'"
- width="215"
- align="center"
- >
- <el-table-column prop="Tue_M" label="上" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Tue_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Tue_A" label="下" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Tue_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Tue_N" label="晚" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Tue_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
- <el-table-column
- :label="'周三 (' + weekTitle[2] + ')'"
- width="215"
- align="center"
- >
- <el-table-column prop="Wed_M" label="上" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Wed_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Wed_A" label="下" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Wed_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Wed_N" label="晚" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Wed_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
- <el-table-column
- :label="'周四 (' + weekTitle[3] + ')'"
- width="215"
- align="center"
- >
- <el-table-column prop="Thurs_M" label="上" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Thurs_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Thurs_A" label="下" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Thurs_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Thurs_N" label="晚" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Thurs_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
- <el-table-column
- :label="'周五 (' + weekTitle[4] + ')'"
- width="215"
- align="center"
- >
- <el-table-column prop="Fri_M" label="上" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Fri_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Fri_A" label="下" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Fri_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Fri_N" label="晚" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Fri_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
- <el-table-column
- :label="'周六 (' + weekTitle[5] + ')'"
- width="215"
- align="center"
- >
- <el-table-column prop="Sat_M" label="上" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Sat_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Sat_A" label="下" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Sat_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Sat_N" label="晚" width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Sat_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
- <el-table-column
- :label="'周日 (' + weekTitle[6] + ')'"
- min-width="215"
- align="center"
- >
- <el-table-column prop="Sun_M" label="上" min-width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Sun_M"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Sun_A" label="下" min-width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Sun_A"
- ></schedule-item>
- </el-table-column>
- <el-table-column prop="Sun_N" label="晚" min-width="70" align="center">
- <schedule-item
- slot-scope="scope"
- :schedule-detail="scope.row.Sun_N"
- ></schedule-item>
- </el-table-column>
- </el-table-column>
-
- <el-table-column
- prop="total"
- label="总数"
- width="60"
- align="center"
- fixed="right"
- ></el-table-column>
- </el-table>
-
- <el-dialog
- title="排班"
- :visible.sync="dialogTableVisible"
- width="1000px;"
- :v-model="dialog"
- v-loading="creating_schedule"
- >
- <div>
- <div class="cell clearfix">
- <label class="title"><span class="name">当前排班</span> : </label>
- <div class="time ">
- <ul class="">
- <span class="current"
- >日期 : {{ currentData.schedule_date }} 班次 :
- {{ currentData.type_name }} 病房 :
- {{ currentData.zone_name }} 透析机 :
- {{ currentData.bed_name }}
- </span>
- </ul>
- </div>
- </div>
-
- <div class="cell clearfix">
- <label class="title"><span class="name">患者搜索</span> : </label>
- <div class="time ">
- <ul class="">
- <el-input
- size="medium"
- v-model="searchKey"
- placeholder="请输入搜索的内容"
- style="width:260px"
- ></el-input>
- <el-button
- type="primary"
- icon="el-icon-search"
- @click="SubmitSearch"
- >搜索</el-button
- >
- </ul>
- </div>
- </div>
- <div class="cell clearfix">
- <label class="title"><span class="name">排班</span> : </label>
- <div class="time ">
- <ul class="">
- <li
- v-for="item in schedulArr"
- @click="changeSearchSchedule(item.value)"
- :key="item.value"
- :class="patientQuery.schedule == item.value ? 'active' : ''"
- >
- {{ item.label }}
- </li>
- </ul>
- </div>
- </div>
- <!-- <div class="cell clearfix">
- <label class="title"><span class="name">标签</span> : </label>
- <div class="time ">
- <ul class="">
- <li v-for="item in tagArr" :key="item.value" >{{item.label}}</li>
- </ul>
- </div>
- </div> -->
- <div class="cell clearfix">
- <label class="title"><span class="name">传染病</span> : </label>
- <div class="time ">
- <ul class="">
- <li
- v-for="item in diseasesArr"
- @click="changeSearchContagion(item.value)"
- :key="item.value"
- :class="patientQuery.contagion == item.value ? 'active' : ''"
- >
- {{ item.label }}
- </li>
- </ul>
- </div>
- </div>
- </div>
- <el-table
- ref="singleTable"
- :data="patients"
- border
- highlight-current-row
- @current-change="handleCurrentChange"
- :header-cell-style="{ backgroundColor: 'rgb(236, 245, 255)' }"
- >
- <el-table-column
- type="index"
- label="序号"
- width="89"
- align="center"
- ></el-table-column>
- <el-table-column
- property="dialysis_no"
- label="透析号"
- min-width="110"
- align="center"
- ></el-table-column>
- <el-table-column
- property="name"
- label="姓名"
- min-width="110"
- align="center"
- ></el-table-column>
- <el-table-column
- property="schedules"
- label="双周已排"
- min-width="80"
- align="center"
- >
- <template slot-scope="scope">
- <span>{{ scope.row.schedules.length }}次</span>
- </template>
- </el-table-column>
- <el-table-column
- property="solutions"
- label="治疗频率"
- min-width="200"
- align="center"
- >
- <template slot-scope="scope">
- <span v-for="solution in scope.row.solutions" :key="solution.id"
- >{{ solution.name }}({{ solution.period }}{{ solution.times }})
- </span>
- </template>
- </el-table-column>
- </el-table>
- <div slot="footer" class="dialog-footer">
- <el-button @click="closePatientPanel()">取 消</el-button>
- <el-button
- :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
- type="primary"
- @click="setSchedule"
- >保 存
- </el-button>
- </div>
- </el-dialog>
- <el-dialog title="调整排班" :visible.sync="tzDialogVisible" width="500px">
- <div style="width:100%;margin:0 auto">
- <el-radio-group v-model="tiaoZhengType" :class="tiaozhengclass">
- <el-radio :label="1">取消排班</el-radio>
- <el-radio :label="2">调整机号</el-radio>
- <el-radio :label="3">调整模式</el-radio>
- </el-radio-group>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button
- @click="
- tzDialogVisible = false;
- tiaoZhengType = 1;
- "
- >取 消</el-button
- >
- <el-button
- :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
- type="primary"
- @click="submitTiaoX"
- >保 存</el-button
- >
- </span>
- </el-dialog>
- <el-dialog
- title="调整模式"
- :visible.sync="msDialogVisible"
- width="500px"
- v-loading="changing_mode"
- >
- <div>
- <el-form
- :model="changeSchedule"
- ref="changeSchedule"
- :rules="changeRules"
- >
- <el-form-item label="" prop="mode_id">
- <el-select
- v-model="changeSchedule.mode_id"
- placeholder="请选择"
- style="width:100%"
- >
- <el-option
- :disabled="item.id == currentData.mode_id"
- v-for="item in modeOptions"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="msDialogVisible = false">取 消</el-button>
- <el-button
- :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
- type="primary"
- @click="submitMode('changeSchedule')"
- >保 存</el-button
- >
- </span>
- </el-dialog>
- <el-dialog
- title="调整机号"
- :visible.sync="jhDialogVisible"
- width="500px"
- v-loading="changing_bed"
- >
- <div>
- <el-form
- :model="changeSchedule"
- ref="changeSchedule"
- :rules="changeRules"
- label-width="90px"
- >
- <el-form-item label="排班日期: ">
- <el-input v-model="currentData.schedule_date" disabled></el-input>
- </el-form-item>
- <el-form-item label="班次: " prop="schedule_type">
- <el-select
- v-model="changeSchedule.schedule_type"
- placeholder="请选择"
- style="width:100%"
- @change="changeScheduleType"
- >
- <el-option
- v-for="item in scheduleType"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="病房: " prop="partition_id">
- <el-select
- v-model="zone_name"
- placeholder="请选择"
- style="width:100%"
- @change="changePartition"
- >
- <el-option
- v-for="(item, index) in zone_names"
- :key="index"
- :label="item"
- :value="item"
- >
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="透析机: " prop="bed_id">
- <el-select
- v-model="device_id"
- placeholder="请选择"
- style="width:100%"
- >
- <el-option
- v-for="item in current_devices"
- :key="item.id"
- :label="item.number"
- :value="item.id"
- >
- </el-option>
- </el-select>
- </el-form-item>
- </el-form>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="jhDialogVisible = false">取 消</el-button>
- <el-button
- :disabled="$store.getters.xt_user.subscibe.state == 3 ? true : false"
- type="primary"
- @click="submitTiaoZJH('changeSchedule')"
- >保 存</el-button
- >
- </span>
- </el-dialog>
- </div>
- </template>
-
- <script>
- import { uParseTime } from "@/utils/tools";
-
- import {
- CancelSchedule,
- ChangeSchedule,
- CreateSchedule,
- getSchedulePatients,
- getSchedules,
- getSearchResult,
- getUrgentScheduleInitData,
- getWeekPanels
- } from "@/api/schedule";
- import ScheduleItem from "./ScheduleItem";
-
- let rowNumber = 0;
- export default {
- name: "tableData",
- props: {
- weekTime: {
- type: String,
- default: "thisWeek"
- },
- scheduleZoneRowProp: {
- type: Array,
- dafault: []
- },
- scheduleZoneProp: {
- type: Array,
- dafault: []
- },
- partitionsProp: {
- type: Object,
- dafault: {}
- }
- },
- data() {
- return {
- // tableContainHeight:400,
- // tableHeight:'window.innerHeight - 0',
- rowClass: "table-row-new-class schedule-table-row",
- searchKey: "",
- tiaoZhengType: 1,
- modeOptions: null,
- keywords: "",
- schedulePatients: [],
- searchTableVisible: false,
- dialog: {
- tag: ""
- },
- patients: [],
- toDay: "",
- schedulArr: [
- { value: 0, label: "不限" },
- { value: 2, label: "未排班" },
- { value: 1, label: "已排班" }
- ],
- tagArr: [
- { value: 1, label: "不限" },
- { value: 2, label: "透析记录" },
- { value: 3, label: "传染病" }
- ],
- diseasesArr: [{ value: 0, label: "不限" }],
- scheduleType: [
- { id: 1, name: "上午" },
- { id: 2, name: "下午" },
- { id: 3, name: "晚上" }
- ],
- dialogTableVisible: false,
- tzDialogVisible: false,
- msDialogVisible: false,
- jhDialogVisible: false,
- scheduleZone: this.scheduleZoneProp,
- scheduleZoneRow: -1,
- partitions: [],
- jihaos: [],
- weekTitle: ["", "", "", "", "", "", ""],
- weekDays: ["", "", "", "", "", "", ""],
- currentData: {
- id: 0,
- schedule_date: "",
- schedule_type: 0,
- bed_id: 0,
- partition_id: 0,
- patient_id: 0,
- schedule_week: 0,
- mode_id: 0,
- type_name: "",
- bed_name: "",
-
- partition_type: 0,
- contagions: [],
- patient: ""
- },
- changeSchedule: {
- mode_id: "",
- schedule_type: "",
- partition_id: "",
- bed_id: "",
- schedule_week: "",
- partition_type: ""
- },
- patientQuery: {
- keywords: "",
- schedule: 0,
- contagion: 0
- },
-
- tiaozhengclass: "tiaozhengclass",
- changeRules: {
- mode_id: [{ required: true, message: "请选择模式", trigger: "blur" }],
- schedule_type: [
- { required: true, message: "请选择班次", trigger: "blur" }
- ],
- partition_id: [
- { required: true, message: "请选择病房", trigger: "blur" }
- ],
- bed_id: [{ required: true, message: "请选择透析机", trigger: "blur" }]
- },
-
- weekday: 0,
-
- creating_schedule: false,
- changing_mode: false,
- changing_bed: false,
-
- tableHeight: document.documentElement.clientHeight,
-
- origin_schedules: [],
- origin_device_numbers: [],
- zone_device_map: {},
- device_id: 0,
- zone_name: "",
- current_devices: [],
- zone_names: [],
- zone_device_options: []
- };
- },
-
- watch: {
- weekTime: function() {
- var theType = this.weekType(this.weekTime);
- this.getSchedules(theType);
- },
- scheduleZoneRow: function() {
- var theType = this.weekType(this.weekTime);
- this.getSchedules(theType);
- },
- tableHeight(val) {
- if (!this.timer) {
- this.tableHeight = val;
- this.timer = true;
- const that = this;
- setTimeout(function() {
- that.timer = false;
- }, 400);
- }
- }
- },
- methods: {
- cellClass({ row, column, rowIndex, columnIndex }) {
- if (columnIndex == 0 || columnIndex == 1 || columnIndex == 23) {
- return "";
- } else {
- if (this.weekTime == "lastWeek") {
- return "schedule-table-cell-disable";
- } else if (this.weekTime == "thisWeek") {
- var weekday = Math.floor((columnIndex - 2) / 3 + 1);
- if (weekday < this.weekday) {
- return "schedule-table-cell-disable";
- }
- }
- }
- return "";
- },
- SubmitSearch() {
- this.patientQuery.keywords = this.searchKey;
- this.getSchedulePatients();
- },
- changeSearchContagion(id) {
- this.patientQuery.contagion = id;
- this.getSchedulePatients();
- },
- changeSearchSchedule(id) {
- this.patientQuery.schedule = id;
- this.getSchedulePatients();
- },
- getSummaries(param) {
- const { columns, data } = param;
- const sums = [];
- columns.forEach((column, index) => {
- if (index === 0 || index === 25) {
- sums[index] = "总数";
- return;
- }
- if (index === 1 || index === 24) {
- sums[index] = data.length;
- return;
- }
-
- const values = data.map(item => item[column.property]);
-
- if (index === 23) {
- sums[index] = values.reduce((prev, curr) => {
- const value = Number(curr);
- if (!isNaN(value)) {
- return prev + curr;
- } else {
- return prev;
- }
- }, 0);
- sums[index];
- return;
- }
-
- sums[index] = values.reduce((prev, curr) => {
- if (typeof curr["mode_id"] === "undefined") {
- return prev;
- }
- const value = Number(curr["mode_id"]);
- if (!isNaN(value) && value > 0) {
- return prev + 1;
- } else {
- return prev;
- }
- }, 0);
- sums[index];
- });
-
- return sums;
- },
- objectSpanMethod({ row, column, rowIndex, columnIndex }) {
- var that = this;
- var rowNum = 0;
- rowNumber = 0;
- var rutrnData = {};
- if (columnIndex === 0 || columnIndex == 25) {
- var rowLen = this.scheduleZoneRow.length;
- if (rowLen > 0) {
- for (let index = 0; index < rowLen; index++) {
- rowNum = this.scheduleZoneRow[index];
- rowNumber += rowNum;
- var f = rowNumber - rowNum;
- if (f == rowIndex) {
- rutrnData = {
- rowspan: rowNum,
- colspan: 1
- };
- break;
- } else if (rowIndex < rowNumber) {
- rutrnData = {
- rowspan: 0,
- colspan: 0
- };
- break;
- }
- }
- return rutrnData;
- }
- }
- },
- handleCurrentChange(row) {
- if (typeof row === "undefined" || row == null) {
- this.currentData.patient_id = 0;
- this.currentData.contagions = [];
- } else {
- this.currentData.patient_id = row.id;
- this.currentData.contagions = row.contagions;
- }
- },
- closePatientPanel(row) {
- this.dialogTableVisible = false;
- this.$refs.singleTable.setCurrentRow(row);
- this.currentData.patient_id = 0;
- },
- getSchedules(weekType) {
- getSchedules(weekType).then(response => {
- if (response.data.state == 1) {
- this.weekTitle = response.data.data.weekTitle;
- this.weekDays = response.data.data.days;
- this.toDay = response.data.data.today;
- var theSchedules = response.data.data.schdules;
- var that = this;
- this.scheduleZone.forEach(function(zone, index) {
- that.scheduleZone[index].Mon_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Mon_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Mon_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Tue_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Tue_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Tue_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Wed_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Wed_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Wed_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Thurs_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Thurs_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Thurs_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Fri_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Fri_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Fri_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Sat_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Sat_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Sat_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Sun_A = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Sun_N = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].Sun_M = {
- mode_id: 0,
- mode_name: "",
- patient_id: 0,
- patient: ""
- };
- that.scheduleZone[index].total = 0;
-
- if (response.data.data.schdules.length > 0) {
- theSchedules.forEach(function(schedule, sindex) {
- if (zone.jihao_id == schedule.bed_id) {
- // if(zone.zone_id == schedule.partition_id && zone.jihao_id == schedule.bed_id) {
- var weekPath = that.weekPath(
- schedule.schedule_week,
- schedule.schedule_type
- );
-
- if (weekPath.length == 2) {
- console.log(schedule);
-
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey] = {
- schedule_id: schedule.id,
- mode_id: schedule.mode_id,
- patient_id: schedule.patient_id,
- patient: schedule.patient,
- patient_contagions: schedule.patient_contagions,
- mode_name:
- typeof that.modeOptions[schedule.mode_id] ===
- "undefined"
- ? ""
- : that.modeOptions[schedule.mode_id].name
- };
- that.scheduleZone[index].total += 1;
- }
- }
- });
- }
- console.log(that.scheduleZone);
- console.log(theSchedules);
- });
- } else {
- this.$message.error("网络错误");
- return false;
- }
- });
- },
- getSchedulePatients() {
- getSchedulePatients(this.patientQuery).then(response => {
- if (response.data.state == 1) {
- this.patients = response.data.data.patients;
- }
- });
- },
- CancelSchedule(id) {
- this.$confirm("确定要取消当前排班?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- CancelSchedule(id).then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- } else {
- this.$message({
- type: "success",
- message: "排班已取消!"
- });
- var that = this;
- var schedule = response.data.data.schedule;
- this.scheduleZone.forEach(function(zone, index) {
- if (
- zone.zone_id == schedule.partition_id &&
- zone.jihao_id == schedule.bed_id
- ) {
- var weekPath = that.weekPath(
- schedule.schedule_week,
- schedule.schedule_type
- );
- if (weekPath.length == 2) {
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey] = {
- schedule_id: 0,
- mode_id: 0,
- patient_id: 0,
- patient: "",
- mode_name: ""
- };
-
- that.scheduleZone[index].total -= 1;
- }
- }
- });
- this.tzDialogVisible = false;
- this.searchTableVisible = false;
- }
- });
- })
- .catch(() => {});
- },
- changeScheduleActon(formName) {
- this.changing_bed = true;
- ChangeSchedule(this.currentData.id, this.changeSchedule)
- .then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- } else {
- this.$message({
- type: "success",
- message: "修改成功!"
- });
- var that = this;
- var schedule = response.data.data.schedule;
- this.scheduleZone.forEach(function(zone, index) {
- if (
- zone.zone_id == schedule.partition_id &&
- zone.jihao_id == schedule.bed_id
- ) {
- var weekPath = that.weekPath(
- schedule.schedule_week,
- schedule.schedule_type
- );
- if (weekPath.length == 2) {
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey] = {
- schedule_id: schedule.id,
- mode_id: schedule.mode_id,
- patient_id: schedule.patient_id,
- patient: that.currentData.patient,
- patient_contagions: that.currentData.contagions,
- mode_name:
- typeof that.modeOptions[schedule.mode_id] === "undefined"
- ? ""
- : that.modeOptions[schedule.mode_id].name
- };
-
- that.scheduleZone[index].total += 1;
- }
- }
- if (
- zone.zone_id == that.currentData.partition_id &&
- zone.jihao_id == that.currentData.bed_id
- ) {
- var weekPath = that.weekPath(
- that.currentData.schedule_week,
- that.currentData.schedule_type
- );
- if (weekPath.length == 2) {
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey] = {
- schedule_id: 0,
- mode_id: 0,
- patient_id: 0,
- patient: "",
- mode_name: "",
- patient_contagions: []
- };
-
- that.scheduleZone[index].total -= 1;
- }
- }
- });
- this.$refs[formName].resetFields();
- this.jhDialogVisible = false;
- }
- this.changing_bed = false;
- })
- .catch(err => {
- this.$message.error(err);
- this.changing_bed = false;
- });
- },
- CreateSchedule(id, data) {
- this.creating_schedule = true;
- CreateSchedule(id, data)
- .then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- } else {
- this.$message({
- type: "success",
- message: "排班成功!"
- });
- var that = this;
- var schedule = response.data.data.schedule;
- this.scheduleZone.forEach(function(zone, index) {
- if (
- zone.zone_id == schedule.partition_id &&
- zone.jihao_id == schedule.bed_id
- ) {
- var weekPath = that.weekPath(
- schedule.schedule_week,
- schedule.schedule_type
- );
- if (weekPath.length == 2) {
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey] = {
- schedule_id: schedule.id,
- mode_id: schedule.mode_id,
- patient_id: schedule.patient_id,
- patient: schedule.patient,
- patient_contagions: that.currentData.contagions,
- mode_name:
- typeof that.modeOptions[schedule.mode_id] === "undefined"
- ? ""
- : that.modeOptions[schedule.mode_id].name
- };
- that.scheduleZone[index].total += 1;
- }
- }
- });
- this.closePatientPanel();
- }
- this.creating_schedule = false;
- })
- .catch(err => {
- this.$message.error(err);
- this.creating_schedule = false;
- });
- },
- clickThis(row, column, cell, event) {
- // debugger
- console.log(column.property);
- var week = this.weekDay(column.property);
- console.log(week);
-
- if (week[0] == -1 || week[1] == -1) {
- return false;
- }
- if (this.toDay > this.weekDays[week[0] - 1]) {
- return false;
- }
-
- this.currentData.schedule_date = this.weekDays[week[0] - 1];
- this.currentData.schedule_type = week[1];
- this.currentData.bed_id = row.jihao_id;
- this.currentData.partition_id = row.zone_id;
- this.currentData.schedule_week = week[0];
-
- this.currentData.type_name = this.dayType(week[1]);
- this.currentData.zone_name = row.area;
- this.currentData.bed_name = row.cut;
- this.currentData.partition_type = row.zone_type;
-
- console.log(this.currentData);
-
- if (row[column.property].schedule_id > 0) {
- this.currentData.mode_id = row[column.property].mode_id;
- this.currentData.id = row[column.property].schedule_id;
- this.currentData.patient_id = row[column.property].patient_id;
- this.currentData.patient = row[column.property].patient;
- this.currentData.contagions = row[column.property].patient_contagions;
- this.tiaoZhengType = 1;
- this.tzDialogVisible = true;
- } else {
- this.currentData.mode_id = 1;
- this.currentData.id = 0;
- this.currentData.patient_id = 0;
- this.currentData.patient = "";
- this.currentData.contagions = [];
- this.getSchedulePatients();
- this.dialogTableVisible = true;
- }
- },
- submitTiaoZJH(formName) {
- this.$refs[formName].validate(valid => {
- if (valid) {
- var weekPath = this.weekPath(
- this.changeSchedule.schedule_week,
- this.changeSchedule.schedule_type
- );
- if (weekPath.length != 2) {
- this.$message.error("数据异常");
- return false;
- }
-
- this.changeSchedule.bed_id = this.device_id;
- for (let i = 0; i < this.origin_device_numbers.length; i++) {
- if (this.origin_device_numbers[i].id == this.device_id) {
- this.changeSchedule.partition_id = this.origin_device_numbers[
- i
- ].zone_id;
- }
- }
-
- // console.log(this.scheduleZone)
-
- this.changeSchedule.change_action = "change_device";
- this.changeScheduleActon(formName);
-
- // this.changeSchedule.spartition_type = this.scheduleZone[index].zone_type
- // var weekPathKey = weekPath[0] + '_' + weekPath[1]
- // for (var index in this.scheduleZone) {
- // if (this.scheduleZone[index].jihao_id == this.changeSchedule.bed_id) {
- // if (this.scheduleZone[index][weekPathKey].mode_id > 0) {
- // this.$message.error('选中的区域已经存在排班,不能再排班!')
- // return false
- // }
- // break
- // }
- // }
-
- // 可能
- // 患者有传染病,与选择的机器类型(传染病)不匹配
- // 患者没有传染病,但机器是某个传染病的专用透析器
- // 机器的透析模式与患者不匹配
-
- // if (this.currentData.contagions.length > 0) {
- // var cflag = false
- // for (var index in this.currentData.contagions) {
- // if (this.currentData.contagions[index].disease_id == this.changeSchedule.partition_type) {
- // cflag = true
- // }
- // }
- // if (!cflag) {
- // this.$confirm('此患者有传染病,与此透析机不匹配,确定在此排班吗?', '提示', { confirmButtonText: '确 定', cancelButtonText: '取 消', type: 'warning' })
- // .then(() => {
- //
- // }).catch(() => {
- // })
- // } else {
- // this.changeSchedule.change_action = 'change_device'
- // this.changeScheduleActon(formName)
- // }
- // } else if (this.changeSchedule.partition_type > 1) {
- // this.$confirm('此患者没有传染病,与此透析机不匹配,确定在此排班吗?', '提示', { confirmButtonText: '确 定', cancelButtonText: '取 消', type: 'warning' })
- // .then(() => {
- // this.changeSchedule.change_action = 'change_device'
- // this.changeScheduleActon(formName)
- // }).catch(() => {
- // })
- // } else {
- // this.changeSchedule.change_action = 'change_device'
- // this.changeScheduleActon(formName)
- // }
- }
- });
- },
- submitMode(formName) {
- this.changing_mode = true;
- this.changeSchedule.change_action = "change_mode";
- ChangeSchedule(this.currentData.id, this.changeSchedule)
- .then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- } else {
- this.$message({
- type: "success",
- message: "修改成功!"
- });
- var that = this;
- var schedule = response.data.data.schedule;
- this.scheduleZone.forEach(function(zone, index) {
- if (
- zone.zone_id == schedule.partition_id &&
- zone.jihao_id == schedule.bed_id
- ) {
- var weekPath = that.weekPath(
- schedule.schedule_week,
- schedule.schedule_type
- );
- if (weekPath.length == 2) {
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey].mode_id =
- schedule.mode_id;
- that.scheduleZone[index][weekPathKey].mode_name =
- typeof that.modeOptions[schedule.mode_id] === "undefined"
- ? ""
- : that.modeOptions[schedule.mode_id].name;
- }
- }
- });
- this.msDialogVisible = false;
- }
- this.changing_mode = false;
- })
- .catch(err => {
- this.$message.error(err);
- this.changing_mode = false;
- });
- },
-
- submitTiaoZMS(formName) {
- this.$refs[formName].validate(valid => {
- if (valid) {
- this.changing_mode = true;
- this.changeSchedule.change_action = "change_mode";
- ChangeSchedule(this.currentData.id, this.changeSchedule)
- .then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- } else {
- this.$message({
- type: "success",
- message: "修改成功!"
- });
- var that = this;
- var schedule = response.data.data.schedule;
- this.scheduleZone.forEach(function(zone, index) {
- if (
- zone.zone_id == schedule.partition_id &&
- zone.jihao_id == schedule.bed_id
- ) {
- var weekPath = that.weekPath(
- schedule.schedule_week,
- schedule.schedule_type
- );
- if (weekPath.length == 2) {
- var weekPathKey = weekPath[0] + "_" + weekPath[1];
- that.scheduleZone[index][weekPathKey].mode_id =
- schedule.mode_id;
- that.scheduleZone[index][weekPathKey].mode_name =
- typeof that.modeOptions[schedule.mode_id] ===
- "undefined"
- ? ""
- : that.modeOptions[schedule.mode_id].name;
- }
- }
- });
- this.$refs[formName].resetFields();
- this.msDialogVisible = false;
- }
- this.changing_mode = false;
- })
- .catch(err => {
- this.$message.error(err);
- this.changing_mode = false;
- });
- }
- });
- },
-
- changePartition(value) {
- this.current_devices = this.zone_device_map[value];
- this.device_id = this.current_devices[0].id;
- },
- changeScheduleType(schedule_type) {
- const params = {
- type: schedule_type,
- date: this.currentData.schedule_date
- };
- getUrgentScheduleInitData(params)
- .then(rs => {
- if (rs.data.state == 1) {
- this.origin_schedules = rs.data.data.schedules;
- this.origin_device_numbers = rs.data.data.device_numbers;
-
- var zone_device_map = {};
- for (
- let index = 0;
- index < this.origin_device_numbers.length;
- index++
- ) {
- const device_number = this.origin_device_numbers[index];
- if (
- zone_device_map[device_number.zone_name] == null ||
- zone_device_map[device_number.zone_name] == undefined
- ) {
- zone_device_map[device_number.zone_name] = [];
- }
- zone_device_map[device_number.zone_name].push(device_number);
- }
- this.zone_device_map = zone_device_map;
-
- this.zone_names = Object.keys(this.zone_device_map);
-
- console.log(this.current_devices);
-
- if (this.zone_names.length > 0) {
- this.zone_name = this.zone_names[0];
- this.current_devices = this.zone_device_map[this.zone_name];
- this.device_id = this.current_devices[0].id;
- }
- console.log(this.current_devices);
-
- this.zone_device_options = [
- { values: this.zone_names },
- // { values: this.getDeviceNumberNames(this.current_devices) },
- { values: this.current_devices }
- ];
-
- console.log(this.current_devices);
- } else {
- }
- })
- .catch(err => {
- this.loading = false;
- });
- },
- submitTiaoX() {
- // if (this.tiaoZhengType==1) {
- // this.$confirm('确定要取消当前排班?', '提示', {
- // confirmButtonText: '确定',
- // cancelButtonText: '取消',
- // type: 'warning'
- // }).then(() => {
- // this.CancelSchedule(this.currentData.id);
- // }).catch(() => {});
- // }
-
- switch (this.tiaoZhengType) {
- case 1:
- this.CancelSchedule(this.currentData.id);
- break;
- case 2:
- this.changeSchedule = {
- mode_id: this.currentData.mode_id,
- schedule_type: this.currentData.schedule_type,
- partition_id: this.currentData.partition_id,
- bed_id: this.currentData.bed_id,
- schedule_week: this.currentData.schedule_week,
- partition_type: ""
- };
-
- if (
- typeof this.partitions[this.currentData.partition_id].jihaos !==
- "undefined"
- ) {
- this.jihaos = this.partitions[this.currentData.partition_id].jihaos;
- } else {
- this.jihaos = [];
- }
-
- const params = {
- type: this.currentData.schedule_type,
- date: this.currentData.schedule_date
- };
- getUrgentScheduleInitData(params)
- .then(response => {
- if (response.data.state == 0) {
- this.$message.error(response.data.msg);
- } else {
- if (response.data.state == 1) {
- this.origin_schedules = response.data.data.schedules;
- this.origin_device_numbers =
- response.data.data.device_numbers;
-
- var zone_device_map = {};
- for (
- let index = 0;
- index < this.origin_device_numbers.length;
- index++
- ) {
- const device_number = this.origin_device_numbers[index];
- if (
- zone_device_map[device_number.zone_name] == null ||
- zone_device_map[device_number.zone_name] == undefined
- ) {
- zone_device_map[device_number.zone_name] = [];
- }
- zone_device_map[device_number.zone_name].push(
- device_number
- );
- }
- this.zone_device_map = zone_device_map;
- this.zone_names = Object.keys(this.zone_device_map);
- if (this.zone_names.length > 0) {
- this.zone_name = this.zone_names[0];
- this.current_devices = this.zone_device_map[this.zone_name];
-
- console.log(this.zone_device_map[this.zone_name]);
-
- this.device_id = this.current_devices[0].id;
- }
- this.zone_device_options = [
- { values: this.zone_names },
- // { values: this.getDeviceNumberNames(this.current_devices) },
- { values: this.current_devices }
- ];
-
- //
- // for (let i = this.origin_schedules.length - 1; i >= 0; i--) {
- // for (let y = this.origin_device_numbers.length - 1; y >= 0; y--) {
- // if (this.origin_device_numbers[y].id == this.origin_schedules[i].bed_id) {
- // this.origin_device_numbers.splice(y, 1)
- // }
- // }
- // }
- // // debugger
- // var zone_device_map = {}
- // for (let index = 0; index < this.origin_device_numbers.length; index++) {
- // const device_number = this.origin_device_numbers[index]
- // if (zone_device_map[device_number.zone.name] == null || zone_device_map[device_number.zone.name] == undefined) {
- // zone_device_map[device_number.zone.name] = []
- // }
- // zone_device_map[device_number.zone.name].push(device_number)
- // }
- // this.zone_device_map = zone_device_map
- //
- // this.zone_names = Object.keys(this.zone_device_map)
- // if (this.zone_names.length > 0) {
- // this.zone_name = this.zone_names[0]
- // this.current_devices = this.zone_device_map[this.zone_name]
- // this.device_id = this.current_devices[0].id
- // }
- //
- // this.zone_device_options = [
- // { values: this.zone_names },
- // // { values: this.getDeviceNumberNames(this.current_devices) },
- // { values: this.current_devices }
- // ]
- } else {
- }
- }
- })
- .catch(err => {
- this.$message.error(err);
- });
-
- this.tzDialogVisible = false;
- this.jhDialogVisible = true;
- break;
- case 3:
- this.changeSchedule = {
- mode_id: "",
- schedule_type: "",
- partition_id: "",
- bed_id: "",
- schedule_week: "",
- partition_type: ""
- };
- this.tzDialogVisible = false;
- this.msDialogVisible = true;
- break;
-
- default:
- break;
- }
- },
- setSchedule() {
- var that = this;
- var submitFlag = true;
- if (this.currentData.patient_id <= 0) {
- this.$message.error("请先选择患者");
- return false;
- }
-
- if (
- this.currentData.schedule_date.length == 0 ||
- this.currentData.schedule_type < 1 ||
- this.currentData.schedule_type > 3 ||
- this.currentData.bed_id < 1 ||
- this.currentData.partition_id < 1 ||
- this.currentData.schedule_week < 1 ||
- this.currentData.schedule_week > 7
- ) {
- this.$message.error("请先选择排班时间或机号");
- return false;
- }
-
- // 可能
- // 患者有传染病,与选择的机器类型(传染病)不匹配
- // 患者没有传染病,但机器是某个传染病的专用透析器
- // 机器的透析模式与患者不匹配
-
- if (this.currentData.contagions.length > 0) {
- var cflag = false;
- this.currentData.contagions.forEach(function(contagion) {
- if (contagion.disease_id == that.currentData.partition_type) {
- cflag = true;
- }
- });
- if (!cflag) {
- this.$confirm(
- "此患者有传染病,与此透析机不匹配,确定在此排班吗?",
- "提示",
- {
- confirmButtonText: "确 定",
- cancelButtonText: "取 消",
- type: "warning"
- }
- )
- .then(() => {
- this.CreateSchedule(
- this.currentData.patient_id,
- this.currentData
- );
- })
- .catch(() => {});
- } else {
- this.CreateSchedule(this.currentData.patient_id, this.currentData);
- }
- } else if (that.currentData.partition_type > 1) {
- this.$confirm(
- "此患者没有传染病,与此透析机不匹配,确定在此排班吗?",
- "提示",
- {
- confirmButtonText: "确 定",
- cancelButtonText: "取 消",
- type: "warning"
- }
- )
- .then(() => {
- this.CreateSchedule(this.currentData.patient_id, this.currentData);
- })
- .catch(() => {});
- } else {
- this.CreateSchedule(this.currentData.patient_id, this.currentData);
- }
- },
- weekType(weekTime) {
- var theType = 2;
- switch (weekTime) {
- case "lastWeek":
- theType = 1;
- break;
- case "thisWeek":
- theType = 2;
- break;
- case "nextWeek":
- theType = 3;
- break;
- case "nextTwoWeek":
- theType = 4;
- break;
- default:
- theType = 2;
- break;
- }
- return theType;
- },
- dayType(theType) {
- var jType = "";
- switch (theType) {
- case 1:
- jType = "上午";
- break;
- case 2:
- jType = "下午";
- break;
- case 3:
- jType = "晚上";
- break;
-
- default:
- break;
- }
- return jType;
- },
- weekPath(week, schedule_type) {
- var weekArr = {
- 1: "Mon",
- 2: "Tue",
- 3: "Wed",
- 4: "Thurs",
- 5: "Fri",
- 6: "Sat",
- 7: "Sun"
- };
- var typeArr = { 1: "M", 2: "A", 3: "N" };
- if (
- typeof weekArr[week] === "undefined" ||
- typeof typeArr[schedule_type] === "undefined"
- ) {
- return [];
- }
- return [weekArr[week], typeArr[schedule_type]];
- },
- weekDay(prop) {
- var week = prop.split("_");
- if (week.length != 2) {
- return [-1, -1];
- }
- var w = -1;
- var n = -1;
- switch (week[0]) {
- case "Mon":
- w = 1;
- break;
- case "Tue":
- w = 2;
- break;
- case "Wed":
- w = 3;
- break;
- case "Thurs":
- w = 4;
- break;
- case "Fri":
- w = 5;
- break;
- case "Sat":
- w = 6;
- break;
- case "Sun":
- w = 7;
- break;
- default:
- w = -1;
- break;
- }
- switch (week[1]) {
- case "M":
- n = 1;
- break;
- case "A":
- n = 2;
- break;
- case "N":
- n = 3;
- break;
- default:
- n = -1;
- break;
- }
- if (w == -1 || n == -1) {
- return [-1, -1];
- }
- return [w, n];
- },
- search: function() {
- const params = {
- keywords: this.keywords
- };
- getSearchResult(params).then(response => {
- if (response.data.state == 1) {
- this.schedulePatients = response.data.data.schdules;
- this.searchTableVisible = true;
- }
- });
- },
- changeMachineNumber: function(index, row) {
- this.currentData.schedule_type = row.schedule_type;
- this.currentData.bed_id = row.bed_id;
- this.currentData.partition_id = row.partition_id;
- this.currentData.schedule_week = row.schedule_week;
-
- switch (row.schedule_type) {
- case 1:
- this.currentData.type_name = "上午";
- break;
- case 2:
- this.currentData.type_name = "下午";
- break;
- case 3:
- this.currentData.type_name = "晚上";
- break;
- }
-
- this.currentData.zone_name = row.zone.name;
- this.currentData.bed_name = row.number.number;
- this.currentData.partition_type = row.zone.type;
-
- this.currentData.mode_id = row.mode_id;
- this.currentData.patient_id = row.patient_id;
- this.currentData.patient = row.patient;
- this.currentData.contagions = row.patient_contagions;
-
- this.currentData.id = row.id;
- this.changeSchedule = {
- mode_id: row.mode_id,
- schedule_type: row.schedule_type,
- partition_id: row.partition_id,
- bed_id: row.bed_id,
- schedule_week: row.schedule_week,
- partition_type: ""
- };
- this.currentData.schedule_date = uParseTime(
- row.schedule_date,
- "{y}-{m}-{d}"
- );
-
- if (typeof this.partitions[row.partition_id].jihaos !== "undefined") {
- this.jihaos = this.partitions[row.partition_id].jihaos;
- } else {
- this.jihaos = [];
- }
-
- this.searchTableVisible = false;
- this.jhDialogVisible = true;
- },
- getDialysisDate: function(row) {
- let week = "";
- switch (row.schedule_week) {
- case 7:
- week = "周日";
- break;
- case 1:
- week = "周一";
- break;
- case 2:
- week = "周二";
-
- break;
- case 3:
- week = "周三";
-
- break;
- case 4:
- week = "周四";
-
- break;
- case 5:
- week = "周五";
- break;
- case 6:
- week = "周六";
- break;
- }
-
- return week + "(" + uParseTime(row.schedule_date, "{y}-{m}-{d}") + ")";
- },
- getSchedulesType: function(type) {
- let type_name = "";
- switch (type) {
- case 1:
- type_name = "上午";
- break;
- case 2:
- type_name = "下午";
-
- break;
- case 3:
- type_name = "晚上";
- break;
- }
- return type_name;
- },
- changeMode: function(index, row) {
- this.changeSchedule = {
- mode_id: "",
- schedule_type: "",
- partition_id: "",
- bed_id: "",
- schedule_week: "",
- partition_type: ""
- };
- this.currentData.id = row.id;
- this.searchTableVisible = false;
- this.msDialogVisible = true;
- }
- },
- components: {
- ScheduleItem
- },
- mounted() {
- console.log(this.tableContainHeight);
- this.tableContainHeight =
- window.innerHeight - this.$refs.table.$el.offsetTop - 160;
- console.log(this.tableContainHeight);
- // var theType = this.weekType(this.weekTime);
- // this.getSchedules(theType);
- const that = this;
- window.onresize = () => {
- return (() => {
- window.fullHeight = document.documentElement.clientHeight;
- if (window.fullHeight < 200) {
- that.tableHeight = 200;
- } else {
- that.tableHeight = window.fullHeight - 200;
- }
- })();
- };
- },
- // mounted:function(){
- // this.tableContainHeight = window.innerHeight - this.$refs.table.$el.offsetTop - 160
- // },
- created() {
- rowNumber = 0;
- this.modeOptions = this.$store.getters.treatment_mode;
-
- this.partitions = this.partitionsProp;
-
- console.log(this.partitions);
-
- var contagions = this.$store.getters.contagions;
- if (contagions.length > 0) {
- var that = this;
- contagions.forEach(function(citem) {
- if (citem.type == 2) {
- that.diseasesArr.push({ value: citem.id, label: citem.name });
- }
- });
- }
- this.scheduleZoneRow = this.scheduleZoneRowProp;
- console.log(this.scheduleZoneRow);
-
- this.weekday = new Date().getDay();
- if (this.weekday == 0) {
- this.weekday = 7;
- }
- }
- };
- </script>
-
- <style rel="stylesheet/css" lang="scss">
- .tiaozhengclass {
- display: block;
- margin: 0 auto;
- }
-
- // .el-table tr {
- // background-color: #111 !important;
- // }
-
- .schedule-table-row {
- background: #fff !important;
- }
-
- .schedule-table-row:hover {
- background: #fff !important;
- }
-
- .schedule-table-row td:hover {
- background: rgb(88, 162, 236) !important;
- }
-
- .schedule-table-row td .cell {
- font-size: 12px;
- white-space: nowrap !important;
- }
-
- .schedule-table-cell-disable {
- background-color: rgb(245, 245, 245) !important;
- }
-
- #table_data {
- min-height: calc(100vh - 350px);
- }
-
- #table_data ::-webkit-scrollbar {
- height: 15px;
- }
- .el-table td,
- .el-table th.is-leaf,
- .el-table--border,
- .el-table--group {
- border-color: #d0d3da;
- }
- .el-table--border::after,
- .el-table--group::after,
- .el-table::before {
- background-color: #d0d3da;
- }
- .el-table--border th {
- border-color: #d0d3da;
- }
- .el-table--border td {
- border-color: #d0d3da;
- }
- .el-table td {
- border-color: #d0d3da;
- }
-
- .el-table__body tr.current-row > td {
- background-color: #409eff !important;
- }
- // .el-table__body tr > td:hover {
- // background-color: #409eff !important;
- // }
- #table_data {
- .el-table__body tr > td:hover {
- background-color: #409eff !important;
- color: #fff;
- }
- }
- </style>
|