detail.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="mainData.name"
  6. :oldFormPath="{
  7. edit:'HManagement/clueManage/clue_private/modules',
  8. add:'HManagement/clueManage/clue_private/modules',
  9. }"
  10. :editData="mainData"
  11. :mainAreaData="mainAreaData"
  12. turnPageId="20221101094302"
  13. delApiId="20221101100502"
  14. idname="sat_orderclueid"
  15. :tabs="['详细信息','跟进记录']"
  16. @pageChange="pageChange"
  17. @onEditSuccess="queryMainData($route.query.id)">
  18. <div slot="tags">
  19. </div>
  20. <div slot="customOperation">
  21. <recall class="inline-16" v-if="mainData.status === '待跟进' || mainData.status === '跟进中' && mainData.isTeam !== '团队' && tool.checkAuth($route.name,'recall')" :data="mainData" @onSuccess="queryMainData"></recall>
  22. </div>
  23. <div slot="slot0" class="container normal-panel">
  24. <BaseInfo :detailInfo="detailInfo"/>
  25. </div>
  26. <div slot="slot1" class="container normal-panel">
  27. <el-descriptions>
  28. <div slot="title">跟进记录<i @click="followRecord(isdesc === 1?isdesc = 0:isdesc =1)" :class="isdesc === 1?'fa fa-sort-amount-asc':'fa fa-sort-amount-desc'"></i></div>
  29. </el-descriptions>
  30. <div class="flex-align-center normal-margin">
  31. <p>日期:&nbsp;</p>
  32. <el-date-picker
  33. v-model="value2"
  34. type="daterange"
  35. align="right"
  36. unlink-panels
  37. range-separator="至"
  38. start-placeholder="开始日期"
  39. end-placeholder="结束日期"
  40. value-format="yyyy-MM-dd"
  41. size="small"
  42. @change="dateChange"
  43. clearable>
  44. </el-date-picker>
  45. </div>
  46. <div v-for="(item,index) in recordlist" :key="item.index" class="follow-item">
  47. <p>{{index + 1}}.&nbsp;{{item.createdate}},由经销商端<b>{{item.createby}}</b>{{item.logtype}},跟进方式:<b>{{item.followupmode}}</b>,跟进内容:</p>
  48. <div class="content-panel">
  49. <p>{{item.content}}</p>
  50. <p>{{item.competitor}}</p>
  51. </div>
  52. </div>
  53. </div>
  54. </basicDetails>
  55. </div>
  56. </template>
  57. <script>
  58. import BaseInfo from '@/HDrpManagement/projectChange/modules/modules/baseInfo/baseInfo'
  59. import recall from './recall.vue'
  60. export default {
  61. name: "detail",
  62. data() {
  63. return {
  64. mainData:{},
  65. mainAreaData:{},
  66. detailInfo:{},
  67. recordlist:[],
  68. isdesc:1,
  69. value2:'',
  70. dateParam:{
  71. "start": "",
  72. "end": ""
  73. }
  74. }
  75. },
  76. components:{
  77. BaseInfo,recall
  78. },
  79. methods:{
  80. async followRecord () {
  81. const res = await this.$api.requested({
  82. "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
  83. "method": "getFollowList",
  84. "content": {
  85. "sat_orderclueid": this.$route.query.id,
  86. "isdesc": this.isdesc,
  87. "where": this.dateParam
  88. }
  89. })
  90. this.recordlist = res.data
  91. },
  92. dateChange (val) {
  93. if (!val) {val = []}
  94. this.dateParam.start = val[0]
  95. this.dateParam.end = val[1]
  96. this.followRecord()
  97. },
  98. async queryMainData(id) {
  99. const res = await this.$api.requested({
  100. "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
  101. "method": "selectDetail",
  102. "content": {
  103. "sat_orderclueid": this.$route.query.id
  104. }
  105. })
  106. this.mainData = res.data
  107. console.log(this.mainData);
  108. this.changeDataStructure()
  109. },
  110. changeDataStructure() {
  111. let that = this
  112. this.mainAreaData = [
  113. {
  114. label:'客户名称',
  115. value:this.mainData.enterprisename_customer
  116. },
  117. {
  118. label:'联系人',
  119. value:this.mainData.name
  120. },
  121. {
  122. label:'手机号',
  123. value:this.mainData.phonenumber
  124. },
  125. {
  126. label:'来源',
  127. value:this.mainData.cluesource
  128. },
  129. {
  130. label:'负责人',
  131. value:this.mainData.leadername
  132. },
  133. {
  134. label:'所属经销商',
  135. value:this.mainData.enterprisename
  136. },
  137. {
  138. label:'跟进状态',
  139. value:this.mainData.status,
  140. style:function () {
  141. let style = {}
  142. switch (that.mainData.status) {
  143. case '已过期':
  144. style = {color:'#999999'}
  145. break;
  146. case '跟进中':
  147. style = {color:'#52c41a'}
  148. break;
  149. case '待跟进':
  150. style = {color:'#3874f6'}
  151. break;
  152. case '已转化':
  153. style = {color:'#fa8c16'}
  154. break;
  155. case '已无效':
  156. style = {color:'#333333'}
  157. break;
  158. default:
  159. break;
  160. }
  161. return style
  162. }
  163. },
  164. {
  165. label:'分配状态',
  166. value:this.mainData.allocationstatus,
  167. style:function () {
  168. let style = {}
  169. switch (that.mainData.allocationstatus) {
  170. case '已分配':
  171. style = {color:'#333333'}
  172. break;
  173. case '待分配':
  174. style = {color:'#3874f6'}
  175. break;
  176. default:
  177. break;
  178. }
  179. return style
  180. }
  181. },
  182. ]
  183. this.detailInfo = {
  184. baseInfo: [
  185. {
  186. label:'客户名称',
  187. value:this.mainData.name
  188. },
  189. {
  190. label:'手机号',
  191. value:this.mainData.phonenumber
  192. },
  193. {
  194. label:'省市县',
  195. value:`${this.mainData.province}-${this.mainData.city}-${this.mainData.county}`
  196. },
  197. {
  198. label:'地址',
  199. value:this.mainData.address
  200. },
  201. {
  202. label:'来源',
  203. value:this.mainData.cluesource
  204. },
  205. {
  206. label:'负责人',
  207. value:this.mainData.leadername
  208. },
  209. {
  210. label:'备注',
  211. value:this.mainData.notes
  212. },
  213. {
  214. label:'所属经销商',
  215. value:this.mainData.enterprisename
  216. },
  217. {
  218. label:'状态',
  219. value:this.mainData.status
  220. },
  221. ],
  222. systemInfo: [
  223. {label:'创建人',value:this.mainData.createBy},
  224. {label:'分配人',value:this.mainData.assignedBy},
  225. {label:'最近跟进人',value:this.mainData.followBy},
  226. {label:'转移人',value:this.mainData.changeBy},
  227. {label:'最近编辑人',value:this.mainData.editBy},
  228. {label:'创建时间',value:this.mainData.createDate},
  229. {label:'分配时间',value:this.mainData.assignedDate},
  230. {label:'最近跟进时间',value:this.mainData.followDate},
  231. {label:'最近转移时间',value:this.mainData.changeDate},
  232. {label:'最近编辑时间',value:this.mainData.editDate},
  233. ]
  234. }
  235. },
  236. // 监听切换数据,上一页,下一页
  237. pageChange (id,rowindex) {
  238. this.flag = false
  239. this.$router.replace({path:'/clueDetail_private',query:{id:id,rowindex:rowindex}})
  240. this.queryMainData(id)
  241. },
  242. async followRecord () {
  243. const res = await this.$api.requested({
  244. "classname": "webmanage.saletool.orderclue.publicclue.PublicClue",
  245. "method": "getFollowList",
  246. "content": {
  247. "sat_orderclueid": this.$route.query.id,
  248. "isdesc": 1,
  249. "where": this.dateParam
  250. }
  251. })
  252. this.recordlist = res.data
  253. },
  254. dateChange (val) {
  255. console.log(val)
  256. if (!val) {val = []}
  257. this.dateParam.start = val[0]
  258. this.dateParam.end = val[1]
  259. this.followRecord()
  260. },
  261. },
  262. mounted () {
  263. this.queryMainData(this.$route.query.id)
  264. },
  265. created() {
  266. this.followRecord()
  267. }
  268. }
  269. </script>
  270. <style scoped>
  271. </style>