Procházet zdrojové kódy

删除代理商文件

chengjunhui před 1 měsícem
rodič
revize
0cbf711d27

+ 0 - 186
pages/agencyCenter/accountCode/apply.vue

@@ -1,186 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="agent-level u-flex-center">
-      <view class="lable">代理级别:</view>
-      <view class="value" v-if="agentInfo.agentLevel == 1">平台</view>
-      <view class="value" v-if="agentInfo.agentLevel == 2"
-        >{{ agentInfo.parentAgentName }}({{ agentInfo.parentAgentPhone }})</view
-      >
-    </view>
-    <view class="main-list-item u-flex-center-sb">
-      <view class="lable">申请数量</view>
-      <view class="value">
-        <uv-input
-          placeholder="请输入申请数量"
-          v-model="formData.applyQuantity"
-          type="number"
-          border="none"
-        />
-      </view>
-    </view>
-    <view class="main-list-item u-flex-center-sb">
-      <view class="lable">申请原因</view>
-      <view class="value">
-        <uv-input
-          placeholder="请输入申请原因"
-          v-model="formData.applyReason"
-          border="none"
-        />
-        <!-- <uv-textarea
-          v-model="formData.applyReason"
-          placeholder="请输入申请原因"
-        ></uv-textarea> -->
-      </view>
-    </view>
-    <view class="attention">
-      注意: 省级代理需要通过平台审核,区县代理由省级代理审发放。
-    </view>
-
-    <view class="footer-btn">
-      <view class="text" @click="goApplyRecord">申请记录</view>
-      <view class="u-btn-two" @click="submitApply">提交申请</view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref, reactive } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { agentAccountCodeApplyAdd_Api, agentConfig_Api } from "@/api/agencyCenter";
-const agentInfo = uni.getStorageSync("agentInfo") || {};
-const config = ref({});  // 代理配置
-const formData = reactive({});
-
-const isNumeric = (str) => {
-  return /^\d+$/.test(str);
-};
-
-const goApplyRecord = () => {
-  uni.navigateTo({
-    url: "/pages/agencyCenter/accountCode/applyRecord",
-  });
-};
-
-const submitApply = () => {
-  console.log("提交申请", formData);
-  if (!formData.applyQuantity || formData.applyQuantity == 0) {
-    return uni.$uv.toast("请输入申请数量");
-  }
-
-  if (!isNumeric(formData.applyQuantity)) {
-    return uni.$uv.toast("申请数量必须是数字");
-  }
-
-  if (agentInfo.agentLevel == 1 && (formData.applyQuantity || 0) < (config.value.provinceMinAccountNum || 0)) {
-    return uni.$uv.toast(`申请数量不能小于${config.value.provinceMinAccountNum}`);
-  }
-  if (agentInfo.agentLevel == 2 && (formData.applyQuantity || 0) < (config.value.regionMinAccountNum || 0)) {
-    return uni.$uv.toast(`申请数量不能小于${config.value.regionMinAccountNum}`);
-  }
-  if (!formData.applyReason) {
-    return uni.$uv.toast("请输入申请原因");
-  }
-  let form = { ...formData };
-  uni.showLoading({
-    title: "加载中",
-    mask: true,
-  });
-  agentAccountCodeApplyAdd_Api(form)
-    .then((res) => {
-      console.log(res);
-      uni.hideLoading();
-      if (res.code == 200) {
-        uni.$uv.toast("提交成功");
-        setTimeout(() => {
-          // uni.navigateBack();
-          uni.redirectTo({
-            url: "/pages/agencyCenter/accountCode/applyRecord",
-          });
-        }, 500);
-      }
-    })
-    .catch((err) => {
-      console.log(err);
-      // uni.hideLoading();
-    });
-};
-
-onLoad(() => {
-  agentConfig_Api().then((res) => {
-    if (res.code == 200) {
-      console.log(res.data);
-      config.value = res.data || {};
-    }
-  });
-});
-
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  // padding: 30rpx;
-  min-height: 100vh;
-  box-sizing: border-box;
-  position: relative;
-  .agent-level {
-    border-top: 12rpx solid #f7f7f7;
-    border-bottom: 12rpx solid #f7f7f7;
-    padding: 30rpx;
-    font-weight: 700;
-    font-size: 30rpx;
-  }
-
-  .main-list-item.no-border {
-    border: none;
-  }
-  .main-list-item {
-    padding: 30rpx 0 20rpx 0;
-    font-size: 30rpx;
-    border-bottom: 1rpx solid #eaeaea;
-    margin: 0 30rpx;
-    .lable {
-      min-width: 140rpx;
-      flex-shrink: 0;
-      margin-right: 20rpx;
-    }
-    .value {
-      flex: 1;
-      text-align: right;
-      &:deep(input) {
-        text-align: right !important;
-      }
-      .placeholder {
-        color: #c0c4cc;
-        font-size: 28rpx;
-      }
-    }
-  }
-  .attention {
-    font-size: 24rpx;
-    color: #ff0000;
-    padding: 20rpx 0;
-    margin: 30rpx;
-  }
-  .footer-btn {
-    text-align: center;
-    padding: 30rpx 54rpx;
-    margin-top: 50rpx;
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    .text {
-      display: inline-block;
-      font-size: 32rpx;
-      color: #0090ff;
-      margin-bottom: 20rpx;
-      border-bottom: 1rpx solid #0090ff;
-      padding-bottom: 5rpx;
-    }
-    .u-btn-two {
-      height: 90rpx;
-      line-height: 90rpx;
-    }
-  }
-}
-</style>

+ 0 - 153
pages/agencyCenter/accountCode/applyRecord.vue

