index.vue 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <div class="bgcolor">
  3. <div class="navBarTOP">
  4. <van-nav-bar class="navBar" title="客资任务" left-arrow @click-left="onClickLeft" />
  5. <van-tabs v-model="isHandle" color="#0057ba" @change="tabChange">
  6. <van-tab title="未跟进" name="-1" :disabled="disabled"></van-tab>
  7. <van-tab title="跟进中" name="0" :disabled="disabled"></van-tab>
  8. <van-tab title="已结案" name="1" :disabled="disabled"></van-tab>
  9. </van-tabs>
  10. </div>
  11. <div class="container">
  12. <div class="lineGrey"></div>
  13. <div class="lineGrey"></div>
  14. <div class="lineGrey"></div>
  15. <div class="lineGrey"></div>
  16. <div class="lineGrey"></div>
  17. <div class="lineGrey"></div>
  18. <div class="lineGrey"></div>
  19. <div class="lineGrey"></div>
  20. <div class="lineGrey"></div>
  21. <van-list v-model="loading" :finished="finished" finished-text="--已经到底了--">
  22. <div class="newCarList" v-for="(item, index) in list" :key="index">
  23. <van-cell is-link>
  24. <div class="newlist" @click="approveFn(item)">
  25. <div class="title">
  26. <p class="textLeft">{{ item.name }}</p>
  27. <p class="textRight" v-if="isHandle == '-1' || isHandle == '0'">详情</p>
  28. </div>
  29. <div class="info">
  30. 客资线索:<span v-if="item.cid == 3">申请代理</span
  31. ><span v-if="item.cid == 4">开设门店</span
  32. ><span v-if="item.cid == 5">批量采购</span>
  33. </div>
  34. <div class="info">联系电话:{{ item.phone }}</div>
  35. <div class="info" v-if="item.createTime">首次接入时间:{{ item.createTime }}</div>
  36. <div class="info" v-if="item.latestClueTime">
  37. 最后一次跟进时间:{{ item.latestClueTime }}
  38. </div>
  39. </div>
  40. </van-cell>
  41. </div>
  42. <van-empty description="" v-if="list.length == 0" />
  43. </van-list>
  44. </div>
  45. </div>
  46. </template>
  47. <script>
  48. import { infolist } from '@/api/clew';
  49. export default {
  50. name: 'clew',
  51. data() {
  52. return {
  53. isHandle: '-1',
  54. disabled: false,
  55. loading: false,
  56. list: [],
  57. finished: true,
  58. };
  59. },
  60. created() {
  61. this.approveList();
  62. },
  63. watch: {
  64. $route(to, from) {
  65. if (to.path == '/clew' && from.path == '/My/index') {
  66. this.approveList();
  67. }
  68. if (to.path == '/clew' && from.path == '/clewent') {
  69. this.pageNum = 1;
  70. this.approveList();
  71. }
  72. },
  73. },
  74. beforeRouteLeave(to, from, next) {
  75. if (from.path != '/clew') {
  76. this.$router.push('/My/index');
  77. }
  78. next();
  79. },
  80. methods: {
  81. submit() {
  82. var taskIds = [];
  83. var instanceIds = [];
  84. for (var i = 0; i < this.radio.length; i++) {
  85. taskIds.push(this.radio[i].taskId);
  86. instanceIds.push(this.radio[i].instanceId);
  87. }
  88. var dormData = {
  89. taskIds: taskIds.join(','),
  90. instanceIds: instanceIds.join(','),
  91. variables: JSON.stringify({
  92. comment: this.blackReason,
  93. pass: true,
  94. }),
  95. };
  96. this.$dialog
  97. .confirm({
  98. message: '确认提交审批?',
  99. })
  100. .then(() => {
  101. completeAll(dormData).then((res) => {
  102. if (res.code == 200) {
  103. this.radio = [];
  104. this.$toast('提交成功!');
  105. this.submitShow = false;
  106. this.pageNum = 1;
  107. this.approveList();
  108. }
  109. });
  110. });
  111. },
  112. approveFn(row) {
  113. if (row.cid !== 7) {
  114. // 家装客资跟进
  115. this.$router.push({
  116. path: '/JZfollowUp',
  117. query: { id: row.customerClueInfoId },
  118. });
  119. } else {
  120. // 非家装客资跟进
  121. this.list = [];
  122. this.$router.push({
  123. path: '/clewent',
  124. query: { id: row.customerClueInfoId },
  125. });
  126. }
  127. },
  128. tabChange() {
  129. this.disabled = true;
  130. this.list = [];
  131. this.pageNum = 1;
  132. this.approveList();
  133. },
  134. approveList() {
  135. let loading1 = this.$toast.loading({
  136. duration: 0,
  137. message: '数据加载中...',
  138. forbidClick: true,
  139. });
  140. infolist({ type: this.isHandle }).then((res) => {
  141. loading1.clear();
  142. this.disabled = false;
  143. this.loading = false;
  144. this.list = res.data;
  145. });
  146. },
  147. onClickLeft() {
  148. this.$router.push('/My/index');
  149. },
  150. },
  151. };
  152. </script>
  153. <style>
  154. .newCarList {
  155. margin: 14px;
  156. border-radius: 8px;
  157. overflow: hidden;
  158. }
  159. .newCarList .van-cell {
  160. border-radius: 6px;
  161. overflow: hidden;
  162. }
  163. .newCarList .newlist .title {
  164. line-height: 32px;
  165. }
  166. .newCarList .van-cell__right-icon {
  167. top: -4px;
  168. }
  169. .newCarList .newlist {
  170. box-sizing: border-box;
  171. }
  172. .newCarList .newlist .title {
  173. font-size: 14px;
  174. font-weight: bold;
  175. color: #333;
  176. line-height: 14px;
  177. }
  178. .newCarList .newlist .info {
  179. font-size: 14px;
  180. color: #999;
  181. line-height: 26px;
  182. }
  183. .newCarList .newlist .title p {
  184. padding: 0;
  185. margin: 0;
  186. }
  187. .newCarList .newlist .title .textLeft {
  188. display: inline-block;
  189. padding-bottom: 10px;
  190. }
  191. .newCarList .newlist .title .textRight {
  192. float: right;
  193. color: #0057ba;
  194. }
  195. .van-tab--active {
  196. color: #0057ba;
  197. }
  198. </style>