customerDetail.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  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. <statusChange class="inline-16" v-if="tool.checkAuth($route.name,'statusChange')" :disabled="disabled" :id="mainData.sa_customersid" @statusChangeSuccess="statusChangeSuccess"></statusChange>
  23. <share class="inline-16" v-if="tool.checkAuth($route.name,'share') && mainData.sourcepoolname === ''" :disabled="disabled" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></share>
  24. <toBack class="inline-16" v-if="tool.checkAuth($route.name,'back') && mainData.sa_customerpoolid_source !== 0" :disabled="disabled" :data="mainData" @backSuccess="onSuccess"></toBack>
  25. <to_void class="inline-16" v-if="tool.checkAuth($route.name,'toVoid')" :id="mainData.sa_customersid" :disabled="disabled" @onshow="onSuccess" @toVoidSuccess="onSuccess"></to_void>
  26. <recovery class="inline-16" v-if="tool.checkAuth($route.name,'recovery') " :disabled="disabled" :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></recovery>
  27. </div>
  28. <div slot="slot0" >
  29. <detailed ref="baseDetail"></detailed>
  30. </div>
  31. <div slot="slot1" class=" normal-panel" >
  32. <contacts :data="mainData" :disabled="disabled" @onSuccess="onSuccess" v-if="flag"></contacts>
  33. </div>
  34. <div slot="slot2" class=" normal-panel">
  35. <address_manage :data="mainData" v-if="flag"></address_manage>
  36. </div>
  37. <div slot="slot3" class=" normal-panel">
  38. <financial :mainData="mainData" v-if="flag"></financial>
  39. </div>
  40. <div slot="slot4" class="normal-panel">
  41. <projectChange :data="mainData" v-if="flag"></projectChange>
  42. </div>
  43. <div slot="slot5" class="normal-panel">
  44. <quotedPrice :data="mainData" v-if="flag"></quotedPrice>
  45. </div>
  46. <div slot="slot6" class="normal-panel">
  47. <followLeads :data="mainData" v-if="flag"></followLeads>
  48. </div>
  49. </basicDetails>
  50. </div>
  51. </template>
  52. <script>
  53. import detailed from './modules/detailedData'
  54. import contacts from './modules/contacts/list'
  55. import address_manage from './modules/addressManage/list'
  56. import transactionUser from "./modules/operation/transactionUser"
  57. import lock from './modules/operation/lock'
  58. import unlock from './modules/operation/unlock'
  59. import share from './modules/operation/share'
  60. import send_back from './modules/operation/sendBack'
  61. import to_void from './modules/operation/toVoid'
  62. import transaction_status from './modules/operation/transactionStatus'
  63. import statusChange from './modules/operation/statusChange'
  64. import recovery from './modules/operation/recovery'
  65. import financial from './modules/financialInfo/index.vue'
  66. import projectChange from './modules/projectChange/list'
  67. import quotedPrice from './modules/quotedPrice/list'
  68. import followLeads from './modules/followLeads/index'
  69. import toBack from "@/SDrpManagement/salerPrivatecustomer/detail/modules/operation/toBack";
  70. export default {
  71. name: "detail",
  72. data() {
  73. return {
  74. mainData:{},
  75. mainAreaData:[],
  76. userInfo:JSON.parse(window.sessionStorage.getItem('userInfo')),
  77. tags:{},
  78. visible:false,
  79. dialogFormVisible:false,
  80. dialogFormLeader:false,
  81. form:{
  82. status:'',
  83. userid:''
  84. },
  85. users:[],
  86. flag:false,
  87. disabled:false
  88. }
  89. },
  90. components:{
  91. detailed,
  92. contacts,
  93. address_manage,
  94. transactionUser,
  95. lock,
  96. unlock,
  97. share,
  98. send_back,
  99. to_void,
  100. transaction_status,
  101. recovery,
  102. financial,
  103. projectChange,
  104. quotedPrice,
  105. followLeads,
  106. statusChange,
  107. toBack
  108. },
  109. watch:{
  110. mainData(val) {
  111. if (this.mainData.leader.length !== 0){
  112. if (JSON.parse(window.sessionStorage.getItem('userInfo')).userid === this.mainData.leader[0].userid){
  113. this.disabled = false
  114. }else {
  115. this.disabled = true
  116. }
  117. }
  118. console.log("权限结果",this.disabled)
  119. }
  120. },
  121. methods:{
  122. async queryMainData(id) {
  123. const res = await this.$api.requested({
  124. "id": 20221012164302,
  125. "content": {
  126. "sa_customersid": id
  127. },
  128. })
  129. this.mainData = res.data
  130. this.$refs['details'].param.content.type = this.$route.query.tabIndex
  131. this.$refs['details'].param.content.isExport = false
  132. this.changeDataStructure()
  133. this.flag = true
  134. console.log(this.mainData,"输出数据用户id")
  135. },
  136. show(){
  137. this.visible = false
  138. },
  139. changeDataStructure() {
  140. let that = this
  141. this.mainAreaData = [
  142. {
  143. label:'客户编号',
  144. value:this.mainData.sa_customersid
  145. },
  146. {
  147. label:'客户级别',
  148. value:this.mainData.customergrade
  149. },
  150. {
  151. label:'客户类型',
  152. value:this.mainData.type
  153. },
  154. {
  155. label:'上级企业',
  156. value:this.mainData.superiorenterprisename
  157. },
  158. {
  159. label:'成交状态',
  160. value:this.mainData.tradingstatus,
  161. style:function () {
  162. let style = {}
  163. switch (that.mainData.tradingstatus) {
  164. case '已成交':
  165. style = {color:'#fa8c16'}
  166. break;
  167. case '未成交':
  168. style = {color:'#3874f6'}
  169. break;
  170. case '多次成交':
  171. style = {color:'#333333'}
  172. break;
  173. default:
  174. break;
  175. }
  176. return style
  177. }
  178. },
  179. {
  180. label:'合作状态',
  181. value:this.mainData.status,
  182. style:function () {
  183. let style = {}
  184. switch (that.mainData.status) {
  185. case '潜在':
  186. style = {color:'#3874f6'}
  187. break;
  188. case '合作中':
  189. style = {color:'#52c41a'}
  190. break;
  191. case '已终止':
  192. style = {color:'#999999'}
  193. break;
  194. default:
  195. break;
  196. }
  197. return style
  198. }
  199. },
  200. {
  201. label:'负责人',
  202. value:this.mainData.leader.length === 0?"--":this.mainData.leader[0].name
  203. },
  204. {
  205. label:'最近跟进时间',
  206. value:''
  207. },
  208. {
  209. label:'来源公海',
  210. value:this.mainData.sourcepoolname
  211. }
  212. ]
  213. },
  214. // 监听切换数据,上一页,下一页
  215. pageChange (id,rowindex,tabIndex) {
  216. this.flag = false
  217. tabIndex = this.$route.query.tabIndex
  218. this.$router.replace({path:'/customerDetail',query:{id:id,rowindex:rowindex,tabIndex:tabIndex}})
  219. this.queryMainData(id)
  220. },
  221. onSuccess(){
  222. this.visible = false
  223. this.queryMainData(this.$route.query.id)
  224. /*this.$emit('onSuccess')*/
  225. },
  226. statusChangeSuccess () {
  227. this.$refs.details.refreshTag()
  228. this.$refs.baseDetail.basicData(this.$route.query.id)
  229. this.$refs.baseDetail.systemData(this.$route.query.id)
  230. this.queryMainData(this.$route.query.id)
  231. }
  232. },
  233. mounted () {
  234. this.queryMainData(this.$route.query.id)
  235. },
  236. created() {
  237. this.tool.checkAuth(this.$route.name,'update')?'':this.$router.go(-1)
  238. }
  239. }
  240. </script>
  241. <style scoped>
  242. </style>