index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762
  1. <template>
  2. <view class="index">
  3. <view class="arc_edge"></view>
  4. <view class="index_container">
  5. <!-- 头部搜索 -->
  6. <view class="search">
  7. <view class="search_wrap">
  8. <input focus placeholder="请输入标本编码/检查单号/请…" :placeholder-style="placeholderStyle" confirm-type="search" />
  9. <view class="searchBtn"> 搜索 </view>
  10. </view>
  11. <view class="icon-saoma">
  12. <text class="pda pda-saoma"></text>
  13. </view>
  14. </view>
  15. <!-- 通告栏 -->
  16. <uni-notice-bar :speed="20" scrollable single showIcon :text="updateTipsForNurses" background-color="#fff"
  17. color="#666">
  18. </uni-notice-bar>
  19. <!-- 一键收标本 -->
  20. <view class="collect_specimens">
  21. <view class="collect_icon"> 标 </view>
  22. <view class="collect_specimensNum">
  23. <view class="urgent collect_row">
  24. 急标数量<text class="collect_num">{{
  25. urgentNum | specimenNum
  26. }}</text>
  27. </view>
  28. <view class="ordinary collect_row">
  29. 普标数量<text class="collect_num">{{
  30. ordinaryNum | specimenNum
  31. }}</text>
  32. </view>
  33. </view>
  34. <button class="collect_btn" type="default" @click="collectSpecimens">
  35. {{ specimenButton }}
  36. </button>
  37. </view>
  38. <!-- 最新工单 -->
  39. <view class="newOrders">
  40. <view class="newOrders_header">
  41. <text class="newOrders_header_title">最新工单</text>
  42. <text class="newOrders_header_more" @click="goToMore">更多&gt;&gt;</text>
  43. </view>
  44. <view class="newOrders_item" v-for="newOrder in newOrderList" :key="newOrder.id">
  45. <view class="newOrders_item_time" v-if="newOrder.showCreateTime">{{ newOrder.showCreateTime }}</view>
  46. <view class="newOrders_item_time" v-else-if="newOrder.yyjdTime && newOrder.gdState.value == 11">
  47. {{newOrder.yyjdTime | formatDate('MM-dd HH:mm')}}
  48. </view>
  49. <text class="newOrders_item_taskType">{{
  50. newOrder.isHalfInspect === 1
  51. ? "半程陪检"
  52. : newOrder.taskType && newOrder.taskType.taskName
  53. }}</text>
  54. <text class="newOrders_item_patientName">{{
  55. newOrder.patient && newOrder.patient.patientName
  56. }}</text>
  57. <text class="newOrders_item_status"
  58. :class="newOrder.stateTextClass">{{ newOrder.gdState && newOrder.gdState.name }}</text>
  59. </view>
  60. </view>
  61. <!-- 快捷工单 -->
  62. <view class="quick_other">
  63. <view class="quick_other_header">
  64. <text class="quick_other_header_title">快捷工单</text>
  65. </view>
  66. <view class="quick_other_container">
  67. <view class="quick_other_container_item" v-for="quickOther in quickOtherList" :key="quickOther.id">
  68. <view class="quick_other_container_item_text" @click="quickOrderOther(quickOther)">
  69. {{ quickOther.taskName }}
  70. </view>
  71. </view>
  72. </view>
  73. </view>
  74. </view>
  75. <seiminFooterNav></seiminFooterNav>
  76. <seiminModel ref="seiminModel"></seiminModel>
  77. <seiminPicker ref="sPicker" :title="pickerTitle" titleColor="#808080" titleFontSize="28rpx" confirmColor="#333"
  78. confirmFontSize="38rpx" confirmFontWeight="500" itemFontSize="28rpx" @onClose="closePicker"
  79. @onConfirm="confirmPicker" :pickerList="hospitalList">
  80. </seiminPicker>
  81. </view>
  82. </template>
  83. <script>
  84. import {
  85. mapState,
  86. mapMutations,
  87. mapActions
  88. } from "vuex";
  89. import {
  90. reqSpecimenWorkOrderMsg,
  91. reqDeptTaskType,
  92. reqFetchDataList,
  93. } from "../../request/api.js";
  94. import {
  95. GDSTATE
  96. } from "../../utils/enum.gdstate.js";
  97. import {
  98. ASSOCIATION_TYPES
  99. } from "../../utils/enum.association_types.js";
  100. export default {
  101. data() {
  102. return {
  103. placeholderStyle: "color:#999;font-size:30rpx;",
  104. urgentNum: 0, //急标数量
  105. ordinaryNum: 0, //普标数量
  106. newOrderList: [], //最新工单列表
  107. quickOtherList: [], //快捷工单列表
  108. hospitalList: [], //当前用户权限中的院区列表
  109. pickerTitle: "", //选择院区picker的title
  110. specimenTaskTypeId: undefined, //标本任务类型id
  111. };
  112. },
  113. computed: {
  114. ...mapState("login", ["loginInfo"]),
  115. ...mapState('other', [
  116. "isShowSeiminModel",
  117. "deptDisplay",
  118. "specimenButton",
  119. "updateTipsForNurses",
  120. ]),
  121. },
  122. methods: {
  123. ...mapMutations('other', [
  124. "changeSeiminModel",
  125. "changeQucikCreateOrderType",
  126. "changeDeptDisplay",
  127. "changeUpdateTipsForNurses",
  128. "changeSpecimenButton",
  129. "changeNurseDeptSwitchTip",
  130. "changeSearchDeptParams",
  131. ]),
  132. ...mapActions('system', ["vxSystem"]),
  133. // 跳转到工单列表页面
  134. goToMore() {
  135. uni.navigateTo({
  136. url: '/pages/orderList/orderList'
  137. })
  138. },
  139. // 获取页面数据
  140. init() {
  141. uni.showLoading({
  142. title: "加载中",
  143. mask: true,
  144. });
  145. Promise.all([
  146. this.querySpecimenNumRequest(), //查询急标和普标数量
  147. this.queryWorkOrdersRequest(), //查询最新工单列表
  148. this.queryDeptTaskTypeRequest(), //查询快捷工单(其他临床服务任务类型)
  149. this.queryDeptDisplayRequest(), //护士端科室显示选择(名称还是别名)
  150. this.queryUpdateTipsForNursesRequest(), //护士端更新提示
  151. this.querySpecimenButtonRequest(), //标本按钮文字
  152. this.queryNurseDeptSwitchTipRequest(), //护士科室切换提示自动关闭设置
  153. ]).then((values) => {
  154. uni.hideLoading();
  155. uni.stopPullDownRefresh();
  156. this.querySpecimenNumResponse(values[0]);
  157. this.queryWorkOrdersResponse(values[1]);
  158. this.queryDeptTaskTypeResponse(values[2]);
  159. this.queryDeptDisplayResponse(values[3]);
  160. this.queryUpdateTipsForNursesResponse(values[4]);
  161. this.querySpecimenButtonResponse(values[5]);
  162. this.queryNurseDeptSwitchTipResponse(values[6]);
  163. if (this.isShowSeiminModel) {
  164. this.showDeptModel();
  165. this.changeSeiminModel(false);
  166. }
  167. });
  168. },
  169. // 查询急标和普标数量
  170. querySpecimenNumRequest() {
  171. return reqSpecimenWorkOrderMsg({
  172. deptId: this.loginInfo.user.dept.id,
  173. });
  174. },
  175. // 查询急标和普标数量
  176. querySpecimenNumResponse(res) {
  177. if (res.status == 200) {
  178. if (res.specimenCount) {
  179. this.urgentNum = res.specimenCount.urgent;
  180. }
  181. if (res.specimenCount) {
  182. this.ordinaryNum = res.specimenCount.noUrgent;
  183. }
  184. } else {
  185. this.$refs.seiminModel.showChangeDept({
  186. skin: "toast",
  187. icon: "error",
  188. content: res.msg || "获取数据失败",
  189. });
  190. throw new Error(res.msg || '获取数据失败');
  191. }
  192. },
  193. // 查询最新工单列表
  194. queryWorkOrdersRequest() {
  195. return reqFetchDataList("nurse", "workOrder", {
  196. workOrder: {
  197. createDept: this.loginInfo.user.dept.id,
  198. platform: 2,
  199. searchDays: 2,
  200. },
  201. idx: 0,
  202. sum: 5,
  203. });
  204. },
  205. // 查询最新工单列表
  206. queryWorkOrdersResponse(res) {
  207. if (res.status == 200) {
  208. res.list = res.list || [];
  209. this.newOrderList = res.list.map((v) => {
  210. if (v.gdState) {
  211. if (
  212. v.gdState.value == GDSTATE["待接单"] ||
  213. v.gdState.value == GDSTATE["待抢单"]
  214. ) {
  215. v.stateTextClass = "red";
  216. } else if (
  217. v.gdState.value == GDSTATE["待评价"] ||
  218. v.gdState.value == GDSTATE["已完成"]
  219. ) {
  220. v.stateTextClass = "green";
  221. } else {
  222. v.stateTextClass = "yellow";
  223. }
  224. }
  225. return v;
  226. });
  227. } else {
  228. this.$refs.seiminModel.showChangeDept({
  229. skin: "toast",
  230. icon: "error",
  231. content: res.msg || "获取数据失败",
  232. });
  233. throw new Error(res.msg || '获取数据失败');
  234. }
  235. },
  236. // 查询快捷工单(其他临床服务任务类型)
  237. queryDeptTaskTypeRequest() {
  238. return reqDeptTaskType({
  239. deptId: this.loginInfo.user.dept.id,
  240. });
  241. },
  242. // 查询快捷工单(其他临床服务,标本)
  243. queryDeptTaskTypeResponse(res) {
  244. if (res.status == 200) {
  245. res.data = res.data || {};
  246. res.data.allTaskTypes = res.data.allTaskTypes || [];
  247. this.quickOtherList = res.data.allTaskTypes.filter(
  248. (v) => v.associationType ? v.associationType.value == ASSOCIATION_TYPES["其他临床服务"] : false
  249. );
  250. let specimenTaskType = res.data.allTaskTypes.find(
  251. (v) => v.associationType ? v.associationType.value == ASSOCIATION_TYPES["临时标本业务"] : false
  252. );
  253. this.specimenTaskTypeId = specimenTaskType && specimenTaskType.id;
  254. } else {
  255. this.$refs.seiminModel.showChangeDept({
  256. skin: "toast",
  257. icon: "error",
  258. content: res.msg || "获取数据失败",
  259. });
  260. throw new Error(res.msg || '获取数据失败');
  261. }
  262. },
  263. // 护士端科室显示选择(名称还是别名)
  264. queryDeptDisplayRequest() {
  265. return this.vxSystem({
  266. idx: 0,
  267. sum: 1,
  268. systemConfiguration: {
  269. keyconfig: "deptDisplay",
  270. },
  271. });
  272. },
  273. // 护士端科室显示选择(名称还是别名)
  274. queryDeptDisplayResponse(res) {
  275. if (res.status == 200) {
  276. res.list = res.list || [];
  277. res.list[0] = res.list[0] || {};
  278. if (!res.list[0].id) {
  279. this.$refs.seiminModel.showChangeDept({
  280. skin: "toast",
  281. icon: "error",
  282. content: "无法获取到【护士端科室显示选择】配置,请前往配置",
  283. });
  284. throw new Error('无法获取到【护士端科室显示选择】配置,请前往配置');
  285. }
  286. this.changeDeptDisplay(res.list[0].valueconfig);
  287. } else {
  288. this.$refs.seiminModel.showChangeDept({
  289. skin: "toast",
  290. icon: "error",
  291. content: res.msg || "无法获取到【护士端科室显示选择】配置,请前往配置",
  292. });
  293. throw new Error(res.msg || '无法获取到【护士端科室显示选择】配置,请前往配置');
  294. }
  295. },
  296. // 护士端更新提示
  297. queryUpdateTipsForNursesRequest() {
  298. return this.vxSystem({
  299. idx: 0,
  300. sum: 1,
  301. systemConfiguration: {
  302. keyconfig: "updateTipsForNurses",
  303. },
  304. });
  305. },
  306. // 护士端更新提示
  307. queryUpdateTipsForNursesResponse(res) {
  308. if (res.status == 200) {
  309. res.list = res.list || [];
  310. res.list[0] = res.list[0] || {};
  311. if (!res.list[0].id) {
  312. this.$refs.seiminModel.showChangeDept({
  313. skin: "toast",
  314. icon: "error",
  315. content: "无法获取到【护士端更新提示】配置,请前往配置",
  316. });
  317. throw new Error('无法获取到【护士端更新提示】配置,请前往配置');
  318. }
  319. this.changeUpdateTipsForNurses(res.list[0].valueconfig);
  320. } else {
  321. this.$refs.seiminModel.showChangeDept({
  322. skin: "toast",
  323. icon: "error",
  324. content: res.msg || "无法获取到【护士端更新提示】配置,请前往配置",
  325. });
  326. throw new Error(res.msg || '无法获取到【护士端更新提示】配置,请前往配置');
  327. }
  328. },
  329. // 标本按钮文字
  330. querySpecimenButtonRequest() {
  331. return this.vxSystem({
  332. idx: 0,
  333. sum: 1,
  334. systemConfiguration: {
  335. keyconfig: "specimenButton",
  336. },
  337. });
  338. },
  339. // 标本按钮文字
  340. querySpecimenButtonResponse(res) {
  341. if (res.status == 200) {
  342. res.list = res.list || [];
  343. res.list[0] = res.list[0] || {};
  344. if (!res.list[0].id) {
  345. this.$refs.seiminModel.showChangeDept({
  346. skin: "toast",
  347. icon: "error",
  348. content: "无法获取到【标本按钮文字】配置,请前往配置",
  349. });
  350. throw new Error('无法获取到【标本按钮文字】配置,请前往配置');
  351. }
  352. this.changeSpecimenButton(res.list[0].valueconfig);
  353. } else {
  354. this.$refs.seiminModel.showChangeDept({
  355. skin: "toast",
  356. icon: "error",
  357. content: res.msg || "无法获取到【标本按钮文字】配置,请前往配置",
  358. });
  359. throw new Error(res.msg || '无法获取到【标本按钮文字】配置,请前往配置');
  360. }
  361. },
  362. // 护士科室切换提示自动关闭设置
  363. queryNurseDeptSwitchTipRequest() {
  364. return this.vxSystem({
  365. idx: 0,
  366. sum: 1,
  367. systemConfiguration: {
  368. keyconfig: "nurseDeptSwitchTip",
  369. },
  370. });
  371. },
  372. // 护士科室切换提示自动关闭设置
  373. queryNurseDeptSwitchTipResponse(res) {
  374. if (res.status == 200) {
  375. res.list = res.list || [];
  376. res.list[0] = res.list[0] || {};
  377. if (!res.list[0].id) {
  378. this.$refs.seiminModel.showChangeDept({
  379. skin: "toast",
  380. icon: "error",
  381. content: "无法获取到【护士科室切换提示自动关闭设置】配置,请前往配置",
  382. });
  383. throw new Error('无法获取到【护士科室切换提示自动关闭设置】配置,请前往配置');
  384. }
  385. this.changeNurseDeptSwitchTip(res.list[0].valueconfig);
  386. } else {
  387. this.$refs.seiminModel.showChangeDept({
  388. skin: "toast",
  389. icon: "error",
  390. content: res.msg || "无法获取到【护士科室切换提示自动关闭设置】配置,请前往配置",
  391. });
  392. throw new Error(res.msg || '无法获取到【护士科室切换提示自动关闭设置】配置,请前往配置');
  393. }
  394. },
  395. // 一键收取标本
  396. collectSpecimens() {
  397. if (!this.specimenTaskTypeId) {
  398. this.$refs.seiminModel.showChangeDept({
  399. skin: "toast",
  400. icon: "error",
  401. content: "无法获取到临时标本业务",
  402. });
  403. throw new Error('无法获取到标本任务类型id');
  404. }
  405. uni.navigateTo({
  406. url: "/pages/quickCreateOrder/quickCreateOrder",
  407. });
  408. this.changeQucikCreateOrderType({
  409. type: "specimen",
  410. taskTypeId: this.specimenTaskTypeId,
  411. });
  412. },
  413. //其他临床服务快捷建单
  414. quickOrderOther(quickOther) {
  415. uni.navigateTo({
  416. url: "/pages/quickCreateOrder/quickCreateOrder",
  417. });
  418. this.changeQucikCreateOrderType({
  419. type: "other",
  420. taskTypeId: quickOther.id,
  421. });
  422. },
  423. // 切换科室弹窗
  424. showDeptModel() {
  425. const {
  426. user, //当前登录用户
  427. } = this.loginInfo;
  428. const userDept =
  429. user && user.dept ?
  430. this.deptDisplay == 1 ?
  431. user.dept.dept :
  432. user.dept.deptalias :
  433. "";
  434. this.$refs.seiminModel.showChangeDept({
  435. content: `您当前所属科室为<text class="green">${userDept}</text>,如与您实际科室不符点击<text class="red">切换科室</text>。`,
  436. btns: [{
  437. name: "知道了",
  438. textColor: "#49B856",
  439. flex: 2,
  440. },
  441. {
  442. name: "前往切换科室",
  443. textColor: "#666",
  444. flex: 3,
  445. click: (e) => {
  446. this.$refs.seiminModel.close();
  447. this.openPicker();
  448. },
  449. },
  450. ],
  451. });
  452. },
  453. //关闭
  454. closePicker() {
  455. this.$refs.sPicker._close();
  456. },
  457. //打开
  458. openPicker() {
  459. this.$refs.sPicker._open();
  460. let index = this.hospitalList.findIndex(v => v.value == this.loginInfo.user.currentHospital.id);
  461. this.$refs.sPicker._changeValue(index);
  462. },
  463. //确定:接收子组件传来的参数
  464. confirmPicker(checkedObj) {
  465. this.changeSearchDeptParams({
  466. backUrl: "/pages/index/index", //返回的url
  467. type: "changeDept_index", //首页切换科室
  468. hospital: checkedObj, //先选择院区
  469. });
  470. uni.navigateTo({
  471. url: "/pages/searchDept/searchDept",
  472. });
  473. },
  474. },
  475. mounted() {
  476. //选择院区picker的title
  477. this.pickerTitle = `您当前所属科室为<b class="green">${this.loginInfo.user.dept.dept}</b>,请您先选择院区`;
  478. //权限中的院区修改数据结构
  479. this.hospitalList = this.loginInfo.infoPermission.hospitals.map((v) => ({
  480. value: v.id,
  481. label: v.hosName,
  482. }));
  483. this.init();
  484. },
  485. onPullDownRefresh() {
  486. this.init();
  487. },
  488. };
  489. </script>
  490. <style lang="scss" scoped>
  491. .index {
  492. padding-bottom: 108rpx;
  493. // 弧形背景
  494. .arc_edge {
  495. @include arc_edge;
  496. }
  497. .index_container {
  498. padding: 0 24rpx;
  499. position: relative;
  500. z-index: 2;
  501. // 搜素框
  502. .search {
  503. height: 66rpx;
  504. margin-top: -200rpx;
  505. @include flex(space-between, center);
  506. .search_wrap {
  507. width: 600rpx;
  508. height: 100%;
  509. border-radius: 33rpx;
  510. background-color: #fff;
  511. position: relative;
  512. input {
  513. height: 100%;
  514. padding-left: 33rpx;
  515. padding-right: 147rpx;
  516. }
  517. .searchBtn {
  518. position: absolute;
  519. right: 0;
  520. top: 50%;
  521. transform: translateY(-50%);
  522. line-height: 1em;
  523. color: #666;
  524. font-size: 32rpx;
  525. width: 110rpx;
  526. text-align: center;
  527. border-left: 2rpx solid #e5e9ed;
  528. padding: 6rpx 0;
  529. }
  530. }
  531. .icon-saoma {
  532. width: 66rpx;
  533. height: 66rpx;
  534. background-color: #bee1a7;
  535. border-radius: 50%;
  536. color: $defaultColor;
  537. @include flex(center, center);
  538. }
  539. }
  540. // 通告栏
  541. .uni-noticebar {
  542. height: 88rpx;
  543. margin-top: 24rpx;
  544. margin-bottom: 0;
  545. border: 1px solid #e5e9ed;
  546. }
  547. // 一键收标本
  548. .collect_specimens {
  549. width: 702rpx;
  550. height: 176rpx;
  551. background-color: #fff;
  552. margin-top: 8rpx;
  553. border-radius: 8rpx;
  554. // box-shadow: 0 0 7rpx 0 rgba(73, 184, 86, 0.09);
  555. border: 1px solid #e5e9ed;
  556. position: relative;
  557. @include flex(center, center);
  558. @include semicircle(#f9fafb);
  559. .collect_icon {
  560. width: 48rpx;
  561. height: 48rpx;
  562. border-radius: 50%;
  563. background-color: rgba(57, 177, 153, 0.3);
  564. border: 1px solid #39b199;
  565. font-size: 24rpx;
  566. color: #39b199;
  567. @include flex(center, center);
  568. }
  569. .collect_specimensNum {
  570. margin: 0 35rpx;
  571. width: 277rpx;
  572. font-size: 34rpx;
  573. color: #666;
  574. .collect_num {
  575. font-size: 46rpx;
  576. font-weight: 600;
  577. color: #333;
  578. margin-left: 16rpx;
  579. }
  580. .collect_row {
  581. height: 88rpx;
  582. @include flex(flex-start, center);
  583. border-bottom: 1px dashed #e5e9ed;
  584. &:last-of-type {
  585. border-bottom: none;
  586. }
  587. }
  588. }
  589. .collect_btn {
  590. margin: 0;
  591. width: 224rpx;
  592. height: 88rpx;
  593. background: linear-gradient(90deg, #74c271 0%, #39b199 100%);
  594. border-radius: 56rpx;
  595. color: #fff;
  596. font-size: 32rpx;
  597. line-height: 88rpx;
  598. }
  599. }
  600. // 最新工单
  601. .newOrders {
  602. width: 702rpx;
  603. min-height: 530rpx;
  604. background-color: #fff;
  605. margin-top: 8rpx;
  606. border-radius: 8rpx;
  607. // box-shadow: 0 0 7rpx 0 rgba(73, 184, 86, 0.09);
  608. border: 1px solid #e5e9ed;
  609. position: relative;
  610. padding: 0 15rpx;
  611. font-size: 32rpx;
  612. @include semicircle(#f9fafb, 70rpx);
  613. .newOrders_header {
  614. height: 87rpx;
  615. padding: 0 27rpx;
  616. border-bottom: 1px dashed #e5e9ed;
  617. @include flex(space-between, center);
  618. .newOrders_header_title {
  619. color: #333;
  620. }
  621. .newOrders_header_more {
  622. color: #666;
  623. }
  624. }
  625. .newOrders_item {
  626. height: 88rpx;
  627. padding: 0 27rpx;
  628. border-bottom: 1px solid #e5e9ed;
  629. color: #333;
  630. font-size: 30rpx;
  631. @include flex(center, center);
  632. &:last-of-type {
  633. border-bottom: none;
  634. }
  635. .newOrders_item_time {
  636. width: 88rpx;
  637. text-align: center;
  638. }
  639. .newOrders_item_taskType {
  640. flex: 1;
  641. margin-left: 16rpx;
  642. @include clamp(1);
  643. }
  644. .newOrders_item_patientName {
  645. margin-left: 16rpx;
  646. margin-right: 16rpx;
  647. width: 148rpx;
  648. @include clamp(1);
  649. }
  650. .newOrders_item_status {}
  651. }
  652. }
  653. // 快捷工单
  654. .quick_other {
  655. width: 702rpx;
  656. background-color: #fff;
  657. margin-top: 8rpx;
  658. border-radius: 8rpx;
  659. // box-shadow: 0 0 7rpx 0 rgba(73, 184, 86, 0.09);
  660. border: 1px solid #e5e9ed;
  661. position: relative;
  662. padding: 0 15rpx;
  663. font-size: 32rpx;
  664. @include semicircle(#f9fafb, 70rpx);
  665. .quick_other_header {
  666. height: 87rpx;
  667. padding: 0 27rpx;
  668. border-bottom: 1px dashed #e5e9ed;
  669. @include flex(space-between, center);
  670. .quick_other_header_title {
  671. color: #333;
  672. }
  673. }
  674. .quick_other_container {
  675. min-height: 288rpx;
  676. @include flex(flex-start, center);
  677. flex-wrap: wrap;
  678. font-size: 28rpx;
  679. .quick_other_container_item {
  680. width: 96rpx;
  681. height: 96rpx;
  682. border-radius: 8rpx;
  683. margin: 16rpx 35rpx;
  684. color: #fff;
  685. text-align: center;
  686. @include flex(center, center);
  687. .quick_other_container_item_text {
  688. @include clamp(2);
  689. }
  690. &:nth-of-type(8n + 1) {
  691. background-color: #a4c4c1;
  692. }
  693. &:nth-of-type(8n + 2) {
  694. background-color: #56bab6;
  695. }
  696. &:nth-of-type(8n + 3) {
  697. background-color: #39b199;
  698. }
  699. &:nth-of-type(8n + 4) {
  700. background-color: #48717f;
  701. }
  702. &:nth-of-type(8n + 5) {
  703. background-color: #56bab6;
  704. }
  705. &:nth-of-type(8n + 6) {
  706. background-color: #a4c4c1;
  707. }
  708. &:nth-of-type(8n + 7) {
  709. background-color: #48717f;
  710. }
  711. &:nth-of-type(8n + 8) {
  712. background-color: #8e9d9e;
  713. }
  714. }
  715. }
  716. }
  717. }
  718. }
  719. </style>