Brak opisu

workOrderList.vue 8.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <template>
  2. <view class="wrapper">
  3. <view v-if="isDisplay.displaySegmentedControl" class="segmentedControlWrapper">
  4. <uni-segmented-control :current="segmenter.current" :values="segmenter.items" @clickItem="onClickSegmentedControl" styleType="text" activeColor="#007aff"></uni-segmented-control>
  5. <view class="content">
  6. <view v-show="segmenter.current === 0"></view>
  7. <view v-show="segmenter.current === 1"></view>
  8. </view>
  9. </view>
  10. <view class="tableWrapper">
  11. <uni-table border stripe emptyText="暂无更多数据">
  12. <!-- 表头行 -->
  13. <uni-tr>
  14. <!-- <uni-th align="center">序号</uni-th> -->
  15. <uni-th align="center">工单单号</uni-th>
  16. <uni-th align="center">诉求标题</uni-th>
  17. <uni-th align="center" v-if="isDisplay.displayCallContent">来电内容</uni-th>
  18. <uni-th align="center">承办单位</uni-th>
  19. <uni-th align="center">受理人</uni-th>
  20. <uni-th align="center">办理状态</uni-th>
  21. <uni-th align="center">时限</uni-th>
  22. <uni-th align="center">办理时限</uni-th>
  23. </uni-tr>
  24. <!-- 表格数据行 -->
  25. <uni-tr v-for="item in listData" :key="item.F_WorkOrderId">
  26. <!-- <uni-td align="center">{{ }}</uni-td> -->
  27. <uni-td align="center">
  28. <view @click="workOrderIdClick(item.F_WorkOrderId)">
  29. {{ item.F_WorkOrderId }}
  30. </view>
  31. </uni-td>
  32. <uni-td align="center">{{ item.F_ComTitle | limitContentLength(item) }}</uni-td>
  33. <uni-td align="center" v-if="isDisplay.displayCallContent">{{ item.F_ComContent | limitContentLength(item) }}</uni-td>
  34. <uni-td align="center">{{ item.DeptName }}</uni-td>
  35. <uni-td align="center">{{ item.UserName }}</uni-td>
  36. <uni-td align="center">{{ item.F_WorkState | workOrderState(item) }}</uni-td>
  37. <uni-td align="center">{{ item.GapTime }}</uni-td>
  38. <uni-td align="center">{{ item.LimitTime }}</uni-td>
  39. </uni-tr>
  40. </uni-table>
  41. </view>
  42. <view>
  43. <uni-pagination title="标题文字" show-icon="true" :total="dataTotal" current="1" @change="changePages"></uni-pagination>
  44. </view>
  45. </view>
  46. </template>
  47. <script>
  48. const urlData = ["WorkOrder/GetList", "WorkOrder/GetLDDealList", "WorkOrder/GetDWDealList", "WorkOrder/GetZXDealList", "WorkOrder/GetTimeOutList", "workorder/GetSupervList"]
  49. const segmenterData = {
  50. 0: ["热线件", "督办件"], // 已办待回访
  51. 1: ["未追加回复", "已追加回复"], // 已办待回访
  52. }
  53. export default {
  54. data() {
  55. return {
  56. listData: [],
  57. paramsData: {},
  58. pageNumber: 1,
  59. dataTotal: 0,
  60. segmenter: {
  61. current: 0,
  62. items: ["0", "1"],
  63. type: "",
  64. },
  65. isDisplay: {
  66. displaySegmentedControl: false, // 分段器
  67. displayCallContent: true, // 来电内容
  68. },
  69. }
  70. },
  71. onLoad(optioin) {
  72. optioin.page = 1 // 页码
  73. optioin.pagesize = 10 // 条数
  74. this.paramsData = optioin
  75. this.getList(this.paramsData)
  76. if (optioin.segmenter == undefined || optioin.segmenter == null || optioin.segmenter == "") {
  77. this.isDisplay.displaySegmentedControl = false
  78. } else {
  79. this.isDisplay.displaySegmentedControl = true
  80. this.segmenter.type = optioin.segmenter
  81. this.segmenter.items = segmenterData[optioin.segmenter]
  82. }
  83. /*
  84. displayCallContent
  85. 1:不显示来电内容
  86. */
  87. if (String(optioin.displayCallContent) === "1") {
  88. this.isDisplay.displayCallContent = false
  89. }
  90. // 页面
  91. uni.$on("updateList", (res) => {
  92. this.listData = []
  93. this.paramsData.page = 1
  94. this.paramsData.pagesize = 10
  95. this.getList(this.paramsData)
  96. console.log(res)
  97. })
  98. },
  99. onUnload() {
  100. // 移除监听事件
  101. uni.$off("updateList")
  102. },
  103. methods: {
  104. getList(optioin) {
  105. const params = {
  106. page: optioin.page,
  107. pagesize: optioin.pagesize,
  108. tab: optioin.tab == undefined ? "" : optioin.tab,
  109. state: optioin.state == undefined ? "" : optioin.state,
  110. jianhang: optioin.jianhang == undefined ? "" : optioin.jianhang,
  111. phoneType: optioin.phoneType == undefined ? "" : optioin.phoneType,
  112. db: optioin.db == undefined ? "" : optioin.db,
  113. isproresult: optioin.isproresult == undefined ? "" : optioin.isproresult,
  114. tobereply: optioin.tobereply == undefined ? "" : optioin.tobereply,
  115. token: uni.getStorageSync("token"),
  116. }
  117. let workOrderListType = Number(optioin.workOrderListType)
  118. let url = urlData[workOrderListType]
  119. this.$http
  120. .get(url, params)
  121. .then((response) => {
  122. if (response.state.toLowerCase() === "success") {
  123. let data = response.rows
  124. data = data.reverse()
  125. this.listData = data.concat(this.listData)
  126. this.dataTotal = response.total
  127. uni.stopPullDownRefresh()
  128. }
  129. })
  130. .catch((e) => {
  131. console.log(e)
  132. })
  133. },
  134. workOrderIdClick(value) {
  135. uni.navigateTo({
  136. url: "/pages/workOrderDetail/workOrderDetail?wid=" + value,
  137. })
  138. },
  139. onClickSegmentedControl(e) {
  140. this.listData = []
  141. switch (String(this.segmenter.type)) {
  142. case "0":
  143. if (String(e.currentIndex) === "0") {
  144. this.paramsData.db = 0
  145. } else if (String(e.currentIndex) === "1") {
  146. this.paramsData.db = 1
  147. }
  148. break
  149. case "1":
  150. if (String(e.currentIndex) === "0") {
  151. this.paramsData.isproresult = 1
  152. } else if (String(e.currentIndex) === "1") {
  153. this.paramsData.isproresult = 2
  154. }
  155. break
  156. }
  157. this.getList(this.paramsData)
  158. },
  159. changePages(e) {
  160. this.listData = []
  161. this.paramsData.page = e.current
  162. this.paramsData.pagesize = 10
  163. this.getList(this.paramsData)
  164. }
  165. },
  166. filters: {
  167. // 工单状态过滤
  168. workOrderState(value, options) {
  169. var resultData = ""
  170. switch (value + "") {
  171. case "0":
  172. resultData = "新工单"
  173. if (options.F_IsReturn == 1) {
  174. resultData = "新工单(回退)"
  175. }
  176. break
  177. case "1":
  178. resultData = "待交办"
  179. break
  180. case "2":
  181. resultData = "待查收"
  182. break
  183. case "3":
  184. resultData = "退回审核中"
  185. break
  186. case "4":
  187. resultData = "办理中"
  188. break
  189. case "5":
  190. resultData = "延时审核"
  191. break
  192. case "6":
  193. if (options.F_IsProtect === 2 || options.F_IsProtect === 3) {
  194. resultData = "已办未果"
  195. } else {
  196. resultData = "已办理"
  197. }
  198. break
  199. case "7":
  200. resultData = "已回访"
  201. break
  202. case "8":
  203. if (options.F_Identification === 0) {
  204. resultData = "重置转发"
  205. } else if (options.F_Identification === 1) {
  206. resultData = "退回重办"
  207. } else {
  208. resultData = "重办中"
  209. }
  210. break
  211. case "9":
  212. resultData = "已结案"
  213. break
  214. case "10":
  215. resultData = "待审核"
  216. break
  217. case "11":
  218. resultData = "重办待交办"
  219. break
  220. // case '12':
  221. // resultData = '待审核';
  222. // break;
  223. case "13":
  224. resultData = "重办驳回"
  225. break
  226. }
  227. return resultData
  228. },
  229. // 限制内容长度
  230. limitContentLength(value, options) {
  231. if (value) {
  232. if (value.length > 15) {
  233. value = value.substr(0, 15) + "..."
  234. }
  235. return value
  236. } else {
  237. return ""
  238. }
  239. },
  240. },
  241. onPullDownRefresh() {
  242. this.pageNumber = this.pageNumber + 1
  243. this.paramsData.page = this.pageNumber
  244. this.getList(this.paramsData)
  245. // setTimeout(function () {
  246. // }, 1500)
  247. },
  248. }
  249. </script>
  250. <style lang="scss">
  251. .wrapper {
  252. padding: 5px 0 0 0;
  253. // .segmentedControlWrapper {
  254. // }
  255. .tableWrapper {
  256. margin: 15px 0 0 0;
  257. }
  258. }
  259. </style>