@@ -1,153 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="main-list">
-      <view
-        class="main-list-item"
-        v-for="(item, index) in dataList"
-        :key="index"
-      >
-        <view class="item-top u-flex-center-sb">
-          <text class="text-time">{{ item.createTime }}</text>
-          <text class="text-status" v-if="item.auditStatus === 1">确认中</text>
-          <text class="text-status" v-if="item.auditStatus === 5">拒绝</text>
-          <text class="text-status" v-if="item.auditStatus === 10">已下发</text>
-        </view>
-        <view class="item-content u-flex-center-sb">
-          <text class="text-title">申请数量:</text>
-          <text class="text-value">{{ item.applyQuantity }}</text>
-        </view>
-        <view class="item-content u-flex-center-sb">
-          <text class="text-title">申请原因:</text>
-          <text class="text-value">{{ item.applyReason }}</text>
-        </view>
-        <view class="item-content u-flex-center-sb">
-          <text class="text-title">上级代理:</text>
-          <text class="text-value" v-if="agentInfo.agentLevel == 1">平台</text>
-          <text class="text-value" v-if="agentInfo.agentLevel == 2"
-            >省代/{{ item.parentRealName }}({{ item.parentPhone }})</text
-          >
-        </view>
-        <view class="item-content u-flex-center-sb" v-if="item.auditStatus === 5">
-          <text class="text-title">驳回原因:</text>
-          <text class="text-value">{{ item.applyReason }}</text>
-        </view>
-        
-        <view
-          class="item-content u-flex-center-sb"
-          v-if="item.auditStatus === 10"
-        >
-          <text class="text-title">实际到账数量:</text>
-          <text class="text-value">{{ item.issuedQuantity || 0 }}</text>
-        </view>
-        <view
-          class="item-content u-flex-center-sb"
-          v-if="item.auditStatus === 10"
-        >
-          <text class="text-title">到账时间:</text>
-          <text class="text-value">{{ item.auditTime }}</text>
-        </view>
-      </view>
-    </view>
-
-    <noData v-if="dataList == 0" :config="{ top: 5, content: '暂无数据~' }" />
-    <loadMore v-if="dataList.length > 0" :status="status" />
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import { agentAccountCodeApplyPage_Api } from "@/api/agencyCenter";
-const agentInfo = uni.getStorageSync("agentInfo") || {};
-const status = ref("loading");
-const params = ref({
-  pageNum: 1,
-  pageSize: 10,
-  status: 0,
-});
-const dataList = ref([]);
-const getList = () => {
-  uni.showLoading({ title: "加载中", mask: true });
-  agentAccountCodeApplyPage_Api(params.value)
-    .then((res) => {
-      uni.hideLoading();
-      uni.stopPullDownRefresh();
-      if (res && res.code == 200) {
-        dataList.value = dataList.value.concat(res.rows);
-        if (res.total <= dataList.value.length) {
-          status.value = "noMore";
-        } else {
-          status.value = "more";
-        }
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-      uni.stopPullDownRefresh();
-    });
-};
-
-// 重新加载
-const reload = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-onLoad((options) => {
-  getList();
-});
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reload();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  background: #f7f7f7;
-  box-sizing: border-box;
-  min-height: 100vh;
-  padding-bottom: 30rpx;
-  .main-list {
-    padding-top: 30rpx;
-    .main-list-item {
-      margin-bottom: 30rpx;
-      border-radius: 24rpx;
-      padding: 6rpx 0 26rpx 0;
-      background: #ffffff;
-      .item-top {
-        padding: 20rpx 30rpx;
-        border-bottom: 1rpx solid #f0f0f0;
-        margin-bottom: 10rpx;
-        .text-time {
-          font-size: 32rpx;
-          color: #1a1a1a;
-          font-weight: 700;
-        }
-        .text-status {
-          font-size: 26rpx;
-          color: #1a1a1a;
-        }
-      }
-      .item-content {
-        padding: 20rpx 30rpx 0 30rpx;
-        font-size: 28rpx;
-        .text-title {
-          flex-shrink: 0;
-          margin-right: 15rpx;
-        }
-        .text-value {
-          color: #808080;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 320
pages/agencyCenter/accountCode/list.vue

@@ -1,320 +0,0 @@
-<template>
-  <view class="app-container">
-    <uv-sticky bgColor="#f7f7f7">
-      <view class="tab-bar u-flex-center-sb">
-        <view
-          class="tab-item"
-          v-for="(item, index) in tabList"
-          :key="index"
-          @click="tabChange(item.id)"
-        >
-          <view class="tab-text" :class="{ active: tabId === item.id }"
-            >{{ item.name }}({{ item.number }})</view
-          >
-          <image
-            v-show="tabId == item.id"
-            class="tab-line-img"
-            :src="$handleImageUrl('/personalCenter/agent/tabs_line.png')"
-            alt=""
-          />
-        </view>
-      </view>
-    </uv-sticky>
-
-    <view class="main-list">
-      <view
-        class="main-list-item"
-        v-for="(item, index) in dataList"
-        :key="index"
-      >
-        <view class="item-top u-flex-center-sb">
-          <view class="item-top-code u-flex-center">
-            <text class="code">{{ item.accountCode }}</text>
-            <view
-              class="u-flex-center"
-              v-if="item.status == 0"
-              @click.stop="handleUse(item)"
-            >
-              <text class="iconfont">&#xe6a6;</text>
-              <text class="text">使用</text>
-            </view>
-            <view class="u-flex-center" v-if="item.status == 1" @click.stop="handleCopy(item)">
-              <text class="iconfont">&#xe64f;</text>
-              <text class="text">复制</text>
-            </view>
-          </view>
-          <view class="item-top-right" v-if="agentInfo.agentLevel == 1 && item.status != 3"
-            >平台发放</view
-          >
-          <view class="item-top-right" v-if="agentInfo.agentLevel == 2 && item.status != 3"
-            >省代发放</view
-          >
-        </view>
-
-        <view class="item-bottom u-flex-center-sb">
-          <text>发放时间:</text>
-          <text class="time">{{ item.createTime }}</text>
-        </view>
-
-        <template v-if="item.status == 2 || item.status == 3">
-          <view class="item-bottom u-flex-center-sb">
-            <text>使用时间:</text>
-            <text class="time">{{ item.purposeTime }}</text>
-          </view>
-          <view class="item-bottom u-flex-center-sb" v-if="item.status == 2">
-            <text>店铺名称:</text>
-            <text class="time">{{ item.purposeName }}</text>
-          </view>
-          <view class="item-bottom u-flex-center-sb" v-if="item.status == 3">
-            <text>区域代理:</text>
-            <text class="time"
-              >{{ item.purposeName }}({{ item.purposePhone }})</text
-            >
-          </view>
-        </template>
-      </view>
-
-      <noData v-if="dataList == 0" :config="{ top: 5, content: '暂无数据~' }" />
-      <loadMore v-if="dataList.length > 0" :status="status" />
-    </view>
-
-    <view class="footer u-flex-center-sb">
-      <button
-        v-if="tabId == 0 && agentInfo.agentLevel == 1"
-        class="u-btn-two"
-        style="margin-right: 40rpx"
-        @click="goTo('/pages/agencyCenter/accountCode/review')"
-      >
-        审核管理
-      </button>
-      <button
-        class="u-btn-two"
-        @click="goTo('/pages/agencyCenter/accountCode/apply')"
-      >
-        邀请码申请
-      </button>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import {
-  agentAccountCodePage_Api,
-  agentAccountCodeCountStatus_Api,
-  agentAccountCodeUse_Api,
-} from "@/api/agencyCenter";
-
-const agentInfo = uni.getStorageSync("agentInfo") || {};
-const status = ref("loading");
-const params = ref({
-  pageNum: 1,
-  pageSize: 10,
-  // status: 0,
-});
-
-const dataList = ref([]);
-const getList = () => {
-  agentAccountCodePage_Api({
-    ...params.value,
-    statusList: tabId.value == 0 ? "0,1" : tabId.value,
-  }).then((res) => {
-    if (res && res.code == 200) {
-      uni.stopPullDownRefresh();
-      dataList.value = dataList.value.concat(res.rows);
-      if (res.total <= dataList.value.length) {
-        status.value = "noMore";
-      } else {
-        status.value = "more";
-      }
-    }
-  });
-};
-// 查询状态数量
-const getCount = () => {
-  agentAccountCodeCountStatus_Api().then((res) => {
-    if (res && res.code == 200) {
-      tabList.value = tabList.value.map((item) => {
-        item.number = res.data[item.key];
-        return item;
-      });
-    }
-  });
-};
-
-const tabId = ref(0);
-const tabList = ref([
-  { name: "未使用", id: 0, number: 0, key: "unUsedCount" },
-  { name: "已使用", id: 2, number: 0, key: "usedCount" },
-  { name: "已下放", id: 3, number: 0, key: "issuedCount" },
-]);
-const tabChange = (id) => {
-  tabId.value = id;
-  reload();
-};
-
-// 使用
-const handleUse = (item) => {
-  console.log(item);
-  uni.showModal({
-    title: "提示",
-    content: "确定要使用吗?使用后不可下发",
-    success: function (res) {
-      if (res.confirm) {
-        uni.showLoading({ title: "使用中...", mask: true });
-        agentAccountCodeUse_Api({ id: item.id, agentId: item.agentId })
-          .then((res) => {
-            uni.hideLoading();
-            if (res && res.code == 200) {
-              uni.showToast({
-                title: "使用成功",
-              });
-              reload();
-            }
-          })
-          .catch((err) => {
-            // uni.hideLoading();
-          });
-      }
-    },
-  });
-};
-
-// 复制
-const handleCopy = (item) => {
-  uni.setClipboardData({
-    data: item.accountCode,
-    success: function () {
-      uni.showToast({
-        title: "复制成功",
-      });
-    },
-  });
-};
-
-const goTo = (url) => {
-  console.log(url);
-  if (!url) return;
-  uni.navigateTo({
-    url,
-  });
-};
-
-// 重新加载
-const reload = () => {
-  getCount();
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-onLoad((options) => {
-  if (options.tabId) tabId.value = options.tabId * 1;
-  getCount();
-  getList();
-});
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reload();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  box-sizing: border-box;
-  background-color: #f7f7f7;
-  padding-bottom: 150rpx;
-  position: relative;
-  .tab-bar {
-    // margin-top: 30rpx;
-    padding: 30rpx;
-    .tab-item {
-      // min-width: 110rpx;
-      // text-align: center;
-      display: flex;
-      flex-direction: column;
-      align-items: center;
-      .tab-text.active {
-        color: #ff0000;
-        font-weight: 700;
-      }
-      .tab-text {
-        font-size: 32rpx;
-        font-weight: 400;
-        color: #1a1a1a;
-        margin-bottom: 10rpx;
-      }
-      .tab-line-img {
-        width: 153rpx;
-        height: 13rpx;
-      }
-    }
-  }
-
-  .main-list {
-    .main-list-item {
-      margin-bottom: 20rpx;
-      background-color: #ffffff;
-      padding: 30rpx;
-      box-sizing: border-box;
-      border-radius: 24rpx;
-      .item-top {
-        padding: 10rpx 0;
-        .item-top-code {
-          .code {
-            font-size: 32rpx;
-            font-weight: 700;
-            color: #08be5d;
-          }
-          .iconfont {
-            color: #0090ff;
-            font-size: 32rpx;
-            margin: 0 5rpx 0 20rpx;
-          }
-          .text {
-            color: #0090ff;
-            font-size: 22rpx;
-          }
-        }
-      }
-      .item-top-right {
-        font-size: 28rpx;
-        font-weight: 400;
-        color: #1a1a1a;
-      }
-    }
-    .item-bottom {
-      font-size: 28rpx;
-      font-weight: 400;
-      color: #1a1a1a;
-      padding: 10rpx 0;
-      .time {
-        color: #808080;
-      }
-    }
-  }
-
-  .footer {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: 10;
-    background-color: #ffffff;
-    padding: 30rpx;
-    box-sizing: border-box;
-    .u-btn-two {
-      height: 90rpx;
-      line-height: 90rpx;
-    }
-  }
-}
-</style>

+ 0 - 308
pages/agencyCenter/accountCode/review.vue

@@ -1,308 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="main-list">
-      <view
-        class="main-list-item"
-        v-for="(item, index) in dataList"
-        :key="index"
-      >
-        <view class="item-top u-flex-center-sb">
-          <text class="text-time">{{ item.createTime }}</text>
-          <text
-            class="text-status"
-            style="color: #ff0000"
-            v-if="item.auditStatus === 1"
-            >待确认</text
-          >
-          <text class="text-status" v-if="item.auditStatus === 5">拒绝</text>
-          <text class="text-status" v-if="item.auditStatus === 10">已下发</text>
-        </view>
-        <view class="item-content u-flex-center-sb">
-          <text class="text-title">申请数量:</text>
-          <text class="text-value">{{ item.applyQuantity }}</text>
-        </view>
-        <view class="item-content u-flex-center-sb">
-          <text class="text-title">申请原因:</text>
-          <text class="text-value">{{ item.applyReason }}</text>
-        </view>
-        <view class="item-content u-flex-center-sb">
-          <text class="text-title">申请代理:</text>
-          <text class="text-value">{{ item.realName }}({{ item.phone }})</text>
-        </view>
-
-        <view
-          class="item-content u-flex-center-sb"
-          v-if="item.auditStatus === 10"
-        >
-          <text class="text-title">实际到账数量:</text>
-          <text class="text-value">{{ item.issuedQuantity || 0 }}</text>
-        </view>
-        <view
-          class="item-content u-flex-center-sb"
-          v-if="item.auditStatus === 10"
-        >
-          <text class="text-title">到账时间:</text>
-          <text class="text-value">{{ item.auditTime }}</text>
-        </view>
-
-        <view
-          class="item-btn"
-          v-if="item.auditStatus === 0"
-          @click.stop="handleApproval(item)"
-        >
-          <button class="u-btn-two">确认</button>
-        </view>
-      </view>
-    </view>
-
-    <noData v-if="dataList == 0" :config="{ top: 5, content: '暂无数据~' }" />
-    <loadMore v-if="dataList.length > 0" :status="status" />
-
-    <uv-popup ref="popupRef" mode="bottom" round="40rpx" closeable>
-      <view class="popup-content">
-        <view class="content-top">
-          <view class="popup-title">申请确认</view>
-          <view class="text-value">{{ formData.applyQuantity }}</view>
-          <view class="text-title">申请下发数量</view>
-        </view>
-        <view class="content-bottom">
-          <view class="list u-flex-center-sb">
-            <view class="text-leble">确认下发数量:</view>
-            <input
-              placeholder="请输入内容"
-              border="none"
-              class="text-input"
-              v-model="formData.issuedQuantity"
-              type="number"
-            />
-          </view>
-          <view class="content-remaining"
-            >剩余账户码数量:{{ accountCodeNum }}</view
-          >
-
-          <view class="u-flex-center-sb">
-            <button class="u-btn-two confirm" @click="handleConfirm()">
-              确认
-            </button>
-            <button class="u-btn-two cancel" @click="popupRef.close()">
-              取消
-            </button>
-          </view>
-        </view>
-      </view>
-    </uv-popup>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import {
-  sumSurplusAccountCode_Api,
-  agentAccountCodeApplyRegionPage_Api,
-  agentAccountCodeApplyAudit_Api,
-} from "@/api/agencyCenter";
-const popupRef = ref(null);
-const status = ref("loading");
-const params = ref({
-  pageNum: 1,
-  pageSize: 10,
-  status: 0,
-});
-const dataList = ref([]);
-const accountCodeNum = ref(0);
-const formData = ref({});
-
-// 查询剩余数量
-const sumSurplusAccountCode = () => {
-  sumSurplusAccountCode_Api().then((res) => {
-    if (res && res.code == 200) {
-      console.log(res.data);
-      accountCodeNum.value = res.data;
-    }
-  });
-};
-
-const handleApproval = (row) => {
-  formData.value = {
-    id: row.id,
-    agentId: row.agentId,
-    applyQuantity: row.applyQuantity,
-    auditStatus: 10,
-  };
-  popupRef.value.open();
-};
-
-const handleConfirm = () => {
-  let form = { ...formData.value };
-  if (!form.issuedQuantity) {
-    return uni.showToast({ title: "请输入下发数量", icon: "none" });
-  }
-  if (form.issuedQuantity > accountCodeNum.value) {
-    return uni.showToast({ title: "下发数量不能大于剩余数量", icon: "none" });
-  }
-  if (form.applyQuantity < form.issuedQuantity) {
-    return uni.showToast({ title: "下发数量不能大于申请数量", icon: "none" });
-  }
-  uni.showLoading({ title: "加载中", mask: true });
-  agentAccountCodeApplyAudit_Api(form)
-    .then((res) => {
-      uni.hideLoading();
-      if (res && res.code == 200) {
-        popupRef.value.close();
-        reload();
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-    });
-};
-
-const getList = () => {
-  uni.showLoading({ title: "加载中", mask: true });
-  agentAccountCodeApplyRegionPage_Api(params.value)
-    .then((res) => {
-      uni.hideLoading();
-      uni.stopPullDownRefresh();
-      if (res && res.code == 200) {
-        dataList.value = dataList.value.concat(res.rows);
-        if (res.total <= dataList.value.length) {
-          status.value = "noMore";
-        } else {
-          status.value = "more";
-        }
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-      uni.stopPullDownRefresh();
-    });
-};
-
-// 重新加载
-const reload = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-onLoad((options) => {
-  sumSurplusAccountCode();
-  getList();
-});
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reload();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  background: #f7f7f7;
-  box-sizing: border-box;
-  min-height: 100vh;
-  padding-bottom: 30rpx;
-  .main-list {
-    padding-top: 30rpx;
-    .main-list-item {
-      margin-bottom: 30rpx;
-      border-radius: 24rpx;
-      padding: 6rpx 0 26rpx 0;
-      background: #ffffff;
-      .item-top {
-        padding: 20rpx 30rpx;
-        border-bottom: 1rpx solid #f0f0f0;
-        margin-bottom: 10rpx;
-        .text-time {
-          font-size: 32rpx;
-          color: #1a1a1a;
-          font-weight: 700;
-        }
-        .text-status {
-          font-size: 26rpx;
-          color: #1a1a1a;
-        }
-      }
-      .item-content {
-        padding: 20rpx 30rpx 0 30rpx;
-        font-size: 28rpx;
-        .text-title {
-          flex-shrink: 0;
-          margin-right: 15rpx;
-        }
-        .text-value {
-          color: #808080;
-        }
-      }
-      .item-btn {
-        text-align: right;
-        padding-top: 20rpx;
-        border-top: 1rpx solid #f0f0f0;
-        margin: 20rpx 30rpx 0 30rpx;
-        .u-btn-two {
-          width: 170rpx;
-          height: 67rpx;
-          line-height: 67rpx;
-          border-radius: 34rpx;
-          display: inline-block;
-        }
-      }
-    }
-  }
-}
-.popup-content {
-  padding: 36rpx 0 40rpx 0;
-  box-sizing: border-box;
-
-  .content-top {
-    background-color: #f8f8f8;
-    text-align: center;
-    padding-bottom: 57rpx;
-    .popup-title {
-      margin-bottom: 30rpx;
-    }
-    .text-value {
-      font-size: 40rpx;
-      font-weight: normal;
-      color: #eb5153;
-      margin: 30rpx 0 20rpx 0;
-    }
-    .text-title {
-      font-size: 28rpx;
-    }
-  }
-  .content-bottom {
-    padding: 40rpx 54rpx 0 54rpx;
-    .list {
-      font-size: 28rpx;
-      padding-bottom: 20rpx;
-      border-bottom: 1rpx solid #f0f0f0;
-      .text-leble {
-        flex-shrink: 0;
-      }
-      .text-input {
-        flex: 1;
-        text-align: right;
-      }
-    }
-    .content-remaining {
-      font-size: 24rpx;
-      color: #0090ff;
-      text-align: right;
-      margin: 20rpx 0 50rpx 0;
-    }
-    .cancel {
-      margin-left: 22rpx;
-      background: #ffffff;
-      border: 1px solid #cccccc;
-      color: #808080;
-    }
-  }
-}
-</style>

+ 0 - 217
pages/agencyCenter/agentReview/details.vue

@@ -1,217 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="main-list">
-      <view class="u-flex-center-sb">
-        <view class="main-list-item uploadImg">
-          <view class="item-lable">身份证正面</view>
-          <view class="item-value" v-if="info.idCardFrontUrl">
-            <uploadImg type="view" v-model="info.idCardFrontUrl" />
-          </view>
-          <view class="item-value" v-else>--</view>
-        </view>
-        <view class="main-list-item uploadImg">
-          <view class="item-lable">身份证反面</view>
-          <view class="item-value" v-if="info.idCardBackUrl">
-            <uploadImg type="view" v-model="info.idCardBackUrl" />
-          </view>
-          <view class="item-value" v-else>--</view>
-        </view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">真实姓名:</view>
-        <view class="item-value">{{ info.realName }}</view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">联系电话:</view>
-        <view class="item-value">{{ info.phone }}</view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">身份证号:</view>
-        <view class="item-value">{{ info.idCard }}</view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">性别:</view>
-        <view class="item-value" v-if="info.gender == 1">男</view>
-        <view class="item-value" v-if="info.gender == 2">女</view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">申请区域:</view>
-        <view class="item-value">{{
-          info.provinceName + (info.cityName || "") + (info.areaName || "")
-        }}</view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">申请时间:</view>
-        <view class="item-value">{{ info.createTime }}</view>
-      </view>
-    </view>
-
-    <view class="main-list list-boder" v-if="info.auditStatus">
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">审核时间:</view>
-        <view class="item-value">{{ info.auditTime }}</view>
-      </view>
-      <view class="main-list-item u-flex-center-sb">
-        <view class="item-lable">审核结果:</view>
-        <view class="item-value" v-if="info.auditStatus == 0">待审核</view>
-        <view class="item-value" v-if="info.auditStatus == 10">已通过</view>
-        <view
-          class="item-value"
-          v-if="info.auditStatus == 5"
-          style="color: #eb5153"
-          >已拒绝</view
-        >
-      </view>
-      <view
-        class="main-list-item u-flex-center-sb"
-        v-if="info.auditStatus == 5"
-      >
-        <view class="item-lable">拒绝原因:</view>
-        <view class="item-value">{{ info.auditResult }}</view>
-      </view>
-    </view>
-
-    <!-- 审核按钮 -->
-    <view class="footer" v-if="info.auditStatus == 0">
-      <button class="u-btn-two" @click="handleReview()">审核</button>
-    </view>
-
-    <reviewPopup
-      ref="reviewPopupRef"
-      @confirm="handleConfirm"
-      title="代理入驻审核"
-    />
-  </view>
-</template>
-
-<script setup>
-import { ref, onMounted, getCurrentInstance } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import {
-  agentApplyInfoId_Api,
-  agentAgentApplyAudit_Api,
-} from "@/api/agencyCenter";
-import reviewPopup from "../components/reviewPopup.vue";
-const reviewPopupRef = ref(null);
-const info = ref({});
-const eventChannel = ref(null);
-const getInfo = (agentApplyId) => {
-  uni.showLoading({
-    title: "加载中...",
-    mask: true,
-  });
-  agentApplyInfoId_Api(agentApplyId)
-    .then((res) => {
-      if (res.code == 200) {
-        info.value = res.data || {};
-      }
-      uni.hideLoading();
-    })
-    .catch((err) => {
-      console.log(err);
-      // uni.hideLoading();
-    });
-};
-const handleReview = () => {
-  reviewPopupRef.value.open({
-    auditStatus: 10,
-    agentApplyId: info.value.agentApplyId,
-  });
-};
-
-const handleConfirm = (form) => {
-  uni.showLoading({
-    title: "加载中...",
-    mask: true,
-  });
-  agentAgentApplyAudit_Api(form)
-    .then((res) => {
-      if (res.code == 200) {
-        reviewPopupRef.value.close();
-        uni.showToast({
-          title: "操作成功",
-          icon: "success",
-        });
-        try {
-          eventChannel.value.emit("updateList", {
-            data: true,
-          });
-        } catch (error) {}
-        getInfo(info.value.agentApplyId);
-      }
-    })
-    .catch((err) => {
-      console.log(err);
-      // uni.hideLoading();
-    });
-};
-onMounted(() => {
-  const instance = getCurrentInstance().proxy;
-  eventChannel.value = instance.getOpenerEventChannel();
-});
-
-onLoad((options) => {
-  console.log("onLoad", options);
-  getInfo(options.agentApplyId);
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  box-sizing: border-box;
-  background-color: #ffffff;
-  padding-bottom: 145rpx;
-  position: relative;
-  .list-boder {
-    border-top: 12rpx solid #f7f7f7;
-  }
-  .main-list {
-    padding: 0 30rpx;
-    margin-bottom: 20rpx;
-    .main-list-item {
-      padding: 30rpx 0 20rpx 0;
-      border-bottom: 1rpx solid #f0f0f0;
-      font-size: 28rpx;
-      &:last-child {
-        border-bottom: none;
-      }
-      .item-lable {
-        flex-shrink: 0;
-        margin-right: 10rpx;
-      }
-      .item-value {
-        color: #666666;
-      }
-      &:deep(.uploadImg__item) {
-        margin-right: 0rpx !important;
-      }
-    }
-    .main-list-item.uploadImg {
-      text-align: center;
-      .item-lable {
-        margin-right: 0;
-      }
-      .item-value {
-        margin-top: 20rpx;
-      }
-    }
-  }
-  .footer {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-    background-color: #ffffff;
-    padding: 27rpx 60rpx;
-    box-sizing: border-box;
-    .u-btn-two {
-      height: 90rpx;
-      line-height: 90rpx;
-    }
-  }
-}
-</style>

+ 0 - 163
pages/agencyCenter/agentReview/list.vue

@@ -1,163 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="main-list">
-      <view
-        class="list-item"
-        v-for="item in dataList"
-        :key="item.id"
-        @click="goDetail(item)"
-      >
-        <view class="item-top u-flex-center-sb">
-          <text class="item-top-time">{{ item.createTime }}</text>
-          <text
-            class="item-top-status"
-            v-if="item.auditStatus === 0"
-            style="color: #0099ff"
-            >待审核</text
-          >
-          <text class="item-top-status" v-if="item.auditStatus === 10"
-            >已通过</text
-          >
-          <text
-            class="item-top-status"
-            v-if="item.auditStatus === 5"
-            style="color: #eb5153"
-            >已拒绝</text
-          >
-        </view>
-        <view class="item-bottom u-flex-center-sb">
-          <view class="item-bottom-info">
-            <view class="info-item u-flex-center">
-              <text class="item-lable">申请人:</text>
-              <text class="item-value">{{ item.realName }}</text>
-            </view>
-            <view class="info-item u-flex-center">
-              <text class="item-lable">联系电话:</text>
-              <text class="item-value">{{ item.phone }}</text>
-            </view>
-          </view>
-          <button class="item-bottom-btn" v-if="item.auditStatus === 0">
-            审核
-          </button>
-        </view>
-      </view>
-    </view>
-
-    <noData v-if="dataList == 0" :config="{ top: 5, content: '暂无数据~' }" />
-    <loadMore v-if="dataList.length > 0" :status="status" />
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import { agentAgentApplyPage_Api } from "@/api/agencyCenter";
-
-const dataList = ref([]);
-const params = ref({ pageNum: 1, pageSize: 10 });
-const status = ref("loading");
-
-const goDetail = (item) => {
-  uni.navigateTo({
-    url:
-      "/pages/agencyCenter/agentReview/details?agentApplyId=" +
-      item.agentApplyId,
-    events: {
-      updateList: () => {
-        console.log("accept");
-        reset();
-      },
-    },
-  });
-};
-
-const getList = async () => {
-  uni.showLoading({ title: "加载中..." });
-  await agentAgentApplyPage_Api(params.value).then((res) => {
-    if (res && res.code == 200) {
-      uni.stopPullDownRefresh();
-      dataList.value = dataList.value.concat(res.rows);
-      if (res.total <= dataList.value.length) {
-        status.value = "noMore";
-      } else {
-        status.value = "more";
-      }
-    }
-  });
-  uni.hideLoading();
-};
-
-// 重置
-const reset = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-onLoad((options) => {
-  getList();
-});
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reset();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  background-color: #f7f7f7;
-  box-sizing: border-box;
-  padding: 30rpx;
-  .main-list {
-    .list-item {
-      min-height: 223rpx;
-      background: #ffffff;
-      border-radius: 20rpx;
-      margin-bottom: 20rpx;
-      padding: 10rpx 0;
-      box-sizing: border-box;
-      .item-top {
-        padding: 20rpx 23rpx;
-        border-bottom: 1rpx solid #f0f0f0;
-        .item-top-time {
-          font-size: 28rpx;
-          font-weight: 700;
-        }
-        .item-top-status {
-          font-size: 26rpx;
-        }
-      }
-      .item-bottom {
-        padding: 20rpx 23rpx;
-        .item-bottom-info {
-          font-size: 26rpx;
-          .info-item {
-            margin-top: 6rpx;
-            .item-value {
-              color: #808080;
-            }
-          }
-        }
-        .item-bottom-btn {
-          width: 148rpx;
-          height: 60rpx;
-          line-height: 60rpx;
-          background: #eb5153;
-          border-radius: 30rpx;
-          box-sizing: border-box;
-          margin: 0;
-          font-size: 24rpx;
-          color: #ffffff;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 123
pages/agencyCenter/components/reviewPopup.vue

@@ -1,123 +0,0 @@
-<template>
-  <uv-popup ref="popupRef" mode="bottom" round="40rpx" closeable>
-    <view class="popup-content">
-      <view class="popup-title">{{ title }}</view>
-      <view class="main-list">
-        <view class="main-list-item u-flex-center-sb">
-          <view class="item-lable" style="flex: 1">审核结果:</view>
-          <view class="item-value">
-            <uv-radio-group v-model="formData.auditStatus">
-              <uv-radio
-                :name="10"
-                label="通过"
-                customStyle="margin-right: 30rpx"
-              ></uv-radio>
-              <uv-radio :name="5" label="拒绝"></uv-radio>
-            </uv-radio-group>
-          </view>
-        </view>
-        <view class="main-list-item" v-if="formData.auditStatus == 5">
-          <view class="item-lable">拒绝原因:</view>
-          <view class="item-value" style="margin-top: 20rpx">
-            <uv-textarea
-              v-model="formData.auditResult"
-              placeholder="请输入内容"
-              customStyle="background-color: #f7f7f7;"
-            ></uv-textarea>
-          </view>
-        </view>
-      </view>
-      <view class="u-flex-center-sb">
-        <button class="u-btn-two confirm" @click="handleConfirm()">确认</button>
-        <button class="u-btn-two cancel" @click="popupRef.close()">取消</button>
-      </view>
-    </view>
-  </uv-popup>
-</template>
-<script setup>
-import { ref, watch } from "vue";
-const emit = defineEmits(["confirm"]);
-const props = defineProps({
-  title: {
-    type: String,
-    default: "",
-  },
-});
-const title = ref(props.title);
-const popupRef = ref(null);
-const formData = ref({});
-
-const handleConfirm = () => {
-  if (formData.value.auditStatus == 5 && !formData.value.auditResult) {
-    uni.showToast({
-      title: "请输入拒绝原因",
-      icon: "none",
-    });
-    return;
-  }
-  close();
-  emit("confirm", formData.value);
-};
-
-watch(
-  () => props.title,
-  (newValue) => {
-    title.value = newValue;
-  }
-);
-
-const open = (form = {}) => {
-  formData.value = { ...form, auditStatus: 10, auditResult: "" };
-  popupRef.value.open();
-};
-
-const close = () => {
-  popupRef.value.close();
-};
-
-defineExpose({ open, close });
-</script>
-
-<style lang="scss" scoped>
-.popup-content {
-  padding: 36rpx 54rpx 42rpx 54rpx;
-  box-sizing: border-box;
-  .popup-title {
-    margin-bottom: 30rpx;
-  }
-  .main-list {
-    padding: 0 !important;
-    .main-list-item {
-      padding: 30rpx 0 20rpx 0;
-      border-bottom: 1rpx solid #f0f0f0;
-      font-size: 28rpx;
-      &:last-child {
-        border-bottom: none;
-      }
-      .item-lable {
-        flex-shrink: 0;
-        margin-right: 10rpx;
-      }
-      .item-value {
-        color: #666666;
-      }
-    }
-  }
-  .u-flex-center-sb {
-    margin-top: 20rpx;
-    .u-btn-two {
-      width: 310rpx;
-      height: 76rpx;
-      line-height: 76rpx;
-      margin: 0;
-      border-radius: 40rpx;
-      box-sizing: border-box;
-    }
-    .u-btn-two.cancel {
-      background-color: #ffffff;
-      border: 1rpx solid #cccccc !important;
-      color: #808080;
-    }
-  }
-}
-</style>

+ 0 - 284
pages/agencyCenter/index.vue

@@ -1,284 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="user-info u-flex-center" v-if="agentInfo.agentId">
-      <image
-        class="user-info-avatar"
-        v-if="agentInfo.headPhoto"
-        :src="agentInfo.headPhoto"
-        alt=""
-      />
-      <image
-        class="user-info-avatar"
-        v-else
-        :src="$defaultAvatar"
-        mode=""
-      ></image>
-      <view class="user-info-text">
-        <view class="user-info-name">{{ agentInfo.realName }}</view>
-        <view class="user-info-desc">
-          <text>{{ agentInfo.agentLevel == 1 ? "省代" : "地代" }}</text>
-          <text> - </text>
-          <text>{{
-            agentInfo.provinceName +
-            (agentInfo.cityName || "") +
-            (agentInfo.areaName || "")
-          }}</text>
-        </view>
-      </view>
-    </view>
-    <view class="container-revenue">
-      <view class="title">代理收益</view>
-      <view class="revenue-list u-flex-center-sb">
-        <view class="revenue-list-item" @click="goTo('/pages/agencyCenter/revenue/list')">
-          <view class="list-item-num"
-            ><text class="item-unit">¥</text
-            >{{ agentAmount.balance || "0.00" }}</view
-          >
-          <view class="list-item-text">可提现余额</view>
-        </view>
-        <view class="revenue-list-item" @click="goTo('/pages/agencyCenter/promotionShop')">
-          <view class="list-item-num">{{
-            agentInfo.promotionBusinessNum || "0"
-          }}</view>
-          <view class="list-item-text">推广店铺</view>
-        </view>
-        <view class="revenue-list-item" @click="goTo('/pages/agencyCenter/partner')">
-          <view class="list-item-num">{{
-            agentInfo.promotionAgentNum || "0"
-          }}</view>
-          <view class="list-item-text">区域代理</view>
-        </view>
-      </view>
-    </view>
-
-    <view class="container-manage">
-      <view class="title">代理管理</view>
-      <view class="manage-list">
-        <template v-for="(item, index) in manageList">
-          <view
-            class="manage-list-item u-flex-center-sb"
-            :key="index"
-            @click="goTo(item.url)"
-            v-if="item.judgeShow ? agentInfo.agentLevel == 1 ? true : false : true"
-          >
-            <view class="item-left u-flex-center">
-              <image class="item-icon" :src="$handleImageUrl(item.leftIcon)" alt="" />
-              <view class="item-text">{{ item.title }}</view>
-            </view>
-            <image class="item-right" :src="$handleImageUrl(item.rightIcon)" alt="" />
-          </view>
-        </template>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh } from "@dcloudio/uni-app";
-import { agentAmount_Api, agentInfo_Api } from "@/api/agencyCenter";
-
-const manageList = ref([
-  {
-    leftIcon: "/personalCenter/agent/icon_shop.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "推广店铺",
-    judgeShow: false, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/promotionShop",
-  },
-  {
-    leftIcon: "/personalCenter/agent/icon_revenue.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "代理收益",
-    judgeShow: false, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/revenue/list",
-  },
-
-  {
-    leftIcon: "/personalCenter/agent/icon_partner.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "代理伙伴",
-    judgeShow: true, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/partner",
-  },
-
-  {
-    leftIcon: "/personalCenter/agent/icon_account_code.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "账户码管理",
-    judgeShow: false, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/accountCode/list",
-  },
-  {
-    leftIcon: "/personalCenter/agent/icon_review.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "入驻审核",
-    judgeShow: true, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/agentReview/list",
-  },
-
-  {
-    leftIcon: "/personalCenter/agent/icon_store_review.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "店铺审核",
-    judgeShow: true, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/storeReview/list",
-  },
-
-  {
-    leftIcon: "/personalCenter/agent/icon_poster.png",
-    rightIcon: "/personalCenter/agent/icon_right.png",
-    title: "代理海报",
-    judgeShow: true, // 用于判断是否省代才展示
-    url: "/pages/agencyCenter/poster",
-  },
-]);
-
-const agentInfo = ref({});
-const agentAmount = ref({});
-// 获取代理收益
-const getAgentAmount = async () => {
-  await agentAmount_Api().then((res) => {
-    if (res.code === 200) {
-      agentAmount.value = res.data || {};
-    }
-  });
-};
-// 获取代理信息
-const getAgentInfo = async () => {
-  await agentInfo_Api().then((res) => {
-    if (res.code === 200) {
-      agentInfo.value = res.data || {};
-      //   uni.setStorageSync("agentLevel", res.data.agentLevel);
-      uni.setStorageSync("agentInfo", {
-        agentLevel: res.data.agentLevel,
-        parentAgentName: res.data.parentAgentName,
-        parentAgentPhone: res.data.parentAgentPhone,
-      });
-    }
-  });
-};
-
-const goTo = (path) => {
-  if (!path) return;
-  uni.navigateTo({
-    url: path,
-  });
-};
-
-onPullDownRefresh(async () => {
-  await getAgentInfo();
-  await getAgentAmount();
-  uni.stopPullDownRefresh();
-});
-
-onLoad(() => {
-  getAgentInfo();
-  getAgentAmount();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  display: flex;
-  flex-direction: column;
-  background-color: #f7f7f7;
-  box-sizing: border-box;
-  .user-info {
-    padding: 70rpx 30rpx 30rpx;
-    box-sizing: border-box;
-    flex-shrink: 0;
-    .user-info-avatar {
-      width: 121rpx;
-      height: 121rpx;
-      border-radius: 50%;
-      flex-shrink: 0;
-      margin-right: 20rpx;
-    }
-    .user-info-text {
-      .user-info-name {
-        font-size: 36rpx;
-        font-weight: 700;
-        color: #1a1a1a;
-      }
-      .user-info-desc {
-        font-size: 28rpx;
-        font-weight: 400;
-        color: #808080;
-      }
-    }
-  }
-
-  .container-revenue,
-  .container-manage {
-    background-color: #ffffff;
-    border-radius: 24rpx;
-    box-sizing: border-box;
-
-    .title {
-      font-size: 30rpx;
-      font-weight: 700;
-      color: #1a1a1a;
-      margin-bottom: 30rpx;
-    }
-  }
-
-  .container-revenue {
-    margin-bottom: 20rpx;
-    padding: 43rpx 30rpx;
-    flex-shrink: 0;
-    .revenue-list {
-      padding: 0 24rpx;
-      .revenue-list-item {
-        text-align: center;
-        .list-item-num {
-          font-size: 40rpx;
-          font-weight: normal;
-          color: #eb5153;
-          .item-unit {
-            font-size: 26rpx;
-            font-weight: 400;
-          }
-        }
-        .list-item-text {
-          font-size: 28rpx;
-          font-weight: 400;
-          color: #1a1a1a;
-          margin-top: 12rpx;
-        }
-      }
-    }
-  }
-
-  .container-manage {
-    flex: 1;
-    padding: 30rpx;
-    .title {
-      margin-bottom: 5rpx;
-    }
-    .manage-list {
-      .manage-list-item {
-        padding: 25rpx 0;
-        border-bottom: 1rpx solid #f0f0f0;
-        .item-left {
-          .item-icon {
-            width: 43rpx;
-            height: 43rpx;
-            margin-right: 13rpx;
-          }
-          .item-text {
-            font-size: 28rpx;
-            font-weight: 400;
-            color: #1a1a1a;
-          }
-        }
-        .item-right {
-          width: 14rpx;
-          height: 22rpx;
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 668
pages/agencyCenter/joinAgent.vue

@@ -1,668 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="main-list">
-      <view class="main-list-item">
-        <view class="lable" style="flex: 1">代理级别</view>
-        <view
-          class="value"
-          v-if="formData.agentApplyId && formData.auditStatus != 5"
-        >
-          <text>{{ formData.agentLevel == 1 ? "省级代理" : "区县代理" }}</text>
-        </view>
-        <view v-else>
-          <uv-radio-group
-            v-model="formData.agentLevel"
-            @change="agentLevelChange"
-            direction="row"
-          >
-            <uv-radio
-              :name="1"
-              label="省级代理"
-              customStyle="margin-right: 30rpx"
-            ></uv-radio>
-            <uv-radio :name="2" label="区县代理"></uv-radio>
-          </uv-radio-group>
-        </view>
-      </view>
-
-      <template v-if="formData.agentLevel == '2'">
-        <view class="main-list-item">
-          <view class="lable">省级代理邀请码</view>
-          <view class="value">
-            <text v-if="formData.agentApplyId && formData.auditStatus != 5">{{
-              formData.invitationCode
-            }}</text>
-            <uv-input
-              placeholder="请输入"
-              border="none"
-              v-model="formData.invitationCode"
-              @blur="invitationCodeBlur()"
-              v-else
-            ></uv-input>
-          </view>
-        </view>
-        <view class="sub-info" v-if="agentInfo.agentId">
-          <view class="main-list-item no-border">
-            <view class="lable">所属代理</view>
-            <view class="value">
-              <text>{{ agentInfo.realName }}</text>
-            </view>
-          </view>
-          <view class="main-list-item no-border">
-            <view class="lable">代理电话</view>
-            <view class="value">
-              <text>{{ agentInfo.phone }}</text>
-            </view>
-          </view>
-          <view class="main-list-item no-border">
-            <view class="lable">所属区域</view>
-            <view class="value">
-              <text>{{ agentInfo.provinceName }}</text>
-            </view>
-          </view>
-        </view>
-      </template>
-
-      <view class="main-list-item idCard">
-        <view class="img-view">
-          <view class="lable">身份证正面</view>
-          <view class="value">
-            <image
-              v-if="formData.agentApplyId && formData.auditStatus != 5"
-              class="upload-img"
-              :src="formData.idCardFrontUrl"
-              mode="aspectFill"
-              @click="showImg(formData.idCardFrontUrl)"
-            >
-            </image>
-            <uploadImg
-              v-else
-              :imgCount="1"
-              :uploadImgCount="1"
-              :imgArr="formData.idCardFrontUrl ? [formData.idCardFrontUrl] : []"
-              @result="resultUrl($event, 'idCardFrontUrl')"
-              :imgSize="1"
-            ></uploadImg>
-          </view>
-        </view>
-
-        <view class="img-view">
-          <view class="lable">身份证反面</view>
-          <view class="value">
-            <image
-              v-if="formData.agentApplyId && formData.auditStatus != 5"
-              class="upload-img"
-              :src="formData.idCardBackUrl"
-              mode="aspectFill"
-              @click="showImg(formData.idCardBackUrl)"
-            >
-            </image>
-            <uploadImg
-              v-else
-              :imgCount="1"
-              :uploadImgCount="1"
-              :imgArr="formData.idCardBackUrl ? [formData.idCardBackUrl] : []"
-              @result="resultUrl($event, 'idCardBackUrl')"
-              :imgSize="1"
-            ></uploadImg>
-          </view>
-        </view>
-      </view>
-
-      <view class="main-list-item">
-        <view class="lable">真实姓名</view>
-        <view class="value">
-          <text v-if="formData.agentApplyId && formData.auditStatus != 5">{{
-            formData.realName
-          }}</text>
-          <uv-input
-            placeholder="请输入"
-            border="none"
-            v-model="formData.realName"
-            v-else
-          ></uv-input>
-        </view>
-      </view>
-
-      <view class="main-list-item">
-        <view class="lable">联系电话</view>
-        <view class="value">
-          <text v-if="formData.agentApplyId && formData.auditStatus != 5">{{
-            formData.phone
-          }}</text>
-          <uv-input
-            placeholder="请输入"
-            border="none"
-            type="number"
-            v-model="formData.phone"
-            maxlength="11"
-            v-else
-          ></uv-input>
-        </view>
-      </view>
-
-      <view class="main-list-item">
-        <view class="lable">身份证号</view>
-        <view class="value">
-          <text v-if="formData.agentApplyId && formData.auditStatus != 5">{{
-            formData.idCard
-          }}</text>
-          <uv-input
-            placeholder="请输入"
-            border="none"
-            v-model="formData.idCard"
-            type="idcard"
-            v-else
-          ></uv-input>
-        </view>
-      </view>
-      <view class="main-list-item">
-        <view class="lable" style="flex: 1">性别</view>
-        <view class="value" style="flex: none">
-          <text v-if="formData.agentApplyId && formData.auditStatus != 5">{{
-            formData.gender == 1 ? "男" : "女"
-          }}</text>
-          <uv-radio-group v-model="formData.gender" v-else>
-            <uv-radio
-              :name="1"
-              label="男"
-              customStyle="margin-right: 30rpx"
-            ></uv-radio>
-            <uv-radio :name="2" label="女"></uv-radio>
-          </uv-radio-group>
-        </view>
-      </view>
-      <view class="main-list-item no-border">
-        <view class="lable"
-          >申请{{ formData.agentLevel == 1 ? "省份" : "区域" }}</view
-        >
-        <view class="value" @click.stop="showPicker">
-          <template v-if="formData.agentLevel == 1">
-            <text v-if="formData.provinceName">{{
-              formData.provinceName
-            }}</text>
-            <text v-else class="placeholder">请选择省份</text>
-          </template>
-          <template v-else>
-            <text v-if="formData.cityName">{{
-              formData.provinceName +
-              (formData.cityName || "") +
-              (formData.areaName || "")
-            }}</text>
-            <text v-else class="placeholder">请选择所属市、县</text>
-          </template>
-        </view>
-      </view>
-    </view>
-
-    <view class="main-line" v-if="formData.agentApplyId"> </view>
-
-    <!-- 审核信息 -->
-    <view class="main-list" v-if="formData.agentApplyId">
-      <view>
-        <view class="main-list-item">
-          <view class="lable">审核时间</view>
-          <view class="value">
-            {{ formData.auditTime || "--" }}
-          </view>
-        </view>
-        <view class="main-list-item">
-          <view class="lable">审核结果</view>
-          <view class="value">
-            <text v-if="formData.auditStatus == 0">待审核</text>
-            <text v-if="formData.auditStatus == 10" style="color: #33cc33"
-              >通过</text
-            >
-            <text v-if="formData.auditStatus == 5" style="color: red"
-              >拒绝</text
-            >
-          </view>
-        </view>
-        <view class="main-list-item" v-if="formData.auditStatus == 5">
-          <view class="lable">拒绝原因</view>
-          <view class="value">
-            {{ formData.auditResult }}
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <!-- 浮动按钮 -->
-    <view
-      class="float-view"
-      v-if="!formData.agentApplyId || formData.auditStatus == 5"
-    >
-      <view class="float-view-text">
-        省级代理需要通过平台审核,区县代理由省级代理审核
-      </view>
-      <view class="u-btn-two" @click="JoinNow">立即加入</view>
-    </view>
-
-    <!-- 地区选择器 -->
-    <uv-picker
-      ref="pickerRef"
-      :columns="columns"
-      @confirm="pickerConfirm"
-      keyName="label"
-    ></uv-picker>
-
-    <!-- 合同确认弹框 -->
-    <contractConfirm
-      ref="contractConfirmRef"
-      :agreementList="agreementList"
-      @agreement="handleAgreement"
-      @agree="handleAgree"
-    />
-
-    <!-- 合同模板 -->
-    <contractTemplate ref="contractRef" />
-  </view>
-</template>
-<script setup>
-import { ref, reactive } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { cnareaTreeLbs } from "@/api/index.js";
-import {
-  agentApplyAdd_Api,
-  agentApplyEdit_Api,
-  agentProvinceAgent_Api,
-  agentApplyInfo_Api,
-} from "@/api/agencyCenter";
-import $config from "@/config/global.config";
-
-const contractRef = ref(null);
-const pickerRef = ref(null);
-const contractConfirmRef = ref(null);
-const regionList = ref([]); // 区域列表
-const agreementList = ref([
-  {
-    lable: "软件代理销售合同",
-    code: "1",
-  },
-]); // 协议列表
-const formData = reactive({
-  agentLevel: 1,
-  gender: 1,
-}); // 表单数据
-const columns = ref([]); // 地区列表数据
-const agentInfo = ref({}); // 代理信息
-let cityObj = {}; // 直辖市数据
-
-// 获取地区数据
-const getCnareaTreeLbs = () => {
-  cnareaTreeLbs().then((res) => {
-    if (res.code == 200 && res.data) {
-      regionList.value = res.data.children || [];
-      columns.value = [regionList.value];
-    }
-  });
-};
-
-// 代理级别改变
-const agentLevelChange = (value) => {
-  formData.provinceCode = null;
-  formData.provinceName = null;
-  formData.cityCode = null;
-  formData.cityName = null;
-  formData.areaCode = null;
-  formData.areaName = null;
-  formData.parentAgentId = null;
-  formData.parentAgentPhone = null;
-  formData.invitationCode = null;
-  agentInfo.value = {};
-};
-
-const showPicker = () => {
-  if (formData.agentApplyId && formData.auditStatus != 5) return;
-  if (formData.agentLevel == 1) {
-    columns.value = [regionList.value];
-    if (formData.provinceCode) {
-      let index = regionList.value.findIndex(
-        (item) => item.value == formData.provinceCode
-      );
-      // console.log(index);
-      pickerRef.value.setIndexs([index], true);
-    }
-    // pickerRef.value.setIndexs([5],true);
-  } else {
-    if (!formData.provinceCode) {
-      uni.$uv.toast("请先输入邀请码确认省级代理");
-      return;
-    }
-    let objs =
-      regionList.value.find((item) => item.value == formData.provinceCode) ||
-      {};
-    console.log(objs);
-    if (!objs.value) return uni.$uv.toast("未匹配到省级地区数据");
-    if (
-      [
-        "北京市",
-        "天津市",
-        "上海市",
-        "香港特别行政区",
-        "重庆市",
-        "澳门特别行政区",
-      ].includes(objs.label)
-    ) {
-      cityObj = {
-        cityCode: objs.children[0].value,
-        cityName: objs.children[0].label,
-      };
-      columns.value = [objs.children[0].children];
-
-      if (formData.areaCode) {
-        let index = objs.children[0].children.findIndex(
-          (item) => item.value == formData.areaCode
-        );
-        // console.log(index);
-        pickerRef.value.setIndexs([index], true);
-      }
-    } else {
-      cityObj = {};
-      columns.value = [objs.children];
-      if (formData.cityCode) {
-        let index = objs.children.findIndex(
-          (item) => item.value == formData.cityCode
-        );
-        // console.log(index);
-        pickerRef.value.setIndexs([index], true);
-      }
-    }
-  }
-  pickerRef.value.open();
-};
-// 地区选择回调
-const pickerConfirm = (e) => {
-  // console.log(e);
-  if (formData.agentLevel == 1) {
-    formData.provinceCode = e.value[0].value;
-    formData.provinceName = e.value[0].label;
-  } else {
-    if (cityObj.cityCode) {
-      formData.areaCode = e.value[0].value;
-      formData.areaName = e.value[0].label;
-      formData.cityCode = cityObj.cityCode;
-      formData.cityName = cityObj.cityName;
-    } else {
-      formData.cityCode = e.value[0].value;
-      formData.cityName = e.value[0].label;
-    }
-  }
-  // console.log(formData);
-};
-
-// 显示图片
-const showImg = (url) => {
-  if (!url) return;
-  uni.previewImage({
-    urls: [url],
-  });
-};
-
-// 图片修改
-const resultUrl = (e, type) => {
-  // console.log(e, type);
-  formData[type] = e.length > 0 ? e[0] : undefined;
-};
-
-// 立即加入
-const JoinNow = () => {
-  if (!formData.realName) {
-    return uni.$uv.toast("请输入真实姓名");
-  }
-  if (!formData.phone) {
-    return uni.$uv.toast("请输入联系电话");
-  }
-  if (!$config.telRegex.test(formData.phone)) {
-    return uni.$uv.toast("请输入正确的联系电话");
-  }
-  if (!formData.idCard) {
-    return uni.$uv.toast("请输入身份证号");
-  }
-  if (!$config.telIdentity.test(formData.idCard)) {
-    return uni.$uv.toast("请输入正确的身份证号");
-  }
-  if (!formData.provinceName) {
-    return uni.$uv.toast("请选择省份");
-  }
-  if (formData.agentLevel == "2" && !formData.cityName) {
-    return uni.$uv.toast("请选择申请区域");
-  }
-  if (!formData.idCardFrontUrl) {
-    return uni.$uv.toast("请上传身份证正面");
-  }
-  if (!formData.idCardBackUrl) {
-    return uni.$uv.toast("请上传身份证反面");
-  }
-  contractConfirmRef.value.open();
-};
-
-// 显示合同
-const handleAgreement = (code) => {
-  contractRef.value.open(formData);
-};
-
-// 同意协议
-const handleAgree = () => {
-  uni.navigateTo({
-    url: "/pages/agencyCenter/signature",
-    events: {
-      confirm: (e) => {
-        // console.log(e.data);
-        formData.signImage = e.data;
-        if (!e.data) {
-          return uni.$uv.toast("手写签名获取失败,请重新绘制");
-        }
-        setTimeout(() => {
-          handleSubmit();
-        }, 1000);
-      },
-    },
-  });
-};
-
-// 最终提交数据
-const handleSubmit = () => {
-  uni.showLoading({
-    title: "提交中...",
-    mask: true,
-  });
-  let form = {
-    ...formData,
-  };
-  let url = formData.agentApplyId ? agentApplyEdit_Api : agentApplyAdd_Api;
-  url(form)
-    .then((res) => {
-      // console.log(res);
-      uni.hideLoading();
-      if (res.code == 200) {
-        uni.showToast({
-          title: "提交成功",
-          icon: "success",
-        });
-        setTimeout(() => {
-          // uni.navigateBack();
-          uni.redirectTo({
-            url: "/pages/agencyCenter/submitView",
-          });
-        }, 1000);
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-    });
-};
-
-// 获取代理申请详细信息
-const getAgentApplyInfo = (scene = "") => {
-  // return;
-  console.log("scene====>", scene);
-  uni.showLoading({ title: "加载中...", mask: true });
-  agentApplyInfo_Api()
-    .then((res) => {
-      uni.hideLoading();
-      // console.log(res);
-      if (res.code == 200 && res.data) {
-        if (res.data.agentLevel == 2 && res.data.parentAgentVo) {
-          agentInfo.value = res.data.parentAgentVo || {};
-        }
-        Object.assign(formData, {
-          ...res.data,
-          parentAgentId: res.data.parentAgentId,
-          parentAgentPhone: agentInfo.value.phone,
-          invitationCode: agentInfo.value.inviteCode,
-        });
-      } else if (scene) {
-        Object.assign(formData, {
-          invitationCode: scene,
-          agentLevel: 2,
-        });
-        setTimeout(() => {
-          invitationCodeBlur();
-        }, 500);
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-    });
-};
-
-// 邀请码失焦/邀请码点击确认
-const invitationCodeBlur = (e) => {
-  // console.log(e);
-  if (formData.invitationCode) {
-    agentProvinceAgent_Api(formData.invitationCode).then((res) => {
-      // console.log(res);
-      if (res.code == 200) {
-        agentInfo.value = res.data || {};
-        Object.assign(formData, {
-          provinceCode: res.data.provinceCode,
-          provinceName: res.data.provinceName,
-          parentAgentId: res.data.agentId,
-          parentAgentPhone: res.data.phone,
-          areaCode: undefined,
-          areaName: undefined,
-          cityCode: undefined,
-          cityName: undefined,
-        });
-      }
-    });
-  } else {
-    agentInfo.value = {};
-    Object.assign(formData, {
-      provinceCode: undefined,
-      provinceName: undefined,
-      parentAgentId: undefined,
-      parentAgentPhone: undefined,
-      areaCode: undefined,
-      areaName: undefined,
-      cityCode: undefined,
-      cityName: undefined,
-    });
-  }
-};
-
-onLoad((options) => {
-  getCnareaTreeLbs();
-  getAgentApplyInfo(options.scene || "");
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  padding: 0 0 30rpx 0;
-  min-height: 100vh;
-  box-sizing: border-box;
-  padding-bottom: 200rpx;
-  .sub-info {
-    // border: 1rpx solid #f0f0f0;
-    border-radius: 20rpx;
-    padding: 20rpx;
-    margin-top: 10rpx;
-    background: #f7f6f6;
-    .main-list-item {
-      padding: 10rpx 0 !important;
-      .lable,
-      .value {
-        font-size: 24rpx;
-      }
-      .value {
-        color: #666666;
-      }
-    }
-  }
-  .main-line {
-    width: 750rpx;
-    height: 12rpx;
-    background: #f7f7f7;
-    margin: 10rpx 0;
-  }
-
-  .main-list {
-    padding: 0 30rpx;
-    .main-list-item.no-border {
-      border: none;
-    }
-    .main-list-item.idCard {
-      .img-view {
-        text-align: center;
-        .lable {
-          margin-bottom: 20rpx;
-        }
-        &:deep(.uploadImg__item),
-        .upload-img {
-          margin: 0 !important;
-          width: 300rpx;
-          height: 200rpx;
-        }
-      }
-    }
-    .main-list-item {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      font-size: 28rpx;
-      padding: 30rpx 0 20rpx 0;
-      border-bottom: 1rpx solid #eaeaea;
-      .lable {
-        min-width: 140rpx;
-        flex-shrink: 0;
-        margin-right: 20rpx;
-      }
-      .value {
-        flex: 1;
-        text-align: right;
-        &:deep(input) {
-          text-align: right !important;
-        }
-        .placeholder {
-          color: #c0c4cc;
-          font-size: 28rpx;
-        }
-      }
-    }
-  }
-
-  .float-view {
-    width: 750rpx;
-    box-sizing: border-box;
-    padding: 20rpx 20rpx 30rpx 20rpx;
-    position: fixed;
-    left: 0;
-    bottom: 0;
-    background-color: #ffffff;
-    border-top: 1rpx solid #eaeaea;
-    .float-view-text {
-      font-size: 26rpx;
-      color: #808080;
-      margin-bottom: 20rpx;
-      text-align: center;
-    }
-    .u-btn-two {
-      height: 90rpx;
-      line-height: 90rpx;
-      border-radius: 45rpx;
-    }
-  }
-}
-</style>

+ 0 - 159
pages/agencyCenter/partner.vue

@@ -1,159 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="header">
-      <text>合计:</text>
-      <text class="total">{{ total }}</text>
-      <text> 人</text>
-    </view>
-
-    <view class="main-list">
-      <view
-        class="main-list-item u-flex-center"
-        v-for="(item, index) in dataList"
-        :key="index"
-      >
-        <image class="item-img" v-if="item.headPhoto" :src="item.headPhoto" mode="">
-        </image>
-        <image class="item-img" v-else :src="$defaultAvatar" mode=""></image>
-
-        <view class="item-content">
-          <view class="item-title u-flex-center">
-            <text class="item-title-name">{{ item.realName }}</text>
-            <view class="item-title-phone">
-              <text class="iconfont">&#xe679;</text>
-              <text class="text"> {{ item.phone }}</text>
-            </view>
-          </view>
-          <view class="item-info">
-            <text class="iconfont">&#xe990;</text>
-            <text class="item-info-text">{{
-              item.provinceName + (item.cityName || "") + (item.areaName || "")
-            }}</text>
-          </view>
-          <view class="item-info">
-            <text class="iconfont">&#xe63b;</text>
-            <text class="item-info-text">{{ item.createTime }}</text>
-          </view>
-        </view>
-      </view>
-
-      <noData v-if="dataList == 0" :config="{ top: 5, content: '暂无数据~' }" />
-      <loadMore v-if="dataList.length > 0" :status="status" />
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import { agentPartnerPage_Api } from "@/api/agencyCenter";
-
-const status = ref("loading");
-const params = ref({
-  pageNum: 1,
-  pageSize: 10,
-});
-const total = ref(0);
-const dataList = ref([]);
-const getList = () => {
-  agentPartnerPage_Api({
-    ...params.value,
-  }).then((res) => {
-    if (res && res.code == 200) {
-      uni.stopPullDownRefresh();
-      dataList.value = dataList.value.concat(res.rows);
-      total.value = res.total || 0;
-      if (res.total <= dataList.value.length) {
-        status.value = "noMore";
-      } else {
-        status.value = "more";
-      }
-    }
-  });
-};
-
-// 重新加载
-const reload = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-onLoad((options) => {
-  getList();
-});
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reload();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  box-sizing: border-box;
-  background-color: #ffffff;
-  .header {
-    padding: 30rpx 30rpx 60rpx 30rpx;
-    font-size: 28rpx;
-    color: #1a1a1a;
-    background-color: #f7f7f7;
-    .total {
-      font-size: 32rpx;
-      font-weight: 700;
-      color: #ff0000;
-    }
-  }
-
-  .main-list {
-    padding: 15rpx 30rpx 30rpx 30rpx;
-    background-color: #ffffff;
-    margin-top: -30rpx;
-    border-radius: 40rpx;
-    .main-list-item {
-      padding: 30rpx;
-      border-bottom: 1rpx solid #f0f0f0;
-      .item-img {
-        width: 110rpx;
-        height: 110rpx;
-        border-radius: 50%;
-        flex-shrink: 0;
-        margin-right: 27rpx;
-      }
-      .item-content {
-        flex: 1;
-        .item-title {
-          margin-bottom: 14rpx;
-          .item-title-name {
-            font-size: 28rpx;
-            font-weight: 700;
-            color: #1a1a1a;
-            margin-right: 20rpx;
-          }
-          .item-title-phone {
-            font-size: 26rpx;
-            color: #808080;
-          }
-        }
-        .item-info {
-          color: #999999;
-          margin-bottom: 6rpx;
-          font-size: 24rpx;
-          .iconfont{
-            margin-right: 5rpx;
-          }
-          &:last-child {
-            margin-bottom: 0;
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 406
pages/agencyCenter/poster.vue

@@ -1,406 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="container">
-      <view class="poster" id="myCanvas">
-        <view class="poster-user u-flex-center">
-          <image
-            class="poster-user-img"
-            :src="agentInfo.headPhoto"
-            mode=""
-            v-if="agentInfo.headPhoto"
-          >
-          </image>
-          <image
-            class="poster-user-img"
-            v-else
-            :src="$defaultAvatar"
-            mode=""
-          ></image>
-          <view class="poster-user-info">
-            <view class="poster-user-name"
-              >省级代理:{{ agentInfo.realName }}</view
-            >
-            <view class="poster-user-inviteCode"
-              >邀请码:{{ agentInfo.inviteCode }}</view
-            >
-          </view>
-        </view>
-        <view class="poster-code">{{ agentInfo.inviteCode }}</view>
-        <view v-if="qrCode" class="poster-qrcode">
-          <image class="poster-qrcode-image" :src="qrCode"> </image>
-        </view>
-      </view>
-      <!-- 隐藏的canvas用于生成海报 -->
-      <canvas 
-        id="posterCanvas" 
-        canvas-id="posterCanvas" 
-        style="position: fixed; top: -9999px; left: -9999px; width: 345px; height: 643px;"
-        width="345"
-        height="643"
-      ></canvas>
-      <view class="poster-btn u-flex-center-sb">
-        <button class="poster-btn-copy" @click.stop="copyCode">
-          复制邀请码
-        </button>
-        <button class="poster-btn-save" @click.stop="savePoster">保存海报</button>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { agentInfo_Api, agentGetQrCode_Api } from "@/api/agencyCenter";
-
-const agentInfo = ref({});
-const qrCode = ref("");
-
-// 获取代理信息
-const getAgentInfo = async () => {
-  uni.showLoading({ title: "加载中", mask: true });
-  agentInfo_Api()
-    .then((res) => {
-      uni.hideLoading();
-      if (res.code === 200) {
-        agentInfo.value = res.data || {};
-      }
-    })
-    .catch((err) => {
-      console.log(err);
-      // uni.hideLoading();
-    });
-};
-
-const getQrCode = async () => {
-  uni.showLoading({ title: "加载中", mask: true });
-  agentGetQrCode_Api({
-    path: "pages/agencyCenter/joinAgent",
-  })
-    .then((res) => {
-      uni.hideLoading();
-      if (res.code === 200) {
-        // console.log(res.data);
-        qrCode.value = res.data.url;
-      }
-    })
-    .catch((err) => {
-      console.log(err);
-      // uni.hideLoading();
-    });
-};
-// 复制邀请码
-const copyCode = () => {
-  uni.setClipboardData({
-    data: agentInfo.value.inviteCode,
-    success: () => {
-      uni.showToast({ title: "复制成功", icon: "success" });
-    },
-  });
-};
-
-// 保存海报
-const savePoster = () => {
-  uni.showLoading({ title: "生成海报中", mask: true });
-  
-  // 延迟执行确保DOM渲染完成
-  setTimeout(() => {
-    // 使用固定的画布尺寸
-    const canvasWidth = 345;  // 690rpx的一半
-    const canvasHeight = 643; // 1286rpx的一半
-    
-    // 创建canvas上下文
-    const ctx = uni.createCanvasContext('posterCanvas');
-    
-    // 设置画布背景
-    ctx.setFillStyle('#ffffff');
-    ctx.fillRect(0, 0, canvasWidth, canvasHeight);
-    
-    // 绘制背景图(需要先下载网络图片)
-    uni.getImageInfo({
-      // 图片地址 https://shop.xiaocaituan.com/image/bg_poster.png
-      src: "https://shop.xiaocaituan.com/image/bg_poster.png",
-      success: (bgRes) => {
-        // 绘制背景图
-        ctx.drawImage(bgRes.path, 0, 0, canvasWidth, canvasHeight);
-        
-        // 绘制用户头像(如果存在)
-        if (agentInfo.value.headPhoto) {
-          uni.getImageInfo({
-            src: agentInfo.value.headPhoto,
-            success: (avatarRes) => {
-              // 绘制圆形头像并获取位置信息
-              const avatarInfo = drawAvatar(ctx, avatarRes, canvasWidth, canvasHeight);
-              
-              // 继续绘制其他元素,并传递头像信息用于对齐
-              drawRemainingElements(ctx, canvasWidth, canvasHeight, avatarInfo);
-            },
-            fail: () => {
-              // 如果头像加载失败,继续绘制其他元素
-              drawRemainingElements(ctx, canvasWidth, canvasHeight, null);
-            }
-          });
-        } else {
-          // 没有头像时直接绘制其他元素
-          drawRemainingElements(ctx, canvasWidth, canvasHeight, null);
-        }
-      },
-      fail: () => {
-        uni.hideLoading();
-        uni.showToast({ title: "背景图加载失败", icon: "none" });
-      }
-    });
-  }, 300);
-};
-
-// 绘制剩余元素
-const drawRemainingElements = (ctx, canvasWidth, canvasHeight, avatarInfo) => {
-  // 设置字体样式
-  ctx.setFontSize(17); // 34rpx ≈ 17px
-  ctx.setFillStyle('#ffffff');
-  
-  // 根据头像位置精确对齐文字
-  let textY1, textY2;
-  if (avatarInfo) {
-    // 头像中心点Y坐标
-    const avatarCenterY = avatarInfo.y;
-    // 根据字体大小调整文字基线位置
-    // 第一行文字基线在头像中心点上方一点
-    textY1 = avatarCenterY - 8;
-    // 第二行文字基线在头像中心点下方一点
-    textY2 = avatarCenterY + 12;
-  } else {
-    // 如果没有头像信息,使用默认位置
-    textY1 = 42;
-    textY2 = 65;
-  }
-  
-  // 文字往下移3px
-  textY1 += 3;
-  textY2 += 3;
-  
-  ctx.fillText(`省级代理:${agentInfo.value.realName}`, 75, textY1);
-  
-  ctx.setFontSize(14); // 28rpx ≈ 14px
-  ctx.setFillStyle('rgba(255,255,255,0.7)');
-  ctx.fillText(`邀请码:${agentInfo.value.inviteCode}`, 75, textY2);
-  
-  // 绘制邀请码大字
-  ctx.setFontSize(14); // 28rpx ≈ 14px
-  ctx.setFillStyle('#fb2914');
-  ctx.setTextAlign('center');
-  // 根据页面CSS样式精确计算位置:
-  // padding-top: 22rpx (≈ 11px)
-  // 头像高度: 107rpx (≈ 53.5px)
-  // .poster-user-info .poster-user-inviteCode margin-top: 6rpx (≈ 3px)
-  // .poster-code margin-top: 448rpx (≈ 224px)
-  // 总位置 = 11 + 53.5 + 3 + 224 = 300px
-  ctx.fillText(agentInfo.value.inviteCode, canvasWidth / 2, 300);
-  
-  // 绘制二维码(如果存在)
-  if (qrCode.value) {
-    uni.getImageInfo({
-      src: qrCode.value,
-      success: (qrRes) => {
-        // 计算二维码位置(居中)
-        const qrWidth = 156; // 312rpx ≈ 156px
-        const qrHeight = 156; // 312rpx ≈ 156px
-        // 二维码位置应该在海报中间邀请码下方
-        // .poster-qrcode margin: 53rpx (≈ 26.5px)
-        // 位置约为 291.5 + 20(邀请码高度估算) + 26.5 = 334px
-        const qrY = 334;
-        const qrX = (canvasWidth - qrWidth) / 2;
-        
-        // 绘制带圆角的白色背景
-        const radius = 5; // 5px圆角
-        ctx.beginPath();
-        ctx.moveTo(qrX - 5 + radius, qrY - 5);
-        ctx.lineTo(qrX + qrWidth + 5 - radius, qrY - 5);
-        ctx.quadraticCurveTo(qrX + qrWidth + 5, qrY - 5, qrX + qrWidth + 5, qrY - 5 + radius);
-        ctx.lineTo(qrX + qrWidth + 5, qrY + qrHeight + 5 - radius);
-        ctx.quadraticCurveTo(qrX + qrWidth + 5, qrY + qrHeight + 5, qrX + qrWidth + 5 - radius, qrY + qrHeight + 5);
-        ctx.lineTo(qrX - 5 + radius, qrY + qrHeight + 5);
-        ctx.quadraticCurveTo(qrX - 5, qrY + qrHeight + 5, qrX - 5, qrY + qrHeight + 5 - radius);
-        ctx.lineTo(qrX - 5, qrY - 5 + radius);
-        ctx.quadraticCurveTo(qrX - 5, qrY - 5, qrX - 5 + radius, qrY - 5);
-        ctx.closePath();
-        ctx.setFillStyle('#ffffff');
-        ctx.fill();
-        
-        // 绘制二维码(保持直角)
-        ctx.drawImage(qrRes.path, qrX, qrY, qrWidth, qrHeight);
-        
-        // 完成绘制并保存
-        finishDrawing(ctx);
-      },
-      fail: () => {
-        // 二维码加载失败也继续完成绘制
-        finishDrawing(ctx);
-      }
-    });
-  } else {
-    // 没有二维码直接完成绘制
-    finishDrawing(ctx);
-  }
-};
-
-// 完成绘制并保存图片
-const finishDrawing = (ctx) => {
-  // 执行绘制
-  ctx.draw(false, () => {
-    // 延迟一小段时间确保绘制完成
-    setTimeout(() => {
-      uni.canvasToTempFilePath({
-        canvasId: 'posterCanvas',
-        fileType: 'png',
-        quality: 1,
-        success: (res) => {
-          // 保存到相册
-          uni.saveImageToPhotosAlbum({
-            filePath: res.tempFilePath,
-            success: () => {
-              uni.hideLoading();
-              uni.showToast({ title: "保存成功", icon: "success" });
-            },
-            fail: (err) => {
-              uni.hideLoading();
-              console.error("保存失败:", err);
-              uni.showToast({ title: "保存失败", icon: "none" });
-            }
-          });
-        },
-        fail: (err) => {
-          uni.hideLoading();
-          console.error("生成图片失败:", err);
-          uni.showToast({ title: "生成失败", icon: "none" });
-        }
-      });
-    }, 300);
-  });
-};
-
-// 修正头像绘制逻辑
-const drawAvatar = (ctx, avatarRes, canvasWidth, canvasHeight) => {
-  // 头像尺寸:107rpx ≈ 53.5px
-  const avatarSize = 53.5;
-  // 左边距:30rpx ≈ 15px
-  const avatarX = 15 + avatarSize/2;
-  // 上边距:22rpx ≈ 11px
-  const avatarY = 11 + avatarSize/2;
-  
-  // 绘制圆形头像
-  ctx.save();
-  ctx.beginPath();
-  ctx.arc(avatarX, avatarY, avatarSize/2, 0, 2 * Math.PI);
-  ctx.closePath(); // 添加closePath确保路径闭合
-  ctx.clip();
-  ctx.drawImage(avatarRes.path, avatarX - avatarSize/2, avatarY - avatarSize/2, avatarSize, avatarSize);
-  ctx.restore();
-  
-  // 绘制头像边框(与CSS样式一致)
-  ctx.setStrokeStyle('#ffffff');
-  ctx.setLineWidth(2); // 4rpx ≈ 2px
-  ctx.beginPath();
-  ctx.arc(avatarX, avatarY, avatarSize/2, 0, 2 * Math.PI);
-  ctx.stroke();
-  
-  // 返回头像的位置信息,便于其他元素对齐
-  return {
-    x: avatarX,
-    y: avatarY,
-    size: avatarSize
-  };
-};
-
-onLoad(() => {
-  getAgentInfo();
-  getQrCode();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  box-sizing: border-box;
-  min-height: 100vh;
-  background-color: #f7f8fa;
-  padding: 45rpx 30rpx;
-  .container {
-    position: relative;
-    .poster {
-      width: 690rpx;
-      min-height: 1286rpx;
-      background: url("https://shop.xiaocaituan.com/image/bg_poster.png");
-      background-repeat: no-repeat;
-      background-size: 100% 1286rpx;
-      position: relative;
-      padding: 22rpx 30rpx;
-      box-sizing: border-box;
-      .poster-user {
-        .poster-user-img {
-          width: 107rpx;
-          height: 107rpx;
-          border: 4rpx solid #ffffff;
-          border-radius: 50%;
-          margin-right: 10rpx;
-        }
-        .poster-user-info {
-          .poster-user-name {
-            font-size: 34rpx;
-            //   font-weight: 700;
-            color: #ffffff;
-          }
-          .poster-user-inviteCode {
-            font-size: 28rpx;
-            color: #ffffff;
-            opacity: 0.7;
-            margin-top: 6rpx;
-          }
-        }
-      }
-      .poster-code {
-        font-size: 28rpx;
-        text-align: center;
-        color: #fb2914;
-        margin-top: 448rpx;
-      }
-      .poster-qrcode {
-        width: 312rpx;
-        height: 312rpx;
-        margin: 53rpx auto;
-        text-align: center;
-        .poster-qrcode-image {
-          width: 312rpx;
-          height: 312rpx;
-          background-color: #ffffff;
-          border-radius: 10rpx;
-        }
-      }
-    }
-    .poster-btn {
-      position: absolute;
-      width: 690rpx;
-      left: 0;
-      bottom: 70rpx;
-      box-sizing: border-box;
-      .poster-btn-copy,
-      .poster-btn-save {
-        width: 294rpx;
-        height: 85rpx;
-        line-height: 85rpx;
-        text-align: center;
-        border-radius: 40rpx;
-        font-size: 30rpx;
-      }
-      .poster-btn-copy {
-        background: #ffffff;
-        border: 1rpx solid #cccccc;
-        color: #333333;
-      }
-      .poster-btn-save {
-        background: #ffb300;
-        color: #ffffff;
-      }
-    }
-  }
-}
-</style>

+ 0 - 269
pages/agencyCenter/promotionShop.vue

@@ -1,269 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="header">
-      <uv-navbar
-        title="推广店铺"
-        placeholder
-        bgColor="transparent"
-        leftIconColor="#ffffff"
-        titleStyle="color: #ffffff;"
-        autoBack
-      />
-      <view class="statistics-content u-flex-center">
-        <view class="statistics-item">
-          <view class="statistics-item-value">{{
-            info.totalStatisticsBusinessCount || 0
-          }}</view>
-          <view class="statistics-item-title u-flex-center">
-            <image
-              class="icon"
-              :src="$handleImageUrl('/personalCenter/agent/icon_shop1.png')"
-              mode=""
-            >
-            </image>
-            <text class="text">店铺数量</text>
-          </view>
-        </view>
-        <view class="statistics-item">
-          <view class="statistics-item-value">
-            <text class="unit">¥</text>
-            <text class="text">{{ info.totalStatisticsAmount || "0.00" }}</text>
-          </view>
-          <view class="statistics-item-title u-flex-center">
-            <image
-              class="icon1"
-              :src="$handleImageUrl('/personalCenter/agent/icon_money.png')"
-              mode=""
-            >
-            </image>
-            <text class="text">合计收益</text>
-          </view>
-        </view>
-      </view>
-    </view>
-    <scroll-view
-      scroll-y
-      class="scroll-view"
-      @scrolltolower="scrolltolower"
-      refresher-enabled
-      @refresherpulling="onRefresh"
-      @refresherrefresh="onRestore"
-      :refresher-triggered="triggered"
-    >
-      <view class="main-list">
-        <view
-          class="list-item u-flex-center"
-          v-for="(item, index) in dataList"
-          :key="index"
-        >
-          <image class="item-img" :src="item.image" mode="aspectFill"> </image>
-          <view class="item-info">
-            <view class="item-title">{{ item.businessName }}</view>
-            <view class="item-name"
-              >{{ item.legalName }} {{ item.customerServicePhone }}</view
-            >
-            <view class="item-desc">
-              <text class="iconfont">&#xe990;</text>
-              <!-- item.provinceName + item.cityName + item.areaName +  -->
-              <text>{{
-                item.address
-              }}</text>
-            </view>
-            <view class="item-tiem">
-              <text class="iconfont">&#xe63b;</text>
-              <text>入驻时间:{{ item.createTime }}</text>
-            </view>
-            <view class="item-num">
-              <text class="unit">¥</text>
-              <text>{{ item.agentIncome || "0.00" }}</text>
-            </view>
-          </view>
-        </view>
-        <noData
-          v-if="dataList.length == 0"
-          :config="{ top: 5, content: '暂无数据~' }"
-        ></noData>
-        <loadMore v-if="dataList.length > 0" :status="status"></loadMore>
-      </view>
-    </scroll-view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import {
-  agentBusinessPage_Api,
-  agentBusinessStatistics_Api,
-} from "@/api/agencyCenter";
-const triggered = ref(false);
-const info = ref({});
-const dataList = ref([]);
-const params = ref({ pageNum: 1, pageSize: 10 });
-const status = ref("loading");
-
-const getList = async () => {
-  uni.showLoading({ title: "加载中..." });
-  await agentBusinessPage_Api(params.value).then((res) => {
-    if (res && res.code == 200) {
-      uni.stopPullDownRefresh();
-      dataList.value = dataList.value.concat(res.rows);
-      if (res.total <= dataList.value.length) {
-        status.value = "noMore";
-      } else {
-        status.value = "more";
-      }
-    }
-  });
-  uni.hideLoading();
-};
-
-const getInfo = async () => {
-  agentBusinessStatistics_Api().then((res) => {
-    if (res && res.code == 200) {
-      info.value = res.data;
-    }
-  });
-};
-
-// 重置
-const reset = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-// 自定义下拉刷新控件被下拉
-const onRefresh = () => {
-  triggered.value = true;
-};
-// 自定义下拉刷新被触发
-const onRestore = () => {
-  reset();
-  setTimeout(() => {
-    triggered.value = false;
-  }, 500);
-};
-
-// 滚动到底部
-const scrolltolower = () => {
-  console.log("scrolltolower");
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-};
-
-onLoad((options) => {
-  getInfo();
-  getList();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  display: flex;
-  flex-direction: column; /* 垂直排列子元素 */
-  height: 100vh;
-  box-sizing: border-box;
-  background: #f7f7f7;
-
-  .header {
-    background: linear-gradient(180deg, #ea4026, #eb5153 69%);
-    .statistics-content {
-      padding: 56rpx 54rpx 94rpx 54rpx;
-      box-sizing: border-box;
-      color: #ffffff;
-
-      .statistics-item {
-        width: 50%;
-        padding-right: 10rpx;
-        .statistics-item-value {
-          font-size: 48rpx;
-          font-weight: normal;
-          .unit {
-            font-size: 28rpx;
-            margin-right: 5rpx;
-          }
-        }
-        .statistics-item-title {
-          font-size: 28rpx;
-          font-weight: 700;
-          margin-top: 28rpx;
-          .icon,
-          .icon1 {
-            height: 33rpx;
-            margin-right: 5rpx;
-          }
-          .icon {
-            width: 33rpx;
-          }
-          .icon1 {
-            width: 29rpx;
-          }
-        }
-      }
-    }
-  }
-  .scroll-view {
-    // flex-grow: 1; /* 占据剩余空间 */
-    background: #f7f7f7;
-    border-radius: 40rpx 40rpx 0px 0px;
-    margin-top: -40rpx;
-    height: calc(100vh - 282rpx - 44px - env(safe-area-inset-bottom) - 25px);
-    // .scroll-view {
-    //   height: 50vh;
-    // }
-    .main-list {
-      padding: 40rpx 30rpx 20rpx 30rpx;
-      .list-item {
-        padding: 30rpx 24rpx 30rpx 30rpx;
-        box-sizing: border-box;
-        margin-bottom: 20rpx;
-        background-color: #ffffff;
-        border-radius: 20rpx;
-        .item-img {
-          width: 210rpx;
-          height: 210rpx;
-          border-radius: 10rpx;
-          flex-shrink: 0;
-          margin-right: 30rpx;
-        }
-        .item-info {
-          flex: 1;
-          margin-right: 20rpx;
-          .item-title {
-            font-size: 28rpx;
-            font-weight: 700;
-            color: #1a1a1a;
-            margin-bottom: 10rpx;
-          }
-          .item-name {
-            font-size: 24rpx;
-            color: #666666;
-            margin-bottom: 10rpx;
-          }
-          .item-desc,
-          .item-tiem {
-            font-size: 24rpx;
-            color: #999999;
-            .iconfont {
-              margin-right: 10rpx;
-            }
-          }
-          .item-desc {
-            margin-bottom: 10rpx;
-          }
-          .item-num {
-            margin-top: 20rpx;
-            font-size: 34rpx;
-            color: #da4f4f;
-            .unit {
-              font-size: 24rpx;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-</style>

+ 0 - 70
pages/agencyCenter/regionalAgent.vue

@@ -1,70 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="top ql-editor-box">
-      <uv-parse :content="content"></uv-parse>
-    </view>
-    <view class="float-view">
-      <view class="float-view-text">
-        *需要通过省级代理的邀请码加入或联系平台授权
-      </view>
-      <view class="u-btn-two" @click="JoinNow">立即加入</view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { protocolInfo } from "@/api/index";
-
-const content = ref("");
-
-const getShopConfig = () => {
-  protocolInfo({ code: "proxy_rules" }).then((res) => {
-    if (res.code == 200) {
-      content.value = res.data.protocolContent;
-    }
-  });
-};
-
-const JoinNow = () => {
-  uni.navigateTo({
-    url: "/pages/agencyCenter/joinAgent",
-  });
-};
-
-onLoad(() => {
-  getShopConfig();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  box-sizing: border-box;
-  position: relative;
-  padding: 20rpx;
-  padding-bottom: 200rpx;
-  .float-view {
-    width: 750rpx;
-    box-sizing: border-box;
-    padding: 20rpx 60rpx 30rpx 60rpx;
-    position: fixed;
-    left: 0;
-    bottom: 0;
-    background-color: #ffffff;
-    border-top: 1rpx solid #eaeaea;
-    .float-view-text {
-      font-size: 28rpx;
-      color: #808080;
-      margin-bottom: 20rpx;
-      text-align: center;
-    }
-    .u-btn-two {
-      height: 90rpx;
-      line-height: 90rpx;
-      border-radius: 45rpx;
-    }
-  }
-}
-</style>

+ 0 - 249
pages/agencyCenter/revenue/list.vue

@@ -1,249 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="header">
-      <view class="header-title u-flex-center-sb">
-        <text class="title">我的收益</text>
-        <button class="button u-flex-center" @click="toWithdraw">
-          <text class="text">去提现</text>
-          <uv-icon name="arrow-right" color="#eb5153" size="28rpx"></uv-icon>
-        </button>
-      </view>
-      <view class="header-content u-flex-center">
-        <view class="header-content-item">
-          <view class="content-item-num">
-            <text class="unit">¥</text>
-            <text class="num">{{ agentAmount.balance || "0.00" }}</text>
-          </view>
-          <text class="text">余额(元)</text>
-        </view>
-        <view class="header-content-item">
-          <view class="content-item-num">
-            <text class="unit">¥</text>
-            <text class="num">{{
-              agentAmount.totalStatisticsAmount || "0.00"
-            }}</text>
-          </view>
-          <text class="text">累计收益(元)</text>
-        </view>
-      </view>
-    </view>
-    <view class="main-content">
-      <view class="content-title u-flex-center">
-        <image
-          class="content-title-img"
-          :src="$handleImageUrl('/personalCenter/wallet/icon1.png')"
-          mode=""
-        >
-        </image>
-        <view class="text">余额明细</view>
-      </view>
-
-      <view
-        class="content-item u-flex-center-sb"
-        v-for="(item, index) in dataList"
-        :key="index"
-      >
-        <view class="item-left">
-          <view class="name">{{ item.remark }}</view>
-          <view class="time">{{ item.createTime }}</view>
-        </view>
-        <view class="num" style="color: #ff0000" v-if="item.billType == 1"
-          >+{{ item.entryValue }}</view
-        >
-        <view class="num" v-else>-{{ item.entryValue }}</view>
-      </view>
-
-      <noData v-if="dataList == 0" :config="{ top: 5, content: '暂无数据~' }" />
-      <loadMore v-if="dataList.length > 0" :status="status" />
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onReachBottom, onPullDownRefresh, onShow } from "@dcloudio/uni-app";
-import { agentAmount_Api, balanceRecordPage_Api } from "@/api/agencyCenter.js";
-
-const status = ref("loading");
-const params = ref({
-  pageNum: 1,
-  pageSize: 15,
-});
-const dataList = ref([]);
-
-const agentAmount = ref({});
-const getAgentAmount = async () => {
-  agentAmount_Api().then((res) => {
-    if (res.code === 200 && res.data) {
-      if (res.data.totalAmount != agentAmount.value.totalAmount || res.data.balance != agentAmount.value.balance) {
-        reload();
-      }
-      agentAmount.value = res.data || {};
-    }
-  });
-};
-
-const getList = () => {
-  uni.showLoading({ title: "加载中..." });
-  balanceRecordPage_Api({
-    ...params.value,
-  })
-    .then((res) => {
-      if (res && res.code == 200) {
-        uni.hideLoading();
-        uni.stopPullDownRefresh();
-        dataList.value = dataList.value.concat(res.rows);
-        // total.value = res.total || 0;
-        if (res.total <= dataList.value.length) {
-          status.value = "noMore";
-        } else {
-          status.value = "more";
-        }
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-      uni.stopPullDownRefresh();
-      console.log(err);
-    });
-};
-
-// 重新加载
-const reload = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-const toWithdraw = () => {
-  uni.navigateTo({
-    url: "/pages/user/wallet/reflect?pageType=2",
-  });
-};
-
-onLoad(() => {
-  // getAgentAmount();
-  // getList();
-});
-
-onShow(() => {
-  getAgentAmount();
-})
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reload();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  min-height: 100vh;
-  background: #f7f7f7;
-  box-sizing: border-box;
-  padding-top: 40rpx;
-  display: flex;
-  flex-direction: column;
-  .header {
-    flex-shrink: 0;
-    padding: 20rpx 0;
-    box-sizing: border-box;
-    width: 690rpx;
-    // height: 291rpx;
-    background: #ffffff;
-    border-radius: 20rpx;
-    margin: 0 auto;
-    .header-title {
-      padding: 20rpx 24rpx 20rpx 30rpx;
-      border-bottom: 1rpx solid #e6e6e6;
-      .title {
-        font-size: 30rpx;
-        font-weight: 700;
-        color: #1a1a1a;
-      }
-      .button {
-        min-width: 139rpx;
-        height: 51rpx;
-        line-height: 51rpx;
-        background: #ffffff;
-        border: 1rpx solid #eb5153;
-        border-radius: 27rpx;
-        color: #eb5153;
-        font-size: 24rpx;
-        margin: 0;
-      }
-    }
-    .header-content {
-      padding: 32rpx 24rpx;
-      .header-content-item {
-        flex: 1;
-        .content-item-num {
-          color: #eb5153;
-          margin-bottom: 15rpx;
-          .unit {
-            font-size: 28rpx;
-          }
-          .num {
-            font-size: 48rpx;
-            font-weight: 700;
-          }
-        }
-        .text {
-          font-size: 26rpx;
-          color: #1a1a1a;
-        }
-      }
-    }
-  }
-  .main-content {
-    flex: 1;
-    // height: 1079px;
-    background: linear-gradient(180deg, #fbe6e9, #ffffff 120rpx);
-    border-radius: 40rpx 40rpx 0rpx 0rpx;
-    margin-top: 40rpx;
-    padding: 30rpx 54rpx;
-    box-sizing: border-box;
-    .content-title {
-      .content-title-img {
-        width: 61rpx;
-        height: 48rpx;
-      }
-      .text {
-        font-size: 34rpx;
-        color: #1a1a1a;
-        font-weight: 700;
-        margin-left: 10rpx;
-      }
-    }
-    .content-item {
-      padding: 30rpx 0;
-      border-bottom: 1rpx solid #f0f0f0;
-      .item-left {
-        flex: 1;
-        margin-right: 10rpx;
-        .name {
-          font-size: 28rpx;
-          font-weight: 400;
-          color: #1a1a1a;
-          margin-bottom: 5rpx;
-        }
-        .time {
-          font-size: 24rpx;
-          color: #999999;
-        }
-      }
-      .num {
-        flex-shrink: 0;
-        font-size: 30rpx;
-        font-weight: 700;
-        color: #000000;
-      }
-    }
-  }
-}
-</style>

+ 0 - 70
pages/agencyCenter/signature.vue

@@ -1,70 +0,0 @@
-<template>
-  <view class="content">
-    <view style="border: 1rpx dashed #555555">
-      <sin-signature
-        ref="sig"
-        v-model="content"
-        @input="inputChange"
-        :pages="true"
-      ></sin-signature>
-    </view>
-    <!-- <view class="u-btn-two" @click="handleConfirm">确认签名</view> -->
-  </view>
-</template>
-
-<script setup>
-import { ref, onMounted, getCurrentInstance } from "vue";
-import { commonUploadOrient_api } from "@/api/index.js";
-const content = ref("");
-const eventChannel = ref(null);
-
-const inputChange = (e) => {
-  // console.log(e)
-  content.value = e;
-  handleConfirm();
-};
-
-const handleConfirm = () => {
-  console.log("content", content.value);
-  // return;
-  if (!content.value) {
-    return uni.$uv.toast("请先绘制签名");
-  }
-  uni.showLoading({
-    title: "加载中",
-    mask: true,
-  });
-  commonUploadOrient_api(content.value)
-    .then((res) => {
-      uni.hideLoading();
-      if (res.code == 200 && res.data) {
-        eventChannel.value.emit("confirm", {
-          data: res.data.url,
-        });
-        uni.navigateBack();
-      }
-    })
-    .catch((err) => {
-      // uni.hideLoading();
-    });
-  return;
-  eventChannel.value.emit("confirm", {
-    data: content.value,
-  });
-  uni.navigateBack();
-};
-
-onMounted(() => {
-  const instance = getCurrentInstance().proxy;
-  eventChannel.value = instance.getOpenerEventChannel();
-});
-</script>
-
-<style lang="scss" scoped>
-.content {
-  padding: 30rpx;
-  .u-btn-two {
-    margin-top: 50rpx;
-  }
-}
-</style>

+ 0 - 324
pages/agencyCenter/storeReview/details.vue

@@ -1,324 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="form-container">
-      <view class="form-step">
-        <view class="step-tip">
-          <text>审核状态:</text>
-          <text v-if="formData.agentAuditStatus == 0">代理商待审核</text>
-          <text v-if="formData.agentAuditStatus == 10" style="color: #3775f6"
-            >代理商审核通过</text
-          >
-          <text v-if="formData.agentAuditStatus == 5" style="color: red"
-            >代理商审核拒绝</text
-          >
-
-          <text v-if="formData.auditStatus == 0">,平台待审核</text>
-          <text v-if="formData.auditStatus == 10" style="color: #3775f6"
-            >,平台审核通过</text
-          >
-          <text v-if="formData.auditStatus == 5" style="color: red"
-            >,平台审核拒绝</text
-          >
-        </view>
-        <view
-          class="step-tip"
-          v-if="
-            formData.agentAuditResult &&
-            (formData.auditStatus == 5 || formData.agentAuditStatus == 5)
-          "
-          style="margin-top: 20rpx"
-        >
-          <text>审核结果:</text>
-          <text>{{ formData.agentAuditResult || "--" }}</text>
-        </view>
-      </view>
-      <view class="form-list">
-        <view class="form-list-title">
-          <text>门店关系</text>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">账户码:</view>
-          <view class="form-value">
-            {{ formData.accountCode || "--" }}
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">店铺类型:</view>
-          <view class="form-value">
-            <text v-if="formData.businessType == 1">普通店铺</text>
-            <text v-if="formData.businessType == 2">总店商家</text>
-            <text v-if="formData.businessType == 3">分店商家</text>
-          </view>
-        </view>
-        <view
-          class="form-item u-flex-center-sb"
-          v-if="formData.businessType == 3"
-        >
-          <view class="form-label">总店邀请:</view>
-          <view class="form-value">
-            {{ formData.parentBusinessCode || "--" }}
-          </view>
-        </view>
-      </view>
-
-      <view class="form-list">
-        <view class="form-list-title">
-          <text>企业信息</text>
-        </view>
-        <view class="form-item">
-          <view class="form-label">营业执照:</view>
-          <view class="form-value upload-view">
-            <uploadImg
-              v-model="formData.businessLicenseImgs"
-              key="businessLicenseImgs"
-              name="businessLicenseImgs"
-              type="view"
-            />
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">企业名称:</view>
-          <view class="form-value">
-            {{ formData.enterpriseName || "--" }}
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">统一信用代码:</view>
-          <view class="form-value">
-            {{ formData.uscCode || "--" }}
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">经营范围:</view>
-          <view class="form-value">
-            {{ formData.businessScope || "--" }}
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">所属地区:</view>
-          <view class="form-value">
-            <!-- <input placeholder="" v-model="formData.region" /> -->
-            <text v-if="formData.provinceName">{{
-              formData.provinceName + formData.cityName + formData.areaName
-            }}</text>
-            <text v-else>--</text>
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">详细地址:</view>
-          <view class="form-value">
-            {{ formData.address || "--" }}
-          </view>
-        </view>
-      </view>
-
-      <view class="form-list">
-        <view class="form-list-title">
-          <text>法人信息</text>
-        </view>
-        <view class="form-item">
-          <view class="form-label">法人身份证:</view>
-          <view class="form-value upload-view u-flex-center-sb">
-            <view>
-              <uploadImg
-                v-model="formData.legalIdCardFrontUrl"
-                key="legalIdCardFrontUrl"
-                name="legalIdCardFrontUrl"
-                type="view"
-              />
-            </view>
-            <view>
-              <uploadImg
-                v-model="formData.legalIdCardBackUrl"
-                key="legalIdCardBackUrl"
-                name="legalIdCardBackUrl"
-                type="view"
-              />
-            </view>
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">法人姓名:</view>
-          <view class="form-value">
-            <text>{{ formData.legalName || "--" }}</text>
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">身份证号码:</view>
-          <view class="form-value">
-            <text>{{ formData.legalIdCard || "--" }}</text>
-          </view>
-        </view>
-      </view>
-
-      <view class="form-list">
-        <view class="form-list-title">
-          <text>店铺信息</text>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">店铺名称:</view>
-          <view class="form-value">
-            {{ formData.businessName || "--" }}
-          </view>
-        </view>
-        <!-- <view class="form-item u-flex-center-sb" @click="goMap">
-          <view class="form-label">店铺地图选址:</view>
-          <view class="form-value">
-            <text v-if="formData.latitude && formData.longitude">已选</text>
-            <text class="iconfont" v-else>&#xe990;</text>
-          </view>
-        </view> -->
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">客服电话:</view>
-          <view class="form-value">
-            {{ formData.customerServicePhone || "--" }}
-          </view>
-        </view>
-        <view class="form-item u-flex-center-sb">
-          <view class="form-label">营业时间:</view>
-          <view class="form-value">
-            {{ formData.businessHours || "--" }}
-          </view>
-        </view>
-        <view class="form-item">
-          <view class="form-label">店铺介绍:</view>
-          <view class="form-value textarea">
-            {{ formData.description || "--" }}
-          </view>
-        </view>
-      </view>
-
-      <view class="form-list">
-        <view class="form-list-title">
-          <text>申请材料</text>
-        </view>
-        <view class="form-item">
-          <view class="form-label">店招照:</view>
-          <view class="form-value upload-view">
-            <uploadImg
-              name="image"
-              v-model="formData.image"
-              key="image"
-              type="view"
-            />
-          </view>
-        </view>
-        <view class="form-item">
-          <view class="form-label">店内营业场所图:</view>
-          <view class="form-value upload-view">
-            <uploadImg
-              name="innerImages"
-              v-model="formData.innerImages"
-              key="innerImages"
-              type="view"
-            />
-          </view>
-        </view>
-      </view>
-    </view>
-    <view class="float" v-if="formData.agentAuditStatus == 0">
-      <view class="u-btn-two" @click="handleReview">审核</view>
-    </view>
-    <reviewPopup
-      ref="reviewPopupRef"
-      @confirm="handleConfirm"
-      title="店铺入驻审核"
-    />
-  </view>
-</template>
-
-<script setup>
-import { ref, onMounted, getCurrentInstance } from "vue";
-import { onLoad } from "@dcloudio/uni-app";
-import { businessApplyInfo, businessApplyAudit_Api } from "@/api/index.js";
-import reviewPopup from "../components/reviewPopup.vue";
-
-const reviewPopupRef = ref(null);
-const formData = ref({});
-const eventChannel = ref(null);
-onMounted(() => {
-  const instance = getCurrentInstance().proxy;
-  eventChannel.value = instance.getOpenerEventChannel();
-});
-const handleReview = () => {
-  reviewPopupRef.value.open({
-    auditStatus: 10,
-  });
-};
-
-const handleConfirm = (form) => {
-  console.log(form);
-  uni.showLoading({
-    title: "审核中...",
-    mask: true,
-  });
-  businessApplyAudit_Api({
-    ...form,
-    businessAuditId: formData.value.businessAuditId,
-  })
-    .then((res) => {
-      console.log(res);
-      uni.hideLoading();
-      if (res.code === 200) {
-        uni.showToast({
-          title: "审核成功",
-          icon: "success",
-        });
-        try {
-          eventChannel.value.emit("update");
-        } catch (error) {
-          
-        }
-        setTimeout(() => {
-          getInfo(formData.value.businessAuditId);
-        }, 500);
-      }
-    })
-    .catch((err) => {
-      console.log(err);
-      // uni.hideLoading();
-    });
-};
-
-const getInfo = (businessAuditId) => {
-  businessApplyInfo(businessAuditId).then((res) => {
-    console.log(res);
-    if (res.code === 200) {
-      formData.value = res.data || {};
-    }
-  });
-};
-
-onLoad((options) => {
-  console.log("onLoad", options);
-  getInfo(options.businessAuditId);
-  //   setTimeout(() => {
-  //     handleReview();
-  //   }, 500);
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  box-sizing: border-box;
-  background: #f7f7f7;
-  min-height: 100vh;
-  padding-bottom: 180rpx;
-  position: relative;
-  .float {
-    position: fixed;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    z-index: 10;
-    width: 750rpx;
-    box-sizing: border-box;
-    padding: 28rpx 60rpx;
-    background: #ffffff;
-    .u-btn-two {
-      height: 90rpx;
-      line-height: 90rpx;
-    }
-  }
-}
-</style>

+ 0 - 180
pages/agencyCenter/storeReview/list.vue

@@ -1,180 +0,0 @@
-<template>
-  <view class="app-container">
-    <uv-sticky bgColor="#f7f7f7">
-      <uv-tabs
-        :list="tabList"
-        :lineColor="`url('${$handleImageUrl('/order/tabs_line.png')}') 100% 100%`"
-        lineWidth="64rpx"
-        lineHeight="10rpx"
-        activeStyle="color: #ff0000;font-weight: 700;"
-        inactiveStyle="color: #1a1a1a;font-weight: 400;"
-        :scrollable="false"
-        @change="tabChange"
-        customStyle="padding-bottom: 10rpx;"
-      ></uv-tabs>
-    </uv-sticky>
-
-    <view class="main-list">
-      <view
-        class="list-item u-flex-center"
-        v-for="(item, index) in dataList"
-        :key="index"
-        @click="getInfo(item.businessAuditId)"
-      >
-        <image class="item-img" :src="item.image" mode="aspectFill"> </image>
-        <view class="item-info">
-          <view class="item-title">{{ item.businessName }}</view>
-          <view class="item-name"
-            >{{ item.contactPerson }} {{ item.contactPhone }}</view
-          >
-          <view class="item-desc">
-            <text class="iconfont">&#xe990;</text>
-            <text>地址:{{ item.address }}</text>
-          </view>
-          <view class="item-tiem">
-            <text class="iconfont">&#xe63b;</text>
-            <text>提交时间:{{ item.createTime }}</text>
-          </view>
-        </view>
-        <view class="item-right">
-          <uv-icon name="arrow-right" color="#666666" size="20"></uv-icon>
-        </view>
-      </view>
-      <noData
-        v-if="dataList.length == 0"
-        :config="{ top: 20, content: '暂无数据~' }"
-      ></noData>
-      <loadMore v-if="dataList.length > 0" :status="status"></loadMore>
-    </view>
-  </view>
-</template>
-
-<script setup>
-import { ref } from "vue";
-import { onLoad, onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
-import {
-  businessApplyWaitPage_Api,
-  businessApplyAuditPage_Api,
-} from "@/api/index";
-
-const tabList = ref([{ name: "待审核" }, { name: "已审核" }]);
-const tabIndex = ref(0);
-
-const dataList = ref([]);
-const params = ref({ pageNum: 1, pageSize: 10 });
-const status = ref("loading");
-
-const tabChange = (e) => {
-  console.log(e.index);
-  tabIndex.value = e.index;
-  reset();
-};
-const getList = async () => {
-  uni.showLoading({ title: "加载中..." });
-  let url =
-    tabIndex.value == 0
-      ? businessApplyWaitPage_Api
-      : businessApplyAuditPage_Api;
-  await url(params.value).then((res) => {
-    if (res && res.code == 200) {
-      uni.stopPullDownRefresh();
-      dataList.value = dataList.value.concat(res.rows);
-      if (res.total <= dataList.value.length) {
-        status.value = "noMore";
-      } else {
-        status.value = "more";
-      }
-    }
-  });
-  uni.hideLoading();
-};
-
-// 重置
-const reset = () => {
-  params.value.pageNum = 1;
-  dataList.value = [];
-  getList();
-};
-
-const getInfo = (businessAuditId) => {
-  // console.log(businessAuditId);
-  uni.navigateTo({
-    url: `/pages/agencyCenter/storeReview/details?businessAuditId=${businessAuditId}`,
-    events: {
-      update: () => {
-        console.log("accept");
-        reset();
-      },
-    },
-  });
-};
-
-onLoad((options) => {
-  getList();
-});
-
-onReachBottom(() => {
-  if (status.value !== "loading" && status.value !== "noMore") {
-    params.value.pageNum++;
-    getList();
-  }
-});
-onPullDownRefresh(() => {
-  reset();
-});
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  background: #f7f7f7;
-  min-height: 100vh;
-  box-sizing: border-box;
-
-  .main-list {
-    padding: 20rpx 0;
-    .list-item {
-      padding: 30rpx 24rpx 30rpx 30rpx;
-      box-sizing: border-box;
-      margin-bottom: 20rpx;
-      background-color: #ffffff;
-      border-radius: 20rpx;
-      .item-img {
-        width: 195rpx;
-        height: 195rpx;
-        border-radius: 10rpx;
-        flex-shrink: 0;
-        margin-right: 30rpx;
-      }
-      .item-info {
-        flex: 1;
-        margin-right: 20rpx;
-        .item-title {
-          font-size: 28rpx;
-          font-weight: 700;
-          color: #1a1a1a;
-          margin-bottom: 10rpx;
-        }
-        .item-name {
-          font-size: 24rpx;
-          color: #666666;
-          margin-bottom: 10rpx;
-        }
-        .item-desc,
-        .item-tiem {
-          font-size: 24rpx;
-          color: #999999;
-          .iconfont {
-            margin-right: 10rpx;
-          }
-        }
-        .item-desc {
-          margin-bottom: 10rpx;
-        }
-      }
-      .item-right {
-        flex-shrink: 0;
-      }
-    }
-  }
-}
-</style>

+ 0 - 75
pages/agencyCenter/submitView.vue

@@ -1,75 +0,0 @@
-<template>
-  <view class="app-container">
-    <view class="header">
-      <text class="iconfont">&#xe741;</text>
-      <view class="text">代理申请已提交</view>
-    </view>
-    <view class="content">
-      <image
-        class="icon"
-        :src="$handleImageUrl('/personalCenter/agent/icon_wait.png')"
-        alt=""
-      />
-      <view class="info">
-        <view class="title">您的申请正在审核中,请耐心等待</view>
-        <view class="text"
-          >审核通常需要 <text class="number">1-3</text> 个工作日</view
-        >
-      </view>
-    </view>
-  </view>
-</template>
-
-<script setup>
-
-</script>
-
-<style lang="scss" scoped>
-.app-container {
-  box-sizing: border-box;
-  min-height: 100vh;
-  .header {
-    padding: 56rpx 0 80rpx 0;
-    text-align: center;
-    background-color: #f7f7f7;
-    .iconfont {
-      font-size: 100rpx;
-      color: #08be5d;
-    }
-    .text {
-      font-size: 38rpx;
-      color: #1a1a1a;
-      font-weight: 700;
-      margin-top: 20rpx;
-    }
-  }
-  .content {
-    text-align: center;
-    padding-top: 200rpx;
-    border-radius: 40rpx 40rpx 0 0;
-    margin-top: -40rpx;
-    background-color: #ffffff;
-    .icon {
-      width: 417rpx;
-      height: 341rpx;
-      margin: 0 auto;
-    }
-    .info {
-        margin-top: -90rpx;
-      .title {
-        font-size: 28rpx;
-        font-weight: 400;
-        color: #999999;
-      }
-      .text {
-        margin-top: 10rpx;
-        font-size: 28rpx;
-        color: #1a1a1a;
-        .number {
-          color: #eb5153;
-        }
-      }
-    }
-  }
-}
-</style>