MrShi
2026-05-18 b099e758396f61b39d24cf5fa6be7bb0d10c2b4d
admin/src/components/business/OperaShopInfoWindow.vue
@@ -38,6 +38,66 @@
    </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">
@@ -156,7 +216,7 @@
      <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">
@@ -180,7 +240,7 @@
                <span class="value">{{ storeInfo.deliveryRange || '暂无' }}</span>
              </div>
            </div>
          </div>
          </div> -->
          <div class="qualification-section">
            <h4 class="section-title">主体资质</h4>
@@ -299,8 +359,8 @@
  components: { GlobalWindow, Pagination,OperaOrderDetail },
  data () {
    return {
      title: '',
      activeTab: 'performance',
      title: '门店详情',
      activeTab: 'shopInfo',
      storeInfo: {},
      visible: false,
      searchForm: {
@@ -330,18 +390,26 @@
    },
    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'
    }
  }
}
@@ -359,10 +427,65 @@
  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;
}