agent_detail.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <div>
  3. <div class="container normal-panel normal-margin">
  4. <el-button v-if="tool.checkAuth($route.name,'agent_update')" size="small" icon="el-icon-edit" @click="$router.push({path:'/edit_agent',query:{id:form.sa_agentsid}})">编 辑</el-button>
  5. <startAgent v-if="tool.checkAuth($route.name,'agent_update')" :data="form" type="default" @onSuccess="query_agentMain()"></startAgent>
  6. <delAgent v-if="tool.checkAuth($route.name,'agent_delete')" :data="form" :type="'default'" :icon="'el-icon-delete'" class="inline-16"></delAgent>
  7. </div>
  8. <div class="container normal-panel normal-margin">
  9. <el-descriptions title="经销商信息" :column="4">
  10. <el-descriptions-item label="经销商编号">{{form.agentnum}}</el-descriptions-item>
  11. <el-descriptions-item label="省市县">{{form.province}}{{form.city}}{{form.county}}</el-descriptions-item>
  12. <el-descriptions-item label="联系人">{{form.contact}}</el-descriptions-item>
  13. <el-descriptions-item label="所属营销区域">{{form.areaname}}</el-descriptions-item>
  14. <el-descriptions-item label="经销商名称">{{form.agentname}}</el-descriptions-item>
  15. <el-descriptions-item label="地址">{{form.address}}</el-descriptions-item>
  16. <el-descriptions-item label="联系人手机号">{{form.phonenumber}}</el-descriptions-item>
  17. <el-descriptions-item label="合作开始时间">{{form.signdate}}</el-descriptions-item>
  18. <el-descriptions-item label="经销商类别">{{form.agenttypemx}}</el-descriptions-item>
  19. <el-descriptions-item label="经销商等级">{{form.grade}}</el-descriptions-item>
  20. <el-descriptions-item label="上级经销商">{{form.parentagentname}}</el-descriptions-item>
  21. <!-- <el-descriptions-item label="伙伴类型">{{form.agenttype}}</el-descriptions-item> -->
  22. </el-descriptions>
  23. </div>
  24. <div class="my-tabs" style="padding:0 16px">
  25. <el-tabs v-model="activeName" type="card">
  26. <el-tab-pane label="经销商团队" name="first"></el-tab-pane>
  27. <el-tab-pane label="业绩目标" name="second"></el-tab-pane>
  28. <el-tab-pane label="代理区域" name="third"></el-tab-pane>
  29. </el-tabs>
  30. </div>
  31. <div class="container normal-panel" v-if="activeName === 'first'">
  32. <!-- <el-button class="normal-margin" type="primary" size="small">创建经销商主账号</el-button> -->
  33. <tableLayout :layout="tablecols" :data="form.hrs" :custom="false" height="300px"></tableLayout>
  34. </div>
  35. <div class="container normal-panel" v-if="activeName === 'third'">
  36. <salescope></salescope>
  37. </div>
  38. </div>
  39. </template>
  40. <script>
  41. import selectAgent from '../../../../components/selectAgent/index.vue'
  42. import arealist from '../../area/list.vue'
  43. import delAgent from './del_agent.vue'
  44. import startAgent from './start_agent.vue'
  45. import salescope from './salescope/list.vue'
  46. export default {
  47. components:{
  48. selectAgent,
  49. arealist,
  50. delAgent,
  51. startAgent,
  52. salescope
  53. },
  54. data () {
  55. return {
  56. activeName:'first',
  57. form:{
  58. "value":[],
  59. "sa_agentsid": 0,
  60. "parentid":"",
  61. "areaname":'',
  62. "agentnum":"",
  63. "agentname":"",
  64. "address":"",
  65. "agenttype":"",
  66. "signdate":"",
  67. "grade":'',
  68. "sa_saleareaid":'',
  69. "contact":"",
  70. "phonenumber":"",
  71. "province":"",
  72. "city":"",
  73. "county":""
  74. },
  75. rule:{
  76. agentnum:[{ required: true, message: '请输入经销商编号', trigger: 'blur' }],
  77. agentname:[{ required: true, message: '请输入经销商名称', trigger: 'blur' }],
  78. value:[
  79. { required: true, message: '请选择省市县', trigger: 'blur' },
  80. { required: true, message: '请选择省市县', trigger: 'change' }
  81. ],
  82. contact:[{ required: true, message: '请输入联系人', trigger: 'blur' }],
  83. phonenumber:[{ required: true, message: '请输入联系人手机号', trigger: 'blur' }, { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }],
  84. sa_saleareaname:[{ required: true, message: '请输入营销区域', trigger: 'blur' }],
  85. signdate:[{required: true, message: '请选择时间', trigger: 'change' }],
  86. agenttype:[{ required: true, message: '请选择经销商类别', trigger: 'change' }],
  87. grade:[{ required: true, message: '请选择经销商等级', trigger: 'change' }],
  88. },
  89. arealist:[],
  90. agent_type:[],
  91. agent_level:[],
  92. tablecols:[]
  93. }
  94. },
  95. methods:{
  96. async query_agentMain () {
  97. const res = await this.$api.requested({
  98. "classname": "webmanage.sale.agents.agents",
  99. "method": "query_agentMain",
  100. "content": {
  101. "sa_agentsid": this.$route.query.id
  102. }
  103. })
  104. let arr = ['province','city','county']
  105. res.data.value = []
  106. arr.forEach(e=>{
  107. res.data[e] !== '' ?res.data.value.push(res.data[e]):''
  108. })
  109. this.form = Object.assign({},this.form,res.data)
  110. // this.$refs.agent.value.agentname = res.data.parentagentname
  111. },
  112. async query_arealist() {
  113. const res = await this.$api.requested({
  114. "classname": "system.tools",
  115. "method": "query_arealist",
  116. "content": {
  117. }
  118. })
  119. this.arealist = this.tool.createMenu(res.data)
  120. },
  121. cascaderChange (val) {
  122. if (val.length === 1)
  123. return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
  124. this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
  125. },
  126. async query_sysoptions () {
  127. const res = await this.$store.dispatch('optiontypeselect','agentgrade')
  128. this.agent_level = res.data
  129. const res1 = await this.$store.dispatch('optiontypeselect','agenttype')
  130. this.agent_type = res1.data
  131. },
  132. selectAgent (data) {
  133. this.form.parentid = data.sa_agentsid
  134. },
  135. onClick (data) {
  136. this.form.sa_saleareaid = data.sa_saleareaid
  137. this.form.areaname = data.label
  138. },
  139. onSubmit () {
  140. this.$refs['form'].validate(async (valid) => {
  141. if (!valid) return false
  142. const res = await this.$api.requested({
  143. "classname": "webmanage.sale.agents.agents",
  144. "method": "insertormodify_agent",
  145. "content": this.form
  146. })
  147. this.tool.showMessage(res)
  148. });
  149. }
  150. },
  151. created () {
  152. // 获取表结构
  153. this.tablecols = this.tool.tabelCol(this.$route.name)['agentGrouptable'].tablecols
  154. },
  155. mounted () {
  156. this.query_arealist()
  157. this.query_sysoptions()
  158. this.query_agentMain()
  159. }
  160. }
  161. </script>
  162. <style>
  163. </style>
  164. <style scoped>
  165. .width-240{
  166. width: 240px;
  167. }
  168. </style>