index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  1. <template>
  2. <view class="main">
  3. <NavBar :user-info="userInfo" :work-Status="workStatus" @update-user="updateUser" />
  4. <view class="body">
  5. <view class="tab-box">
  6. <view class="tab-bar">
  7. <view class="tab_item" v-for="(tab, index) in tabList" :key="index"
  8. :class="{'active':tabActive==index}" @click="checkIndex(index)">
  9. <text class="text">{{tab.title}}{{tabActive===0 && index==0 && orderList.length>0?"("+orderList.length+")":""}}</text>
  10. </view>
  11. </view>
  12. <view class="search-bar">
  13. <view v-if="tabActive === 0" class="today">
  14. <view class="search">
  15. <uni-easyinput prefixIcon="search" v-model="searchVal" placeholder="请输入姓名" />
  16. </view>
  17. <button type="primary" @click="handleSearch" class="search-button">搜 索</button>
  18. <button type="primary" v-if="s=='1'" :disabled="workStatus==='1'?false:true" @click="handleRefresh" :class="workStatus==='1'?'refresh':'refresh active'">{{ccc}}</button>
  19. <button type="primary" v-else @click="handleRelease" :class="'refresh'">完成</button>
  20. </view>
  21. <view v-else class="history">
  22. <view class="searchchoice">
  23. <view class="row1">
  24. <view class="timequan">
  25. <text class="time_t">时间区间:</text>
  26. <uni-datetime-picker v-model="searchTime[0]" placeholder="开始时间" type="datetime" :hide-second="true" class="datepick"/>
  27. <uni-datetime-picker v-model="searchTime[1]" placeholder="结束时间" type="datetime" :hide-second="true" class="datepick"/>
  28. <!-- <timeSlot
  29. ref="timeslot"
  30. :title="'选择时间段'"
  31. @confirm="confirmTime">
  32. </timeSlot> -->
  33. <!-- <el-date-picker
  34. v-model="searchTime"
  35. type="datetimerange"
  36. range-separator="-"
  37. start-placeholder="开始时间"
  38. end-placeholder="结束时间"
  39. /> -->
  40. </view>
  41. </view>
  42. <view class="row2">
  43. <view class="office">
  44. <view class="time_t">
  45. 科室:
  46. </view>
  47. <picker @change="handleGetOffice" placeholder="请选择" :value="officeIndex" :range="officeArr">
  48. <view class="uni-input">{{officeArr[officeIndex]}}</view>
  49. </picker>
  50. </view>
  51. <view class="presid">
  52. <picker @change="handleGetType" :value="typeIndex" :range="typeArr">
  53. <view class="uni-input">{{typeArr[typeIndex]}}</view>
  54. </picker>
  55. </view>
  56. <view v-if="typeIndex === 0" class="search">
  57. <uni-easyinput prefixIcon="search" v-model="searchName" placeholder="请输入姓名" />
  58. </view>
  59. <view v-else class="search">
  60. <uni-easyinput prefixIcon="search" v-model="searchPreNo" placeholder="请输入处方号" />
  61. </view>
  62. <button type="primary" @click="handleSearch" class="search-button">搜索</button>
  63. </view>
  64. <view class="row3">
  65. <view class="tag-view" v-for="(v, i) in tags" :key="i">
  66. <uni-tag :circle="true" :inverted="!searchTags.includes(v)" :text=v @click="handleGetTags(v)" />
  67. </view>
  68. </view>
  69. </view>
  70. </view>
  71. </view>
  72. </view>
  73. <view class="tab-content">
  74. <view class="order-list">
  75. <scroll-view
  76. v-if="orderList.length > 0"
  77. class="order-list-wrap"
  78. scroll-y="true"
  79. :scroll-top="50"
  80. @scrolltoupper="loadPreList"
  81. @scrolltolower="loadMoreList"
  82. >
  83. <template v-for="(v,i) in orderList" :key="i">
  84. <orderCard v-if="v " :s="s" :v="v" :work-Status="workStatus" :c="tabActive"
  85. @emit-select="emitSelect"
  86. />
  87. </template>
  88. </scroll-view>
  89. <view v-else class="text">
  90. <image class="zwsj" aspectFill :src="'/static/zwsj.png'" />
  91. </view>
  92. </view>
  93. <view v-if="isBottom" class="order-bottom">
  94. <view class="text">-- 没有更多数据 --</view>
  95. </view>
  96. </view>
  97. </view>
  98. </view>
  99. </template>
  100. <script setup>
  101. import NavBar from "@/components/nav-bar/nav-bar.vue"
  102. import OrderCard from "@/components/order-card/order-card.vue"
  103. import { onMounted,ref, getCurrentInstance } from 'vue'
  104. import { onLoad } from "@dcloudio/uni-app"
  105. import {receiveOrderList, selectDepartment } from "@/static/js/api.js"
  106. import {releaseOrder} from "@/static/js/request.js"
  107. // import { ID_INJECTION_KEY } from 'element-plus'
  108. const userInfo = ref({})
  109. const workStatus = ref('0')
  110. const tabList = ref([
  111. {title:"今日待完成", status: '0', leng:0},
  112. {title:"历史处方", status: '1'},
  113. ])
  114. const currentStatus = ref(0)
  115. const tabActive = ref(0) // 当前tab Index
  116. const tabName = ref('今日待完成') // 当前tab Name
  117. // const tags = ref([])
  118. const orderList = ref([
  119. {id:1,prescriptionTime:'2023-07-06 14:54', faceurl:'/static/hz.png',name:'张三三',sex: '女',age: 23,disName:'胃脘痛病',symName:'脾胃虚寒证',deployState:'调配',preNo:10230516091026,department:'中医内科',dosageForm:'汤剂',number:3,prescriptionSum:135.62,preMzZy:'1'},
  120. {id:2,prescriptionTime:'2023-07-06 14:54', faceurl:'/static/hz.png',name:'张三三',sex: '女',age: 23,disName:'胃脘痛病',symName:'脾胃虚寒证',deployState:'调配',preNo:10230516091026,department:'中医内科',dosageForm:'汤剂',number:3,prescriptionSum:135.62,preMzZy:'1'},
  121. {id:3,prescriptionTime:'2023-07-06 14:54', faceurl:'/static/hz.png',name:'张三三',sex: '女',age: 23,disName:'胃脘痛病',symName:'脾胃虚寒证',deployState:'调配',preNo:10230516091026,department:'中医内科',dosageForm:'汤剂',number:3,prescriptionSum:135.62,preMzZy:'2'},
  122. {id:4,prescriptionTime:'2023-07-06 14:54', faceurl:'/static/hz.png',name:'张三三',sex: '女',age: 23,disName:'胃脘痛病',symName:'脾胃虚寒证',deployState:'调配',preNo:10230516091026,department:'中医内科',dosageForm:'汤剂',number:3,prescriptionSum:135.62,preMzZy:'1'},
  123. {id:5,prescriptionTime:'2023-07-06 14:54', faceurl:'/static/hz.png',name:'张三三',sex: '女',age: 23,disName:'胃脘痛病',symName:'脾胃虚寒证',deployState:'调配',preNo:10230516091026,department:'中医内科',dosageForm:'汤剂',number:3,prescriptionSum:135.62,preMzZy:'2'}
  124. ])
  125. const isBottom = ref(false) // 是否触底
  126. const officeArr = ref(['全部'])
  127. const officeIndex = ref(0)
  128. const typeArr = ref(['姓名:','处方号:'])
  129. const typeIndex = ref(0)
  130. const searchVal = ref('')
  131. const searchTime =ref([])
  132. const searchDepartment = ref('')
  133. const searchName = ref('')
  134. const searchPreNo = ref('')
  135. const searchSex = ref('')
  136. const searchPreMzZy = ref('')
  137. const searchStatus = ref('')
  138. const searchTags = ref([])
  139. const tags = ref(['全部','门诊','住院','男','女','煎煮','发药'])
  140. const deployArr = ref([
  141. {name:'抓药', id: '1' },
  142. {name:'复核', id: '2' },
  143. {name:'浸泡', id: '3' },
  144. {name:'煎煮', id: '4' },
  145. {name:'打包', id: '5' },
  146. ])
  147. const page = ref(1)
  148. const pageSize = ref(10)
  149. const total = ref(0)
  150. const status = ref('')
  151. const s = ref('1')
  152. const ccc = ref('一键释放')
  153. const ids = ref([])
  154. const today =ref({
  155. leng: 0,
  156. })
  157. // app.provide(ID_INJECTION_KEY, {
  158. // prefix: Math.floor(Math.random() * 10000),
  159. // current: 0,
  160. // })
  161. const {proxy} = getCurrentInstance()
  162. onMounted(() => {
  163. })
  164. onLoad(async () => {
  165. const token = uni.getStorageSync('token')
  166. userInfo.value.name = uni.getStorageSync('username')
  167. workStatus.value = uni.getStorageSync('workStatus') || '0'
  168. const params = {
  169. token: token,
  170. data:JSON.stringify({
  171. currentUserId: parseInt(uni.getStorageSync('userId')) || 0,
  172. pageNum: page.value,
  173. pageSize: pageSize.value,
  174. status: '0'
  175. })
  176. }
  177. const {data:res} = await receiveOrderList(params)
  178. if (res.code === 200) {
  179. total.value = res.total
  180. orderList.value = res.rows
  181. if(tabActive.value ==0){
  182. tabList.value[0].leng = orderList.value.length
  183. }
  184. }
  185. })
  186. const reset = ()=>{
  187. searchTime.value =[]
  188. officeIndex.value =0
  189. searchName.value =''
  190. searchPreNo.value =''
  191. searchSex.value =''
  192. searchPreMzZy.value =''
  193. searchStatus.value =''
  194. searchVal.value = ''
  195. officeArr.value = ['全部']
  196. }
  197. // 子传父,更新userInfo
  198. const updateUser = (v)=>{
  199. console.log('updateUserStatus', v)
  200. workStatus.value = v+''
  201. console.log('workStatus.value', workStatus.value)
  202. }
  203. const emitSelect = (v)=>{
  204. console.log('emitSelect', v)
  205. // 查在ids中查找v,如果存在就删除,如果不存在就添加
  206. const index = ids.value.findIndex(x=>x==v)
  207. if (index>-1){
  208. ids.value.splice(index, 1)
  209. } else {
  210. ids.value.push(v)
  211. }
  212. }
  213. const handleSearch = async()=>{
  214. console.log('handleSearch searchPreMzZy',searchPreMzZy.value)
  215. console.log('handleSearch searchStatus',searchStatus.value)
  216. console.log('handleSearch searchSex',searchSex.value)
  217. if(tabActive.value ===0) {
  218. const params = {
  219. token: uni.getStorageSync('token'),
  220. data: JSON.stringify({
  221. currentUserId: parseInt(uni.getStorageSync('userId')) || 0,
  222. name: searchVal.value.trim(),
  223. pageNum: page.value,
  224. pageSize: pageSize.value,
  225. status: tabList.value[tabActive.value].status,
  226. })
  227. }
  228. const {data:res} = await receiveOrderList(params)
  229. if (res.code === 200) {
  230. total.value = res.total
  231. orderList.value = res.rows
  232. }
  233. }
  234. if(tabActive.value==1){
  235. const params = {
  236. token: uni.getStorageSync('token'),
  237. data: JSON.stringify({
  238. currentUserId: parseInt(uni.getStorageSync('userId')) || 0,
  239. startTime: searchTime.value[0] || '',
  240. endTime: searchTime.value[1] || '',
  241. name: searchName.value.trim() || '',
  242. preNo: searchPreNo.value || '',
  243. department: searchDepartment.value || '',
  244. prescriptionStatus: searchStatus.value || '',//煎煮发药
  245. sex: searchSex.value || '',
  246. preMzZy: searchPreMzZy.value || '',//门诊住院
  247. pageNum: page.value,
  248. pageSize: pageSize.value,
  249. status: tabList.value[tabActive.value].status
  250. })
  251. }
  252. console.log('历史记录查询params',params)
  253. const {data:res} = await receiveOrderList(params)
  254. if (res.code === 200) {
  255. total.value = res.total
  256. orderList.value = res.rows
  257. if(tabActive.value ==0){
  258. tabList.value[0].leng = orderList.value.length
  259. }
  260. }
  261. }
  262. }
  263. const handleRefresh = ()=>{
  264. console.log('yijianshifang >orderList>>', orderList.value)
  265. // let ids = ''
  266. // orderList.value.forEach((v)=>{if(v.id){
  267. // ids= ids+v.id+','
  268. // console.log('yijianshifang >orderList>>',ids)
  269. // }})
  270. // console.log('yijianshifang >orderList>>666',ids)
  271. s.value = '0'
  272. console.log('handleRefresh>>ids.value ',ids.value)
  273. // ccc.value = '完成'
  274. // const params = {
  275. // token: uni.getStorageSync('token'),
  276. // data:{ids:ids.value.toString()}
  277. // }
  278. // console.log('handleRefresh >params>>666',params)
  279. // const {data:res} = await releaseOrder(params)
  280. // if (res.code === 200) {
  281. // if(ids.value.length>0){
  282. // console.log('ids.value',ids.value)
  283. // ids.value.forEach(x=>{
  284. // console.log('orderList',orderList.value)
  285. // const index = orderList.value.findIndex(y=>y.id == x)
  286. // console.log('orderList index',index)
  287. // if(index>-1){
  288. // console.log('orderList',orderList.value)
  289. // orderList.value.splice(index,1)
  290. // console.log('orderList',orderList.value)
  291. // }
  292. // })
  293. // ids.value = []
  294. // }
  295. // }
  296. }
  297. const handleRelease = async()=>{
  298. const params = {
  299. token: uni.getStorageSync('token'),
  300. data:{ids:ids.value.toString()}
  301. }
  302. console.log('handleRefresh >params>>666',params)
  303. const {data:res} = await releaseOrder(params)
  304. if (res.code === 200) {
  305. if(ids.value.length>0){
  306. console.log('ids.value',ids.value)
  307. ids.value.forEach(x=>{
  308. console.log('orderList',orderList.value)
  309. const index = orderList.value.findIndex(y=>y.id == x)
  310. console.log('orderList index',index)
  311. if(index>-1){
  312. console.log('orderList',orderList.value)
  313. orderList.value.splice(index,1)
  314. console.log('orderList',orderList.value)
  315. }
  316. })
  317. ids.value = []
  318. }
  319. }
  320. s.value = '1'
  321. console.log('after handleRelease ids.value', ids.value)
  322. }
  323. const handleGetOffice = (e)=>{
  324. console.log('handleGetOffice', e.detail.value)
  325. console.log('officeIndex', officeIndex)
  326. console.log('officeIndex', officeIndex)
  327. officeIndex.value = e.detail.value
  328. searchDepartment.value = officeArr.value[officeIndex.value]
  329. }
  330. const handleGetType = (e)=>{
  331. console.log('handleGetType', e.detail.value)
  332. console.log('typeIndex', typeIndex)
  333. console.log('typeArr', typeIndex)
  334. typeIndex.value = e.detail.value
  335. if(typeIndex.value ===1 ){
  336. searchName.value = ''
  337. } else {
  338. searchPreNo.value = ''
  339. }
  340. }
  341. const handleGetTags = (v)=>{
  342. console.log('handleGetTags', v)
  343. if(!searchTags.value.includes(v)) {
  344. searchTags.value.push(v)
  345. } else {
  346. searchTags.value.splice(searchTags.value.indexOf(v), 1)
  347. if(v=='门诊' || v=='住院'){
  348. searchPreMzZy.value = ''
  349. console.log('删除了 v searchPreMzZy.value',v,searchPreMzZy.value)
  350. }
  351. if(v=='男' || v=='女'){
  352. searchSex.value = ''
  353. console.log('删除了 v searchSex.value',v,searchSex.value)
  354. }
  355. if(v=='煎煮' || v=='发药'){
  356. searchStatus.value = ''
  357. console.log('删除了 v searchStatus.value',v,searchStatus.value)
  358. }
  359. }
  360. switch (v) {
  361. case '全部':
  362. if(searchTags.value.includes(v)){
  363. searchTags.value = ['全部']
  364. searchTime.value = []
  365. searchDepartment.value = ''
  366. searchName.value = ''
  367. searchPreNo.value = ''
  368. searchSex.value = ''
  369. searchPreMzZy.value = ''
  370. searchStatus.value = ''
  371. officeIndex.value = 0
  372. }
  373. break
  374. case '门诊':
  375. if(searchTags.value.includes(v)){
  376. if(searchTags.value.includes('住院')){
  377. searchTags.value.splice(searchTags.value.indexOf('住院'), 1)
  378. }
  379. if(searchTags.value.includes('全部')){
  380. searchTags.value.splice(searchTags.value.indexOf('全部'), 1)
  381. }
  382. searchPreMzZy.value = '1'
  383. }
  384. break
  385. case '住院':
  386. if(searchTags.value.includes(v)){
  387. if(searchTags.value.includes('门诊')){
  388. searchTags.value.splice(searchTags.value.indexOf('门诊'), 1)
  389. }
  390. if(searchTags.value.includes('全部')){
  391. searchTags.value.splice(searchTags.value.indexOf('全部'), 1)
  392. }
  393. searchPreMzZy.value = '2'
  394. }
  395. break
  396. case '男':
  397. if(searchTags.value.includes(v)){
  398. if(searchTags.value.includes('女')){
  399. searchTags.value.splice(searchTags.value.indexOf('女'), 1)
  400. }
  401. if(searchTags.value.includes('全部')){
  402. searchTags.value.splice(searchTags.value.indexOf('全部'), 1)
  403. }
  404. searchSex.value = '男'
  405. }
  406. break
  407. case '女':
  408. if(searchTags.value.includes(v)){
  409. if(searchTags.value.includes('男')){
  410. searchTags.value.splice(searchTags.value.indexOf('男'), 1)
  411. }
  412. if(searchTags.value.includes('全部')){
  413. searchTags.value.splice(searchTags.value.indexOf('全部'), 1)
  414. }
  415. searchSex.value = '女'
  416. }
  417. break
  418. case '煎煮':
  419. if(searchTags.value.includes(v)){
  420. if(searchTags.value.includes('发药')){
  421. searchTags.value.splice(searchTags.value.indexOf('发药'), 1)
  422. }
  423. if(searchTags.value.includes('全部')){
  424. searchTags.value.splice(searchTags.value.indexOf('全部'), 1)
  425. }
  426. searchStatus.value = '2'
  427. }
  428. break
  429. case '发药':
  430. if(searchTags.value.includes(v)){
  431. if(searchTags.value.includes('煎煮')){
  432. searchTags.value.splice(searchTags.value.indexOf('煎煮'), 1)
  433. }
  434. if(searchTags.value.includes('全部')){
  435. searchTags.value.splice(searchTags.value.indexOf('全部'), 1)
  436. }
  437. searchStatus.value = '3'
  438. }
  439. break
  440. default:
  441. searchTags.value = ['全部']
  442. }
  443. }
  444. // 更新处方列表
  445. const checkIndex = async(index) => {
  446. tabActive.value = index
  447. page.value= 1
  448. console.log('index',index)
  449. ids.value = []
  450. reset()
  451. tabName.value = tabList.value[index].title
  452. currentStatus.value = parseInt(tabList.value[index].status)
  453. const token = uni.getStorageSync('token')
  454. const paramss = {
  455. token: uni.getStorageSync('token'),
  456. data:JSON.stringify({
  457. currentUserId: parseInt(uni.getStorageSync('userId')),
  458. pageNum: page.value,
  459. pageSize: pageSize.value,
  460. status: tabList.value[tabActive.value].status
  461. })
  462. }
  463. console.log('checkIndex params',paramss)
  464. const {data:res} = await receiveOrderList(paramss)
  465. if (res.code === 200) {
  466. total.value = res.total
  467. orderList.value = res.rows
  468. if(tabActive.value ==0){
  469. tabList.value[0].leng = orderList.value.length
  470. }
  471. }
  472. if(tabActive.value==1) {
  473. const param = {
  474. token: uni.getStorageSync('token'),
  475. // data:JSON.stringify({
  476. // currentUserId: parseInt(uni.getStorageSync('userId')),
  477. // page: page.value,
  478. // pageSize: pageSize.value,
  479. // status: tabList.value[tabActive.value].status
  480. // })
  481. }
  482. console.log('checkIndex param',param)
  483. const {data:res} = await selectDepartment(param)
  484. if (res.code === 200) {
  485. officeArr.value.push(...res.data)
  486. console.log('selectDepartment officeArr.value', officeArr.value)
  487. }
  488. }
  489. }
  490. const openTime = ()=>{
  491. proxy.$refs.timeslot.open()
  492. }
  493. const loadMoreList =async()=>{
  494. console.log('loadMoreList>>>')
  495. if(isBottom){
  496. return
  497. }
  498. page.value = page.value +1
  499. const params = {
  500. token: uni.getStorageSync('token'),
  501. data: JSON.stringify({
  502. currentUserId: parseInt(uni.getStorageSync('userId')) || 0,
  503. name: searchVal.value,
  504. pageNum: page.value,
  505. pageSize: pageSize.value,
  506. status: tabActive.value + ''
  507. })
  508. }
  509. const {data:res} = await receiveOrderList(params)
  510. console.log('orderList.value before',orderList.value)
  511. if (res.code === 200) {
  512. total.value = res.total
  513. if(total.value< pageSize.value){
  514. isBottom.value = true
  515. }
  516. console.log('res.rows after',res.rows)
  517. res.rows.forEach(item=>{
  518. orderList.value.push(item)
  519. })
  520. console.log('orderList.value after',orderList.value)
  521. if(tabActive.value ==0){
  522. console.log('tabActive===',)
  523. tabList.value[0].leng = orderList.value.length
  524. }
  525. }
  526. }
  527. const loadPreList = async()=>{
  528. console.log('loadPreList>>>')
  529. page.value = 1
  530. const params = {
  531. token: uni.getStorageSync('token'),
  532. data: JSON.stringify({
  533. currentUserId: parseInt(uni.getStorageSync('userId')) || 0,
  534. name: searchVal.value,
  535. pageNum: page.value,
  536. pageSize: pageSize.value,
  537. status: tabList.value[tabActive.value].status
  538. })
  539. }
  540. const {data:res} = await receiveOrderList(params)
  541. if (res.code === 200) {
  542. total.value = res.total
  543. orderList.value = res.rows
  544. if(tabActive ==0){
  545. tabList.value[0].leng = orderList.value.length
  546. }
  547. }
  548. }
  549. </script>
  550. <style lang="scss">
  551. .main {
  552. display: flex;
  553. flex-direction:column;
  554. justify-content:flex-start;
  555. // height: 2000px;
  556. width: 750rpx;
  557. .nav{
  558. display: flex;
  559. height:74.34rpx;
  560. width: 750rpx;
  561. // position: sticky;
  562. // top: 0;
  563. }
  564. .body{
  565. display: flex;
  566. height:calc(100% - 74.34rpx);
  567. flex-direction:column;
  568. justify-content:flex-start;
  569. .tab-box {
  570. display: flex;
  571. position: sticky;
  572. flex-direction:column;
  573. z-index: 100;
  574. .tab-bar{
  575. height: 62.5rpx;
  576. display: flex;
  577. justify-content:center;
  578. width: 100%;
  579. // border: 1px solid #000;
  580. .tab_item{
  581. display: flex;
  582. flex:1;
  583. justify-content:center;
  584. align-items: center;
  585. font-size: 17.5rpx;
  586. background-color: #fff;
  587. color: #000;
  588. }
  589. .active{
  590. border-bottom: 5rpx solid #18C7B0;
  591. }
  592. }
  593. .search-bar{
  594. display: flex;
  595. background-color: #fff;
  596. border-radius: 4rpx;
  597. .today{
  598. display: flex;
  599. flex-direction:row;
  600. justify-content: flex-start;
  601. .search{
  602. width: 453.75rpx;
  603. margin: 13.75rpx 10.1rpx;
  604. :deep(.uni-easyinput__placeholder-class){
  605. font-size: 15rpx;
  606. }
  607. }
  608. .search-button{
  609. display: flex;
  610. justify-content:center;
  611. align-items: center;
  612. width:112.5rpx;
  613. margin: 13.75rpx 10.1rpx;
  614. font-size: 15rpx;
  615. background-color: #18C7B0;
  616. }
  617. .refresh {
  618. display: flex;
  619. justify-content:center;
  620. align-items: center;
  621. width:120rpx;
  622. margin: 13.75px 8rpx;
  623. font-size: 15rpx;
  624. background-color: #18C7B0;
  625. }
  626. .active{
  627. background-color:#DEDEDE;
  628. }
  629. }
  630. .history{
  631. display: flex;
  632. width: 100%;
  633. .searchchoice{
  634. padding: 0 10rpx;
  635. display: flex;
  636. width: 100%;
  637. flex-direction:column;
  638. font-size: 24rpx;
  639. .row1{
  640. display: flex;
  641. width: 100%;
  642. justify-content:flex-start;
  643. align-items: center;
  644. margin: 10rpx 0 10rpx;
  645. font-size: 15rpx;
  646. .timequan{
  647. display: flex;
  648. justify-content:center;
  649. align-items: center;
  650. :deep(.uni-date__x-input){
  651. font-size: 15rpx;
  652. }
  653. .datepick {
  654. z-index: 999;
  655. width: 300rpx;
  656. margin:0 10rpx;
  657. }
  658. }
  659. }
  660. .row2{
  661. display: flex;
  662. width: 100%;
  663. justify-content:flex-start;
  664. align-items: center;
  665. margin: 0 0 10rpx;
  666. .office{
  667. display: flex;
  668. justify-content:center;
  669. align-items: center;
  670. font-size: 15rpx;
  671. .uni-input{
  672. display: flex;
  673. justify-content:center;
  674. align-items: center;
  675. border:1px solid #e1e5f1;
  676. // font-size: 15rpx;
  677. width:190rpx;
  678. // height: 40rpx;
  679. border-radius: 5rpx;
  680. background-color: #e1e5f1;
  681. margin-right: 10rpx;
  682. }
  683. }
  684. .uni-input{
  685. display: flex;
  686. justify-content:center;
  687. align-items: center;
  688. border:1px solid #e1e5f1;
  689. font-size: 15rpx;
  690. width:100rpx;
  691. height: 40rpx;
  692. border-radius: 5rpx;
  693. background-color: #e1e5f1;
  694. margin-right: 10rpx;
  695. }
  696. .search{
  697. width: 187.5rpx;
  698. // height: 40rpx;
  699. // :deep(.easyinput__content-input){
  700. // // height: 40rpx!important;
  701. // }
  702. :deep(.uni-easyinput__placeholder-class){
  703. font-size: 14rpx;
  704. }
  705. }
  706. .search-button{
  707. display: flex;
  708. justify-content:center;
  709. align-items: center;
  710. width:120rpx;
  711. margin: 8rpx 12rpx;
  712. font-size: 14rpx;
  713. height: 40rpx!important;
  714. color: #fff;
  715. background-color: #18C7B0;
  716. }
  717. }
  718. .row3{
  719. display: flex;
  720. width: 100%;
  721. justify-content:flex-start;
  722. align-items: center;
  723. margin: 0 0 18rpx;
  724. .tag-view:deep(.uni-tag){
  725. display: inline;
  726. font-size: 15rpx;
  727. font-weight:500;
  728. margin-right: 16.67rpx;
  729. // height: 40px;
  730. width: 120rpx;
  731. padding: 6rpx 20rpx;
  732. }
  733. }
  734. }
  735. }
  736. }
  737. }
  738. .tab-content{
  739. display: flex;
  740. margin: 8rpx 10rpx;
  741. border-radius: 4rpx;
  742. background-color: #fff;
  743. width: calc(100% - 20rpx);
  744. height: 980rpx;
  745. z-index:10;
  746. .order-list{
  747. padding: 8rpx;
  748. display: flex;
  749. width: 100%;
  750. // height: 100%;
  751. .text{
  752. display: flex;
  753. width: 750rpx;
  754. justify-content:center;
  755. align-items: flex-start;
  756. .zwsj {
  757. margin-top: 103.13rpx;
  758. width: 640.63rpx;
  759. height: 310rpx;
  760. }
  761. }
  762. .order-list-wrap{
  763. display: flex;
  764. .order-card{
  765. display: flex;
  766. width: 100%;
  767. // border-bottom: 1px solid #e6e8ee;;
  768. }
  769. }
  770. }
  771. }
  772. }
  773. }
  774. </style>