customerDetail.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <template>
  2. <div>
  3. <basicDetails
  4. ref="details"
  5. :titleText="mainData.enterprisename"
  6. formPath="salerPrivatecustomer"
  7. :editData="mainData"
  8. :mainAreaData="mainAreaData"
  9. turnPageId="20221012164402"
  10. idname="sa_customersid"
  11. tags=""
  12. :tabs="['详细信息','联系人信息','客户地址','客户财务信息','工商信息','项目商机','报价单','合同信息']"
  13. @pageChange="pageChange"
  14. @onEditSuccess="queryMainData($route.query.id)">
  15. <div slot="tags">
  16. <!-- 使用此插槽可不传[tags] -->
  17. <!-- :tabs="['经销商团队','代理区域','营销类别','账户余额']" -->
  18. <!-- <tagPanl slot="tags" :data="tags" :id="mainData.sa_customersid" @onSuccess="queryMainData"/>-->
  19. </div>
  20. <div slot="customOperation" >
  21. <!-- 此区域提供了自定义操作按钮 -->
  22. <transaction_status class="inline-16" v-if="tool.checkAuth($route.name,'transaction')" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></transaction_status>
  23. <!--<lock class="inline-16" v-if="tool.checkAuth($route.name,'lock')" :id="mainData.sa_customersid" @onshow="onSuccess"></lock>-->
  24. <!--<unlock class="inline-16" v-if="tool.checkAuth($route.name,'unlock')" :id="mainData.sa_customersid" @onshow="onSuccess"></unlock> -->
  25. <share class="inline-16" v-if="tool.checkAuth($route.name,'share') && mainData.poolname === ''" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></share>
  26. <send_back style="display:inline" v-if="tool.checkAuth($route.name,'back') " :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></send_back>
  27. <to_void class="inline-16" v-if="tool.checkAuth($route.name,'toVoid')" :id="mainData.sa_customersid" @onshow="onSuccess" @toVoidSuccess="onSuccess"></to_void>
  28. <recovery class="inline-16" v-if="tool.checkAuth($route.name,'recovery') " :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></recovery>
  29. </div>
  30. <div slot="slot0" >
  31. <detailed ref="detailed"></detailed>
  32. </div>
  33. <div slot="slot1" class="container normal-panel" >
  34. <contacts :data="mainData" @onSuccess="onSuccess" v-if="flag"></contacts>
  35. </div>
  36. <div slot="slot2" class="container normal-panel">
  37. <address_manage :data="mainData" v-if="flag"></address_manage>
  38. </div>
  39. </basicDetails>
  40. </div>
  41. </template>
  42. <script>
  43. import detailed from './modules/detailedData'
  44. import contacts from './modules/contacts/list'
  45. import address_manage from './modules/addressManage/list'
  46. import transactionUser from "./modules/operation/transactionUser"
  47. import lock from './modules/operation/lock'
  48. import unlock from './modules/operation/unlock'
  49. import share from './modules/operation/share'
  50. import send_back from './modules/operation/sendBack'
  51. import to_void from './modules/operation/toVoid'
  52. import transaction_status from './modules/operation/transactionStatus'
  53. import recovery from './modules/operation/recovery'
  54. export default {
  55. name: "detail",
  56. data() {
  57. return {
  58. mainData:{},
  59. mainAreaData:[],
  60. tags:{},
  61. visible:false,
  62. dialogFormVisible:false,
  63. dialogFormLeader:false,
  64. form:{
  65. status:'',
  66. userid:''
  67. },
  68. users:[],
  69. flag:false
  70. }
  71. },
  72. components:{
  73. detailed,
  74. contacts,
  75. address_manage,
  76. transactionUser,
  77. lock,
  78. unlock,
  79. share,
  80. send_back,
  81. to_void,
  82. transaction_status,
  83. recovery
  84. },
  85. methods:{
  86. async queryMainData(id) {
  87. const res = await this.$api.requested({
  88. "id": 20221012164302,
  89. "content": {
  90. "sa_customersid": id
  91. },
  92. })
  93. this.mainData = res.data
  94. console.log("输出数据一")
  95. console.log(this.mainData)
  96. this.$refs['details'].param.content.type = this.$route.query.tabIndex
  97. this.$refs['details'].param.content.isExport = false
  98. this.changeDataStructure()
  99. this.$refs.detailed.detailedList(this.mainData)
  100. this.flag = true
  101. },
  102. show(){
  103. this.visible = false
  104. },
  105. changeDataStructure() {
  106. this.mainAreaData = [
  107. {
  108. label:'客户编号',
  109. value:this.mainData.sa_customersid
  110. },
  111. {
  112. label:'客户级别',
  113. value:this.mainData.grade
  114. },
  115. {
  116. label:'客户类型',
  117. value:this.mainData.type
  118. },
  119. {
  120. label:'上级企业',
  121. value:this.mainData.superiorenterprisename
  122. },
  123. {
  124. label:'成交状态',
  125. value:this.mainData.tradingstatus
  126. },
  127. {
  128. label:'负责人',
  129. value:this.mainData.leader.length === 0?"--":this.mainData.leader[0].name
  130. },
  131. {
  132. label:'最近跟近时间',
  133. value:''
  134. },
  135. {
  136. label:'来源公海',
  137. value:this.mainData.sourcepoolname
  138. }
  139. ]
  140. },
  141. // 监听切换数据,上一页,下一页
  142. pageChange (id,rowindex,tabIndex) {
  143. this.flag = false
  144. tabIndex = this.$route.query.tabIndex
  145. this.$router.replace({path:'/customerDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
  146. this.queryMainData(id)
  147. },
  148. async queryTags(id){
  149. const res = await this.$api.requested({
  150. "id": 20220929085401,
  151. "content": {
  152. "ownertable":'sa_customers',
  153. "ownerid":id
  154. }
  155. })
  156. this.tags = res.data
  157. },
  158. onSuccess(){
  159. this.visible = false
  160. this.queryMainData(this.$route.query.id)
  161. this.$emit('onSuccess')
  162. }
  163. },
  164. mounted () {
  165. this.queryMainData(this.$route.query.id)
  166. },
  167. created() {
  168. this.tool.checkAuth(this.$route.name,'update')?'':this.$router.go(-1)
  169. }
  170. }
  171. </script>
  172. <style scoped>
  173. </style>