serviceTicket.wxml 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <view class="container">
  2. <!-- 顶部标签页 -->
  3. <l-tabs bind:linchange="changeTab" active-color="#73a2ff">
  4. <l-tabpanel tab="待处理" key="1" slot="1">
  5. <view class="ticket-list">
  6. <view class="ticket-item" wx:for="{{pendingList}}" >
  7. <!-- 工单信息 -->
  8. <view class="ticket-header">
  9. <view class="ticket-no">
  10. <text class="ticket-text">服务单号:{{item.orderNo}}</text>
  11. </view>
  12. <text class="ticket-time">{{item.orderTime}}</text>
  13. </view>
  14. <view class="ticket-content" bindtap="handleDetail" data-id="{{item.id}}">
  15. <view class="info-row">
  16. <text>客户:{{item.customerName}}</text>
  17. <text style="width:100rpx" class="status {{item.statusName == '未接单' ? 'status-pending' : 'status-processing'}}">{{item.statusName}}</text>
  18. </view>
  19. <view class="info-row">
  20. <text>服务人员:{{item.serviceStaffNames}}</text>
  21. </view>
  22. <view class="info-row">
  23. <text>预计服务完成时间:{{item.estimatedCompleteTime || '--'}}</text>
  24. </view>
  25. <view class="info-row">
  26. <text>货品:{{item.goodsName}}</text>
  27. </view>
  28. </view>
  29. <!-- 底部按钮 -->
  30. <!-- -->
  31. <view class="ticket-actions" wx:if="{{item.statusName == '未接单'}}" >
  32. <l-button size="mini" type="default" plain="{{true}}" bindtap="handleAccept" data-id="{{item}}">接单</l-button>
  33. <l-button size="mini" type="error" plain="{{true}}" bindtap="handleReject" data-id="{{item}}">驳回</l-button>
  34. </view>
  35. <view class="ticket-actions" wx:if="{{item.statusName == '处理中' || item.statusName == '已接单'}}">
  36. <l-button size="mini" type="default" plain="{{true}}" bindtap="handleReport1" data-id="{{item.id}}">每日填报</l-button>
  37. <l-button size="mini" type="error" plain="{{true}}" bindtap="handleSuccess" data-id="{{item}}">完成</l-button>
  38. </view>
  39. <!-- wx:if="{{item.statusName == '已完成未验收'}}" -->
  40. <view class="ticket-actions" wx:if="{{item.statusName == '已完成未验收'}}">
  41. <l-button size="mini" type="default" plain="{{true}}" bindtap="handleReport2" data-id="{{item.id}}" data-type="2">验收</l-button>
  42. </view>
  43. </view>
  44. </view>
  45. <block wx:if="{{!pendingList || pendingList.length === 0}}">
  46. <view class="table">
  47. <image style="width: 400rpx; height: 400rpx;margin:0 auto" mode="aspectFit" src="{{noData}}"></image>
  48. <text style="margin:0 auto">{{dataListTips}}</text>
  49. </view>
  50. </block>
  51. </l-tabpanel>
  52. <l-tabpanel tab="已完成" key="2" slot="2">
  53. <view class="process-box">
  54. <view class="search-container" >
  55. <view class="date-range-picker">
  56. <!-- 开始日期 -->
  57. <picker
  58. mode="date"
  59. start="2015-09-01"
  60. name="completeStartTime"
  61. bindchange="bindDateChange1"
  62. place
  63. >
  64. <view class="date-item">
  65. <!-- <text class="date-label">开始日期</text> -->
  66. <text class="date-value">{{table2.parammaps.completeStartTime}}</text>
  67. </view>
  68. </picker>
  69. <!-- 分隔符 -->
  70. <text class="separator">~</text>
  71. <!-- 结束日期 -->
  72. <picker
  73. mode="date"
  74. start="2015-09-01"
  75. name="endDate"
  76. bindchange="bindDateChange2"
  77. >
  78. <view class="date-item">
  79. <text class="date-value">{{table2.parammaps.completeEndTime}}</text>
  80. </view>
  81. </picker>
  82. </view>
  83. <!-- 搜索栏 -->
  84. <view class="search-bar" style="display: flex; align-items: center;">
  85. <picker
  86. mode="selector"
  87. range="{{installerList}}"
  88. range-key="name"
  89. value="{{statusIndex}}"
  90. bindchange="onInstallerChange"
  91. bindcancel="onInputChangeClear"
  92. style="flex: 1; margin-right: 10px;"
  93. class="search-input"
  94. >
  95. <view class="picker-view">
  96. <text style="color: {{serviceStaffname ? '#333333' : '#999999'}}">{{ serviceStaffname || '请选择服务人员'}}</text>
  97. </view>
  98. </picker>
  99. <input
  100. class="search-input"
  101. placeholder="客户名称"
  102. placeholder-class="placeholder"
  103. style="flex: 1; margin-right: 10px;"
  104. value="{{table2.parammaps.customerName}}"
  105. bindchange="onInputChange"
  106. />
  107. <button class="search-btn" bindtap="getList2" style="flex-shrink: 0;width:110rpx; font-size: 12px;margin:0; background-color: #3963bc; color: white; border: none;" >搜索</button>
  108. </view>
  109. </view>
  110. <view class="processed-list">
  111. <view class="processed-item" wx:for="{{processedList}}">
  112. <view class="ticket-header">
  113. <view class="ticket-no">
  114. <text class="ticket-text">安装单号:{{item.orderNo}}</text>
  115. </view>
  116. <text class="ticket-time">{{item.completionTime}}</text>
  117. </view>
  118. <view class="processed-content" bindtap="handleDetail" data-id="{{item.id}}">
  119. <view class="info-row">
  120. <text>客户:{{item.customerName}}</text>
  121. <text class="status status-processing" style="width:100rpx">{{item.statusName}}</text>
  122. </view>
  123. <text>安装人:{{item.serviceStaffNames}}</text>
  124. <text>预计完成时间:{{item.actualCompleteTime}}</text>
  125. <text>安装产品:{{item.goodsName}}</text>
  126. <text>备注: {{item.remark}}</text>
  127. </view>
  128. </view>
  129. </view>
  130. <block wx:if="{{!processedList || processedList.length === 0}}">
  131. <view class="table">
  132. <image style="width: 400rpx; height: 400rpx;margin:0 auto" mode="aspectFit" src="{{noData}}"></image>
  133. <text style="margin:0 auto">{{dataListTips}}</text>
  134. </view>
  135. </block>
  136. </view>
  137. </l-tabpanel>
  138. </l-tabs>
  139. <!-- 弹窗 -->
  140. <view class="modal" wx:if="{{showModal}}" >
  141. <view class="title" >
  142. 确认接单
  143. </view>
  144. <view class="modal-content">
  145. <view class="product-item">
  146. <text class="product-label">接单人:</text>
  147. <input class="quantity-input" type="number" value="{{form.acceptName}}" disabled="{{true}}" />
  148. </view>
  149. <view class="product-item">
  150. <text class="product-label">接单时间:</text>
  151. <input class="quantity-input" type="number" value="{{form.acceptTime}}" disabled="{{true}}" />
  152. </view>
  153. <view class="product-item">
  154. <text class="product-label">预计完成时间:</text>
  155. <picker class="quantity-input" mode="date" bindchange="handleDateChange">
  156. <view class="date-input">
  157. <text>{{form.estimatedCompleteTime || '请选择日期'}}</text>
  158. </view>
  159. </picker>
  160. </view>
  161. <!-- 弹窗标题 -->
  162. <view style="text-align:right;margin-top:20rpx">
  163. <l-button size="mini" type="primary" plain="{{true}}" style="margin-right:20rpx;" bindtap="hideDatePicker" > 取消</l-button>
  164. <l-button size="mini" bindtap="handleAcceptConfirm">确认接单</l-button>
  165. </view>
  166. </view>
  167. </view>
  168. <!-- 遮罩层 -->
  169. <view class="mask" wx:if="{{showModal}}" bindtap="hideDatePicker"></view>
  170. </view>