| | |
| | | </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"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="goodsInfo" label="物品信息" min-width="180px" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="isUrgent" label="类型" min-width="80px"> |
| | | <template slot-scope="{row}"><span>{{ row.type === 1?'同城寄送':'就地存取' }}</span></template> |
| | | </el-table-column> |
| | | <el-table-column prop="isUrgent" label="订单级别" min-width="80px"> |
| | | <template slot-scope="{row}"><span v-if="row.type ===1">{{ row.isUrgent === 1?'极速达':'标速达' }}</span></template> |
| | | </el-table-column> |
| | | <el-table-column label="物品保费(元)" min-width="120px"> |
| | | <!-- <el-table-column label="物品保费(元)" min-width="120px"> |
| | | <template slot-scope="{row}">¥{{ (row.declaredFee / 100).toFixed(2) }}</template> |
| | | </el-table-column> |
| | | <el-table-column label="物品保费(元)" min-width="120px"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="基础服务费(元)" min-width="120px"> |
| | | <template slot-scope="{row}">¥{{ (row.price / 100).toFixed(2) }}</template> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column label="结算金额(元)" min-width="120px"> |
| | | <template slot-scope="{row}"> |
| | | ¥{{ storeInfo.id == row.depositShopId ? (row.depositShopFee / 100).toFixed(2) : storeInfo.id == row.takeShopId ? (row.takeShopFee / 100).toFixed(2) : '' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="订单总价(元)" min-width="120px"> |
| | | <template slot-scope="{row}">¥{{ (row.totalAmount / 100).toFixed(2) }}</template> |
| | |
| | | <el-table-column label="实付现金(元)" min-width="120px"> |
| | | <template slot-scope="{row}">¥{{ (row.payAmount / 100).toFixed(2) }}</template> |
| | | </el-table-column> |
| | | <el-table-column label="加急费(元)" min-width="120px"> |
| | | <template slot-scope="{row}"><span v-if="row.type ===1 ">¥{{ (row.urgentAmount / 100).toFixed(2) }}</span></template> |
| | | </el-table-column> |
| | | <el-table-column label="退款金额(元)" min-width="120px"> |
| | | <template slot-scope="{row}">¥{{ (row.refundAmount / 100).toFixed(2) }}</template> |
| | | </el-table-column> |
| | | <el-table-column label="超时金额(元)" min-width="100px"> |
| | | <template slot-scope="{row}">¥{{ (row.overdueAmount / 100).toFixed(2) }}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间" min-width="150px"> </el-table-column> |
| | | <!-- <el-table-column label="加急费(元)" min-width="120px"> |
| | | <template slot-scope="{row}"><span v-if="row.type ===1 ">¥{{ (row.urgentAmount / 100).toFixed(2) }}</span></template> |
| | | </el-table-column> |
| | | <el-table-column label="超时金额" min-width="100px"> |
| | | <template slot-scope="{row}">¥{{ (row.overdueAmount / 100).toFixed(2) }}</template> |
| | | </el-table-column> |
| | | <el-table-column label="异常金额" min-width="100px"> |
| | | <template slot-scope="{row}">¥{{ (row.exceptionAmount / 100).toFixed(2) }}</template> |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column prop="statusDesc" label="订单状态" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span :style="{ color: row.status <7 ? '#e6a23c' : (row.status ===7 ? '#67c23a' : 'grey' )}"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="payTime" label="支付时间" min-width="150px"> </el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间" min-width="150px"> </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | |
| | | <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"> |
| | |
| | | </div> |
| | | <div class="info-row"> |
| | | <span class="label">审批状态:</span> |
| | | <span class="value">{{ storeInfo.auditStatus === 0 ? '待审批' : storeInfo.auditStatus === 1 ? '审批通过' : '审批未通过' }}</span> |
| | | <span class="value">{{ storeInfo.auditStatus === 0 ? '待审批' : storeInfo.auditStatus === 1 ? '审批通过' : storeInfo.auditStatus === 2 ? '审批未通过' : '已支付押金' }}</span> |
| | | </div> |
| | | <div class="info-row"> |
| | | <span class="label">配送范围:</span> |
| | | <span class="value">{{ storeInfo.deliveryRange || '暂无' }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | |
| | | <div class="qualification-section"> |
| | | <h4 class="section-title">主体资质</h4> |
| | |
| | | </template> |
| | | </div> |
| | | |
| | | <div class="qualification-section" v-if="storeInfo.companyType === 1"> |
| | | <div class="qualification-section"> |
| | | <h4 class="section-title">门店照片及其他材料</h4> |
| | | <div class="image-item-row"> |
| | | <span class="label">门店门头照:</span> |
| | |
| | | components: { GlobalWindow, Pagination,OperaOrderDetail }, |
| | | data () { |
| | | return { |
| | | activeTab: 'performance', |
| | | title: '门店详情', |
| | | activeTab: 'shopInfo', |
| | | storeInfo: {}, |
| | | visible:false, |
| | | visible: false, |
| | | searchForm: { |
| | | code: '', |
| | | orderNo: '', |
| | | goodsInfo: '', |
| | | createTime1: '', |
| | | createStartTime: '', |
| | | createEndTime: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | orderStatus: '', |
| | |
| | | this.searchForm.createEndTime = val ? val[1] : '' |
| | | this.search() |
| | | }, |
| | | reset () { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.createStartTime = '' |
| | | this.searchForm.createEndTime = '' |
| | | this.search() |
| | | }, |
| | | open (title, row) { |
| | | this.searchForm.memberId = row.id |
| | | detail(row.id) |
| | | .then(res => { |
| | | this.storeInfo = res |
| | | this.activeTab = 'performance' |
| | | this.title = title |
| | | this.visible = true |
| | | this.searchForm.shopId = row.id |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | this.searchForm.memberId = row.id |
| | | this.getStoreInfo(row.id).then(() => { |
| | | this.activeTab = 'shopInfo' |
| | | this.title = title |
| | | this.visible = true |
| | | this.searchForm.shopId = row.id |
| | | this.search() |
| | | }) |
| | | }, |
| | | // 获取门店详情 |
| | | 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; |
| | | border-radius: 50%; |
| | | } |
| | | 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; |
| | | } |