| | |
| | | </div> |
| | | |
| | | <el-tabs v-model="activeTab" class="store-tabs"> |
| | | <el-tab-pane label="门店信息" name="shopInfo"> |
| | | <div class="shop-info-content" v-if="storeInfo"> |
| | | <!-- 第一部分:三个字段一行 --> |
| | | <div class="info-grid" style="margin-bottom: 0;"> |
| | | <div class="info-item"> |
| | | <span class="label">所在省市区:</span> |
| | | <span class="value">{{ storeInfo.provinceName || '' }} {{ storeInfo.cityName || '' }} {{ storeInfo.areaName || '' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="label">门店地址:</span> |
| | | <span class="value">{{ storeInfo.address || '' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="label">入驻押金:</span> |
| | | <span class="value amount">¥{{ storeInfo.depositAmount ? (storeInfo.depositAmount / 100).toFixed(2) : '0.00' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="label">营业时间:</span> |
| | | <span class="value" v-if="storeInfo.businessType === 1">全天营业</span> |
| | | <span class="value" v-if="storeInfo.businessType === 0">限时营业</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="label">配送范围:</span> |
| | | <span class="value" v-if="storeInfo.deliveryArea">{{ storeInfo.deliveryArea }}公里</span> |
| | | <span class="value" v-else>暂无</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="label">位置标签:</span> |
| | | <span class="value">{{ storeInfo.locationTagNames || '' }}</span> |
| | | </div> |
| | | <div class="info-item"> |
| | | <span class="label">门店状态:</span> |
| | | <span class="value" :class="getStatusClass(storeInfo.status)"> |
| | | {{ storeInfo.status === 0 ? '启用' : '禁用' }} |
| | | </span> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 第二部分:一个字段一行 --> |
| | | <div class="info-full"> |
| | | <div class="info-item-full"> |
| | | <span class="label">门店介绍:</span> |
| | | <span class="value">{{ storeInfo.content || '' }}</span> |
| | | </div> |
| | | <div class="info-item-full"> |
| | | <span class="label">营业时间:</span> |
| | | <span class="value">{{ storeInfo.shopHours || '' }}</span> |
| | | </div> |
| | | <div class="info-item-full"> |
| | | <span class="label">寄存类型:</span> |
| | | <span class="value">{{ storeInfo.depositTypes || '' }}</span> |
| | | </div> |
| | | <div class="info-item-full"> |
| | | <span class="label">收费标准:</span> |
| | | <span class="value">{{ storeInfo.feeStandard || '' }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="门店业绩" name="performance"> |
| | | <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="订单编号" prop="code"> |
| | |
| | | |
| | | <el-tab-pane label="门店资质" name="qualification"> |
| | | <div class="qualification-content" v-if="storeInfo"> |
| | | <div class="qualification-section"> |
| | | <!-- <div class="qualification-section"> |
| | | <h4 class="section-title">基本信息</h4> |
| | | <div class="info-grid"> |
| | | <div class="info-row"> |
| | |
| | | <span class="value">{{ storeInfo.deliveryRange || '暂无' }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <div class="qualification-section"> |
| | | <h4 class="section-title">主体资质</h4> |
| | |
| | | components: { GlobalWindow, Pagination,OperaOrderDetail }, |
| | | data () { |
| | | return { |
| | | title: '', |
| | | activeTab: 'performance', |
| | | title: '门店详情', |
| | | activeTab: 'shopInfo', |
| | | storeInfo: {}, |
| | | visible: false, |
| | | searchForm: { |
| | |
| | | }, |
| | | open (title, row) { |
| | | this.searchForm.memberId = row.id |
| | | detail(row.id) |
| | | .then(res => { |
| | | this.storeInfo = res |
| | | this.activeTab = 'performance' |
| | | this.getStoreInfo(row.id).then(() => { |
| | | this.activeTab = 'shopInfo' |
| | | this.title = title |
| | | this.visible = true |
| | | this.searchForm.shopId = row.id |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | }, |
| | | // 获取门店详情 |
| | | async getStoreInfo(id) { |
| | | try { |
| | | const res = await detail(id) |
| | | this.storeInfo = res |
| | | } catch (e) { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | } |
| | | }, |
| | | // 获取门店状态样式 |
| | | getStatusClass(status) { |
| | | return status === 0 ? 'status-enabled' : 'status-disabled' |
| | | } |
| | | } |
| | | } |
| | |
| | | margin-right: 20px; |
| | | } |
| | | .store-avatar { |
| | | width: 80px; |
| | | height: 80px; |
| | | width: 100px; |
| | | height: 100px; |
| | | border-radius: 50%; |
| | | } |
| | | |
| | | .info-grid { |
| | | display: grid; |
| | | grid-template-columns: repeat(3, 1fr); |
| | | gap: 20px; |
| | | margin-bottom: 30px; |
| | | padding: 20px; |
| | | /* background: #f5f7fa; */ |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .info-full { |
| | | padding: 20px; |
| | | /* background: #f5f7fa; */ |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .info-item { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .info-item-full { |
| | | font-size: 14px; |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .info-item-full:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .label { |
| | | color: #909399; |
| | | min-width: 100px; |
| | | display: inline-block; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .value { |
| | | color: #606266; |
| | | } |
| | | |
| | | .value.amount { |
| | | color: #f56c6c; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .status-enabled { |
| | | color: #67c23a; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .status-disabled { |
| | | color: #f56c6c; |
| | | font-weight: bold; |
| | | } |
| | | .store-header-right { |
| | | flex: 1; |
| | | } |