Detail.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  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.ticketSaleCnt}}
  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':''"></span>¥{{detail.operData && detail.operData.commAmt/100}}
  122. </el-form-item>
  123. </flexbox>
  124. <flexbox
  125. class="ygp-form-items"
  126. align="flex-start"
  127. justify="flex-start">
  128. <el-form-item label="账户余额" style="width: 50%;margin-bottom:5px;" >
  129. <span :class="loading?'el-icon-loading':''"></span>¥{{detail.money / 100}}
  130. </el-form-item>
  131. </flexbox>
  132. </el-form>
  133. <div slot="footer" class="dialog-footer">
  134. <el-button @click="close">关 闭</el-button>
  135. </div>
  136. </el-dialog>
  137. </template>
  138. <script>
  139. import { mapGetters } from 'vuex'
  140. import { publicFileGetUrl } from "@/api/common"
  141. import { getSaleSiteDetail} from "@/api/admin/salesite";
  142. export default {
  143. props: {
  144. dialogVisible: {
  145. type: Boolean,
  146. default: false
  147. },
  148. editId: [Number, String] // 编辑用
  149. },
  150. data() {
  151. return {
  152. IMG_URL: publicFileGetUrl,
  153. loading: false,
  154. // 详情数据
  155. detail: {}
  156. }
  157. },
  158. computed: {
  159. ...mapGetters(['userInfo']),
  160. title() {
  161. return '门店详情'
  162. }
  163. },
  164. created() {
  165. // 是编辑
  166. if (this.editId) {
  167. this.getDetail()
  168. }
  169. },
  170. mounted() {
  171. document.body.appendChild(this.$el)
  172. },
  173. destroyed() {
  174. // if appendToBody is true, remove DOM node after destroy
  175. if (this.appendToBody && this.$el && this.$el.parentNode) {
  176. this.$el.parentNode.removeChild(this.$el)
  177. }
  178. },
  179. methods: {
  180. /**
  181. * 获取项目详情
  182. */
  183. getDetail() {
  184. this.loading = true
  185. getSaleSiteDetail(this.editId).then(res => {
  186. this.loading = false
  187. const data = res.data || {}
  188. // console.log("getDetail :" + JSON.stringify(data))
  189. this.detail = data
  190. })
  191. .catch(() => {
  192. this.loading = false
  193. })
  194. },
  195. /**
  196. * 关闭窗口
  197. */
  198. close() {
  199. this.$emit('close')
  200. }
  201. }
  202. }
  203. </script>
  204. <style scoped lang="scss">
  205. .tag{
  206. margin-right: 15px;
  207. width: 90px;
  208. text-align: center;
  209. cursor: pointer;
  210. }
  211. .tag-select{
  212. background-color: #409eff!important;
  213. border-color: #409eff!important;
  214. color: #fff!important;
  215. }
  216. .cover-content-item{
  217. width: 220px;
  218. float: left;
  219. position: relative;
  220. .cover-img {
  221. width: 200px;
  222. height: 100px;
  223. }
  224. .cover-mark {
  225. position: absolute;
  226. top: 0px;
  227. right: 28px;
  228. z-index: 1;
  229. color: red;
  230. cursor: pointer;
  231. visibility: hidden;
  232. }
  233. .select {
  234. visibility: visible!important;
  235. }
  236. }
  237. .dialog-footer{
  238. text-align: center;
  239. }
  240. </style>
  241. <style lang="scss">
  242. .el-dialog__body {
  243. padding: 15px 20px;
  244. }
  245. .ygp-form-items {
  246. .el-form-item{
  247. padding: 0 5px;
  248. }
  249. .el-form-item__label {
  250. line-height: 1.2;
  251. padding-bottom: 0px;
  252. word-break: break-all;
  253. word-wrap: break-word;
  254. color: #333;
  255. }
  256. .el-form-item__error {
  257. position: relative;
  258. top: auto;
  259. left: auto;
  260. }
  261. .el-form-item.is-desc_text {
  262. .el-form-item__label {
  263. display: none;
  264. }
  265. }
  266. }
  267. </style>