Btarget.vue 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. <template>
  2. <div class="Btarget">
  3. <div v-if="type != 4" class="container linep">
  4. <van-collapse v-model="activeNames">
  5. <!-- 拜访数据(实时) -->
  6. <van-collapse-item name="7" v-if="powerGrade == 1 && !GZdata">
  7. <template #title>
  8. <div>拜访数据(实时)</div>
  9. <!-- 工装不显示 -->
  10. </template>
  11. <visitedRealTime
  12. :reportTargetAll="reportTargetAll"
  13. :powerGrade="powerGrade"
  14. :JZQuota="JZQuota"></visitedRealTime>
  15. </van-collapse-item>
  16. <!-- 建店布机 -->
  17. <van-collapse-item name="2" v-if="!JZQuota && !GZdata" title="建店布机">
  18. <createStoreBJ :reportTargetAll="reportTargetAll"></createStoreBJ>
  19. </van-collapse-item>
  20. <!-- 下单点数 -->
  21. <van-collapse-item v-if="powerGrade == 1 && !JZQuota && !GZdata" name="33" title="下单点数">
  22. <placeOrder :reportTargetAll="reportTargetAll"></placeOrder>
  23. </van-collapse-item>
  24. <!-- 专业时时丽分销店下单 -->
  25. <van-collapse-item name="16" v-if="!JZQuota && !GZdata" title="专业时时丽分销店下单">
  26. <ZYPlaceOrder :reportTargetAll="reportTargetAll"></ZYPlaceOrder>
  27. </van-collapse-item>
  28. <!-- 超好贴分销店下单 -->
  29. <van-collapse-item name="17" v-if="!JZQuota && !GZdata" title="超好贴分销店下单">
  30. <veryGoodPlaceOrder :reportTargetAll="reportTargetAll"></veryGoodPlaceOrder>
  31. </van-collapse-item>
  32. <van-collapse-item v-if="powerGrade != 1 && !JZQuota && !GZdata" name="32" title="客户开拓">
  33. <van-row>
  34. <van-col span="24"><span class="leftTitle">非片客户开发</span></van-col>
  35. <van-col span="24">
  36. <p>
  37. 全年开发数:<span class="colorbalck">{{
  38. Micrometer(reportTargetAll.customerAct)
  39. }}</span>
  40. </p>
  41. </van-col>
  42. <van-col span="24">
  43. <p>
  44. 全年进度率:
  45. <span class="colorbalck"> {{ reportTargetAll.customerYearRate }}% </span>
  46. </p>
  47. </van-col>
  48. </van-row>
  49. </van-collapse-item>
  50. <van-collapse-item v-if="powerGrade == 2" name="8" title="当日门店拜访情况(实时)">
  51. <div v-if="reportTargetAll.realTimeVisits == null" style="margin-top: -10px">
  52. <p style="text-align: center; color: #666">暂无数据</p>
  53. </div>
  54. <div v-if="reportTargetAll.realTimeVisits != null" style="margin-top: -10px">
  55. <div class="container" style="width: 100%; margin: 0 auto; padding: 10px 0">
  56. <el-table
  57. :data="reportTargetAll.realTimeVisits"
  58. border
  59. class="table-headermd table-headermdhome"
  60. style="width: 100%">
  61. <el-table-column label="业务员" prop="userName">
  62. <template slot-scope="scope">
  63. <span class="tipTitle">{{ scope.row.userName }}</span>
  64. </template>
  65. </el-table-column>
  66. <el-table-column label="拜访次数" prop="visitAct" />
  67. <el-table-column :label="'金牌店\n拜访率'" prop="jpVisitRate">
  68. <template slot-scope="scope">
  69. <span class="tipTitle">{{ scope.row.jpVisitRate }}%</span>
  70. </template>
  71. </el-table-column>
  72. <el-table-column :label="'同城店\n拜访率'" prop="tcVisitRate">
  73. <template slot-scope="scope">
  74. <span class="tipTitle">{{ scope.row.tcVisitRate }}%</span>
  75. </template>
  76. </el-table-column>
  77. </el-table>
  78. </div>
  79. </div>
  80. </van-collapse-item>
  81. </van-collapse>
  82. </div>
  83. <div v-if="type == 4" class="container linep">
  84. <van-collapse v-model="activeNames" v-if="reportInfo.customerUserTargets">
  85. <van-collapse-item
  86. :name="index + ''"
  87. :title="item.nickName"
  88. v-for="(item, index) in reportInfo.customerUserTargets"
  89. :key="index">
  90. <van-row>
  91. <van-col span="24"
  92. ><p class="indexTile" style="margin-top: -2px">
  93. <van-icon :name="bfindex" class="indexicon"></van-icon>拜访
  94. </p></van-col
  95. >
  96. <van-col span="12"
  97. ><p><span class="leftTitle">本日实际</span></p></van-col
  98. >
  99. <van-col span="12"
  100. ><p><span class="rightTitle">本月实际</span></p></van-col
  101. >
  102. <van-col span="12"
  103. ><p>
  104. 拜访点数:<span class="colorbalck">{{ Micrometer(item.dayVisitCount) }}</span>
  105. </p></van-col
  106. >
  107. <van-col span="12"
  108. ><p>
  109. 拜访点数:<span class="colorbalck">{{ Micrometer(item.monthVisitCount) }}</span>
  110. </p></van-col
  111. >
  112. <van-col span="24"
  113. ><p class="indexTile">
  114. <van-icon :name="storeindex" class="indexicon"></van-icon>建店
  115. </p></van-col
  116. >
  117. <van-col span="12"
  118. ><p><span class="leftTitle">本日新增</span></p></van-col
  119. >
  120. <van-col span="12"
  121. ><p><span class="rightTitle">本月实际</span></p></van-col
  122. >
  123. <van-col span="12"
  124. ><p>
  125. 分销店点数:<span class="colorbalck">{{ Micrometer(item.dayFxdAct) }}</span>
  126. </p></van-col
  127. >
  128. <van-col span="12"
  129. ><p>
  130. 分销店点数:<span class="colorbalck">{{ Micrometer(item.monthFxdAct) }}</span>
  131. </p></van-col
  132. >
  133. <van-col span="24"
  134. ><p class="indexTile">
  135. <van-icon :name="oderindex" class="indexicon"></van-icon>下单
  136. </p></van-col
  137. >
  138. <van-col span="12"
  139. ><p><span class="leftTitle">昨日新增</span></p></van-col
  140. >
  141. <van-col span="12"
  142. ><p><span class="rightTitle">本月实际</span></p></van-col
  143. >
  144. <van-col span="12"
  145. ><p>
  146. 下单点数:<span class="colorbalck">{{ Micrometer(item.yesOrderAct) }}</span>
  147. </p></van-col
  148. >
  149. <van-col span="12"
  150. ><p>
  151. 下单点数:<span class="colorbalck">{{ Micrometer(item.monthOrderAct) }}</span>
  152. </p></van-col
  153. >
  154. </van-row>
  155. </van-collapse-item>
  156. </van-collapse>
  157. </div>
  158. </div>
  159. </template>
  160. <script>
  161. import createStoreBJ from '@/views/componentsTarget/createStoreBJ';
  162. import visitedRealTime from '@/views/componentsTarget/visitedRealTime';
  163. import placeOrder from '@/views/componentsTarget/placeOrder';
  164. import ZYPlaceOrder from '@/views/componentsTarget/ZYPlaceOrder';
  165. import veryGoodPlaceOrder from '@/views/componentsTarget/veryGoodPlaceOrder';
  166. import neiqiangzhonggaoduanSAP from '@/views/componentsTarget/neiqiangzhonggaoduanSAP';
  167. export default {
  168. components: {
  169. createStoreBJ,
  170. visitedRealTime,
  171. placeOrder,
  172. ZYPlaceOrder,
  173. veryGoodPlaceOrder,
  174. neiqiangzhonggaoduanSAP,
  175. },
  176. props: {
  177. reportInfo: {
  178. type: Object,
  179. },
  180. },
  181. watch: {
  182. reportInfo: {
  183. handler(val) {
  184. if (val.postType == 'GZ') {
  185. this.GZdata = true;
  186. this.saptitle = '公裝业绩SAP(千元)';
  187. } else {
  188. this.saptitle = '业绩目标SAP(千元)';
  189. this.GZdata = false;
  190. }
  191. if (val.postType == 'JZ') {
  192. this.JZQuota = true;
  193. } else {
  194. this.JZQuota = false;
  195. }
  196. this.reportInfoData = val;
  197. this.powerGrade = val.positionId;
  198. if (val.reportTargetAll != null) {
  199. this.reportTargetAll = val.reportTargetAll;
  200. }
  201. this.type = val.userType;
  202. },
  203. deep: true,
  204. immediate: true,
  205. },
  206. },
  207. data() {
  208. return {
  209. type: '-1',
  210. JZQuota: false,
  211. GZdata: false,
  212. saptitle: '业绩目标SAP(千元)',
  213. powerGrade: '2',
  214. reportTargetAll: {},
  215. activeNames: [
  216. '1',
  217. '2',
  218. '3',
  219. '4',
  220. '5',
  221. '6',
  222. '7',
  223. '8',
  224. '10',
  225. '11',
  226. '12',
  227. '16',
  228. '17',
  229. '20',
  230. '21',
  231. '22',
  232. '23',
  233. '24',
  234. '25',
  235. '26',
  236. '27',
  237. '28',
  238. '29',
  239. '30',
  240. '31',
  241. '32',
  242. '33',
  243. '34',
  244. '35',
  245. '36',
  246. '37',
  247. '38',
  248. '39',
  249. '40',
  250. '41',
  251. '42',
  252. '43',
  253. ],
  254. };
  255. },
  256. };
  257. </script>