serviceOrder.wxml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. <wxs src="../../../utils/format.wxs" module="format" />
  2. <view class="whole-page">
  3. <!-- 日历-月维度 -->
  4. <!-- wx:if="{{!stickShow}}" -->
  5. <view class="calendar-wrapper" >
  6. <view class="month-title">
  7. <view class="month-title-left">
  8. <view>工作日历</view>
  9. <image mode="aspectFit" src="/static/images/upgrade/icon-calendar.png"></image>
  10. </view>
  11. <view class="month-title-right">
  12. <block >
  13. <image bindtap="lastMonth" mode="aspectFit" src="/static/images/upgrade/icon-arrow-left.png"></image>
  14. <view bindtap="lastMonth" class="last-month">上月</view>
  15. </block>
  16. <block >
  17. <view class="next-month" bindtap="nextMonth">
  18. 下月</view>
  19. <image bindtap="nextMonth" mode="aspectFit" src="/static/images/upgrade/icon-arrow-right.png"></image>
  20. </block>
  21. </view>
  22. </view>
  23. <view class="current-month">
  24. {{currentMonth}}
  25. </view>
  26. <view class="month-board-wrapper">
  27. <view class="date-board">
  28. <view class="date-order-left">
  29. <view class="month-order-item">
  30. <view class="number">{{monthInfo.finishWorkerOrder}}</view>
  31. <view>完成工单</view></view>
  32. <view class="month-order-item">
  33. <view class="number">{{monthInfo.orderBonus}}</view>
  34. <view>工单计提</view></view>
  35. </view>
  36. <view class="date-order-right">
  37. <view class="data-item red" bindtap="goIssueTicket">
  38. <view class="num">{{monthInfo.questionNum}}</view>
  39. <view class="item-tag ">问 题
  40. </view>
  41. </view>
  42. <view class="data-item green">
  43. <view class="num">{{monthInfo.looseOrder}}</view>
  44. <view class="item-tag red">单 次
  45. </view>
  46. </view>
  47. <view class="data-item blue">
  48. <view class="num">{{monthInfo.cycleOrder}}</view>
  49. <view class="item-tag red">周 期
  50. </view>
  51. </view>
  52. <view class="data-item yellow">
  53. <view class="num">{{monthInfo.rebuyBonus}}</view>
  54. <view class="item-tag ">复购奖励
  55. </view>
  56. </view>
  57. <view class="data-item yellow">
  58. <view class="num">{{monthInfo.looseRebuyNum}}</view>
  59. <view class="item-tag ">散单复购
  60. </view>
  61. </view>
  62. <view class="data-item yellow">
  63. <view class="num">{{monthInfo.cycleRebuyNum}}</view>
  64. <view class="item-tag ">周期复购
  65. </view>
  66. </view>
  67. </view>
  68. </view>
  69. </view>
  70. <view class="whole-calendar">
  71. <view class="{{currentDay==item1.day?'selected-calendar':''}} calendar-item" wx:for="{{workerDayInfoList}}" wx:for-item="item1" bindtap="switchDay" data-day="{{item1.day}}" wx:key="index1" wx:for-index="index1">
  72. <view class="calendar-week" wx:if="{{index1<=6}}">
  73. {{item1.dayOfWeek}}
  74. </view>
  75. <view class="calendar-day">
  76. {{format.substrText(item1.day,8,10)}}</view>
  77. <view class="selected-dot">
  78. </view>
  79. <!-- 工单列表 -->
  80. <view class="calendar-order-item" wx:for="{{item1.workerDayTradeInfoList}}" wx:key="index2" wx:for-item="item2" wx:for-index="index2">
  81. <view class="eval-wrapper">
  82. <image mode="aspectFit"
  83. src="/static/images/upgrade/icon-cp.png" wx:if="{{item2.evaltionType=='差评'}}"></image>
  84. <image mode="aspectFit"
  85. src="/static/images/upgrade/icon-hp.png" wx:if="{{item2.evaltionType=='好评'}}"></image>
  86. </view>
  87. <view class="{{item2.itemType=='保洁周期'?'pl':''}} time {{item2.tradeStatus!='服务已完成'?'no-finish':''}}">{{format.substrText(item2.startTime,0,5)}}</view>
  88. </view>
  89. </view>
  90. </view>
  91. <!-- 折叠收起 -->
  92. <view wx:if="{{!calcendarFold}}" class="fold-calcendar" bindtap="calcendarCollapse">
  93. <image mode="aspectFit" src="/static/images/upgrade/icon-unfold.png"></image>
  94. <view>收起</view>
  95. </view>
  96. <view wx:else class="fold-calcendar" bindtap="calcendarCollapse">
  97. <image mode="aspectFit" src="/static/images/upgrade/icon-fold.png"></image>
  98. <view>展开</view>
  99. </view>
  100. </view>
  101. <!-- 日历-日维度 -->
  102. <!-- wx:if="{{stickShow}}" -->
  103. <van-sticky >
  104. <!-- 日期 -->
  105. <view class="current-date">
  106. <view class="day">{{currentDay}}</view>
  107. <view class="today" wx:if="{{currentDay==today}}">今天</view>
  108. </view>
  109. <view class="date-board-wrapper">
  110. <view class="date-board">
  111. <view class="date-order-left">
  112. <view class="number">{{dayCalendar.finishWorkerOrder}}</view>
  113. <view>完成工单</view>
  114. </view>
  115. <view class="date-order-right">
  116. <view class="data-item red" bindtap="goIssueTicket">
  117. <view class="num">{{dayCalendar.questionNum}}</view>
  118. <view class="item-tag ">问 题
  119. </view>
  120. </view>
  121. <view class="data-item green">
  122. <view class="num">{{dayCalendar.looseOrder}}<text>/{{dayCalendar.looseOrderCount}}</text></view>
  123. <view class="item-tag red">单 次
  124. </view>
  125. </view>
  126. <view class="data-item blue">
  127. <view class="num">{{dayCalendar.cycleOrder}}<text>/{{dayCalendar.cycleOrderCount}}</text></view>
  128. <view class="item-tag red">周 期
  129. </view>
  130. </view>
  131. <view class="data-item yellow">
  132. <view class="num">{{dayCalendar.rebuyNum}}</view>
  133. <view class="item-tag ">复 购
  134. </view>
  135. </view>
  136. <view class="data-item yellow">
  137. <view class="num">{{dayCalendar.looseRebuyNum}}</view>
  138. <view class="item-tag ">散单复购
  139. </view>
  140. </view>
  141. <view class="data-item yellow">
  142. <view class="num">{{dayCalendar.cycleRebuyNum}}</view>
  143. <view class="item-tag ">周期复购
  144. </view>
  145. </view>
  146. </view>
  147. </view>
  148. </view>
  149. </van-sticky>
  150. <!-- 请假 -->
  151. <view class="leave-fold" bindtap="leaveFold">
  152. <view class="fold-left">请假记录</view>
  153. <view class="fold-right">
  154. <view class="leave-num">{{dayCalendar.leaveNum}}</view>
  155. <image mode="aspectFit" src="{{isLeaveFold?'/static/images/upgrade/icon-leave-right.png':'/static/images/upgrade/icon-leave-down.png'}}"></image>
  156. </view>
  157. </view>
  158. <view class="leave-block" wx:if="{{!isLeaveFold}}">
  159. <view class="leave-item" wx:for="{{dayCalendar.askForLeaveDTOS}}" wx:key="index">
  160. <view class="leave-title">
  161. <image mode="aspectFit" src="/static/images/upgrade/icon-qjsq.png">
  162. </image>
  163. <view>请假申请</view>
  164. </view>
  165. <view class="leave-content">
  166. <view class="leave-line">
  167. <view>请假时间:</view>
  168. <view>{{item.leaveStartTime}}-{{item.leaveEndTime}}</view>
  169. </view>
  170. <view class="leave-line">
  171. <view>申请状态:</view>
  172. <view>{{item.stateName}}</view>
  173. </view>
  174. <view class="leave-line">
  175. <view>申请时间:</view>
  176. <view>{{item.createTime}}</view>
  177. </view>
  178. <view class="leave-line">
  179. <view>请假类型:</view>
  180. <view>{{item.leaveTypeName}}</view>
  181. </view>
  182. <view class="leave-line">
  183. <view>请假理由:</view>
  184. <view>{{item.leaveReason}}</view>
  185. </view>
  186. <view class="leave-line">
  187. <view>审批备注:</view>
  188. <view>{{item.auditComment}}</view>
  189. </view>
  190. </view>
  191. </view>
  192. </view>
  193. <!-- 面试邀请 -->
  194. <view class="interview" wx:if="{{false}}">
  195. <view class="interview-title">
  196. <image mode="aspectFit" src="https://jzmall.lifejingzhi.com/file/wx-servant/icon-interview.png"></image>
  197. <view>面试邀请</view>
  198. </view>
  199. <view class="interview-date">
  200. 面试时间:2022年12月12日 08:00 - 11:00
  201. </view>
  202. <view class="interview-location">
  203. 面试地点:上海市浦东撒娇翻领宽松的九分裤辣
  204. 弃物啊大萨达风的f答复是…
  205. </view>
  206. <view class="interview-operate">
  207. 已通过
  208. </view>
  209. </view>
  210. <!-- 服务工单 -->
  211. <view class="service-order {{item.status=='已取消'||item.status=='已退款'?'cancel-order':''}}" wx:for="{{dayCalendar.workerOrderInfoDTOList}}" wx:key="index">
  212. <view class="service-title">
  213. <view class="ser-title-left">
  214. <image mode="aspectFit" src="{{item.status=='已取消'?'/static/images/upgrade/order.png':'/static/images/upgrade/order@selected.png'}}"></image>
  215. <view>服务工单
  216. <text wx:if="{{item.discipleNo!=''&&item.isDisciple==0}}"> - 有徒弟跟单</text>
  217. <text wx:if="{{item.discipleNo!=''&&item.isDisciple==1}}"> - 徒弟跟单</text>
  218. </view>
  219. </view>
  220. <view class="ser-title-right" >
  221. <image mode="aspectFit" src="/static/images/upgrade/icon-hm.png" wx:if="{{!format.indexOf(item.bookTradeNo,'JZ')}}"></image>
  222. <view>{{item.channel}}</view>
  223. </view>
  224. </view>
  225. <view class="related-info" wx:if="{{item.status!='已取消'}}">
  226. <view class="column">
  227. <view class="title">相关信息</view>
  228. <view>客户剩余总服务次数:{{item.cusRemain}}次</view>
  229. </view>
  230. <!-- 消息 -->
  231. <view class="notice" wx:if="{{item.rebuySpeach!=''}}">
  232. <image mode="aspectFit" src="/static/images/upgrade/icon-alert.png"></image>
  233. <view>
  234. {{item.rebuySpeach}}
  235. </view>
  236. </view>
  237. <view class="row">服务内容:{{item.goodsName}} </view>
  238. <view class="row" wx:if="{{item.unitIncreaseNumber&&item.unitIncreaseNumber>0}}">加购内容:{{item.unitDescribe}}* {{item.unitIncreaseNumber}}</view>
  239. <view class="row">客户信息: {{item.syncTag}} {{item.cusStatus}}</view>
  240. <view class="column">
  241. <view>订单类型:{{item.itemType}}</view>
  242. <view>此次服务进度:{{item.serviceProcess}}</view>
  243. </view>
  244. <view class="row">预采需求:{{item.preCollectInfo}}</view>
  245. <view class="row">客服备注:{{item.customerServiceSr?item.customerServiceSr:''}} {{item.special?item.special:''}}</view>
  246. </view>
  247. <view class="service-info">
  248. <view class="order-num">
  249. <view>服务单号:{{item.bookTradeNo}}</view>
  250. <image src="/static/images/upgrade/icon-copy.png" mode="aspectFit" class="copy-img" bindtap="copyNum" data-bookno="{{item.bookTradeNo}}"></image>
  251. <view style="color:#09afff; margin:0 10rpx 0 40rpx; font-size:28rpx ;" bindtap="supplyCode" data-bookno="{{item.bookTradeNo}}">发起补差</view>
  252. <!-- <view style="color:#09afff; margin:0 10rpx 0 40rpx; font-size:28rpx ;" bindtap="supplyCode" data-bookno="{{item.bookTradeNo}}">补差二维码</view> -->
  253. <image src="/static/images/upgrade/qrcode.png" mode="aspectFit" style="width:36rpx; height:36rpx;padding-top:6rpx;" bindtap="supplyCode" data-bookno="{{item.bookTradeNo}}"></image>
  254. </view>
  255. <view class="row service-status">
  256. <view>当前状态:{{item.status}}</view>
  257. <view class="invite-comment" wx:if="{{item.canEval}}">可邀评</view>
  258. <view class="hp-wrapper" wx:if="{{item.evalType=='好评'}}">
  259. <image src="/static/images/upgrade/icon-hp.png" mode="aspectFit" class="hp-img" ></image>
  260. <text>好评</text>
  261. </view>
  262. <view class="cp-wrapper" wx:if="{{item.evalType=='差评'}}">
  263. <image src="/static/images/upgrade/icon-cp.png" mode="aspectFit" class="cp-img"></image>
  264. <text>差评</text>
  265. </view>
  266. </view>
  267. <!-- 师父单子 -->
  268. <block wx:if="{{item.discipleNo!=''&&item.isDisciple==0}}">
  269. <view class="row">跟单徒弟:{{item.discipleName}}</view>
  270. <view class="column">
  271. <view>徒弟电话:{{item.disciplePhone}}</view>
  272. <image src="/static/images/upgrade/icon-phone1.png" mode="aspectFit" class="callup-img" bindtap="callUp" data-phone="{{item.disciplePhone}}" wx:if="{{item.status=='待上门'||item.status=='待履约'||item.status=='已预约'}}" data-status="{{item.status}}"></image>
  273. </view>
  274. </block>
  275. <!-- 徒弟单子 -->
  276. <block wx:if="{{item.discipleNo!=''&&item.isDisciple==1}}">
  277. <view class="row">跟单师傅:{{item.workerName}}</view>
  278. <view class="column">
  279. <view>师傅电话:{{item.workerTel}}</view>
  280. <image src="/static/images/upgrade/icon-phone1.png" mode="aspectFit" class="callup-img" bindtap="callUp" data-phone="{{item.workerTel}}" wx:if="{{item.status=='待上门'||item.status=='待履约'||item.status=='已预约'}}" data-status="{{item.status}}"></image>
  281. </view>
  282. </block>
  283. <view class="row">服务时间:{{item.startTime}} - {{item.endTime}}</view>
  284. <view class="column">
  285. <view>客户手机:{{item.maskUserPhone}}</view>
  286. <image src="/static/images/upgrade/icon-phone1.png" mode="aspectFit" class="callup-img" bindtap="callUp" data-phone="{{item.userPhone}}" wx:if="{{item.status=='待上门'||item.status=='待履约'||item.status=='已预约'}}" data-status="{{item.status}}"></image>
  287. </view>
  288. <view class="address">
  289. <view>服务地址:</view>
  290. <view class="detail">{{item.addr}}</view>
  291. <image src="/static/images/upgrade/icon-map1.png" bindtap="openMap"
  292. data-status="{{item.status}}" data-lnglat="{{item.addrDetail}}" data-address="{{item.addr}}" wx:if="{{item.status=='待上门'||item.status=='待履约'||item.status=='已预约'}}"></image>
  293. </view>
  294. <view class="row">客户备注:{{item.cusRemark}}</view>
  295. </view>
  296. <view class="operate-block">
  297. <!-- 单据详情 跟单体会/评价徒弟 联系客户 立即导航 isDisciple 1是徒弟 0否-->
  298. <view class="operate-item" bindtap="goDetail" data-id="{{item.bookTradeNo}}">
  299. <image src="{{orderDisable1?'/static/images/upgrade/icon-detail2.png':'/static/images/upgrade/icon-detail.png'}}">
  300. </image>
  301. <view class="blue-font">单据详情</view>
  302. </view>
  303. <!-- wx:if="{{item.discipleNo!=''&&item.isDisciple==1&&!item.isDiscipleFeedback}}" -->
  304. <view class="operate-item" bindtap="evalMaster" data-id="{{item.bookTradeNo}}" data-workerno="{{item.workerNo}}" wx:if="{{item.discipleNo!=''&&item.isDisciple==1&&!item.isDiscipleFeedback&&item.status=='服务已完成'}}">
  305. <image src="https://jzmall.lifejingzhi.com/file/wx-servant/icon-gdth.png">
  306. </image>
  307. <view class="blue-font">跟单体会</view>
  308. </view>
  309. <!-- wx:if="{{item.discipleNo!=''&&item.isDisciple==0&&item.ojtState!=2}}" -->
  310. <view class="operate-item" bindtap="evalDisciple" data-id="{{item.bookTradeNo}}" data-workerno="{{item.workerNo}}" wx:if="{{item.discipleNo!=''&&item.isDisciple==0&&item.ojtState!=2&&item.status=='服务已完成'}}" >
  311. <image src="https://jzmall.lifejingzhi.com/file/wx-servant/icon-pjtd.png">
  312. </image>
  313. <view class="blue-font">评价徒弟</view>
  314. </view>
  315. <view class="{{item.status!='待上门'&&item.status!='待履约'&&item.status!='已预约'?'disable':''}} operate-item" bindtap="callUp" data-status="{{item.status}}" data-phone="{{item.userPhone}}">
  316. <image src="{{item.status!='待上门'&&item.status!='待履约'&&item.status!='已预约'?'/static/images/upgrade/icon-phone4.png':'/static/images/upgrade/icon-phone3.png'}}">
  317. </image>
  318. <view>联系客户</view>
  319. </view>
  320. <view class="operate-item" data-channel="{{item.channel}}" data-id="{{item.bookTradeNo}}" bindtap="getQrCode" wx:if="item.channel!='盒马'">
  321. <image src="/static/images/upgrade/qrcode.png">
  322. </image>
  323. <view>加企微</view>
  324. </view>
  325. <view class="{{item.status!='待上门'&&item.status!='待履约'&&item.status!='已预约'?'disable':''}} operate-item" bindtap="openMap"
  326. data-status="{{item.status}}" data-lnglat="{{item.addrDetail}}" data-address="{{item.addr}}">
  327. <image src="{{item.status!='待上门'&&item.status!='待履约'&&item.status!='已预约'?'/static/images/upgrade/icon-map2.png':'/static/images/upgrade/icon-map1.png'}}">
  328. </image>
  329. <view>立即导航</view>
  330. </view>
  331. <view bindtap="supplyRecord" data-status="{{item.status}}" class="operate-item"
  332. data-bookno="{{item.bookTradeNo}}" >
  333. <image style="width:24rpx;height:26rpx"
  334. src="/static/images/upgrade/icon-detail.png" >
  335. </image>
  336. <view>补差记录</view>
  337. </view>
  338. </view>
  339. </view>
  340. <!-- 档期计算器 -->
  341. <image mode="aspectFit" src="/static/images/upgrade/dqjsq.png" class="dqjsq" bindtap="goSchedule"></image>
  342. </view>
  343. <!-- 跟单体会 -->
  344. <van-overlay show="{{evalMasterShow}}"bind:click="onClickMsterOverlay" custom-style="z-index:9999;" >
  345. <view class="overlay-wrapper" >
  346. <view class="star-wrapper" catchtap="stop">
  347. <view class="title">
  348. 跟单体会
  349. </view>
  350. <view class="van-rate-wrapper">
  351. <van-rate value="{{ star }}" bind:change="onStarChange" size="{{ 36 }}"/>
  352. </view>
  353. <textarea class="comment-area" value="{{masterComment}}" bindinput="bindMasterComment" placeholder="请输入跟单体会"
  354. placeholder-style="font-size:24rpx;color:#999;">
  355. </textarea>
  356. </view>
  357. <view class="submit-eval" catchtap="submitEvalMaster">立即提交</view>
  358. </view>
  359. </van-overlay>
  360. <!-- 徒弟打分 -->
  361. <van-overlay show="{{evalDiscipleShow}}"bind:click="onClickDiscipleOverlay" custom-style="z-index:9999;" >
  362. <view class="overlay-wrapper" >
  363. <view class="star-wrapper" catchtap="stop">
  364. <view class="title">
  365. 徒弟打分
  366. </view>
  367. <view class="van-rate-wrapper">
  368. <van-radio-group value="{{ radioDisciple }}" bind:change="onRadioChange" direction="horizontal">
  369. <van-radio name="通过" icon-size="26px">通过</van-radio>
  370. <van-radio name="不通过" icon-size="26px">不通过</van-radio>
  371. </van-radio-group>
  372. </view>
  373. <textarea class="comment-area" value="{{discipleComment}}" bindinput="bindDiscipleComment" placeholder="请输入跟单体会"
  374. placeholder-style="font-size:24rpx;color:#999;">
  375. </textarea>
  376. </view>
  377. <view class="submit-eval" catchtap="submitEvalDisciple">立即提交</view>
  378. </view>
  379. </van-overlay>