Detail.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="dialogVisible"
  5. width="750px"
  6. :append-to-body="true"
  7. :before-close="close"
  8. :destroy-on-close="true"
  9. :close-on-click-modal="false">
  10. <el-form ref="form" label-width="120px" label-position="top" >
  11. <flexbox
  12. class="ygp-form-items"
  13. align="flex-start"
  14. justify="flex-start">
  15. <el-form-item label="经销商名称" style="width: 50%; margin-bottom:5px;" >
  16. <span :class="loading?'el-icon-loading':''"></span>
  17. {{detail.name}}
  18. </el-form-item>
  19. <el-form-item label="手机号码" style="width: 50%; margin-bottom:5px;" >
  20. <span :class="loading?'el-icon-loading':''"></span>
  21. {{detail.mobile}}
  22. </el-form-item>
  23. </flexbox>
  24. <flexbox
  25. class="ygp-form-items"
  26. align="flex-start"
  27. justify="flex-start">
  28. <el-form-item label="上级渠道" style="width: 50%;margin-bottom:5px;" >
  29. <span :class="loading?'el-icon-loading':''"></span>
  30. {{detail.parentsName}}
  31. </el-form-item>
  32. <el-form-item label="联系人" style="width: 50%;margin-bottom:5px;" >
  33. <span :class="loading?'el-icon-loading':''"></span>
  34. {{detail.contact}}
  35. </el-form-item>
  36. </flexbox>
  37. <flexbox
  38. class="ygp-form-items"
  39. align="flex-start"
  40. justify="flex-start">
  41. <el-form-item label="佣金比例" style="width: 50%;margin-bottom:5px;" >
  42. <span :class="loading?'el-icon-loading':''"></span>
  43. {{detail.commRate}}%
  44. </el-form-item>
  45. <el-form-item label="门店类型" style="width: 50%;margin-bottom:5px;" >
  46. <span :class="loading?'el-icon-loading':''"></span>
  47. <span v-if="detail.siteType">{{detail.siteType && JSON.parse(detail.siteType).desc}}</span>
  48. <span v-else>--</span>
  49. </el-form-item>
  50. </flexbox>
  51. <flexbox
  52. class="ygp-form-items"
  53. align="flex-start"
  54. justify="flex-start">
  55. <el-form-item label="门店名称" style="width: 50%;margin-bottom:5px;" >
  56. <span :class="loading?'el-icon-loading':''"></span>
  57. <span v-if="detail.siteName">{{detail.siteName}}</span>
  58. <span v-else>--</span>
  59. </el-form-item>
  60. </flexbox>
  61. <flexbox
  62. class="ygp-form-items"
  63. align="flex-start"
  64. justify="flex-start">
  65. <el-form-item label="所在地区" style="width: 50%;margin-bottom:5px;" >
  66. <span :class="loading?'el-icon-loading':''"></span>
  67. {{detail.province}} {{detail.city}} {{detail.area}}
  68. </el-form-item>
  69. <el-form-item label="详细地址" style="width: 50%;margin-bottom:5px;" >
  70. <span :class="loading?'el-icon-loading':''"> </span>
  71. <span v-if="detail.address">{{ detail.address }}</span>
  72. <span v-else>--</span>
  73. </el-form-item>
  74. </flexbox>
  75. <flexbox
  76. class="ygp-form-items"
  77. align="flex-start"
  78. justify="flex-start">
  79. <el-form-item label="认证状态" style="width: 100%;margin-bottom:5px;" >
  80. <span :class="loading?'el-icon-loading':''"></span>
  81. {{detail.certifyStatus && JSON.parse(detail.certifyStatus).desc}}
  82. </el-form-item>
  83. </flexbox>
  84. <flexbox
  85. class="ygp-form-items"
  86. align="flex-start"
  87. justify="flex-start">
  88. <el-form-item label="营业执照" style="width: 50%;margin-bottom:5px;" >
  89. <span :class="loading?'el-icon-loading':''"></span>
  90. <a target="_black" v-if="detail.bizLicensePic" :href="`${IMG_URL + detail.bizLicensePic}`"><img :src="`${IMG_URL + detail.bizLicensePic}`" style="max-height: 37px;max-width: 54px"></a>
  91. <span v-else>无</span>
  92. </el-form-item>
  93. <el-form-item label="门头照片" style="width: 50%;margin-bottom:5px;" >
  94. <span :class="loading?'el-icon-loading':''"> </span>
  95. <a target="_black" v-if="detail.doorPic" :href="`${IMG_URL + detail.doorPic}`"><img :src="`${IMG_URL + detail.doorPic}`" style="max-height: 37px;max-width: 54px"></a>
  96. <span v-else>无</span>
  97. </el-form-item>
  98. </flexbox>
  99. <el-divider></el-divider>
  100. <flexbox
  101. class="ygp-form-items"
  102. align="flex-start"
  103. justify="flex-start">
  104. <el-form-item label="用户数" style="width: 50%;margin-bottom:5px;" >
  105. <span :class="loading?'el-icon-loading':''"></span>
  106. {{detail.userCnt}}
  107. </el-form-item>
  108. <el-form-item label="订单数" style="width: 50%;margin-bottom:5px;" >
  109. <span :class="loading?'el-icon-loading':''"> </span>
  110. {{detail.operData && detail.operData.orderCnt}}
  111. </el-form-item>
  112. </flexbox>
  113. <flexbox
  114. class="ygp-form-items"
  115. align="flex-start"
  116. justify="flex-start">
  117. <el-form-item label="营业额" style="width: 50%;margin-bottom:5px;" >
  118. <span :class="loading?'el-icon-loading':''"></span>{{detail.operData &&detail.operData.saleAmt/100}}
  119. </el-form-item>
  120. <el-form-item label="佣金" style="width: 50%;margin-bottom:5px;" >
  121. <span :class="loading?'el-icon-loading':''">{{detail.operData && detail.operData.commAmt/100}} </span>
  122. </el-form-item>
  123. </flexbox>
  124. </el-form>
  125. <div slot="footer" class="dialog-footer">
  126. <el-button @click="close">关 闭</el-button>
  127. </div>
  128. </el-dialog>
  129. </template>
  130. <script>
  131. import { mapGetters } from 'vuex'
  132. import { publicFileGetUrl } from "@/api/common"
  133. import { getSaleSiteDetail} from "@/api/admin/salesite";
  134. export default {
  135. props: {
  136. dialogVisible: {
  137. type: Boolean,
  138. default: false
  139. },
  140. editId: [Number, String] // 编辑用
  141. },
  142. data() {
  143. return {
  144. IMG_URL: publicFileGetUrl,
  145. loading: false,
  146. // 详情数据
  147. detail: {}
  148. }
  149. },
  150. computed: {
  151. ...mapGetters(['userInfo']),
  152. title() {
  153. return '经销商详情'
  154. }
  155. },
  156. created() {
  157. // 是编辑
  158. if (this.editId) {
  159. this.getDetail()
  160. }
  161. },
  162. mounted() {
  163. document.body.appendChild(this.$el)
  164. },
  165. destroyed() {
  166. // if appendToBody is true, remove DOM node after destroy
  167. if (this.appendToBody && this.$el && this.$el.parentNode) {
  168. this.$el.parentNode.removeChild(this.$el)
  169. }
  170. },
  171. methods: {
  172. /**
  173. * 获取项目详情
  174. */
  175. getDetail() {
  176. this.loading = true
  177. getSaleSiteDetail(this.editId).then(res => {
  178. this.loading = false
  179. const data = res.data || {}
  180. // console.log("getDetail :" + JSON.stringify(data))
  181. this.detail = data
  182. })
  183. .catch(() => {
  184. this.loading = false
  185. })
  186. },
  187. /**
  188. * 关闭窗口
  189. */
  190. close() {
  191. this.$emit('close')
  192. }
  193. }
  194. }
  195. </script>
  196. <style scoped lang="scss">
  197. .tag{
  198. margin-right: 15px;
  199. width: 90px;
  200. text-align: center;
  201. cursor: pointer;
  202. }
  203. .tag-select{
  204. background-color: #409eff!important;
  205. border-color: #409eff!important;
  206. color: #fff!important;
  207. }
  208. .cover-content-item{
  209. width: 220px;
  210. float: left;
  211. position: relative;
  212. .cover-img {
  213. width: 200px;
  214. height: 100px;
  215. }
  216. .cover-mark {
  217. position: absolute;
  218. top: 0px;
  219. right: 28px;
  220. z-index: 1;
  221. color: red;
  222. cursor: pointer;
  223. visibility: hidden;
  224. }
  225. .select {
  226. visibility: visible!important;
  227. }
  228. }
  229. .dialog-footer{
  230. text-align: center;
  231. }
  232. </style>
  233. <style lang="scss">
  234. .el-dialog__body {
  235. padding: 15px 20px;
  236. }
  237. .ygp-form-items {
  238. .el-form-item{
  239. padding: 0 5px;
  240. }
  241. .el-form-item__label {
  242. line-height: 1.2;
  243. padding-bottom: 0px;
  244. word-break: break-all;
  245. word-wrap: break-word;
  246. color: #333;
  247. }
  248. .el-form-item__error {
  249. position: relative;
  250. top: auto;
  251. left: auto;
  252. }
  253. .el-form-item.is-desc_text {
  254. .el-form-item__label {
  255. display: none;
  256. }
  257. }
  258. }
  259. </style>