management.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065
  1. <template>
  2. <view class="container">
  3. <view class="top_bg"></view>
  4. <!-- 状态统计区域 后勤管理端 -->
  5. <view class="top_types2" v-if="btns.includes('工单管理分段器')">
  6. <view class="top">
  7. <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" styleType="text" activeColor="#6FB6B8"></uni-segmented-control>
  8. </view>
  9. <view class="bottom">
  10. <view class="bottom_box">
  11. <view class="box_num">100</view>
  12. <view class="box_info">待接单</view>
  13. </view>
  14. <view class="bottom_box">
  15. <view class="box_num">10</view>
  16. <view class="box_info">维修中</view>
  17. </view>
  18. <view class="bottom_box">
  19. <view class="box_num">50</view>
  20. <view class="box_info">已超时</view>
  21. </view>
  22. <view class="bottom_box">
  23. <view class="box_num">60</view>
  24. <view class="box_info">待审核</view>
  25. </view>
  26. <view class="bottom_box">
  27. <view class="box_num">60</view>
  28. <view class="box_info">已完成</view>
  29. </view>
  30. <view class="bottom_box">
  31. <view class="box_num">60</view>
  32. <view class="box_info">已关单</view>
  33. </view>
  34. </view>
  35. </view>
  36. <!-- 状态统计区域 维修师傅端 -->
  37. <view class="top_types" v-else>
  38. <view class="types_box">
  39. <view class="box_num">100</view>
  40. <view class="box_info">待接单</view>
  41. </view>
  42. <view class="types_box">
  43. <view class="box_num">10</view>
  44. <view class="box_info">维修中</view>
  45. </view>
  46. <view class="types_box">
  47. <view class="box_num">50</view>
  48. <view class="box_info">已超时</view>
  49. </view>
  50. <view class="types_box">
  51. <view class="box_num">60</view>
  52. <view class="box_info">待审核</view>
  53. </view>
  54. <view class="types_box" v-if="btns.includes('分段器按钮')">
  55. <view class="box_num">50</view>
  56. <view class="box_info">已完成</view>
  57. </view>
  58. <view class="types_box" v-if="btns.includes('分段器按钮')">
  59. <view class="box_num">60</view>
  60. <view class="box_info">已关单</view>
  61. </view>
  62. </view>
  63. <!-- 订单列表区域 -->
  64. <view class="body">
  65. <!-- 每一个订单区域 -->
  66. <view class="body_item" v-for="item in dataList" :key="item.id">
  67. <!-- 工单编号 -->
  68. <view class="item_title">
  69. <img src="../../static/images/repairsImg/order.png" />
  70. <view class="title_info">工单编号:{{ item.order }}</view>
  71. </view>
  72. <!-- 报修时间 -->
  73. <view class="item_time">
  74. <view class="time_msg">
  75. 报修时间:
  76. <text>{{ item.time }}</text>
  77. </view>
  78. <view class="time_type" v-if="item.type === 1">待接单</view>
  79. <view class="time_type color_type" v-if="item.type === 2">维修中</view>
  80. <view class="time_type color_type2" v-if="item.type === 3">待审核</view>
  81. <view class="time_type color_type3" v-if="item.type === 4">已完成</view>
  82. <view class="time_type" v-if="item.type === 5">待确认</view>
  83. <view class="time_type color_type4" v-if="item.type === 6">已关单</view>
  84. </view>
  85. <!-- 报修姓名 -->
  86. <view class="item_box">
  87. <view class="box_key">报修姓名:</view>
  88. <view class="box_value">{{ item.name }}</view>
  89. <view class="box_type" v-if="item.overtime">超时未接</view>
  90. </view>
  91. <!-- 报修电话 -->
  92. <view class="item_box">
  93. <view class="box_key">报修电话:</view>
  94. <view class="box_value phone" @click="handleCallPhone(item.phone)">
  95. {{ item.phone }}
  96. <img src="../../static/images/repairsImg/phone.png" />
  97. </view>
  98. </view>
  99. <!-- 报修区域 -->
  100. <view class="item_box">
  101. <view class="box_key">报修区域:</view>
  102. <view class="box_value">{{ item.area }}</view>
  103. </view>
  104. <!-- 详细地址 -->
  105. <view class="item_box">
  106. <view class="box_key">详细地址:</view>
  107. <view class="box_value">{{ item.address }}</view>
  108. </view>
  109. <!-- 报修物品 -->
  110. <view class="item_box">
  111. <view class="box_key">报修物品:</view>
  112. <view class="box_value">{{ item.goods }}</view>
  113. </view>
  114. <!-- 故障描述 -->
  115. <view class="item_box">
  116. <view class="box_key">故障描述:</view>
  117. <view class="box_value">{{ item.description }}</view>
  118. </view>
  119. <!-- 上传图片 -->
  120. <view class="item_img">
  121. <view class="img_key">上传图片:</view>
  122. <img class="img_value" mode="aspectFill" :src="item.img[0]" @click="handleLookImgs(item.img)" />
  123. </view>
  124. <!-- 维修师傅 -->
  125. <view class="item_time" v-if="item.type === 2 || item.type === 3 || item.type === 4 || item.type === 6">
  126. <view class="time_msg">
  127. 维修师傅:
  128. <text>{{ item.workerName }}</text>
  129. </view>
  130. </view>
  131. <!-- 师傅电话 -->
  132. <view class="item_box" v-if="item.type === 2 || item.type === 3 || item.type === 4 || item.type === 6">
  133. <view class="box_key">师傅电话:</view>
  134. <view class="box_value phone" @click="handleCallPhone(item.workerPhone)">
  135. {{ item.workerPhone }}
  136. <img src="../../static/images/repairsImg/phone.png" />
  137. </view>
  138. </view>
  139. <!-- 维修费用 -->
  140. <view class="item_box" v-if="item.type === 3 || item.type === 4">
  141. <view class="box_key">维修费用:</view>
  142. <view class="box_value2 phone" @click="checkFeeDetail">
  143. {{ item.money }}元
  144. <img src="../../static/images/repairsImg/eye.png" />
  145. </view>
  146. </view>
  147. <!-- 按钮区域 -->
  148. <view class="item_btn">
  149. <img v-if="item.type < 3" src="../../static/images/repairsImg/close.png" @click="handleClose" />
  150. <img class="img" src="../../static/images/repairsImg/help.png" v-if="item.type === 1 && btns.includes('协作')" @click="handleHelp" />
  151. <view class="btn_box type" v-if="item.type < 3 && btns.includes('延时')" @click="handleDelay">延时</view>
  152. <view class="btn_box type" v-if="item.type === 1 && btns.includes('接单')" @click="handleOrderReceiving">接单</view>
  153. <view class="btn_box type2" v-if="item.type === 1 && btns.includes('转单')" @click="handleTransferOrder">转单</view>
  154. <view class="btn_box type2" v-if="item.type === 1 && btns.includes('派单')" @click="handleSendOrder">派单</view>
  155. <view class="btn_box type" v-if="item.type === 2 && btns.includes('报价')" @click="handleOffer">报价</view>
  156. <view class="btn_box type2" v-if="item.type === 2 && btns.includes('维修完成')" @click="handleFinish">维修完成</view>
  157. <view class="btn_box type" v-if="item.type === 3 && btns.includes('审核')" @click="handleAudit(item.status)">审核</view>
  158. <view class="btn_box type" v-if="item.type === 5" @click="handleChangeOffer">改价</view>
  159. <view class="btn_box type2" v-if="item.type === 5" @click="handleLeaveWords">留言</view>
  160. </view>
  161. <!-- 关闭按钮弹窗 -->
  162. <uni-popup ref="popup_close" :is-mask-click="false">
  163. <view class="popup_close">
  164. <view
  165. :class="[{ active: activeIndex === index }, { radius: index === 0 }]"
  166. class="close_box"
  167. v-for="(ele, index) in closeList"
  168. :key="index"
  169. @click="handleChangeItem(index)"
  170. >
  171. {{ ele }}
  172. </view>
  173. <view class="close_btn">
  174. <view class="btn_box cancel" @click="$refs.popup_close[0].close()">取消</view>
  175. <view class="btn_box confirm" @click="handleCloseConfirm">确定</view>
  176. </view>
  177. </view>
  178. </uni-popup>
  179. <!-- 留言弹窗 -->
  180. <uni-popup ref="popup_leaveWords" :is-mask-click="false">
  181. <view class="pop_leaveWords">
  182. <view class="leaveWords_title">留言</view>
  183. <view class="leaveWords_body">
  184. <textarea placeholder-style="color:#CCCCCC" placeholder="请输入您宝贵的留言" v-model="leaveWords"></textarea>
  185. </view>
  186. <view class="leaveWords_btn">
  187. <view class="btn_box cancel" @click="$refs.popup_leaveWords[0].close()">取消</view>
  188. <view class="btn_box confirm" @click="handleLeaveWordsConfirm">确定</view>
  189. </view>
  190. </view>
  191. </uni-popup>
  192. <!-- 维修费用弹窗 -->
  193. <uni-popup :is-mask-click="false" ref="popup_fee">
  194. <view class="pop_fee">
  195. <view class="fee_title">
  196. 维修费用
  197. <text @click="$refs.popup_fee[0].close()">×</text>
  198. </view>
  199. <view class="fee_box">
  200. 耗材:
  201. <text>螺丝刀</text>
  202. </view>
  203. <view class="fee_box">
  204. 耗材单价:
  205. <text>1元</text>
  206. </view>
  207. <view class="fee_box">
  208. 耗材数量:
  209. <text>2</text>
  210. </view>
  211. <view class="fee_box">
  212. 耗材费用:
  213. <text>2元</text>
  214. </view>
  215. </view>
  216. </uni-popup>
  217. </view>
  218. </view>
  219. </view>
  220. </template>
  221. <script>
  222. export default {
  223. data() {
  224. return {
  225. // 按钮权限
  226. btns: [],
  227. // 留言弹窗输入框绑定数据
  228. leaveWords: '',
  229. // 顶部分段器数组
  230. items: ['团队工单', '个人工单'],
  231. // 顶部分段器数组当前索引
  232. current: 0,
  233. // 关闭按钮弹窗当前索引
  234. activeIndex: 0,
  235. // 关闭按钮弹窗选项数组
  236. closeList: ['重复报单', '不属于维修范围', '已维修完成'],
  237. // type为 1 是 待接单,type为 2 是维修中,
  238. // type为 3 是 待审核,type为 4 是已完成,
  239. // type为 5 是 待确认,type为 6 是已关单,
  240. dataList: [],
  241. temList: [
  242. {
  243. id: 1,
  244. order: '656262219626262',
  245. overtime: true,
  246. time: '2023.07.05 09:25:26',
  247. type: 1,
  248. name: '张三',
  249. phone: '13659585689',
  250. area: '行政楼',
  251. address: '3楼309',
  252. goods: '电脑',
  253. description: '水龙头坏了',
  254. img: [
  255. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  256. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  257. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  258. ]
  259. },
  260. {
  261. id: 2,
  262. order: '956262219626262',
  263. overtime: false,
  264. time: '2023.07.05 09:25:26',
  265. type: 2,
  266. name: '李四',
  267. phone: '13659585689',
  268. area: '行政楼',
  269. address: '3楼309',
  270. goods: '电脑',
  271. description: '电脑坏了',
  272. img: [
  273. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  274. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  275. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  276. ],
  277. workerName: '老张',
  278. workerPhone: '13659585689'
  279. },
  280. {
  281. id: 3,
  282. order: '956262219626262',
  283. overtime: false,
  284. time: '2023.07.05 09:25:26',
  285. type: 3,
  286. name: '李四',
  287. phone: '13659585689',
  288. area: '行政楼',
  289. address: '3楼309',
  290. goods: '电脑',
  291. description: '电脑坏了',
  292. img: [
  293. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  294. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  295. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  296. ],
  297. workerName: '老张',
  298. workerPhone: '13659585689',
  299. money: 50,
  300. status: 1
  301. },
  302. {
  303. id: 369,
  304. order: '956262219626262',
  305. overtime: false,
  306. time: '2023.07.05 09:25:26',
  307. type: 3,
  308. name: '李四',
  309. phone: '13659585689',
  310. area: '行政楼',
  311. address: '3楼309',
  312. goods: '电脑',
  313. description: '电脑坏了',
  314. img: [
  315. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  316. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  317. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  318. ],
  319. workerName: '老张',
  320. workerPhone: '13659585689',
  321. money: 50,
  322. status: 2
  323. }
  324. ],
  325. temList2: [
  326. {
  327. id: 1,
  328. order: '656262219626262',
  329. overtime: true,
  330. time: '2023.07.05 09:25:26',
  331. type: 1,
  332. name: '张三',
  333. phone: '13659585689',
  334. area: '行政楼',
  335. address: '3楼309',
  336. goods: '电脑',
  337. description: '水龙头坏了',
  338. img: [
  339. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  340. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  341. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  342. ]
  343. },
  344. {
  345. id: 2,
  346. order: '956262219626262',
  347. overtime: false,
  348. time: '2023.07.05 09:25:26',
  349. type: 2,
  350. name: '李四',
  351. phone: '13659585689',
  352. area: '行政楼',
  353. address: '3楼309',
  354. goods: '电脑',
  355. description: '电脑坏了',
  356. img: [
  357. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  358. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  359. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  360. ],
  361. workerName: '老张',
  362. workerPhone: '13659585689'
  363. },
  364. {
  365. id: 3,
  366. order: '956262219626262',
  367. overtime: false,
  368. time: '2023.07.05 09:25:26',
  369. type: 3,
  370. name: '李四',
  371. phone: '13659585689',
  372. area: '行政楼',
  373. address: '3楼309',
  374. goods: '电脑',
  375. description: '电脑坏了',
  376. img: [
  377. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  378. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  379. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  380. ],
  381. workerName: '老张',
  382. workerPhone: '13659585689',
  383. money: 50,
  384. status: 1
  385. },
  386. {
  387. id: 369,
  388. order: '956262219626262',
  389. overtime: false,
  390. time: '2023.07.05 09:25:26',
  391. type: 3,
  392. name: '李四',
  393. phone: '13659585689',
  394. area: '行政楼',
  395. address: '3楼309',
  396. goods: '电脑',
  397. description: '电脑坏了',
  398. img: [
  399. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  400. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  401. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  402. ],
  403. workerName: '老张',
  404. workerPhone: '13659585689',
  405. money: 50,
  406. status: 2
  407. },
  408. {
  409. id: 4,
  410. order: '956262219626262',
  411. overtime: false,
  412. time: '2023.07.05 09:25:26',
  413. type: 4,
  414. name: '李四',
  415. phone: '13659585689',
  416. area: '行政楼',
  417. address: '3楼309',
  418. goods: '电脑',
  419. description: '电脑坏了',
  420. img: [
  421. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  422. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  423. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  424. ],
  425. workerName: '老张',
  426. workerPhone: '13659585689',
  427. money: 50
  428. },
  429. {
  430. id: 5,
  431. order: '956262219626262',
  432. overtime: false,
  433. time: '2023.07.05 09:25:26',
  434. type: 5,
  435. name: '李四',
  436. phone: '13659585689',
  437. area: '行政楼',
  438. address: '3楼309',
  439. goods: '电脑',
  440. description: '电脑坏了',
  441. img: [
  442. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  443. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  444. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  445. ],
  446. workerName: '老张',
  447. workerPhone: '13659585689',
  448. money: 50
  449. },
  450. {
  451. id: 6,
  452. order: '956262219626262',
  453. overtime: false,
  454. time: '2023.07.05 09:25:26',
  455. type: 6,
  456. name: '李四',
  457. phone: '13659585689',
  458. area: '行政楼',
  459. address: '3楼309',
  460. goods: '电脑',
  461. description: '电脑坏了',
  462. img: [
  463. 'https://img1.baidu.com/it/u=920310517,1559263161&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
  464. 'https://13lz.cn/d/file/2021-06-12/f54cce5a0208c756c112407ec6ca1ac0.jpg',
  465. 'https://inews.gtimg.com/newsapp_bt/0/12555654161/1000'
  466. ],
  467. workerName: '老张',
  468. workerPhone: '13659585689',
  469. money: 50
  470. }
  471. ]
  472. }
  473. },
  474. mounted() {
  475. console.log('工单管理页面加载')
  476. const repairsUserInfo = uni.getStorageSync('repairsUserInfo')
  477. this.btns = repairsUserInfo.btns
  478. console.log(this.btns)
  479. if (this.btns.includes('工单管理分段器')) {
  480. this.dataList = this.temList2
  481. } else {
  482. this.dataList = this.temList
  483. }
  484. },
  485. methods: {
  486. // 留言弹窗确定按钮回调
  487. handleLeaveWordsConfirm() {
  488. if (this.leaveWords) {
  489. uni.showToast({
  490. title: '留言成功',
  491. icon: 'success'
  492. })
  493. this.$refs.popup_leaveWords[0].close()
  494. } else {
  495. uni.showToast({
  496. title: '请输入留言内容',
  497. icon: 'none'
  498. })
  499. }
  500. },
  501. // 关闭弹窗确定按钮回调
  502. handleCloseConfirm() {
  503. uni.showModal({
  504. title: '提示',
  505. content: '确定关闭订单吗?',
  506. success: (res) => {
  507. if (res.confirm) {
  508. uni.showToast({
  509. title: '关单成功',
  510. icon: 'success'
  511. })
  512. console.log(this.closeList[this.activeIndex])
  513. this.$refs.popup_close[0].close()
  514. }
  515. }
  516. })
  517. },
  518. // 接单按钮回调
  519. handleOrderReceiving() {
  520. uni.showModal({
  521. content: '确定接单吗?',
  522. title: '提示',
  523. success: (res) => {
  524. if (res.confirm) {
  525. uni.showToast({
  526. title: '接单成功',
  527. icon: 'success'
  528. })
  529. }
  530. }
  531. })
  532. },
  533. // 关闭图标点击回调
  534. handleClose() {
  535. this.activeIndex = 0
  536. this.$refs.popup_close[0].open('center')
  537. },
  538. // 关闭按钮弹窗选中按钮时回调
  539. handleChangeItem(val) {
  540. this.activeIndex = val
  541. },
  542. // 报价按钮回调
  543. handleOffer() {
  544. uni.navigateTo({
  545. url: '/pagesRepairs/offer/offer'
  546. })
  547. },
  548. // 改价按钮回调
  549. handleChangeOffer() {
  550. uni.navigateTo({
  551. url: '/pagesRepairs/offer/offer?type=1'
  552. })
  553. },
  554. // 维修完成按钮回调
  555. handleFinish() {
  556. uni.navigateTo({
  557. url: '/pagesRepairs/repairRecord/repairRecord'
  558. })
  559. },
  560. // 转单按钮回调
  561. handleTransferOrder() {
  562. uni.navigateTo({
  563. url: '/pagesRepairs/transferOrder/transferOrder'
  564. })
  565. },
  566. // 协作图标点击回调
  567. handleHelp() {
  568. uni.navigateTo({
  569. url: '/pagesRepairs/help/help'
  570. })
  571. },
  572. // 分段器切换回调
  573. onClickItem(e) {
  574. if (this.current != e.currentIndex) {
  575. this.current = e.currentIndex
  576. console.log(this.current)
  577. }
  578. },
  579. // 留言按钮回调
  580. handleLeaveWords() {
  581. this.$refs.popup_leaveWords[0].open('center')
  582. },
  583. // 延时按钮回调
  584. handleDelay() {
  585. uni.navigateTo({
  586. url: '/pagesRepairs/delay/delay'
  587. })
  588. },
  589. // 派单按钮回调
  590. handleSendOrder() {
  591. uni.navigateTo({
  592. url: '/pagesRepairs/helpPeople/helpPeople?type=1'
  593. })
  594. },
  595. // 审核按钮回调
  596. handleAudit(status) {
  597. console.log(status)
  598. // 1为转单审核,2为协作审核
  599. if (status === 1) {
  600. uni.navigateTo({
  601. url: '/pagesRepairs/transferOrder/transferOrder?type=1'
  602. })
  603. } else if (status === 2) {
  604. uni.navigateTo({
  605. url: '/pagesRepairs/help/help?type=1'
  606. })
  607. }
  608. },
  609. // 查看维修费用回调
  610. checkFeeDetail() {
  611. this.$refs.popup_fee[0].open('center')
  612. },
  613. // 点击电话号码回调
  614. handleCallPhone(phone) {
  615. uni.makePhoneCall({
  616. phoneNumber: phone
  617. })
  618. },
  619. // 点击图片回调
  620. handleLookImgs(img) {
  621. // console.log(img)
  622. uni.previewImage({
  623. urls: img
  624. })
  625. }
  626. }
  627. }
  628. </script>
  629. <style lang="scss" scoped>
  630. .container {
  631. width: 100vw;
  632. height: calc(100vh - 152rpx);
  633. font-size: 32rpx;
  634. overflow-y: auto;
  635. .top_bg {
  636. height: 165rpx;
  637. background-color: #6fb6b8;
  638. }
  639. .top_types {
  640. display: flex;
  641. flex-wrap: wrap;
  642. justify-content: space-evenly;
  643. margin: auto;
  644. margin-top: -100rpx;
  645. width: 690rpx;
  646. border-radius: 10rpx;
  647. box-shadow: 0px 0px 4rpx rgba(0, 0, 0, 0.25);
  648. background-color: #fff;
  649. .types_box {
  650. width: 25%;
  651. height: 188rpx;
  652. display: flex;
  653. flex-direction: column;
  654. justify-content: center;
  655. align-items: center;
  656. .box_num {
  657. font-size: 46rpx;
  658. color: #ff5733;
  659. }
  660. .box_info {
  661. margin-top: 10rpx;
  662. font-size: 34rpx;
  663. }
  664. }
  665. }
  666. .top_types2 {
  667. box-sizing: border-box;
  668. margin: auto;
  669. margin-top: -100rpx;
  670. padding: 0 30rpx;
  671. width: 690rpx;
  672. height: 402rpx;
  673. border-radius: 10rpx;
  674. box-shadow: 0px 0px 4rpx rgba(0, 0, 0, 0.25);
  675. background-color: #fff;
  676. .top {
  677. height: 112rpx;
  678. border-bottom: 1rpx solid #e6e6e6;
  679. }
  680. .bottom {
  681. display: flex;
  682. flex-wrap: wrap;
  683. justify-content: space-evenly;
  684. height: 290rpx;
  685. .bottom_box {
  686. width: 25%;
  687. display: flex;
  688. flex-direction: column;
  689. justify-content: center;
  690. align-items: center;
  691. .box_num {
  692. font-size: 46rpx;
  693. color: #ff5733;
  694. }
  695. .box_info {
  696. margin-top: 10rpx;
  697. font-size: 34rpx;
  698. }
  699. }
  700. }
  701. }
  702. .body {
  703. box-sizing: border-box;
  704. padding: 0 30rpx 30rpx 30rpx;
  705. .body_item {
  706. margin-top: 20rpx;
  707. border-radius: 11rpx;
  708. box-shadow: 0 0 8rpx #d9d9d9;
  709. .item_title {
  710. display: flex;
  711. align-items: center;
  712. padding: 0 30rpx;
  713. height: 87rpx;
  714. border-bottom: 1rpx solid #e6e6e6;
  715. img {
  716. width: 30rpx;
  717. height: 30rpx;
  718. }
  719. .title_info {
  720. margin-left: 16rpx;
  721. // font-size: 28rpx;
  722. font-size: 32rpx;
  723. }
  724. }
  725. .item_time {
  726. display: flex;
  727. justify-content: space-between;
  728. align-items: center;
  729. padding: 0 30rpx;
  730. height: 79rpx;
  731. .time_msg {
  732. // font-size: 28rpx;
  733. color: #808080;
  734. text {
  735. color: #000000;
  736. }
  737. }
  738. .time_type {
  739. font-size: 32rpx;
  740. color: #ff5733;
  741. }
  742. .color_type {
  743. color: #1e7dfb;
  744. }
  745. .color_type2 {
  746. color: #d43030;
  747. }
  748. .color_type3 {
  749. color: #6fb6b8;
  750. }
  751. .color_type4 {
  752. color: #a6a6a6;
  753. }
  754. }
  755. .item_box {
  756. display: flex;
  757. padding: 0 30rpx;
  758. height: 60rpx;
  759. // font-size: 28rpx;
  760. .box_key {
  761. color: #808080;
  762. }
  763. .box_value {
  764. display: flex;
  765. img {
  766. margin-left: 10rpx;
  767. width: 45rpx;
  768. height: 45rpx;
  769. }
  770. }
  771. .box_type {
  772. margin-left: auto;
  773. width: 137rpx;
  774. height: 47rpx;
  775. line-height: 47rpx;
  776. text-align: center;
  777. border-radius: 136rpx;
  778. color: #ff5733;
  779. // font-size: 24rpx;
  780. font-size: 24rpx;
  781. border: 1rpx solid #ff5733;
  782. }
  783. .box_value2 {
  784. display: flex;
  785. img {
  786. margin-top: -2rpx;
  787. margin-left: 14rpx;
  788. width: 46rpx;
  789. height: 46rpx;
  790. }
  791. }
  792. .phone {
  793. color: #6fb6b8;
  794. }
  795. }
  796. .item_img {
  797. display: flex;
  798. align-items: center;
  799. padding: 0 30rpx;
  800. height: 120rpx;
  801. color: #808080;
  802. // font-size: 28rpx;
  803. .img_key {
  804. }
  805. .img_value {
  806. width: 120rpx;
  807. height: 120rpx;
  808. border-radius: 14rpx;
  809. }
  810. }
  811. .item_btn {
  812. display: flex;
  813. align-items: center;
  814. justify-content: flex-end;
  815. padding: 0 30rpx;
  816. line-height: 153rpx;
  817. img {
  818. margin-right: auto;
  819. margin-top: 45rpx;
  820. margin-bottom: 40rpx;
  821. width: 56rpx;
  822. height: 56rpx;
  823. }
  824. .img {
  825. margin-right: auto;
  826. margin-left: -55rpx;
  827. margin-top: 45rpx;
  828. margin-bottom: 40rpx;
  829. width: 62rpx;
  830. height: 62rpx;
  831. }
  832. .btn_box {
  833. display: flex;
  834. justify-content: center;
  835. align-items: center;
  836. margin-left: 16rpx;
  837. margin-top: 45rpx;
  838. margin-bottom: 40rpx;
  839. width: 174rpx;
  840. height: 68rpx;
  841. // font-size: 28rpx;
  842. border-radius: 11rpx;
  843. }
  844. .type {
  845. color: #fff;
  846. background-color: #6fb6b8;
  847. }
  848. .type2 {
  849. color: #6fb6b8;
  850. background-color: #fff;
  851. border: 1rpx solid #6fb6b8;
  852. }
  853. }
  854. .popup_close {
  855. width: 690rpx;
  856. border-radius: 19rpx;
  857. background-color: #fff;
  858. .close_box {
  859. height: 100rpx;
  860. line-height: 100rpx;
  861. text-align: center;
  862. font-size: 32rpx;
  863. border: 1rpx solid #e6e6e6;
  864. }
  865. .radius {
  866. border-radius: 19rpx 19rpx 0 0;
  867. }
  868. .active {
  869. color: #fff;
  870. background-color: #6fb6b8;
  871. }
  872. .close_btn {
  873. display: flex;
  874. align-items: center;
  875. justify-content: space-evenly;
  876. margin-top: 100rpx;
  877. height: 121rpx;
  878. .btn_box {
  879. display: flex;
  880. justify-content: center;
  881. align-items: center;
  882. width: 203rpx;
  883. height: 72rpx;
  884. border-radius: 9rpx;
  885. font-size: 32rpx;
  886. }
  887. .cancel {
  888. background-color: #e5e5e5;
  889. color: #6fb6b8;
  890. }
  891. .confirm {
  892. background-color: #6fb6b8;
  893. color: #fff;
  894. }
  895. }
  896. }
  897. .pop_leaveWords {
  898. border-radius: 19rpx;
  899. background-color: #fff;
  900. .leaveWords_title {
  901. display: flex;
  902. justify-content: center;
  903. align-items: center;
  904. width: 690rpx;
  905. height: 110rpx;
  906. font-size: 32rpx;
  907. font-weight: bold;
  908. border-radius: 19rpx 19rpx 0 0;
  909. border-bottom: 1rpx solid #e6e6e6;
  910. }
  911. .leaveWords_body {
  912. height: 320rpx;
  913. textarea {
  914. box-sizing: border-box;
  915. margin: 35rpx 40rpx;
  916. padding: 20rpx;
  917. width: 610rpx;
  918. height: 312rpx;
  919. // font-size: 28rpx;
  920. border-radius: 14rpx;
  921. border: 1rpx solid #e6e6e6;
  922. }
  923. }
  924. .leaveWords_btn {
  925. display: flex;
  926. align-items: center;
  927. justify-content: space-evenly;
  928. height: 121rpx;
  929. .btn_box {
  930. display: flex;
  931. justify-content: center;
  932. align-items: center;
  933. width: 203rpx;
  934. height: 72rpx;
  935. border-radius: 9rpx;
  936. font-size: 32rpx;
  937. }
  938. .cancel {
  939. background-color: #e5e5e5;
  940. color: #6fb6b8;
  941. }
  942. .confirm {
  943. background-color: #6fb6b8;
  944. color: #fff;
  945. }
  946. }
  947. }
  948. .pop_fee {
  949. padding-bottom: 50rpx;
  950. border-radius: 19rpx;
  951. background-color: #fff;
  952. .fee_title {
  953. display: flex;
  954. justify-content: space-between;
  955. align-items: center;
  956. box-sizing: border-box;
  957. padding: 0 31rpx 0 42rpx;
  958. width: 690rpx;
  959. height: 110rpx;
  960. font-size: 32rpx;
  961. font-weight: bold;
  962. border-radius: 19rpx 19rpx 0 0;
  963. border-bottom: 1rpx solid #e6e6e6;
  964. text {
  965. font-size: 45rpx;
  966. font-weight: 400;
  967. color: #808080;
  968. }
  969. }
  970. .fee_box {
  971. display: flex;
  972. align-items: center;
  973. padding-left: 42rpx;
  974. height: 80rpx;
  975. // font-size: 28rpx;
  976. color: #808080;
  977. text {
  978. color: #000000;
  979. }
  980. }
  981. }
  982. }
  983. }
  984. }
  985. </style>