Compare commits
	
		
			22 Commits 
		
	
	
		
			8bba4a1e48
			...
			5d63e11eca
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						5d63e11eca | |
| 
							
							
								 | 
						36190438f0 | |
| 
							
							
								 | 
						ce629a1fb6 | |
| 
							
							
								 | 
						f989d1ef4e | |
| 
							
							
								 | 
						99455dee58 | |
| 
							
							
								 | 
						c7bd7223bc | |
| 
							
							
								 | 
						8166f90f0f | |
| 
							
							
								 | 
						8b2587daa7 | |
| 
							
							
								 | 
						82e047c797 | |
| 
							
							
								 | 
						3cefb40ccb | |
| 
							
							
								 | 
						a12f317aa8 | |
| 
							
							
								 | 
						1d133af38d | |
| 
							
							
								 | 
						9cab354cbb | |
| 
							
							
								 | 
						c0385414ca | |
| 
							
							
								 | 
						4f7846dc4e | |
| 
							
							
								 | 
						01beac9265 | |
| 
							
							
								 | 
						77ad146e24 | |
| 
							
							
								 | 
						6c1c47de1d | |
| 
							
							
								 | 
						b3cac070df | |
| 
							
							
								 | 
						daf1b20f67 | |
| 
							
							
								 | 
						2316fb8d11 | |
| 
							
							
								 | 
						43159335f8 | 
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
# 默认依赖包指定淘宝源
 | 
			
		||||
registry=https://registry.npm.taobao.org/
 | 
			
		||||
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
 | 
			
		||||
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
 | 
			
		||||
electron_mirror=https://npm.taobao.org/mirrors/electron/
 | 
			
		||||
registry "https://registry.npmmirror.com"
 | 
			
		||||
sass_binary_site "https://npmmirror.com/mirrors/node-sass"
 | 
			
		||||
phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
 | 
			
		||||
electron_mirror "https://npmmirror.com/mirrors/electron"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,110 +0,0 @@
 | 
			
		|||
import request, {Method} from '@/plugins/request.js';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取当前会员分销信息
 | 
			
		||||
 */
 | 
			
		||||
export function distribution () {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 申请成为分销员
 | 
			
		||||
 * @param idNumber 身份证号
 | 
			
		||||
 * @param name  名字
 | 
			
		||||
 */
 | 
			
		||||
export function applyDistribution (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution`,
 | 
			
		||||
    method: Method.POST,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取分销员订单列表
 | 
			
		||||
 */
 | 
			
		||||
export function getDistOrderList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/order`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取分销员下级用户列表
 | 
			
		||||
 */
 | 
			
		||||
export function getDistMemberList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution/memberList`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取分销商商品列表
 | 
			
		||||
 */
 | 
			
		||||
export function getDistGoodsList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/goods`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 分销员提现历史
 | 
			
		||||
 */
 | 
			
		||||
export function distCashHistory (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/cash`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 分销员-团队列表
 | 
			
		||||
 */
 | 
			
		||||
export function getDistGroupList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution/groupList`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 分销商提现
 | 
			
		||||
 */
 | 
			
		||||
export function distCash (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/cash`,
 | 
			
		||||
    method: Method.POST,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 绑定分销
 | 
			
		||||
 * @param distributionId 商品分销ID
 | 
			
		||||
 */
 | 
			
		||||
export function getGoodsDistribution (distributionId) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution/bindingDistribution/${distributionId}`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -333,7 +333,92 @@ export function clearComplain (id) {
 | 
			
		|||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取当前会员分销信息
 | 
			
		||||
 */
 | 
			
		||||
export function distribution () {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 申请成为分销商
 | 
			
		||||
 * @param idNumber 身份证号
 | 
			
		||||
 * @param name  名字
 | 
			
		||||
 */
 | 
			
		||||
export function applyDistribution (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/distribution`,
 | 
			
		||||
    method: Method.POST,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取分销商订单列表
 | 
			
		||||
 */
 | 
			
		||||
export function getDistOrderList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/order`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取分销商商品列表
 | 
			
		||||
 */
 | 
			
		||||
export function getDistGoodsList (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/goods`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 绑定、解绑分销商品
 | 
			
		||||
 * @param distributionGoodsId 分销商品id
 | 
			
		||||
 * @param checked 分销商品id,true为绑定,false为解绑
 | 
			
		||||
 */
 | 
			
		||||
export function selectDistGoods (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/goods/checked/${params.distributionGoodsId}`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 分销商提现历史
 | 
			
		||||
 */
 | 
			
		||||
export function distCashHistory (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/cash`,
 | 
			
		||||
    method: Method.GET,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 分销商提现
 | 
			
		||||
 */
 | 
			
		||||
export function distCash (params) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: `/buyer/distribution/cash`,
 | 
			
		||||
    method: Method.POST,
 | 
			
		||||
    needToken: true,
 | 
			
		||||
    params
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 我的足迹
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div class="wrapper">
 | 
			
		||||
    <card _Title="我的分销"/>
 | 
			
		||||
    <card _Title="我的分销" />
 | 
			
		||||
    <!-- 分销申请 -->
 | 
			
		||||
 | 
			
		||||
    <div v-if="status === 0">
 | 
			
		||||
| 
						 | 
				
			
			@ -12,8 +12,20 @@
 | 
			
		|||
        <FormItem label="身份证号" prop="idNumber">
 | 
			
		||||
          <Input v-model="applyForm.idNumber"></Input>
 | 
			
		||||
        </FormItem>
 | 
			
		||||
        <FormItem label="银行开户行" prop="settlementBankBranchName">
 | 
			
		||||
          <Input v-model="applyForm.settlementBankBranchName"></Input>
 | 
			
		||||
        </FormItem>
 | 
			
		||||
        <FormItem label="银行开户名" prop="settlementBankAccountName">
 | 
			
		||||
          <Input v-model="applyForm.settlementBankAccountName"></Input>
 | 
			
		||||
        </FormItem>
 | 
			
		||||
        <FormItem label="银行账号" prop="settlementBankAccountNum">
 | 
			
		||||
          <Input v-model="applyForm.settlementBankAccountNum"></Input>
 | 
			
		||||
        </FormItem>
 | 
			
		||||
 | 
			
		||||
        <FormItem>
 | 
			
		||||
          <Button type="primary" :loading="applyLoading" @click="apply">提交申请</Button>
 | 
			
		||||
          <Button type="primary" :loading="applyLoading" @click="apply"
 | 
			
		||||
          >提交申请</Button
 | 
			
		||||
          >
 | 
			
		||||
        </FormItem>
 | 
			
		||||
      </Form>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,69 +34,43 @@
 | 
			
		|||
      <Alert type="success">
 | 
			
		||||
        您提交的信息正在审核
 | 
			
		||||
        <template slot="desc"
 | 
			
		||||
        >提交认证申请后,工作人员将在三个工作日进行核对完成审核
 | 
			
		||||
        </template
 | 
			
		||||
        >提交认证申请后,工作人员将在三个工作日进行核对完成审核</template
 | 
			
		||||
        >
 | 
			
		||||
      </Alert>
 | 
			
		||||
    </div>
 | 
			
		||||
    <!-- 分销提现、商品、订单 -->
 | 
			
		||||
    <div v-if="status === 2">
 | 
			
		||||
      <div class="tips">
 | 
			
		||||
 | 
			
		||||
        <p>分销下线付款之后会生成分销订单。</p>
 | 
			
		||||
        <p>交易完成后返佣可提现。</p>
 | 
			
		||||
        <p>
 | 
			
		||||
          冻结金额:用户提现金额即为冻结金额,审核通过后扣除冻结金额,审核拒绝之后冻结金额返回可提现金额。
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>可提现金额:分销订单佣金T+1解冻后可变为可提现金额。</p>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="box">
 | 
			
		||||
        <div class="mb_20 account-price">
 | 
			
		||||
          <span class="subTips">可提现金额(元):</span>
 | 
			
		||||
          <span class="fontsize_48 global_color">{{ result.canRebate | unitPrice }}</span>
 | 
			
		||||
          <span class="subTips">待结算:</span>
 | 
			
		||||
          <span class="">{{ result.commissionFrozen | unitPrice }}</span>
 | 
			
		||||
          <span class="subTips">总收益(元):</span>
 | 
			
		||||
          <span class="">{{ result.rebateTotal | unitPrice }}</span>
 | 
			
		||||
          <span class="subTips">可提现金额:</span>
 | 
			
		||||
          <span class="fontsize_48 global_color"
 | 
			
		||||
          >¥{{ result.canRebate | unitPrice }}</span
 | 
			
		||||
          >
 | 
			
		||||
          <span class="subTips">冻结金额:</span>
 | 
			
		||||
          <span class="">¥{{ result.commissionFrozen | unitPrice }}</span>
 | 
			
		||||
          <span class="subTips">返利总金额:</span>
 | 
			
		||||
          <span class="">¥{{ result.rebateTotal | unitPrice }}</span>
 | 
			
		||||
          <Button
 | 
			
		||||
            type="primary"
 | 
			
		||||
            size="small"
 | 
			
		||||
            class="ml_20"
 | 
			
		||||
            @click="withdrawApplyModal = true">申请提现
 | 
			
		||||
          </Button>
 | 
			
		||||
            @click="withdrawApplyModal = true"
 | 
			
		||||
          >申请提现</Button
 | 
			
		||||
          >
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <Tabs :value="tabName" @on-click="tabPaneChange">
 | 
			
		||||
        <TabPane label="推广订单" name="order">
 | 
			
		||||
          <Table stripe :columns="orderColumns" :data="orderData.records">
 | 
			
		||||
            <template slot-scope="{ row }" slot="createTime">
 | 
			
		||||
              <span>{{ row.createTime }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="goodsName">
 | 
			
		||||
              <span>{{ row.goodsName }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="num">
 | 
			
		||||
              <span>{{ row.num }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="rebate">
 | 
			
		||||
              <span>{{ row.rebate }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="distributionOrderStatus">
 | 
			
		||||
              <span v-if="row.distributionOrderStatus == 'NO_COMPLETED'">未完成</span>
 | 
			
		||||
              <span v-else-if="row.distributionOrderStatus == 'COMPLETE'">订单完成</span>
 | 
			
		||||
              <span v-else-if="row.distributionOrderStatus == 'CANCEL'">订单取消</span>
 | 
			
		||||
              <span v-else-if="row.distributionOrderStatus == 'REFUND'">订单退款</span>
 | 
			
		||||
            </template>
 | 
			
		||||
          </Table>
 | 
			
		||||
          <div class="page-size">
 | 
			
		||||
            <Page
 | 
			
		||||
              :current="orderParams.pageNumber"
 | 
			
		||||
              :total="orderData.total"
 | 
			
		||||
              :page-size="orderParams.pageSize"
 | 
			
		||||
              @on-change="changeOrderPage"
 | 
			
		||||
              size="small"
 | 
			
		||||
              show-total
 | 
			
		||||
              show-elevator
 | 
			
		||||
            ></Page>
 | 
			
		||||
          </div>
 | 
			
		||||
        </TabPane>
 | 
			
		||||
        <TabPane label="推广商品" name="goods">
 | 
			
		||||
        <TabPane label="已选商品" name="goodsChecked">
 | 
			
		||||
          <Table stripe :columns="goodsColumns" :data="goodsData.records">
 | 
			
		||||
            <template slot-scope="{ row }" slot="name">
 | 
			
		||||
              <div
 | 
			
		||||
| 
						 | 
				
			
			@ -93,21 +79,20 @@
 | 
			
		|||
                  linkTo(
 | 
			
		||||
                    `/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}`
 | 
			
		||||
                  )
 | 
			
		||||
                ">
 | 
			
		||||
                "
 | 
			
		||||
              >
 | 
			
		||||
                <img
 | 
			
		||||
                  style="vertical-align: top"
 | 
			
		||||
                  :src="row.thumbnail"
 | 
			
		||||
                  width="60"
 | 
			
		||||
                  height="60"
 | 
			
		||||
                  alt=""/>  {{ row.goodsName }}
 | 
			
		||||
                  alt=""
 | 
			
		||||
                />  {{ row.goodsName }}
 | 
			
		||||
              </div>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="price">
 | 
			
		||||
              <span> ¥{{ row.price | unitPrice }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="firstProportion">
 | 
			
		||||
              <span style="margin-left: 10px;"> {{ row.firstProportion }}%</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="commission">
 | 
			
		||||
              <span> ¥{{ row.commission | unitPrice }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
| 
						 | 
				
			
			@ -116,8 +101,15 @@
 | 
			
		|||
                type="success"
 | 
			
		||||
                size="small"
 | 
			
		||||
                style="margin-right: 5px"
 | 
			
		||||
                @click="fenxiao(row)">邀请好友
 | 
			
		||||
              </Button>
 | 
			
		||||
                @click="fenxiao(row)"
 | 
			
		||||
              >分销商品</Button
 | 
			
		||||
              >
 | 
			
		||||
              <Button
 | 
			
		||||
                type="error"
 | 
			
		||||
                size="small"
 | 
			
		||||
                @click="selectGoods(row.id, false)"
 | 
			
		||||
              >取消选择</Button
 | 
			
		||||
              >
 | 
			
		||||
            </template>
 | 
			
		||||
          </Table>
 | 
			
		||||
          <div class="page-size">
 | 
			
		||||
| 
						 | 
				
			
			@ -132,30 +124,48 @@
 | 
			
		|||
            ></Page>
 | 
			
		||||
          </div>
 | 
			
		||||
        </TabPane>
 | 
			
		||||
        <TabPane label="我的客户" name="member">
 | 
			
		||||
          <Table stripe :columns="memberColumns" :data="memberData.records">
 | 
			
		||||
            <template slot-scope="{ row }" slot="nickName">
 | 
			
		||||
              <span>{{ row.nickName }}</span>
 | 
			
		||||
        <TabPane label="未选商品" name="goodsUncheck">
 | 
			
		||||
          <Table stripe :columns="goodsColumns" :data="goodsData.records">
 | 
			
		||||
            <template slot-scope="{ row }" slot="name">
 | 
			
		||||
              <div
 | 
			
		||||
                class="goods-msg"
 | 
			
		||||
                @click="
 | 
			
		||||
                  linkTo(
 | 
			
		||||
                    `/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}`
 | 
			
		||||
                  )
 | 
			
		||||
                "
 | 
			
		||||
              >
 | 
			
		||||
                <img
 | 
			
		||||
                  style="vertical-align: top"
 | 
			
		||||
                  :src="row.thumbnail"
 | 
			
		||||
                  width="60"
 | 
			
		||||
                  height="60"
 | 
			
		||||
                  alt=""
 | 
			
		||||
                />  {{ row.goodsName }}
 | 
			
		||||
              </div>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="orderPrice">
 | 
			
		||||
              <span>{{ row.orderPrice }}</span>
 | 
			
		||||
            <template slot-scope="{ row }" slot="price">
 | 
			
		||||
              <span> ¥{{ row.price | unitPrice }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="rebatePrice">
 | 
			
		||||
              <span>{{ row.rebatePrice }}</span>
 | 
			
		||||
            <template slot-scope="{ row }" slot="commission">
 | 
			
		||||
              <span> ¥{{ row.commission | unitPrice }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="orderNum">
 | 
			
		||||
              <span>{{ row.orderNum }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="lastLoginDate">
 | 
			
		||||
              <span>{{ row.lastLoginDate }}</span>
 | 
			
		||||
            <template slot-scope="{ row }" slot="action">
 | 
			
		||||
              <Button
 | 
			
		||||
                type="primary"
 | 
			
		||||
                size="small"
 | 
			
		||||
                style="margin-right: 5px"
 | 
			
		||||
                @click="selectGoods(row.id, true)"
 | 
			
		||||
              >选择商品</Button
 | 
			
		||||
              >
 | 
			
		||||
            </template>
 | 
			
		||||
          </Table>
 | 
			
		||||
          <div class="page-size">
 | 
			
		||||
            <Page
 | 
			
		||||
              :current="memberParams.pageNumber"
 | 
			
		||||
              :total="memberData.total"
 | 
			
		||||
              :page-size="memberParams.pageSize"
 | 
			
		||||
              @on-change="changeOrderPage"
 | 
			
		||||
              :current="params.pageNumber"
 | 
			
		||||
              :total="goodsData.total"
 | 
			
		||||
              :page-size="params.pageSize"
 | 
			
		||||
              @on-change="changePage"
 | 
			
		||||
              size="small"
 | 
			
		||||
              show-total
 | 
			
		||||
              show-elevator
 | 
			
		||||
| 
						 | 
				
			
			@ -173,11 +183,13 @@
 | 
			
		|||
            <template slot-scope="{ row }" slot="price">
 | 
			
		||||
              <span
 | 
			
		||||
                v-if="row.distributionCashStatus == 'VIA_AUDITING'"
 | 
			
		||||
                style="color: green">
 | 
			
		||||
                ¥{{ row.price | unitPrice }}</span
 | 
			
		||||
                style="color: green"
 | 
			
		||||
              >
 | 
			
		||||
                +¥{{ row.price | unitPrice }}</span
 | 
			
		||||
              >
 | 
			
		||||
              <span v-else style="color: red">
 | 
			
		||||
                ¥{{ row.price | unitPrice }}</span>
 | 
			
		||||
                -¥{{ row.price | unitPrice }}</span
 | 
			
		||||
              >
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="status">
 | 
			
		||||
              <span>
 | 
			
		||||
| 
						 | 
				
			
			@ -187,7 +199,8 @@
 | 
			
		|||
                    : row.distributionCashStatus == "VIA_AUDITING"
 | 
			
		||||
                      ? "通过"
 | 
			
		||||
                      : "拒绝"
 | 
			
		||||
                }}</span>
 | 
			
		||||
                }}</span
 | 
			
		||||
              >
 | 
			
		||||
            </template>
 | 
			
		||||
          </Table>
 | 
			
		||||
          <div class="page-size">
 | 
			
		||||
| 
						 | 
				
			
			@ -202,30 +215,6 @@
 | 
			
		|||
            ></Page>
 | 
			
		||||
          </div>
 | 
			
		||||
        </TabPane>
 | 
			
		||||
        <TabPane label="我的团队" name="group">
 | 
			
		||||
          <Table stripe :columns="groupColumns" :data="groupData.records">
 | 
			
		||||
            <template slot-scope="{ row }" slot="memberName">
 | 
			
		||||
              <span>{{ row.memberName }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="distributionOrderPrice">
 | 
			
		||||
              <span>{{ row.distributionOrderPrice }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
            <template slot-scope="{ row }" slot="distributionOrderCount">
 | 
			
		||||
              <span>{{ row.distributionOrderCount }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
          </Table>
 | 
			
		||||
          <div class="page-size">
 | 
			
		||||
            <Page
 | 
			
		||||
              :current="groupParams.pageNumber"
 | 
			
		||||
              :total="groupData.total"
 | 
			
		||||
              :page-size="groupParams.pageSize"
 | 
			
		||||
              @on-change="changeOrderPage"
 | 
			
		||||
              size="small"
 | 
			
		||||
              show-total
 | 
			
		||||
              show-elevator
 | 
			
		||||
            ></Page>
 | 
			
		||||
          </div>
 | 
			
		||||
        </TabPane>
 | 
			
		||||
      </Tabs>
 | 
			
		||||
    </div>
 | 
			
		||||
    <!-- 未开放 -->
 | 
			
		||||
| 
						 | 
				
			
			@ -233,8 +222,7 @@
 | 
			
		|||
      <Alert type="error">
 | 
			
		||||
        分销功能暂未开启
 | 
			
		||||
        <template slot="desc"
 | 
			
		||||
        >提交认证申请后,工作人员将在三个工作日进行核对完成审核
 | 
			
		||||
        </template
 | 
			
		||||
        >提交认证申请后,工作人员将在三个工作日进行核对完成审核</template
 | 
			
		||||
        >
 | 
			
		||||
      </Alert>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -251,8 +239,7 @@
 | 
			
		|||
      <Alert type="success">
 | 
			
		||||
        您提交的申诉正在审核
 | 
			
		||||
        <template slot="desc"
 | 
			
		||||
        >提交认证申请后,工作人员将在三个工作日进行核对完成审核
 | 
			
		||||
        </template
 | 
			
		||||
        >提交认证申请后,工作人员将在三个工作日进行核对完成审核</template
 | 
			
		||||
        >
 | 
			
		||||
      </Alert>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -263,18 +250,29 @@
 | 
			
		|||
      </p>
 | 
			
		||||
      <div>
 | 
			
		||||
        <Input v-model="withdrawPrice" size="large" number maxlength="9"
 | 
			
		||||
        ><span slot="append">元</span></Input>
 | 
			
		||||
        ><span slot="append">元</span></Input
 | 
			
		||||
        >
 | 
			
		||||
      </div>
 | 
			
		||||
      <div slot="footer" style="text-align: center">
 | 
			
		||||
        <Button type="primary" size="large" @click="withdraw">提现</Button>
 | 
			
		||||
      </div>
 | 
			
		||||
    </Modal>
 | 
			
		||||
    <Modal v-model="qrcodeShow" title="分销商品" width="800">
 | 
			
		||||
      <Alert type="warning"> 下载二维码或者复制链接分享商品</Alert>
 | 
			
		||||
      <Alert type="warning"> 下载二维码或者复制链接分享商品 </Alert>
 | 
			
		||||
      <div class="qrcode">
 | 
			
		||||
        <div style="width: 150px; height: 150px; ">
 | 
			
		||||
          <div class="qrcode-platform" style="margin-top: 100px">PC端</div>
 | 
			
		||||
          <Button style="margin-left: 40px; margin-top: 65px" type="success" @click="copyUrlLink">复制链接</Button>
 | 
			
		||||
        <div style="width: 150px; height: 150px; border: 1px solid #eee">
 | 
			
		||||
          <vue-qr
 | 
			
		||||
            :text="qrcode"
 | 
			
		||||
            :callback="qrcodeData"
 | 
			
		||||
            :margin="0"
 | 
			
		||||
            colorDark="#000"
 | 
			
		||||
            colorLight="#fff"
 | 
			
		||||
            :size="150"
 | 
			
		||||
          ></vue-qr>
 | 
			
		||||
          <div class="qrcode-platform">PC端</div>
 | 
			
		||||
          <Button class="download-btn" type="success" @click="downloadQrcode"
 | 
			
		||||
          >下载二维码</Button
 | 
			
		||||
          >
 | 
			
		||||
        </div>
 | 
			
		||||
        <div style="width: 150px; height: 150px; border: 1px solid #eee">
 | 
			
		||||
          <vue-qr
 | 
			
		||||
| 
						 | 
				
			
			@ -287,13 +285,13 @@
 | 
			
		|||
          ></vue-qr>
 | 
			
		||||
          <div class="qrcode-platform">移动应用端</div>
 | 
			
		||||
          <Button class="download-btn" type="success" @click="downloadQrcodeH5"
 | 
			
		||||
          >下载二维码
 | 
			
		||||
          </Button
 | 
			
		||||
          >下载二维码</Button
 | 
			
		||||
          >
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="mt_10" style="margin-top: 100px;">
 | 
			
		||||
        商品链接:<Input style="width: 600px" v-model="qrcode"></Input>
 | 
			
		||||
      </div>
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -306,98 +304,92 @@ import {
 | 
			
		|||
  distCash,
 | 
			
		||||
  distCashHistory,
 | 
			
		||||
  getDistGoodsList,
 | 
			
		||||
  getDistOrderList,
 | 
			
		||||
  getDistMemberList,
 | 
			
		||||
  getDistGroupList
 | 
			
		||||
} from "@/api/distribution.js";
 | 
			
		||||
import {IDCard} from "@/plugins/RegExp.js";
 | 
			
		||||
  selectDistGoods,
 | 
			
		||||
} from "@/api/member.js";
 | 
			
		||||
import { IDCard } from "@/plugins/RegExp.js";
 | 
			
		||||
import { checkBankno } from "@/plugins/Foundation";
 | 
			
		||||
import vueQr from "vue-qr";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "Distribution",
 | 
			
		||||
  components: {vueQr},
 | 
			
		||||
  components: { vueQr },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      config: require('@/config'),
 | 
			
		||||
      config:require('@/config'),
 | 
			
		||||
      status: 0, // 申请状态,0为未申请 1 申请中 2 申请完成 3 功能暂未开启
 | 
			
		||||
      applyForm: {}, // 申请表单
 | 
			
		||||
      rules: {
 | 
			
		||||
        // 验证规则
 | 
			
		||||
        name: [{required: true, message: "请输入真实姓名"}],
 | 
			
		||||
        name: [{ required: true, message: "请输入真实姓名" }],
 | 
			
		||||
        idNumber: [
 | 
			
		||||
          {required: true, message: "请输入身份证号"},
 | 
			
		||||
          {pattern: IDCard, message: "请输入正确的身份证号"},
 | 
			
		||||
          { required: true, message: "请输入身份证号" },
 | 
			
		||||
          { pattern: IDCard, message: "请输入正确的身份证号" },
 | 
			
		||||
        ],
 | 
			
		||||
        settlementBankBranchName: [
 | 
			
		||||
          {
 | 
			
		||||
            required: true,
 | 
			
		||||
            message: "请输入银行开户行",
 | 
			
		||||
            // 可以单个或者同时写两个触发验证方式
 | 
			
		||||
            trigger: "blur",
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
        settlementBankAccountName: [
 | 
			
		||||
          {
 | 
			
		||||
            required: true,
 | 
			
		||||
            message: "请输入银行开户名",
 | 
			
		||||
            // 可以单个或者同时写两个触发验证方式
 | 
			
		||||
            trigger: "blur",
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
        //银行账号
 | 
			
		||||
        settlementBankAccountNum: [
 | 
			
		||||
          {
 | 
			
		||||
            required: true,
 | 
			
		||||
            message: "银行账号不正确",
 | 
			
		||||
            // 可以单个或者同时写两个触发验证方式
 | 
			
		||||
            trigger: "blur",
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            validator: (rule, value, callback) => {
 | 
			
		||||
              // 上面有说,返回true表示校验通过,返回false表示不通过
 | 
			
		||||
              // this.$u.test.mobile()就是返回true或者false的
 | 
			
		||||
              return checkBankno(value);
 | 
			
		||||
            },
 | 
			
		||||
            message: "银行账号不正确",
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
      },
 | 
			
		||||
      tabName: "order", // 当前所在tab
 | 
			
		||||
      tabName: "goodsChecked", // 当前所在tab
 | 
			
		||||
      result: {}, // 审核结果
 | 
			
		||||
      applyLoading: false, // 申请加载状态
 | 
			
		||||
      goodsLoading: false, // 列表加载状态
 | 
			
		||||
      orderLoading: false, // 订单加载状态
 | 
			
		||||
      withdrawApplyModal: false, // 提现表单显隐
 | 
			
		||||
      withdrawPrice: 0, // 提现金额
 | 
			
		||||
      goodsData: {}, // 商品数据
 | 
			
		||||
      orderData:{}, //订单数据
 | 
			
		||||
      memberData:{}, //订单数据
 | 
			
		||||
      logData: {}, // 日志数据
 | 
			
		||||
      groupData:{},//团队数据
 | 
			
		||||
      orderColumns:[
 | 
			
		||||
        //订单表头
 | 
			
		||||
        {title: "下单时间", slot: "createTime", minWidth: 200},
 | 
			
		||||
        {title: "商品名称", slot: "goodsName", minWidth: 200},
 | 
			
		||||
        {title: "数量", slot: "num"},
 | 
			
		||||
        {title: "佣金金额", slot: "rebate"},
 | 
			
		||||
        {title: "状态", slot: "distributionOrderStatus"},
 | 
			
		||||
      ],
 | 
			
		||||
      memberColumns:[
 | 
			
		||||
        //客户列表表头
 | 
			
		||||
        {title: "客户昵称", slot: "nickName", minWidth: 150},
 | 
			
		||||
        {title: "成交额", slot: "orderPrice"},
 | 
			
		||||
        {title: "佣金总额", slot: "rebatePrice"},
 | 
			
		||||
        {title: "订单数", slot: "orderNum"},
 | 
			
		||||
        {title: "最近下单时间", slot: "lastLoginDate", minWidth: 150},
 | 
			
		||||
      ],
 | 
			
		||||
      goodsColumns: [
 | 
			
		||||
        // 商品表头
 | 
			
		||||
        {title: "商品名称", slot: "name", width: 400},
 | 
			
		||||
        {title: "商品价格", slot: "price"},
 | 
			
		||||
        {title: "佣金比例", slot: "firstProportion"},
 | 
			
		||||
        {title: "预计赚", slot: "commission"},
 | 
			
		||||
        {title: "操作", slot: "action", minWidth: 120},
 | 
			
		||||
        { title: "商品名称", slot: "name", width: 400 },
 | 
			
		||||
        { title: "商品价格", slot: "price" },
 | 
			
		||||
        { title: "佣金", slot: "commission" },
 | 
			
		||||
        { title: "操作", slot: "action", minWidth: 120 },
 | 
			
		||||
      ],
 | 
			
		||||
      logColumns: [
 | 
			
		||||
        // 日志表头
 | 
			
		||||
        {title: "编号", slot: "sn"},
 | 
			
		||||
        {title: "申请时间", slot: "time"},
 | 
			
		||||
        {title: "提现金额", slot: "price"},
 | 
			
		||||
        {title: "提现状态", slot: "status"},
 | 
			
		||||
      ],
 | 
			
		||||
      groupColumns: [
 | 
			
		||||
        // 团队表头
 | 
			
		||||
        {title: "昵称", slot: "memberName"},
 | 
			
		||||
        {title: "销售额", slot: "distributionOrderPrice"},
 | 
			
		||||
        {title: "订单量", slot: "distributionOrderCount"},
 | 
			
		||||
        { title: "编号", slot: "sn" },
 | 
			
		||||
        { title: "申请时间", slot: "time" },
 | 
			
		||||
        { title: "提现金额", slot: "price" },
 | 
			
		||||
        { title: "提现状态", slot: "status" },
 | 
			
		||||
      ],
 | 
			
		||||
      params: {
 | 
			
		||||
        // 商品请求参数
 | 
			
		||||
        pageNumber: 1,
 | 
			
		||||
        pageSize: 20,
 | 
			
		||||
        sort: "createTime",
 | 
			
		||||
        order: "desc",
 | 
			
		||||
        checked: true,
 | 
			
		||||
      },
 | 
			
		||||
      orderParams: {
 | 
			
		||||
        // 订单商品请求参数
 | 
			
		||||
        pageNumber: 1,
 | 
			
		||||
        pageSize: 20,
 | 
			
		||||
        sort: "createTime",
 | 
			
		||||
        order: "desc",
 | 
			
		||||
      },
 | 
			
		||||
      memberParams: {
 | 
			
		||||
        // 会员请求参数
 | 
			
		||||
        pageNumber: 1,
 | 
			
		||||
        pageSize: 20,
 | 
			
		||||
        sort: "createTime",
 | 
			
		||||
        order: "desc",
 | 
			
		||||
      },
 | 
			
		||||
      logParams: {
 | 
			
		||||
        // 日志参数
 | 
			
		||||
| 
						 | 
				
			
			@ -406,15 +398,8 @@ export default {
 | 
			
		|||
        sort: "createTime",
 | 
			
		||||
        order: "desc",
 | 
			
		||||
      },
 | 
			
		||||
      groupParams: {
 | 
			
		||||
        // 会员请求参数
 | 
			
		||||
        pageNumber: 1,
 | 
			
		||||
        pageSize: 20,
 | 
			
		||||
        sort: "createTime",
 | 
			
		||||
        order: "desc",
 | 
			
		||||
      },
 | 
			
		||||
      qrcode: "", // 二维码
 | 
			
		||||
      qrcodeH5: "",//H5二维码
 | 
			
		||||
      qrcodeH5:"",//H5二维码
 | 
			
		||||
      qrcodeShow: false, // 显示二维码
 | 
			
		||||
      base64Img: "", // base64编码
 | 
			
		||||
      base64ImgH5: "", // base64H5编码
 | 
			
		||||
| 
						 | 
				
			
			@ -442,7 +427,7 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    withdraw() {
 | 
			
		||||
      // 申请提现
 | 
			
		||||
      distCash({price: this.withdrawPrice}).then((res) => {
 | 
			
		||||
      distCash({ price: this.withdrawPrice }).then((res) => {
 | 
			
		||||
        this.withdrawApplyModal = false;
 | 
			
		||||
        this.price = 0;
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
| 
						 | 
				
			
			@ -462,15 +447,6 @@ export default {
 | 
			
		|||
      // 二维码H5端base64地址
 | 
			
		||||
      this.base64ImgH5 = data64;
 | 
			
		||||
    },
 | 
			
		||||
    copyUrlLink(){
 | 
			
		||||
      navigator.clipboard.writeText(this.qrcode)
 | 
			
		||||
        .then(() => {
 | 
			
		||||
          this.$Message.success("复制成功!");
 | 
			
		||||
        })
 | 
			
		||||
        .catch(err => {
 | 
			
		||||
          this.$Message.error("复制失败!");
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
    downloadQrcode() {
 | 
			
		||||
      // 下载二维码
 | 
			
		||||
      let a = document.createElement("a"); // 生成一个a元素
 | 
			
		||||
| 
						 | 
				
			
			@ -479,7 +455,7 @@ export default {
 | 
			
		|||
      a.href = this.base64Img; // 将生成的URL设置为a.href属性
 | 
			
		||||
      a.dispatchEvent(event); // 触发a的单击事件
 | 
			
		||||
    },
 | 
			
		||||
    downloadQrcodeH5() {
 | 
			
		||||
    downloadQrcodeH5(){
 | 
			
		||||
      // 下载H5二维码
 | 
			
		||||
      let a = document.createElement("a"); // 生成一个a元素
 | 
			
		||||
      let event = new MouseEvent("click"); // 创建一个单击事件
 | 
			
		||||
| 
						 | 
				
			
			@ -489,33 +465,18 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    tabPaneChange(tab) {
 | 
			
		||||
      // tab栏切换
 | 
			
		||||
      if (tab === "goods") {
 | 
			
		||||
      if (tab === "goodsChecked") {
 | 
			
		||||
        this.params.checked = true;
 | 
			
		||||
        this.params.pageNUmber = 1;
 | 
			
		||||
        this.getGoodsData();
 | 
			
		||||
      } else if (tab === "goodsUncheck") {
 | 
			
		||||
        this.params.checked = false;
 | 
			
		||||
        this.getGoodsData();
 | 
			
		||||
      }else if (tab === "order") {
 | 
			
		||||
        this.orderParams.checked = false;
 | 
			
		||||
        this.getOrderData();
 | 
			
		||||
      }else if (tab === "member") {
 | 
			
		||||
        this.memberParams.checked = false;
 | 
			
		||||
        this.getMemberData();
 | 
			
		||||
      } else if (tab === "log") {
 | 
			
		||||
        this.logParams.pageNumber = 1;
 | 
			
		||||
        this.getLog();
 | 
			
		||||
      }else if (tab === "group") {
 | 
			
		||||
        this.groupParams.pageNumber = 1;
 | 
			
		||||
        this.getGroupData();
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    changeOrderPage(val) {
 | 
			
		||||
      // 修改页码
 | 
			
		||||
      this.orderParams.pageNumber = val;
 | 
			
		||||
      this.getOrderData();
 | 
			
		||||
    },
 | 
			
		||||
    changeMemberPage(val) {
 | 
			
		||||
      // 修改页码
 | 
			
		||||
      this.memberParams.pageNumber = val;
 | 
			
		||||
      this.getMemberData();
 | 
			
		||||
    },
 | 
			
		||||
    changePage(val) {
 | 
			
		||||
      // 修改页码
 | 
			
		||||
      this.params.pageNumber = val;
 | 
			
		||||
| 
						 | 
				
			
			@ -526,6 +487,19 @@ export default {
 | 
			
		|||
      this.logParams.pageNumber = val;
 | 
			
		||||
      this.getLog();
 | 
			
		||||
    },
 | 
			
		||||
    selectGoods(id, checked) {
 | 
			
		||||
      // 选择商品
 | 
			
		||||
      let params = {
 | 
			
		||||
        distributionGoodsId: id,
 | 
			
		||||
        checked: checked,
 | 
			
		||||
      };
 | 
			
		||||
      selectDistGoods(params).then((res) => {
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
          this.$Message.success("操作成功!");
 | 
			
		||||
          this.getGoodsData();
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    fenxiao(row) {
 | 
			
		||||
      // 分销商品
 | 
			
		||||
      this.qrcode = `${this.config.PC_DOMAIN}/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}&distributionId=${this.result.id}`;
 | 
			
		||||
| 
						 | 
				
			
			@ -533,18 +507,6 @@ export default {
 | 
			
		|||
      this.goodsNameCurr = row.goodsName;
 | 
			
		||||
      this.qrcodeShow = true;
 | 
			
		||||
    },
 | 
			
		||||
    getOrderData(){
 | 
			
		||||
      // 订单数据
 | 
			
		||||
      getDistOrderList(this.orderParams).then((res) => {
 | 
			
		||||
        if (res.success) this.orderData = res.result;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    getMemberData(){
 | 
			
		||||
      // 订单数据
 | 
			
		||||
      getDistMemberList(this.memberParams).then((res) => {
 | 
			
		||||
        if (res.success) this.memberData = res.result;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    getGoodsData() {
 | 
			
		||||
      // 商品数据
 | 
			
		||||
      getDistGoodsList(this.params).then((res) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -557,14 +519,8 @@ export default {
 | 
			
		|||
        if (res.success) this.logData = res.result;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    getGroupData() {
 | 
			
		||||
      // 团队列表
 | 
			
		||||
      getDistGroupList(this.groupParams).then((res) => {
 | 
			
		||||
        if (res.success) this.groupData = res.result;
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    //申诉
 | 
			
		||||
    repaying() {
 | 
			
		||||
    repaying(){
 | 
			
		||||
      applyDistribution().then((res) => {
 | 
			
		||||
        this.applyLoading = false;
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
| 
						 | 
				
			
			@ -581,14 +537,14 @@ export default {
 | 
			
		|||
          let type = res.result.distributionStatus;
 | 
			
		||||
          if (type === "PASS") {
 | 
			
		||||
            this.status = 2;
 | 
			
		||||
            this.getOrderData();
 | 
			
		||||
          } else if (type === "REFUSE") {
 | 
			
		||||
            this.getGoodsData();
 | 
			
		||||
          } else if ( type === "REFUSE") {
 | 
			
		||||
            this.status = 0;
 | 
			
		||||
          } else if (type === "RETREAT") {
 | 
			
		||||
            this.status = 4;
 | 
			
		||||
          } else if (type === "APPEAL") {
 | 
			
		||||
          }else if (type === "APPEAL") {
 | 
			
		||||
            this.status = 5;
 | 
			
		||||
          } else {
 | 
			
		||||
          }else {
 | 
			
		||||
            this.status = 1;
 | 
			
		||||
          }
 | 
			
		||||
        } else if (!res.data.success && res.data.code === 22000) {
 | 
			
		||||
| 
						 | 
				
			
			@ -607,35 +563,28 @@ export default {
 | 
			
		|||
.box {
 | 
			
		||||
  margin: 20px 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.page-size {
 | 
			
		||||
  margin: 15px 0px;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.account-price {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.subTips {
 | 
			
		||||
  margin-left: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fontsize_48 {
 | 
			
		||||
  font-size: 48px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.goods-msg {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  align-items: center;
 | 
			
		||||
  padding: 3px;
 | 
			
		||||
 | 
			
		||||
  &:hover {
 | 
			
		||||
    color: $theme_color;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.download-btn {
 | 
			
		||||
  // position: relative;
 | 
			
		||||
  // top: -200px;
 | 
			
		||||
| 
						 | 
				
			
			@ -643,31 +592,26 @@ export default {
 | 
			
		|||
  margin-left: 25px;
 | 
			
		||||
  margin-top: 5px
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/deep/ .ivu-alert-message {
 | 
			
		||||
  p {
 | 
			
		||||
    margin: 4px 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tips {
 | 
			
		||||
  background: #f7f7f7;
 | 
			
		||||
.tips{
 | 
			
		||||
  background:#f7f7f7;
 | 
			
		||||
  padding: 16px;
 | 
			
		||||
  border-radius: .4em;
 | 
			
		||||
 | 
			
		||||
  > p {
 | 
			
		||||
  >p{
 | 
			
		||||
    margin: 6px 0;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.qrcode {
 | 
			
		||||
.qrcode{
 | 
			
		||||
  display: flex;
 | 
			
		||||
  justify-content: space-evenly;
 | 
			
		||||
  padding-top: 10px
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.qrcode-platform {
 | 
			
		||||
.qrcode-platform{
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  margin: 5px;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,7 +69,7 @@
 | 
			
		|||
            <Button @click="goPay(order.sn)" size="small" type="success" v-if="order.allowOperationVO.pay">去支付</Button>
 | 
			
		||||
            <Button @click="received(order.sn)" size="small" type="warning" v-if="order.allowOperationVO.rog">确认收货</Button>
 | 
			
		||||
            <!-- 售后 -->
 | 
			
		||||
            <Button v-if="order.groupAfterSaleStatus && (order.groupAfterSaleStatus==='NOT_APPLIED'|| order.groupAfterSaleStatus==='PART_AFTER_SALE' )"
 | 
			
		||||
            <Button v-if="order.groupAfterSaleStatus && (order.groupAfterSaleStatus.includes('NOT_APPLIED')|| order.groupAfterSaleStatus.includes('PART_AFTER_SALE'))"
 | 
			
		||||
                    @click="applyAfterSale(order.orderItems)" size="small">申请售后</Button>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,6 +204,10 @@
 | 
			
		|||
          <span>活动优惠:</span
 | 
			
		||||
          ><span>-{{ order.order.discountPrice | unitPrice("¥") }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div v-if="order.order.priceDetailDTO.updatePrice">
 | 
			
		||||
          <span>修改价格:</span
 | 
			
		||||
          ><span>{{ order.order.priceDetailDTO.updatePrice | unitPrice("¥") }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div>
 | 
			
		||||
          <span>应付金额:</span>
 | 
			
		||||
          <span class="actrual-price">{{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -900,6 +900,15 @@ aws4@^1.2.1, aws4@^1.8.0:
 | 
			
		|||
  resolved "https://registry.nlark.com/aws4/download/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
 | 
			
		||||
  integrity sha1-1h9G2DslGSUOJ4Ta9bCUeai0HFk=
 | 
			
		||||
 | 
			
		||||
axios@1.2.3:
 | 
			
		||||
  version "1.2.3"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/axios/-/axios-1.2.3.tgz#31a3d824c0ebf754a004b585e5f04a5f87e6c4ff"
 | 
			
		||||
  integrity sha512-pdDkMYJeuXLZ6Xj/Q5J3Phpe+jbGdsSzlQaFVkMQzRUL05+6+tetX8TV3p4HrU4kzuO9bt+io/yGQxuyxA/xcw==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    follow-redirects "^1.15.0"
 | 
			
		||||
    form-data "^4.0.0"
 | 
			
		||||
    proxy-from-env "^1.1.0"
 | 
			
		||||
 | 
			
		||||
axios@^0.19.2:
 | 
			
		||||
  version "0.19.2"
 | 
			
		||||
  resolved "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz"
 | 
			
		||||
| 
						 | 
				
			
			@ -912,6 +921,11 @@ balanced-match@^1.0.0:
 | 
			
		|||
  resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz"
 | 
			
		||||
  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
 | 
			
		||||
 | 
			
		||||
balloon-css@^1.0.3:
 | 
			
		||||
  version "1.2.0"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/balloon-css/-/balloon-css-1.2.0.tgz#53d3fb4051264a278a58713bed6865845dbcaf4b"
 | 
			
		||||
  integrity sha512-urXwkHgwp6GsXVF+it01485Z2Cj4pnW02ICnM0TemOlkKmCNnDLmyy+ZZiRXBpwldUXO+aRNr7Hdia4CBvXJ5A==
 | 
			
		||||
 | 
			
		||||
base64-js@^1.0.2:
 | 
			
		||||
  version "1.5.1"
 | 
			
		||||
  resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.5.1.tgz"
 | 
			
		||||
| 
						 | 
				
			
			@ -1671,10 +1685,10 @@ colorette@^1.2.2:
 | 
			
		|||
  resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz"
 | 
			
		||||
  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
 | 
			
		||||
 | 
			
		||||
combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6:
 | 
			
		||||
combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.5, combined-stream@~1.0.6:
 | 
			
		||||
  version "1.0.8"
 | 
			
		||||
  resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
 | 
			
		||||
  integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=
 | 
			
		||||
  resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
 | 
			
		||||
  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    delayed-stream "~1.0.0"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2456,6 +2470,15 @@ dotenv@^8.2.0:
 | 
			
		|||
  resolved "https://registry.nlark.com/dotenv/download/dotenv-8.6.0.tgz?cache=0&sync_timestamp=1621628681571&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdotenv%2Fdownload%2Fdotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b"
 | 
			
		||||
  integrity sha1-Bhr2ZNGff02PxuT/m1hM4jety4s=
 | 
			
		||||
 | 
			
		||||
dplayer@^1.27.1:
 | 
			
		||||
  version "1.27.1"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/dplayer/-/dplayer-1.27.1.tgz#2d7bb67b515b29a68edaec906a2904acd277dfd4"
 | 
			
		||||
  integrity sha512-2laBMXs5V1B9zPwJ7eAIw/OBo+Xjvy03i4GHTk3Cg+IWbrq8rKMFO0fFr6ClAYotYOCcFGOvaJDkOZcgKllsCA==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    axios "1.2.3"
 | 
			
		||||
    balloon-css "^1.0.3"
 | 
			
		||||
    promise-polyfill "8.3.0"
 | 
			
		||||
 | 
			
		||||
duplexer@^0.1.1:
 | 
			
		||||
  version "0.1.2"
 | 
			
		||||
  resolved "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz"
 | 
			
		||||
| 
						 | 
				
			
			@ -3001,6 +3024,11 @@ follow-redirects@1.5.10, follow-redirects@^1.0.0:
 | 
			
		|||
  dependencies:
 | 
			
		||||
    debug "=3.1.0"
 | 
			
		||||
 | 
			
		||||
follow-redirects@^1.15.0:
 | 
			
		||||
  version "1.15.5"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020"
 | 
			
		||||
  integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
 | 
			
		||||
 | 
			
		||||
for-in@^0.1.3:
 | 
			
		||||
  version "0.1.8"
 | 
			
		||||
  resolved "https://registry.npm.taobao.org/for-in/download/for-in-0.1.8.tgz"
 | 
			
		||||
| 
						 | 
				
			
			@ -3023,6 +3051,15 @@ forever-agent@~0.6.1:
 | 
			
		|||
  resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz"
 | 
			
		||||
  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
 | 
			
		||||
 | 
			
		||||
form-data@^4.0.0:
 | 
			
		||||
  version "4.0.0"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
 | 
			
		||||
  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
 | 
			
		||||
  dependencies:
 | 
			
		||||
    asynckit "^0.4.0"
 | 
			
		||||
    combined-stream "^1.0.8"
 | 
			
		||||
    mime-types "^2.1.12"
 | 
			
		||||
 | 
			
		||||
form-data@~2.1.1:
 | 
			
		||||
  version "2.1.4"
 | 
			
		||||
  resolved "https://registry.nlark.com/form-data/download/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
 | 
			
		||||
| 
						 | 
				
			
			@ -6118,6 +6155,11 @@ promise-inflight@^1.0.1:
 | 
			
		|||
  resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz"
 | 
			
		||||
  integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
 | 
			
		||||
 | 
			
		||||
promise-polyfill@8.3.0:
 | 
			
		||||
  version "8.3.0"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/promise-polyfill/-/promise-polyfill-8.3.0.tgz#9284810268138d103807b11f4e23d5e945a4db63"
 | 
			
		||||
  integrity sha512-H5oELycFml5yto/atYqmjyigJoAo3+OXwolYiH7OfQuYlAqhxNvTfiNMbV9hsC6Yp83yE5r2KTVmtrG6R9i6Pg==
 | 
			
		||||
 | 
			
		||||
promise@^7.1.1:
 | 
			
		||||
  version "7.3.1"
 | 
			
		||||
  resolved "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
 | 
			
		||||
| 
						 | 
				
			
			@ -6133,6 +6175,11 @@ proxy-addr@~2.0.7:
 | 
			
		|||
    forwarded "0.2.0"
 | 
			
		||||
    ipaddr.js "1.9.1"
 | 
			
		||||
 | 
			
		||||
proxy-from-env@^1.1.0:
 | 
			
		||||
  version "1.1.0"
 | 
			
		||||
  resolved "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
 | 
			
		||||
  integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
 | 
			
		||||
 | 
			
		||||
prr@~1.0.1:
 | 
			
		||||
  version "1.0.1"
 | 
			
		||||
  resolved "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
# 默认依赖包指定淘宝源
 | 
			
		||||
registry=https://registry.npm.taobao.org/
 | 
			
		||||
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
 | 
			
		||||
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
 | 
			
		||||
electron_mirror=https://npm.taobao.org/mirrors/electron/
 | 
			
		||||
registry "https://registry.npmmirror.com"
 | 
			
		||||
sass_binary_site "https://npmmirror.com/mirrors/node-sass"
 | 
			
		||||
phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
 | 
			
		||||
electron_mirror "https://npmmirror.com/mirrors/electron"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ var BASE = {
 | 
			
		|||
    common: "https://common-api.pickmall.cn",
 | 
			
		||||
    buyer: "https://buyer-api.pickmall.cn",
 | 
			
		||||
    seller: "https://store-api.pickmall.cn",
 | 
			
		||||
    manager: "https://admin-api.pickmall.cn",
 | 
			
		||||
    manager: "http://localhost:8887",
 | 
			
		||||
  },
 | 
			
		||||
  API_PROD: {
 | 
			
		||||
    common: "https://common-api.pickmall.cn",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,11 +53,6 @@ export const getDistributionCash = (params) => {
 | 
			
		|||
export const auditDistributionCash = (id,params) => {
 | 
			
		||||
    return postRequest(`/distribution/cash/audit/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
//分销会员列表
 | 
			
		||||
export const getDistributionMember = (id,params) => {
 | 
			
		||||
  return getRequest(`/distribution/distribution/memberList/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
//查看分销团队列表
 | 
			
		||||
export const getDistributionGroup = (id,params) => {
 | 
			
		||||
  return getRequest(`/distribution/distribution/groupList/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,7 +57,7 @@
 | 
			
		|||
    </Modal>
 | 
			
		||||
 | 
			
		||||
    <Modal width="1000" v-model="showOssManager" @on-ok="confirmUrls">
 | 
			
		||||
    <OssManage ref="ossManage" @selected="handleCallback"  />
 | 
			
		||||
    <OssManage ref="ossManage" :isComponent="true" @selected="handleCallback"  />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,7 +47,7 @@
 | 
			
		|||
    </Modal>
 | 
			
		||||
 | 
			
		||||
    <Modal width="1200px" v-model="picModalFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" isComponent="true" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -111,9 +111,12 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    // 图片回显
 | 
			
		||||
    callbackSelected(val) {
 | 
			
		||||
      console.log('图片回显', val);
 | 
			
		||||
      this.picModalFlag = false;
 | 
			
		||||
      this.currentValue = val.url;
 | 
			
		||||
      this.picIndex = "";
 | 
			
		||||
      this.$emit("input", this.currentValue);
 | 
			
		||||
      this.$emit("on-change", this.currentValue);
 | 
			
		||||
    },
 | 
			
		||||
    // 初始化
 | 
			
		||||
    init() {
 | 
			
		||||
| 
						 | 
				
			
			@ -150,7 +153,6 @@ export default {
 | 
			
		|||
      this.loading = false;
 | 
			
		||||
      if (res.success) {
 | 
			
		||||
        this.currentValue = res.result;
 | 
			
		||||
        console.log('this.currentValue', this.currentValue);
 | 
			
		||||
        this.$emit("input", this.currentValue);
 | 
			
		||||
        this.$emit("on-change", this.currentValue);
 | 
			
		||||
      } else {
 | 
			
		||||
| 
						 | 
				
			
			@ -174,6 +176,7 @@ export default {
 | 
			
		|||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      this.currentValue = value;
 | 
			
		||||
      this.$emit("input", this.currentValue);
 | 
			
		||||
      this.$emit("on-change", this.currentValue);
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -276,19 +276,7 @@ export const otherRouter = {
 | 
			
		|||
      title: "查看直播",
 | 
			
		||||
      name: "live-detail",
 | 
			
		||||
      component: () => import("@/views/promotions/live/live-detail.vue")
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      path: "group-list",
 | 
			
		||||
      title: "分销团队",
 | 
			
		||||
      name: "group-list",
 | 
			
		||||
      component: () => import("@/views/distribution/distributionGroup.vue")
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      path: "distribution-member",
 | 
			
		||||
      title: "分销会员列表",
 | 
			
		||||
      name: "distribution-member",
 | 
			
		||||
      component: () => import("@/views/distribution/distributionMember.vue")
 | 
			
		||||
    },
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <Card>
 | 
			
		||||
      <Row @keydown.enter.native="handleSearch">
 | 
			
		||||
      <Row @keydown.enter.native.prevent="handleSearch">
 | 
			
		||||
        <Form
 | 
			
		||||
          ref="searchForm"
 | 
			
		||||
          :model="searchForm"
 | 
			
		||||
| 
						 | 
				
			
			@ -68,10 +68,9 @@
 | 
			
		|||
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
  getDistributionListData,
 | 
			
		||||
  retreatDistribution,
 | 
			
		||||
  resumeDistribution,
 | 
			
		||||
  auditDistribution,
 | 
			
		||||
getDistributionListData,
 | 
			
		||||
resumeDistribution,
 | 
			
		||||
retreatDistribution
 | 
			
		||||
} from "@/api/distribution";
 | 
			
		||||
import { distributionStatusList } from "./dataJson.js";
 | 
			
		||||
export default {
 | 
			
		||||
| 
						 | 
				
			
			@ -90,23 +89,19 @@ export default {
 | 
			
		|||
        {
 | 
			
		||||
          title: "会员名称",
 | 
			
		||||
          key: "memberName",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          minWidth: 120,
 | 
			
		||||
          tooltip: true,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "推广单数",
 | 
			
		||||
          key: "distributionOrderCount",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "推广人数",
 | 
			
		||||
          key: "peopleNum",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          minWidth: 120,
 | 
			
		||||
          width: 150,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "分销金额",
 | 
			
		||||
          key: "rebateTotal",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          width: 150,
 | 
			
		||||
          sortable: false,
 | 
			
		||||
          render: (h, params) => {
 | 
			
		||||
            return h("priceColorScheme", {props:{value:params.row.rebateTotal,color:this.$mainColor}} );
 | 
			
		||||
| 
						 | 
				
			
			@ -114,9 +109,9 @@ export default {
 | 
			
		|||
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "可提现金额",
 | 
			
		||||
          title: "可用金额",
 | 
			
		||||
          key: "canRebate",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          width: 150,
 | 
			
		||||
          sortable: false,
 | 
			
		||||
          render: (h, params) => {
 | 
			
		||||
            return h("priceColorScheme", {props:{value:params.row.canRebate,color:'green'}} );
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +120,7 @@ export default {
 | 
			
		|||
        {
 | 
			
		||||
          title: "冻结金额",
 | 
			
		||||
          key: "commissionFrozen",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          width: 150,
 | 
			
		||||
          sortable: false,
 | 
			
		||||
          render: (h, params) => {
 | 
			
		||||
            return h("priceColorScheme", {props:{value:params.row.commissionFrozen,color:'#347dda'}} );
 | 
			
		||||
| 
						 | 
				
			
			@ -134,7 +129,7 @@ export default {
 | 
			
		|||
        {
 | 
			
		||||
          title: "状态",
 | 
			
		||||
          key: "distributionStatus",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          width: 150,
 | 
			
		||||
          sortable: false,
 | 
			
		||||
          render: (h, params) => {
 | 
			
		||||
            if (params.row.distributionStatus == "PASS") {
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +148,7 @@ export default {
 | 
			
		|||
          key: "action",
 | 
			
		||||
          align: "center",
 | 
			
		||||
          fixed: "right",
 | 
			
		||||
          minWidth: 200,
 | 
			
		||||
          width: 140,
 | 
			
		||||
          render: (h, params) => {
 | 
			
		||||
            return h(
 | 
			
		||||
              "div",
 | 
			
		||||
| 
						 | 
				
			
			@ -163,42 +158,7 @@ export default {
 | 
			
		|||
                  justifyContent: "center",
 | 
			
		||||
                },
 | 
			
		||||
              },
 | 
			
		||||
              [h(
 | 
			
		||||
                "Button",
 | 
			
		||||
                {
 | 
			
		||||
                  props: {
 | 
			
		||||
                    type: "success",
 | 
			
		||||
                    size: "small",
 | 
			
		||||
                  },
 | 
			
		||||
                  style: {
 | 
			
		||||
                    marginRight: "5px",
 | 
			
		||||
                  },
 | 
			
		||||
                  on: {
 | 
			
		||||
                    click: () => {
 | 
			
		||||
                      this.memberList(params.row);
 | 
			
		||||
                    },
 | 
			
		||||
                  },
 | 
			
		||||
                },
 | 
			
		||||
                "下级用户"
 | 
			
		||||
              ),
 | 
			
		||||
              h(
 | 
			
		||||
                "Button",
 | 
			
		||||
                {
 | 
			
		||||
                  props: {
 | 
			
		||||
                    type: "info",
 | 
			
		||||
                    size: "small",
 | 
			
		||||
                  },
 | 
			
		||||
                  style: {
 | 
			
		||||
                    marginRight: "5px",
 | 
			
		||||
                  },
 | 
			
		||||
                  on: {
 | 
			
		||||
                    click: () => {
 | 
			
		||||
                      this.groupList(params.row);
 | 
			
		||||
                    },
 | 
			
		||||
                  },
 | 
			
		||||
                },
 | 
			
		||||
                "团队列表"
 | 
			
		||||
                ),
 | 
			
		||||
              [
 | 
			
		||||
                h(
 | 
			
		||||
                  "Button",
 | 
			
		||||
                  {
 | 
			
		||||
| 
						 | 
				
			
			@ -253,14 +213,6 @@ export default {
 | 
			
		|||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    //团队列表
 | 
			
		||||
    groupList(row){
 | 
			
		||||
      this.$router.push({ name: "group-list", query: { id: row.id } });
 | 
			
		||||
    },
 | 
			
		||||
    memberList(row){
 | 
			
		||||
      this.$router.push({ name: "distribution-member", query: { id: row.id } });
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    // 初始化数据
 | 
			
		||||
    init() {
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <Card>
 | 
			
		||||
      <Row @keydown.enter.native="handleSearch">
 | 
			
		||||
      <Row @keydown.enter.native.prevent="handleSearch">
 | 
			
		||||
        <Form
 | 
			
		||||
          ref="searchForm"
 | 
			
		||||
          :model="searchForm"
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +53,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getDistributionListData, auditDistribution } from "@/api/distribution";
 | 
			
		||||
import { auditDistribution, getDistributionListData } from "@/api/distribution";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "distributionApply",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +1,15 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <Card>
 | 
			
		||||
        <Form ref="searchForm" :model="searchForm"  class="search-form">
 | 
			
		||||
        <Form ref="searchForm" @keydown.enter.native.prevent="handleSearch" :model="searchForm"  class="search-form">
 | 
			
		||||
          <Form-item label="会员名称"  class="flex" prop="memberName">
 | 
			
		||||
            <Input
 | 
			
		||||
              type="text" v-model="searchForm.memberName" clearable
 | 
			
		||||
              type="text" placeholder="请输入会员名称" v-model="searchForm.memberName" clearable
 | 
			
		||||
              style="width: 200px"></Input>
 | 
			
		||||
          </Form-item>
 | 
			
		||||
          <Form-item label="编号" class="flex">
 | 
			
		||||
            <Input
 | 
			
		||||
              type="text" v-model="searchForm.sn" clearable
 | 
			
		||||
              type="text" placeholder="请输入编号" v-model="searchForm.sn" clearable
 | 
			
		||||
              style="width: 200px"></Input>
 | 
			
		||||
          </Form-item>
 | 
			
		||||
          <Form-item label="状态"
 | 
			
		||||
| 
						 | 
				
			
			@ -55,10 +55,10 @@
 | 
			
		|||
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
        getDistributionCash,
 | 
			
		||||
        auditDistributionCash
 | 
			
		||||
    } from "@/api/distribution";
 | 
			
		||||
import {cashStatusList} from './dataJson'
 | 
			
		||||
auditDistributionCash,
 | 
			
		||||
getDistributionCash
 | 
			
		||||
} from "@/api/distribution";
 | 
			
		||||
import { cashStatusList } from './dataJson';
 | 
			
		||||
export default {
 | 
			
		||||
  name: "distributionCash",
 | 
			
		||||
  data() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <Card>
 | 
			
		||||
      <Form @keydown.enter.native="handleSearch" ref="searchForm" :model="searchForm" inline :label-width="70"
 | 
			
		||||
      <Form @keydown.enter.native.prevent="handleSearch" ref="searchForm" :model="searchForm" inline :label-width="70"
 | 
			
		||||
        class="search-form">
 | 
			
		||||
        <Form-item label="商品名称" prop="goodsName">
 | 
			
		||||
          <Input type="text" v-model="searchForm.goodsName" placeholder="请输入商品名称" clearable style="width: 200px" />
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getDistributionGoods, delDistributionGoods } from "@/api/distribution";
 | 
			
		||||
import { delDistributionGoods, getDistributionGoods } from "@/api/distribution";
 | 
			
		||||
import vueQr from "vue-qr";
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
| 
						 | 
				
			
			@ -102,6 +102,11 @@ export default {
 | 
			
		|||
          },
 | 
			
		||||
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "库存",
 | 
			
		||||
          key: "quantity",
 | 
			
		||||
          minWidth: 80,
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "添加时间",
 | 
			
		||||
          key: "createTime",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,103 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <Card>
 | 
			
		||||
      <Table :loading="loading" border :columns="columns" :data="data" ref="table" class="mt_10"></Table>
 | 
			
		||||
      <Row type="flex" justify="end" class="page padding-row">
 | 
			
		||||
        <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10,20,50]" size="small" show-total show-elevator show-sizer></Page>
 | 
			
		||||
      </Row>
 | 
			
		||||
    </Card>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
  getDistributionGroup
 | 
			
		||||
} from "@/api/distribution";
 | 
			
		||||
import {cashStatusList} from './dataJson'
 | 
			
		||||
export default {
 | 
			
		||||
  name: "distributionGroup",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: "",//分销员id
 | 
			
		||||
      cashStatusList, // 状态列表
 | 
			
		||||
      loading: true, // 表单加载状态
 | 
			
		||||
      modalVisible: false, // 添加或编辑显示
 | 
			
		||||
      modalTitle: "", // 添加或编辑标题
 | 
			
		||||
      result: 'FAIL_AUDITING', // 是否通过
 | 
			
		||||
      searchForm: { // 搜索框初始化对象
 | 
			
		||||
        pageNumber: 1, // 当前页数
 | 
			
		||||
        pageSize: 10, // 页面大小
 | 
			
		||||
        sort: "createTime", // 默认排序字段
 | 
			
		||||
        order: "desc", // 默认排序方式
 | 
			
		||||
      },
 | 
			
		||||
      handleStatus:'edit',// 判断是编辑还是查看
 | 
			
		||||
      form: { // 添加或编辑表单对象初始化数据
 | 
			
		||||
        sn: "",
 | 
			
		||||
        memberName: "",
 | 
			
		||||
        price: "",
 | 
			
		||||
      },
 | 
			
		||||
      submitLoading: false, // 添加或编辑提交状态
 | 
			
		||||
      columns: [
 | 
			
		||||
        {
 | 
			
		||||
          title: "昵称",
 | 
			
		||||
          key: "memberName",
 | 
			
		||||
          minWidth: 200
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "销售额",
 | 
			
		||||
          key: "distributionOrderPrice",
 | 
			
		||||
          minWidth: 120
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "订单量",
 | 
			
		||||
          key: "distributionOrderCount",
 | 
			
		||||
          minWidth: 120
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      data: [], // 表单数据
 | 
			
		||||
      total: 0 // 表单数据总数
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    // 初始化数据
 | 
			
		||||
    init() {
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 改变页码
 | 
			
		||||
    changePage(v) {
 | 
			
		||||
      this.searchForm.pageNumber = v;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 改变页数
 | 
			
		||||
    changePageSize(v) {
 | 
			
		||||
      this.searchForm.pageSize = v;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 搜索
 | 
			
		||||
    handleSearch() {
 | 
			
		||||
      this.searchForm.pageNumber = 1;
 | 
			
		||||
      this.searchForm.pageSize = 10;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 获取列表数据
 | 
			
		||||
    getDataList() {
 | 
			
		||||
      this.loading = true;
 | 
			
		||||
      console.log(this.id);
 | 
			
		||||
      // 带多条件搜索参数获取表单数据 请自行修改接口
 | 
			
		||||
      getDistributionGroup(this.id,this.searchForm).then(res => {
 | 
			
		||||
        this.loading = false;
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
          this.data = res.result.records;
 | 
			
		||||
          this.total = res.result.total;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      this.total = this.data.length;
 | 
			
		||||
      this.loading = false;
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.id = this.$route.query.id;
 | 
			
		||||
    this.init();
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,114 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div>
 | 
			
		||||
    <Card>
 | 
			
		||||
      <Table :loading="loading" border :columns="columns" :data="data" ref="table" class="mt_10"></Table>
 | 
			
		||||
      <Row type="flex" justify="end" class="page padding-row">
 | 
			
		||||
        <Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10,20,50]" size="small" show-total show-elevator show-sizer></Page>
 | 
			
		||||
      </Row>
 | 
			
		||||
    </Card>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
  getDistributionCash,
 | 
			
		||||
  auditDistributionCash, getDistributionMember
 | 
			
		||||
} from "@/api/distribution";
 | 
			
		||||
import {cashStatusList} from './dataJson'
 | 
			
		||||
export default {
 | 
			
		||||
  name: "distributionMember",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: "",//分销员id
 | 
			
		||||
      cashStatusList, // 状态列表
 | 
			
		||||
      loading: true, // 表单加载状态
 | 
			
		||||
      modalVisible: false, // 添加或编辑显示
 | 
			
		||||
      modalTitle: "", // 添加或编辑标题
 | 
			
		||||
      result: 'FAIL_AUDITING', // 是否通过
 | 
			
		||||
      searchForm: { // 搜索框初始化对象
 | 
			
		||||
        pageNumber: 1, // 当前页数
 | 
			
		||||
        pageSize: 10, // 页面大小
 | 
			
		||||
        sort: "createTime", // 默认排序字段
 | 
			
		||||
        order: "desc", // 默认排序方式
 | 
			
		||||
      },
 | 
			
		||||
      handleStatus:'edit',// 判断是编辑还是查看
 | 
			
		||||
      form: { // 添加或编辑表单对象初始化数据
 | 
			
		||||
        sn: "",
 | 
			
		||||
        memberName: "",
 | 
			
		||||
        price: "",
 | 
			
		||||
      },
 | 
			
		||||
      submitLoading: false, // 添加或编辑提交状态
 | 
			
		||||
      columns: [
 | 
			
		||||
        {
 | 
			
		||||
          title: "客户昵称",
 | 
			
		||||
          key: "nickName",
 | 
			
		||||
          minWidth: 200
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "成交额",
 | 
			
		||||
          key: "orderPrice",
 | 
			
		||||
          minWidth: 120
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "佣金总额",
 | 
			
		||||
          key: "rebatePrice",
 | 
			
		||||
          minWidth: 120
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "订单数",
 | 
			
		||||
          key: "orderNum",
 | 
			
		||||
          minWidth: 130
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          title: "最近下单时间",
 | 
			
		||||
          key: "lastLoginDate",
 | 
			
		||||
          minWidth: 130
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      data: [], // 表单数据
 | 
			
		||||
      total: 0 // 表单数据总数
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    // 初始化数据
 | 
			
		||||
    init() {
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 改变页码
 | 
			
		||||
    changePage(v) {
 | 
			
		||||
      this.searchForm.pageNumber = v;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 改变页数
 | 
			
		||||
    changePageSize(v) {
 | 
			
		||||
      this.searchForm.pageSize = v;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 搜索
 | 
			
		||||
    handleSearch() {
 | 
			
		||||
      this.searchForm.pageNumber = 1;
 | 
			
		||||
      this.searchForm.pageSize = 10;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 获取列表数据
 | 
			
		||||
    getDataList() {
 | 
			
		||||
      this.loading = true;
 | 
			
		||||
      console.log(this.id);
 | 
			
		||||
      // 带多条件搜索参数获取表单数据 请自行修改接口
 | 
			
		||||
      getDistributionMember(this.id,this.searchForm).then(res => {
 | 
			
		||||
        this.loading = false;
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
          this.data = res.result.records;
 | 
			
		||||
          this.total = res.result.total;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      this.total = this.data.length;
 | 
			
		||||
      this.loading = false;
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.id = this.$route.query.id;
 | 
			
		||||
    this.init();
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +11,7 @@
 | 
			
		|||
            style="width: 200px"
 | 
			
		||||
          />
 | 
			
		||||
        </Form-item>
 | 
			
		||||
        <Form-item label="分销员" prop="distributionName">
 | 
			
		||||
        <Form-item label="分销商" prop="distributionName">
 | 
			
		||||
          <Input
 | 
			
		||||
            type="text"
 | 
			
		||||
            v-model="searchForm.distributionName"
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@
 | 
			
		|||
          },
 | 
			
		||||
 | 
			
		||||
          {
 | 
			
		||||
            title: "分销员",
 | 
			
		||||
            title: "分销商",
 | 
			
		||||
            key: "distributionName",
 | 
			
		||||
            tooltip: true,
 | 
			
		||||
            minWidth:80,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div style="background-color: #fff;">
 | 
			
		||||
 | 
			
		||||
    <Form ref="form" :model="form" :label-width="120" style="padding: 10px;">
 | 
			
		||||
    <Form ref="form" :model="form" :rules="formRule" :label-width="120" style="padding: 10px;">
 | 
			
		||||
 | 
			
		||||
      <Divider orientation="left">分销设置</Divider>
 | 
			
		||||
      <FormItem label="是否开启分销" prop="isOpen">
 | 
			
		||||
| 
						 | 
				
			
			@ -10,110 +10,12 @@
 | 
			
		|||
          <span slot="close">关闭</span>
 | 
			
		||||
        </i-switch>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="分销层级" prop="level">
 | 
			
		||||
        <RadioGroup v-model="form.level" size="large">
 | 
			
		||||
          <Radio label="1">1级</Radio>
 | 
			
		||||
          <Radio label="2">2级</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      <FormItem label="分销关系绑定天数" prop="distributionDay">
 | 
			
		||||
        <InputNumber :min="1" :max="365" style="width:100px;" v-model="form.distributionDay"></InputNumber>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="分销模式" prop="mode">
 | 
			
		||||
        <RadioGroup v-model="form.mode" size="large">
 | 
			
		||||
          <Radio label="1">指定分销</Radio>
 | 
			
		||||
          <Radio label="2">人人分销</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      <FormItem label="分销结算天数" prop="cashDay">
 | 
			
		||||
        <InputNumber :min="0"  :max="365"  style="width:100px;" v-model="form.cashDay"></InputNumber>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="分销关系绑定" prop="binding">
 | 
			
		||||
        <RadioGroup v-model="form.binding" size="large">
 | 
			
		||||
          <Radio label="ALL">所有用户</Radio>
 | 
			
		||||
          <Radio label="NEW">新用户</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="分销绑定模式" prop="validity">
 | 
			
		||||
        <RadioGroup v-model="form.validity" size="large">
 | 
			
		||||
          <Radio label="FOREVER">永久</Radio>
 | 
			
		||||
          <Radio label="EXP">有效期</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="有效期天数" prop="validityDay">
 | 
			
		||||
        <InputNumber :min="1" :max="365" style="width:200px;" v-model="form.validityDay"></InputNumber>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
 | 
			
		||||
      <Divider orientation="left">返佣设置</Divider>
 | 
			
		||||
      <FormItem label="佣金模式" prop="commissionModel">
 | 
			
		||||
        <RadioGroup v-model="form.commissionModel"  size="large">
 | 
			
		||||
          <Radio label="1">平台承担</Radio>
 | 
			
		||||
          <Radio label="2">商户承担</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="一级佣金比例" prop="firstCommission">
 | 
			
		||||
        <InputNumber :min="0" :max="100"
 | 
			
		||||
                     v-model="form.firstCommission"
 | 
			
		||||
                     :formatter="value => `${value}%`"
 | 
			
		||||
                     :parser="value => value.replace('%', '')">
 | 
			
		||||
        </InputNumber>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="二级佣金比例" prop="secondaryCommission">
 | 
			
		||||
        <InputNumber :min="0"
 | 
			
		||||
                     :max="100"
 | 
			
		||||
                     v-model="form.secondaryCommission"
 | 
			
		||||
                     :formatter="value => `${value}%`"
 | 
			
		||||
                     :parser="value => value.replace('%', '')">
 | 
			
		||||
         </InputNumber>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="自购返佣" prop="selfCommission">
 | 
			
		||||
        <RadioGroup v-model="form.selfCommission"  size="large">
 | 
			
		||||
          <Radio label="1">开启</Radio>
 | 
			
		||||
          <Radio label="2">关闭</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="推广返佣" prop="promotion">
 | 
			
		||||
        <RadioGroup v-model="form.promotion"  size="large">
 | 
			
		||||
          <Radio label="1">开启</Radio>
 | 
			
		||||
          <Radio label="2">关闭</Radio>
 | 
			
		||||
        </RadioGroup>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
 | 
			
		||||
      <FormItem label="每日最大推广数量" prop="maxPromotionNum">
 | 
			
		||||
        <InputNumber :min="0" :max="1000" style="width:200px;" v-model="form.maxPromotionNum"></InputNumber>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
 | 
			
		||||
<!--      <Divider orientation="left">提现设置</Divider>-->
 | 
			
		||||
<!--      <FormItem label="佣金模式" prop="withdrawalType">-->
 | 
			
		||||
<!--        <RadioGroup v-model="form.withdrawalType" type="button" button-style="solid">-->
 | 
			
		||||
<!--          <Radio label="1">线下转账</Radio>-->
 | 
			
		||||
<!--          <Radio label="2">微信零钱</Radio>-->
 | 
			
		||||
<!--        </RadioGroup>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
<!--      <FormItem label="提现最低金额" prop="minPrice">-->
 | 
			
		||||
<!--        <Input type="number" style="width:200px;" v-model="form.minPrice">-->
 | 
			
		||||
<!--        </Input>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
<!--      <FormItem label="提现最高金额" prop="maxPrice">-->
 | 
			
		||||
<!--        <Input type="number" style="width:200px;" v-model="form.maxPrice">-->
 | 
			
		||||
<!--        </Input>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
<!--      <FormItem label="提现手续费" prop="fee">-->
 | 
			
		||||
<!--        <Input type="number" style="width:200px;" v-model="form.fee">-->
 | 
			
		||||
<!--        </Input>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
<!--      <FormItem label="是否支持银行卡" prop="withdrawalBank">-->
 | 
			
		||||
<!--        <i-switch size="large" v-model="form.withdrawalBank" :true-value="true" :false-value="false">-->
 | 
			
		||||
<!--          <span slot="open">开启</span>-->
 | 
			
		||||
<!--          <span slot="close">关闭</span>-->
 | 
			
		||||
<!--        </i-switch>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
<!--      <FormItem label="是否支持微信" prop="withdrawalWechat">-->
 | 
			
		||||
<!--        <i-switch size="large" v-model="form.withdrawalWechat" :true-value="true" :false-value="false">-->
 | 
			
		||||
<!--          <span slot="open">开启</span>-->
 | 
			
		||||
<!--          <span slot="close">关闭</span>-->
 | 
			
		||||
<!--        </i-switch>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
<!--      <FormItem label="是否支持支付宝" prop="withdrawalAli">-->
 | 
			
		||||
<!--        <i-switch size="large" v-model="form.withdrawalAli" :true-value="true" :false-value="false">-->
 | 
			
		||||
<!--          <span slot="open">开启</span>-->
 | 
			
		||||
<!--          <span slot="close">关闭</span>-->
 | 
			
		||||
<!--        </i-switch>-->
 | 
			
		||||
<!--      </FormItem>-->
 | 
			
		||||
      <FormItem>
 | 
			
		||||
        <Button type="primary" @click="submit">保存</Button>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
| 
						 | 
				
			
			@ -122,8 +24,8 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {getSetting, setSetting} from "@/api/index";
 | 
			
		||||
 | 
			
		||||
import { setSetting, getSetting } from "@/api/index";
 | 
			
		||||
import { regular } from "@/utils";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "distributionSetting",
 | 
			
		||||
  data() {
 | 
			
		||||
| 
						 | 
				
			
			@ -131,36 +33,20 @@ export default {
 | 
			
		|||
      form: {
 | 
			
		||||
        // 添加或编辑表单对象初始化数据
 | 
			
		||||
        isOpen: true,
 | 
			
		||||
        level: 1, //分销层级
 | 
			
		||||
        mode: 0, //分销模式(指定分销/人人分销)
 | 
			
		||||
        binding: "NEW", //分销关系绑定(新用户/所有用户)
 | 
			
		||||
        validity: "FOREVER", //分销绑定模式(有效期/永久)
 | 
			
		||||
        validityDay: 0, //有效期天数
 | 
			
		||||
        commissionModel: 0, //佣金模式(平台承担/商户承担)
 | 
			
		||||
        firstCommission: 0, //一级佣金比例
 | 
			
		||||
        secondaryCommission: 0, //二级佣金比例
 | 
			
		||||
        selfCommission: 0, //自购返佣
 | 
			
		||||
        promotion: 0, //推广返佣
 | 
			
		||||
        maxPromotionNum: 0, //每日最大推广数量
 | 
			
		||||
        // withdrawalType: 0, //提现方式(线下转账/微信零钱)
 | 
			
		||||
        // minPrice: 0, //提现最低金额
 | 
			
		||||
        // maxPrice: 0, //提现最高金额
 | 
			
		||||
        // fee: 0, //提现手续费
 | 
			
		||||
        // withdrawalBank: false, //是否支持银行卡
 | 
			
		||||
        // withdrawalWechat: false, //是否支持微信
 | 
			
		||||
        // withdrawalAli: false, //是否支持支付宝
 | 
			
		||||
        distributionDay: 0, //分销关系绑定天数
 | 
			
		||||
        cashDay: 0, //分销结算天数
 | 
			
		||||
      },
 | 
			
		||||
      // formRule: {
 | 
			
		||||
      //   isOpen: [
 | 
			
		||||
      //     regular.REQUIRED
 | 
			
		||||
      //   ],
 | 
			
		||||
      //   distributionDay: [
 | 
			
		||||
      //     regular.REQUIRED
 | 
			
		||||
      //   ],
 | 
			
		||||
      //   cashDay: [
 | 
			
		||||
      //     regular.REQUIRED
 | 
			
		||||
      //   ],
 | 
			
		||||
      // }
 | 
			
		||||
      formRule: {
 | 
			
		||||
        isOpen: [
 | 
			
		||||
          regular.REQUIRED
 | 
			
		||||
        ],
 | 
			
		||||
        distributionDay: [
 | 
			
		||||
          regular.REQUIRED
 | 
			
		||||
        ],
 | 
			
		||||
        cashDay: [
 | 
			
		||||
          regular.REQUIRED
 | 
			
		||||
        ],
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,17 +184,17 @@
 | 
			
		|||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {
 | 
			
		||||
  insertCategory,
 | 
			
		||||
  updateCategory,
 | 
			
		||||
  getBrandListData,
 | 
			
		||||
  delCategory,
 | 
			
		||||
  getCategoryBrandListData,
 | 
			
		||||
  saveCategoryBrand,
 | 
			
		||||
  getSpecificationList,
 | 
			
		||||
  getCategorySpecListData,
 | 
			
		||||
  disableCategory,
 | 
			
		||||
  saveCategorySpec,
 | 
			
		||||
  getCategoryTree,
 | 
			
		||||
delCategory,
 | 
			
		||||
disableCategory,
 | 
			
		||||
getBrandListData,
 | 
			
		||||
getCategoryBrandListData,
 | 
			
		||||
getCategorySpecListData,
 | 
			
		||||
getCategoryTree,
 | 
			
		||||
getSpecificationList,
 | 
			
		||||
insertCategory,
 | 
			
		||||
saveCategoryBrand,
 | 
			
		||||
saveCategorySpec,
 | 
			
		||||
updateCategory,
 | 
			
		||||
} from "@/api/goods";
 | 
			
		||||
 | 
			
		||||
import uploadPicInput from "@/components/lili/upload-pic-input";
 | 
			
		||||
| 
						 | 
				
			
			@ -206,6 +206,7 @@ export default {
 | 
			
		|||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      recordLevel:[], // 记录当前层级
 | 
			
		||||
      submitLoading: false, //加载状态
 | 
			
		||||
      categoryList: [], // 分类列表
 | 
			
		||||
      loading: false, // 加载状态
 | 
			
		||||
| 
						 | 
				
			
			@ -267,7 +268,6 @@ export default {
 | 
			
		|||
        },
 | 
			
		||||
      ],
 | 
			
		||||
      tableData: [], // 表格数据
 | 
			
		||||
      categoryIndex: 0, // 分类id
 | 
			
		||||
      checkedCategoryChildren: "", //选中的分类子级
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -384,7 +384,7 @@ export default {
 | 
			
		|||
              this.submitLoading = false;
 | 
			
		||||
              if (res.success) {
 | 
			
		||||
                this.$Message.success("添加成功");
 | 
			
		||||
                this.getAllList(this.categoryIndex);
 | 
			
		||||
                this.getAllList();
 | 
			
		||||
                this.modalVisible = false;
 | 
			
		||||
                this.$refs.form.resetFields();
 | 
			
		||||
              }
 | 
			
		||||
| 
						 | 
				
			
			@ -395,7 +395,7 @@ export default {
 | 
			
		|||
              this.submitLoading = false;
 | 
			
		||||
              if (res.success) {
 | 
			
		||||
                this.$Message.success("修改成功");
 | 
			
		||||
                this.getAllList(this.categoryIndex);
 | 
			
		||||
                this.getAllList();
 | 
			
		||||
                this.modalVisible = false;
 | 
			
		||||
                this.$refs.form.resetFields();
 | 
			
		||||
              }
 | 
			
		||||
| 
						 | 
				
			
			@ -416,7 +416,7 @@ export default {
 | 
			
		|||
            this.$Modal.remove();
 | 
			
		||||
            if (res.success) {
 | 
			
		||||
              this.$Message.success("操作成功");
 | 
			
		||||
              this.getAllList(0);
 | 
			
		||||
              this.getAllList();
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        },
 | 
			
		||||
| 
						 | 
				
			
			@ -425,6 +425,7 @@ export default {
 | 
			
		|||
 | 
			
		||||
    // 异步手动加载分类名称
 | 
			
		||||
    handleLoadData(item, callback) {
 | 
			
		||||
      this.recordLevel[item.level] = item.id;
 | 
			
		||||
      if (item.level == 0) {
 | 
			
		||||
        let categoryList = JSON.parse(JSON.stringify(this.categoryList));
 | 
			
		||||
        categoryList.forEach((val) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -436,14 +437,14 @@ export default {
 | 
			
		|||
            // 模拟加载
 | 
			
		||||
            setTimeout(() => {
 | 
			
		||||
              callback(val.children);
 | 
			
		||||
            }, 1000);
 | 
			
		||||
            }, 100);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
        this.deepCategoryChildren(item.id, this.categoryList);
 | 
			
		||||
        setTimeout(() => {
 | 
			
		||||
          callback(this.checkedCategoryChildren);
 | 
			
		||||
        }, 1000);
 | 
			
		||||
        }, 100);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -462,18 +463,30 @@ export default {
 | 
			
		|||
      }
 | 
			
		||||
    },
 | 
			
		||||
    // 获取分类数据
 | 
			
		||||
    getAllList(parent_id) {
 | 
			
		||||
    getAllList() {
 | 
			
		||||
      this.loading = true;
 | 
			
		||||
      getCategoryTree(parent_id).then((res) => {
 | 
			
		||||
      getCategoryTree().then((res) => {
 | 
			
		||||
        this.loading = false;
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
          localStorage.setItem("category", JSON.stringify(res.result));
 | 
			
		||||
          this.categoryList = JSON.parse(JSON.stringify(res.result));
 | 
			
		||||
          this.tableData = res.result.map((item) => {
 | 
			
		||||
            if (item.children.length != 0) {
 | 
			
		||||
            if(this.recordLevel[0] && item.id === this.recordLevel[0]) {
 | 
			
		||||
              item._showChildren = true
 | 
			
		||||
              // 继续判断第二层
 | 
			
		||||
              if(this.recordLevel[1] && item.children){
 | 
			
		||||
                item.children.map((child)=>{
 | 
			
		||||
                  if(this.recordLevel[1] && child.id === this.recordLevel[1]){
 | 
			
		||||
                    child._showChildren = true
 | 
			
		||||
                  }
 | 
			
		||||
                })
 | 
			
		||||
              }
 | 
			
		||||
            }else{
 | 
			
		||||
              if (item.children.length !== 0) {
 | 
			
		||||
                item.children = [];
 | 
			
		||||
                item._loading = false;
 | 
			
		||||
              }
 | 
			
		||||
           }
 | 
			
		||||
            return item;
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,7 +94,7 @@
 | 
			
		|||
      </Form>
 | 
			
		||||
    </Modal>
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
    <multipleMap ref="map" @callback="selectedRegion"/>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,7 +140,7 @@
 | 
			
		|||
      </Form>
 | 
			
		||||
    </Modal>
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
    <multipleMap ref="map" @callback="selectedRegion" />
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -349,7 +349,7 @@
 | 
			
		|||
            <Button type="default" @click="$refs.map.open()">选择</Button>
 | 
			
		||||
          </FormItem>
 | 
			
		||||
          <FormItem label="详细地址" prop="consigneeDetail">
 | 
			
		||||
            <Input v-model="addressForm.consigneeDetail" size="large" maxlength="50"></Input>
 | 
			
		||||
            <Input v-model="addressForm.consigneeDetail" size="large" ></Input>
 | 
			
		||||
          </FormItem>
 | 
			
		||||
        </Form>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@
 | 
			
		|||
    <liliDialog ref="liliDialog" @selectedLink="selectedLink"></liliDialog>
 | 
			
		||||
    <!-- 选择图片 -->
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag" footer-hide>
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -204,7 +204,7 @@
 | 
			
		|||
    <liliDialog ref="liliDialog" @selectedLink="selectedLink"></liliDialog>
 | 
			
		||||
    <!-- 选择图片 -->
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag" footer-hide>
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,7 +80,7 @@
 | 
			
		|||
        <liliDialog ref="liliDialog"    @selectedLink="selectedLink" :types="linkType"></liliDialog>
 | 
			
		||||
      </div>
 | 
			
		||||
      <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
         <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
         <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
      </Modal>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,7 +83,7 @@
 | 
			
		|||
        ></liliDialog>
 | 
			
		||||
      </div>
 | 
			
		||||
      <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -497,7 +497,7 @@
 | 
			
		|||
    <hotzone ref="hotzone" @changeZone="changeZone"></hotzone>
 | 
			
		||||
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -307,7 +307,7 @@ export default {
 | 
			
		|||
        pageSize: 10, // 页面大小
 | 
			
		||||
        sort: "id", // 默认排序字段
 | 
			
		||||
        order: "desc", // 默认排序方式
 | 
			
		||||
        flowType: "PAY",
 | 
			
		||||
        // flowType: "PAY",
 | 
			
		||||
        startDate: null,
 | 
			
		||||
        endDate: null,
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -375,7 +375,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    <Modal width="1200px" v-model="picModalFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
 | 
			
		||||
    <Modal width="1200px" v-model="memberModalFlag">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -133,3 +133,131 @@
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.oss-manage-box {
 | 
			
		||||
  .file-list {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    border-right: 1px solid #e5e6eb;
 | 
			
		||||
    padding: 16px 0 24px;
 | 
			
		||||
  }
 | 
			
		||||
  .pic-list {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 0 0 24px 0;
 | 
			
		||||
  }
 | 
			
		||||
  .img-box {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-wrap: wrap;
 | 
			
		||||
    align-items: flex-start;
 | 
			
		||||
    justify-content: flex-start;
 | 
			
		||||
    align-content: flex-start;
 | 
			
		||||
    margin-top: 20px;
 | 
			
		||||
    .img-item {
 | 
			
		||||
      width: 120px;
 | 
			
		||||
      height: 158px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      margin: 0 13px 8px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      .card {
 | 
			
		||||
        width: 120px;
 | 
			
		||||
        height: 120px;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        border: 2px solid transparent;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        img {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 100%;
 | 
			
		||||
        }
 | 
			
		||||
        .checkbox {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          top: 10px;
 | 
			
		||||
          right: 10px;
 | 
			
		||||
          z-index: 1000;
 | 
			
		||||
        }
 | 
			
		||||
        .preview {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 26px;
 | 
			
		||||
          background-color: #ffffff;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          line-height: 30px;
 | 
			
		||||
          color: #666666;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-wrap: nowrap;
 | 
			
		||||
          > div {
 | 
			
		||||
            width: 100%;
 | 
			
		||||
            flex: 1;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .card:hover,
 | 
			
		||||
      .custom-checkbox-card-checked {
 | 
			
		||||
        border: 2px solid #ff5c58;
 | 
			
		||||
      }
 | 
			
		||||
      .text {
 | 
			
		||||
        width: 120px;
 | 
			
		||||
        height: 36px;
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
        color: #252931;
 | 
			
		||||
        font-size: 14px;
 | 
			
		||||
        line-height: 36px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        -webkit-line-clamp: 1;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .page-box {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: flex-end;
 | 
			
		||||
    margin-top: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  .pagination-box {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: row-reverse;
 | 
			
		||||
  }
 | 
			
		||||
  /* Checkbox默认的样式 */
 | 
			
		||||
  .check-box {
 | 
			
		||||
    .ivu-checkbox {
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      right: 10px;
 | 
			
		||||
      top: 10px;
 | 
			
		||||
      z-index: 100;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  /* 覆盖iView默认的Checkbox样式 */
 | 
			
		||||
  .ivu-checkbox-wrapper {
 | 
			
		||||
    /*font-size: 16px; !* 修改字体大小 *!*/
 | 
			
		||||
    /*color: #495060; !* 修改文本颜色 *!*/
 | 
			
		||||
    /* 添加其他需要的样式 */
 | 
			
		||||
  }
 | 
			
		||||
  .ivu-checkbox-inner {
 | 
			
		||||
    /*width: 20px; !* 修改选框大小 *!*/
 | 
			
		||||
    /*height: 20px;*/
 | 
			
		||||
    /*border-color: #dcdee2; !* 修改边框颜色 *!*/
 | 
			
		||||
    /* 添加其他需要的样式 */
 | 
			
		||||
  }
 | 
			
		||||
  /* 当Checkbox被选中时的样式 */
 | 
			
		||||
  .ivu-checkbox-checked .ivu-checkbox-inner {
 | 
			
		||||
    /*background-color: #2db7f5; !* 修改选中时的背景颜色 *!*/
 | 
			
		||||
  }
 | 
			
		||||
  /* 当Checkbox不可用时的样式 */
 | 
			
		||||
  .ivu-checkbox-disabled .ivu-checkbox-inner {
 | 
			
		||||
    /*background-color: #e9e9e9; !* 修改禁用状态下的背景颜色 *!*/
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .demo-tree-render .ivu-tree-title{
 | 
			
		||||
    width: 94%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@
 | 
			
		|||
    margin: 0 10px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="search">
 | 
			
		||||
| 
						 | 
				
			
			@ -52,6 +53,15 @@
 | 
			
		|||
                  @on-change="selectDateRange"
 | 
			
		||||
                ></DatePicker>
 | 
			
		||||
              </Form-item>
 | 
			
		||||
              <Form-item label="上传人" prop="ownerName">
 | 
			
		||||
                <Input
 | 
			
		||||
                  type="text"
 | 
			
		||||
                  v-model="searchForm.ownerName"
 | 
			
		||||
                  placeholder="图片拥有者名称"
 | 
			
		||||
                  clearable
 | 
			
		||||
                  style="width: 200px"
 | 
			
		||||
                />
 | 
			
		||||
              </Form-item>
 | 
			
		||||
              <Button
 | 
			
		||||
                class="search-btn"
 | 
			
		||||
                icon="ios-search"
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +71,22 @@
 | 
			
		|||
              </Button>
 | 
			
		||||
            </Form>
 | 
			
		||||
          </Row>
 | 
			
		||||
          <div class="oss-operation padding-row">
 | 
			
		||||
 | 
			
		||||
          <Row class="oss-manage-box">
 | 
			
		||||
            <Col :span="isComponent?5:4">
 | 
			
		||||
              <div class="file-list">
 | 
			
		||||
                <div class="article-category mr_10">
 | 
			
		||||
                  <Tree :data="treeData" :render="renderContent" @on-select-change.self="handleCateChange" class="demo-tree-render"></Tree>
 | 
			
		||||
                  <div class="group-row flex" v-if="!isComponent">
 | 
			
		||||
                    <Button @click="handleClickAddGroup">添加分组</Button>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
            </Col>
 | 
			
		||||
            <Col :span="isComponent?19:20">
 | 
			
		||||
              <div class="pic-list">
 | 
			
		||||
                <div>
 | 
			
		||||
                  <div class="oss-operation padding-row" style="display: flex;flex-direction: row-reverse;">
 | 
			
		||||
                    <div>
 | 
			
		||||
                      <Upload
 | 
			
		||||
                        ref="up"
 | 
			
		||||
| 
						 | 
				
			
			@ -95,130 +120,201 @@
 | 
			
		|||
                    </div>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
 | 
			
		||||
        <Alert show-icon v-if="!isComponent">
 | 
			
		||||
          已选择
 | 
			
		||||
          <span>{{ selectCount }}</span> 项
 | 
			
		||||
          <a class="select-clear" @click="clearSelectAll">清空</a>
 | 
			
		||||
          <span v-if="selectCount > 0" style="margin-left: 15px"
 | 
			
		||||
          >共计 {{ totalSize }} 存储量</span
 | 
			
		||||
          >
 | 
			
		||||
        </Alert>
 | 
			
		||||
 | 
			
		||||
        <div v-show="showType === 'list'" >
 | 
			
		||||
          <div class="flex">
 | 
			
		||||
            <div class="article-category mr_10">
 | 
			
		||||
              <Tree
 | 
			
		||||
                :data="treeData"
 | 
			
		||||
                @on-contextmenu="handleContextMenu"
 | 
			
		||||
                @on-select-change="handleCateChange"
 | 
			
		||||
              >
 | 
			
		||||
                <template slot="contextMenu" v-if="!isComponent">
 | 
			
		||||
                  <DropdownItem @click.native="handleContextMenuEdit"
 | 
			
		||||
                  >编辑
 | 
			
		||||
                  </DropdownItem
 | 
			
		||||
                  >
 | 
			
		||||
                  <DropdownItem
 | 
			
		||||
                    style="color: #ed4014"
 | 
			
		||||
                    @click.native="handleContextMenuDelete"
 | 
			
		||||
                  >删除
 | 
			
		||||
                  </DropdownItem
 | 
			
		||||
                  >
 | 
			
		||||
                <div>
 | 
			
		||||
                  <CheckboxGroup v-model="selectedOss" @on-change="selectOssChange">
 | 
			
		||||
                    <div class="img-box">
 | 
			
		||||
                      <div v-for="(item, index) in data" :key="index" class="img-item">
 | 
			
		||||
                        <Checkbox :label="item.id+','+item.url" class="check-box">
 | 
			
		||||
                          <template>
 | 
			
		||||
                            <div class="card"  @mouseenter.active="onMouseOver(item, index)" @mouseleave.active="onMouseOut(item, index)">
 | 
			
		||||
                              <!--<div class="custom-checkbox-card-mask"><div class="custom-checkbox-card-mask-dot"/></div>-->
 | 
			
		||||
                              <img :src="item.url" alt="" />
 | 
			
		||||
                              <div v-if="item.isShowPreview" class="preview">
 | 
			
		||||
                                <div @click.prevent="download(item)"><Tooltip content="下载"><Icon type="md-cloud-download" size="18" /></Tooltip></div>
 | 
			
		||||
                                <div @click.prevent="remove(item)"><Tooltip content="删除"><Icon type="md-trash" size="18" /></Tooltip></div>
 | 
			
		||||
                                <div @click.prevent="showPic(item)"><Tooltip content="预览"><Icon type="ios-eye" size="22" /></Tooltip></div>
 | 
			
		||||
                              </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                          </template>
 | 
			
		||||
              </Tree>
 | 
			
		||||
              <Alert v-if="!isComponent">鼠标右键编辑/删除分组</Alert>
 | 
			
		||||
              <div class="group-row flex" v-if="!isComponent">
 | 
			
		||||
                <Button @click="handleClickAddGroup">添加分组</Button>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <Table
 | 
			
		||||
              ref="table"
 | 
			
		||||
              :columns="isComponent ? viewColumns : columns"
 | 
			
		||||
              :data="data"
 | 
			
		||||
              :loading="loading"
 | 
			
		||||
              border
 | 
			
		||||
              class="table"
 | 
			
		||||
              sortable="custom"
 | 
			
		||||
              @on-sort-change="changeSort"
 | 
			
		||||
              @on-selection-change="changeSelect"
 | 
			
		||||
            >
 | 
			
		||||
              <template slot="fileKey" slot-scope="{ row }">
 | 
			
		||||
                <a @click="copyFileUrl(row)">{{ row.fileKey }}</a>
 | 
			
		||||
              </template>
 | 
			
		||||
            </Table>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div v-show="showType === 'thumb'">
 | 
			
		||||
          <div class="oss-wrapper">
 | 
			
		||||
            <Card v-for="(item, i) in data" :key="i" class="oss-card">
 | 
			
		||||
              <div class="content">
 | 
			
		||||
                <img
 | 
			
		||||
                  v-if="item.fileType.indexOf('image') >= 0"
 | 
			
		||||
                  :src="item.url"
 | 
			
		||||
                  class="img"
 | 
			
		||||
                  @click="showPic(item)"
 | 
			
		||||
                />
 | 
			
		||||
                <div
 | 
			
		||||
                  v-else-if="item.fileType.indexOf('video') >= 0"
 | 
			
		||||
                  class="video"
 | 
			
		||||
                  @click="showVideo(item)"
 | 
			
		||||
                >
 | 
			
		||||
                  <!-- 文件小于5MB显示video -->
 | 
			
		||||
                  <video v-if="item.fileSize < 1024 * 1024 * 5" class="cover">
 | 
			
		||||
                    <source :src="item.url"/>
 | 
			
		||||
                  </video>
 | 
			
		||||
                  <img class="play" src="@/assets/play.png"/>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div v-else class="other">
 | 
			
		||||
                  <div class="name">{{ item.name }}</div>
 | 
			
		||||
                  <div class="key">{{ item.fileKey }}</div>
 | 
			
		||||
                  <div class="info">
 | 
			
		||||
                    文件类型:{{ item.fileType }} 文件大小:{{
 | 
			
		||||
                      ((item.fileSize * 1.0) / (1024 * 1024)).toFixed(2)
 | 
			
		||||
                    }}
 | 
			
		||||
                    MB 创建时间:{{ item.createTime }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="actions">
 | 
			
		||||
                  <div class="btn">
 | 
			
		||||
                    <Tooltip content="下载" placement="top">
 | 
			
		||||
                      <Icon
 | 
			
		||||
                        size="16"
 | 
			
		||||
                        type="md-download"
 | 
			
		||||
                        @click="download(item)"
 | 
			
		||||
                      />
 | 
			
		||||
                    </Tooltip>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="btn">
 | 
			
		||||
                    <Tooltip content="重命名" placement="top">
 | 
			
		||||
                      <Icon size="16" type="md-create" @click="rename(item)"/>
 | 
			
		||||
                    </Tooltip>
 | 
			
		||||
                  </div>
 | 
			
		||||
                  <div class="btn-no">
 | 
			
		||||
                    <Tooltip content="删除" placement="top">
 | 
			
		||||
                      <Icon size="16" type="md-trash" @click="remove(item)"/>
 | 
			
		||||
                        </Checkbox>
 | 
			
		||||
                        <div>
 | 
			
		||||
                          <Tooltip :content="item.name" placement="bottom">
 | 
			
		||||
                            <div class="text">{{item.name}}</div>
 | 
			
		||||
                          </Tooltip>
 | 
			
		||||
                        </div>
 | 
			
		||||
                      </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
            </Card>
 | 
			
		||||
                  </CheckboxGroup>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="page-box">
 | 
			
		||||
                  <Page :total="total" :page-size="searchForm.pageSize" show-elevator @on-change="pageChange" size="small" />
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
        <Row class="mt_10" justify="end" type="flex">
 | 
			
		||||
          <Page
 | 
			
		||||
            :current="searchForm.pageNumber"
 | 
			
		||||
            :page-size="searchForm.pageSize"
 | 
			
		||||
            :page-size-opts="pageSizeOpts"
 | 
			
		||||
            :total="total"
 | 
			
		||||
            show-elevator
 | 
			
		||||
            show-sizer
 | 
			
		||||
            show-total
 | 
			
		||||
            size="small"
 | 
			
		||||
            @on-change="changePage"
 | 
			
		||||
            @on-page-size-change="changePageSize"
 | 
			
		||||
          ></Page>
 | 
			
		||||
            </Col>
 | 
			
		||||
          </Row>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          <!--<div class="oss-operation padding-row">-->
 | 
			
		||||
            <!--<div>-->
 | 
			
		||||
              <!--<Upload-->
 | 
			
		||||
                <!--ref="up"-->
 | 
			
		||||
                <!--:action="commonUrl + '/common/common/upload/file'"-->
 | 
			
		||||
                <!--:data="{-->
 | 
			
		||||
                  <!--directoryPath: searchForm.fileDirectoryId,-->
 | 
			
		||||
                <!--}"-->
 | 
			
		||||
                <!--:headers="accessToken"-->
 | 
			
		||||
                <!--:max-size="20480"-->
 | 
			
		||||
                <!--:on-error="handleError"-->
 | 
			
		||||
                <!--:on-exceeded-size="handleMaxSize"-->
 | 
			
		||||
                <!--:on-success="handleSuccess"-->
 | 
			
		||||
                <!--:show-upload-list="false"-->
 | 
			
		||||
                <!--multiple-->
 | 
			
		||||
                <!--style="display: inline-block"-->
 | 
			
		||||
              <!-->-->
 | 
			
		||||
                <!--<Button>上传图片</Button>-->
 | 
			
		||||
              <!--</Upload>-->
 | 
			
		||||
              <!--<Dropdown @on-click="handleDropdown" v-if="!isComponent">-->
 | 
			
		||||
                <!--<Button>-->
 | 
			
		||||
                  <!--更多操作-->
 | 
			
		||||
                  <!--<Icon type="md-arrow-dropdown"/>-->
 | 
			
		||||
                <!--</Button>-->
 | 
			
		||||
                <!--<DropdownMenu slot="list">-->
 | 
			
		||||
                  <!--<DropdownItem name="refresh">刷新</DropdownItem>-->
 | 
			
		||||
                  <!--<DropdownItem v-show="showType == 'list'" name="removeAll"-->
 | 
			
		||||
                  <!-->批量删除-->
 | 
			
		||||
                  <!--</DropdownItem>-->
 | 
			
		||||
                <!--</DropdownMenu>-->
 | 
			
		||||
              <!--</Dropdown>-->
 | 
			
		||||
            <!--</div>-->
 | 
			
		||||
          <!--</div>-->
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <!--<Alert show-icon v-if="!isComponent">-->
 | 
			
		||||
          <!--已选择-->
 | 
			
		||||
          <!--<span>{{ selectCount }}</span> 项-->
 | 
			
		||||
          <!--<a class="select-clear" @click="clearSelectAll">清空</a>-->
 | 
			
		||||
          <!--<span v-if="selectCount > 0" style="margin-left: 15px"-->
 | 
			
		||||
          <!-->共计 {{ totalSize }} 存储量</span-->
 | 
			
		||||
          <!-->-->
 | 
			
		||||
        <!--</Alert>-->
 | 
			
		||||
 | 
			
		||||
        <!--<div v-show="showType === 'list'" >-->
 | 
			
		||||
          <!--<div class="flex">-->
 | 
			
		||||
            <!--<div class="article-category mr_10">-->
 | 
			
		||||
              <!--<Tree-->
 | 
			
		||||
                <!--:data="treeData"-->
 | 
			
		||||
                <!--@on-contextmenu="handleContextMenu"-->
 | 
			
		||||
                <!--@on-select-change="handleCateChange"-->
 | 
			
		||||
              <!-->-->
 | 
			
		||||
                <!--<template slot="contextMenu" v-if="!isComponent">-->
 | 
			
		||||
                  <!--<DropdownItem @click.native="handleContextMenuEdit"-->
 | 
			
		||||
                  <!-->编辑-->
 | 
			
		||||
                  <!--</DropdownItem-->
 | 
			
		||||
                  <!-->-->
 | 
			
		||||
                  <!--<DropdownItem-->
 | 
			
		||||
                    <!--style="color: #ed4014"-->
 | 
			
		||||
                    <!--@click.native="handleContextMenuDelete"-->
 | 
			
		||||
                  <!-->删除-->
 | 
			
		||||
                  <!--</DropdownItem-->
 | 
			
		||||
                  <!-->-->
 | 
			
		||||
                <!--</template>-->
 | 
			
		||||
              <!--</Tree>-->
 | 
			
		||||
              <!--<Alert v-if="!isComponent">鼠标右键编辑/删除分组</Alert>-->
 | 
			
		||||
              <!--<div class="group-row flex" v-if="!isComponent">-->
 | 
			
		||||
                <!--<Button @click="handleClickAddGroup">添加分组</Button>-->
 | 
			
		||||
              <!--</div>-->
 | 
			
		||||
            <!--</div>-->
 | 
			
		||||
 | 
			
		||||
            <!--<Table-->
 | 
			
		||||
              <!--ref="table"-->
 | 
			
		||||
              <!--:columns="isComponent ? viewColumns : columns"-->
 | 
			
		||||
              <!--:data="data"-->
 | 
			
		||||
              <!--:loading="loading"-->
 | 
			
		||||
              <!--border-->
 | 
			
		||||
              <!--class="table"-->
 | 
			
		||||
              <!--sortable="custom"-->
 | 
			
		||||
              <!--@on-sort-change="changeSort"-->
 | 
			
		||||
              <!--@on-selection-change="changeSelect"-->
 | 
			
		||||
            <!-->-->
 | 
			
		||||
              <!--<template slot="fileKey" slot-scope="{ row }">-->
 | 
			
		||||
                <!--<a @click="copyFileUrl(row)">{{ row.fileKey }}</a>-->
 | 
			
		||||
              <!--</template>-->
 | 
			
		||||
            <!--</Table>-->
 | 
			
		||||
          <!--</div>-->
 | 
			
		||||
        <!--</div>-->
 | 
			
		||||
 | 
			
		||||
        <!--<div v-show="showType === 'thumb'">-->
 | 
			
		||||
          <!--<div class="oss-wrapper">-->
 | 
			
		||||
            <!--<Card v-for="(item, i) in data" :key="i" class="oss-card">-->
 | 
			
		||||
              <!--<div class="content">-->
 | 
			
		||||
                <!--<img-->
 | 
			
		||||
                  <!--v-if="item.fileType.indexOf('image') >= 0"-->
 | 
			
		||||
                  <!--:src="item.url"-->
 | 
			
		||||
                  <!--class="img"-->
 | 
			
		||||
                  <!--@click="showPic(item)"-->
 | 
			
		||||
                <!--/>-->
 | 
			
		||||
                <!--<div-->
 | 
			
		||||
                  <!--v-else-if="item.fileType.indexOf('video') >= 0"-->
 | 
			
		||||
                  <!--class="video"-->
 | 
			
		||||
                  <!--@click="showVideo(item)"-->
 | 
			
		||||
                <!-->-->
 | 
			
		||||
                  <!--<!– 文件小于5MB显示video –>-->
 | 
			
		||||
                  <!--<video v-if="item.fileSize < 1024 * 1024 * 5" class="cover">-->
 | 
			
		||||
                    <!--<source :src="item.url"/>-->
 | 
			
		||||
                  <!--</video>-->
 | 
			
		||||
                  <!--<img class="play" src="@/assets/play.png"/>-->
 | 
			
		||||
                <!--</div>-->
 | 
			
		||||
                <!--<div v-else class="other">-->
 | 
			
		||||
                  <!--<div class="name">{{ item.name }}</div>-->
 | 
			
		||||
                  <!--<div class="key">{{ item.fileKey }}</div>-->
 | 
			
		||||
                  <!--<div class="info">-->
 | 
			
		||||
                    <!--文件类型:{{ item.fileType }} 文件大小:{{-->
 | 
			
		||||
                      <!--((item.fileSize * 1.0) / (1024 * 1024)).toFixed(2)-->
 | 
			
		||||
                    <!--}}-->
 | 
			
		||||
                    <!--MB 创建时间:{{ item.createTime }}-->
 | 
			
		||||
                  <!--</div>-->
 | 
			
		||||
                <!--</div>-->
 | 
			
		||||
                <!--<div class="actions">-->
 | 
			
		||||
                  <!--<div class="btn">-->
 | 
			
		||||
                    <!--<Tooltip content="下载" placement="top">-->
 | 
			
		||||
                      <!--<Icon-->
 | 
			
		||||
                        <!--size="16"-->
 | 
			
		||||
                        <!--type="md-download"-->
 | 
			
		||||
                        <!--@click="download(item)"-->
 | 
			
		||||
                      <!--/>-->
 | 
			
		||||
                    <!--</Tooltip>-->
 | 
			
		||||
                  <!--</div>-->
 | 
			
		||||
                  <!--<div class="btn">-->
 | 
			
		||||
                    <!--<Tooltip content="重命名" placement="top">-->
 | 
			
		||||
                      <!--<Icon size="16" type="md-create" @click="rename(item)"/>-->
 | 
			
		||||
                    <!--</Tooltip>-->
 | 
			
		||||
                  <!--</div>-->
 | 
			
		||||
                  <!--<div class="btn-no">-->
 | 
			
		||||
                    <!--<Tooltip content="删除" placement="top">-->
 | 
			
		||||
                      <!--<Icon size="16" type="md-trash" @click="remove(item)"/>-->
 | 
			
		||||
                    <!--</Tooltip>-->
 | 
			
		||||
                  <!--</div>-->
 | 
			
		||||
                <!--</div>-->
 | 
			
		||||
              <!--</div>-->
 | 
			
		||||
            <!--</Card>-->
 | 
			
		||||
          <!--</div>-->
 | 
			
		||||
        <!--</div>-->
 | 
			
		||||
        <!--<Row class="mt_10" justify="end" type="flex">-->
 | 
			
		||||
          <!--<Page-->
 | 
			
		||||
            <!--:current="searchForm.pageNumber"-->
 | 
			
		||||
            <!--:page-size="searchForm.pageSize"-->
 | 
			
		||||
            <!--:page-size-opts="pageSizeOpts"-->
 | 
			
		||||
            <!--:total="total"-->
 | 
			
		||||
            <!--show-elevator-->
 | 
			
		||||
            <!--show-sizer-->
 | 
			
		||||
            <!--show-total-->
 | 
			
		||||
            <!--size="small"-->
 | 
			
		||||
            <!--@on-change="changePage"-->
 | 
			
		||||
            <!--@on-page-size-change="changePageSize"-->
 | 
			
		||||
          <!--></Page>-->
 | 
			
		||||
        <!--</Row>-->
 | 
			
		||||
      </Card>
 | 
			
		||||
    </Row>
 | 
			
		||||
    <Modal
 | 
			
		||||
| 
						 | 
				
			
			@ -342,7 +438,6 @@ export default {
 | 
			
		|||
      commonUrl, // 上传文件路径
 | 
			
		||||
      config, // api地址
 | 
			
		||||
      fileDirectoryId: "",
 | 
			
		||||
 | 
			
		||||
      groupFormValidate: {
 | 
			
		||||
        id: [],
 | 
			
		||||
        level: 0,
 | 
			
		||||
| 
						 | 
				
			
			@ -383,8 +478,9 @@ export default {
 | 
			
		|||
        name: "",
 | 
			
		||||
        fileKey: "",
 | 
			
		||||
        fileType: "",
 | 
			
		||||
        ownerName: "",
 | 
			
		||||
        pageNumber: 1, // 当前页数
 | 
			
		||||
        pageSize: 10, // 页面大小
 | 
			
		||||
        pageSize: 20, // 页面大小
 | 
			
		||||
        sort: "createTime", // 默认排序字段
 | 
			
		||||
        order: "desc", // 默认排序方式
 | 
			
		||||
        startDate: "", // 起始时间
 | 
			
		||||
| 
						 | 
				
			
			@ -731,6 +827,27 @@ export default {
 | 
			
		|||
      selectedGroupData: "",
 | 
			
		||||
      insertOrUpdate: "insert",
 | 
			
		||||
      groupLoading: false,
 | 
			
		||||
      // 图片列表
 | 
			
		||||
      selectedOss: [],
 | 
			
		||||
      myData: [
 | 
			
		||||
        {
 | 
			
		||||
          title: 'parent 1',
 | 
			
		||||
          expand: true,
 | 
			
		||||
          render: (h, { root, node, data }) => {
 | 
			
		||||
            return h('span', {style: {display: 'inline-block', width: '100%'}}, [
 | 
			
		||||
              h('span', [h("Icon", {type: 'ios-folder-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
 | 
			
		||||
              h('span', {style: {display: 'inline-block', float: 'right', marginRight: '32px'}},
 | 
			
		||||
                [h("Button", {...this.buttonProps, icon: 'ios-add', type: 'primary', style: {width: '64px'}, onClick: () => { this.append(data) }})
 | 
			
		||||
              ])
 | 
			
		||||
            ]);
 | 
			
		||||
          },
 | 
			
		||||
          children: [
 | 
			
		||||
            {title: 'child 1-1', expand: true, children: [{title: 'leaf 1-1-1', expand: true}, {title: 'leaf 1-1-2', expand: true}]},
 | 
			
		||||
            {title: 'child 1-2', expand: true, children: [{title: 'leaf 1-2-1', expand: true}, {title: 'leaf 1-2-1', expand: true}]}
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      buttonProps: {type: 'default', size: 'small',},
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  watch: {
 | 
			
		||||
| 
						 | 
				
			
			@ -739,11 +856,64 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    choose(val) {
 | 
			
		||||
      if (val) this.selectImage = val
 | 
			
		||||
    },
 | 
			
		||||
    selectedOss(val) {
 | 
			
		||||
      if (val) {
 | 
			
		||||
        this.$emit("callback", {url: val[val.length-1].split(',')[1]});
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  methods: {
 | 
			
		||||
    onMouseOver(item, index) {
 | 
			
		||||
      this.$set(this.data[index], 'isShowPreview', true);
 | 
			
		||||
      this.$forceUpdate();
 | 
			
		||||
    },
 | 
			
		||||
    onMouseOut(item, index) {
 | 
			
		||||
      this.$set(this.data[index], 'isShowPreview', false);
 | 
			
		||||
    },
 | 
			
		||||
    // 复选框值改变时触发
 | 
			
		||||
    selectOssChange(e) {
 | 
			
		||||
      if (e) {
 | 
			
		||||
        this.selectList = e.map(item => {return { id: item.split(',')[0]}});
 | 
			
		||||
        this.selectCount = e.length;
 | 
			
		||||
        // let size = 0;
 | 
			
		||||
        // e.forEach((item) => {size += item.fileSize * 1.0;});
 | 
			
		||||
        // this.totalSize = ((size * 1.0) / (1024 * 1024)).toFixed(2) + " MB";
 | 
			
		||||
        this.$emit("selected", e);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    // 页码改变时回调
 | 
			
		||||
    pageChange(value) {
 | 
			
		||||
      this.$set(this, 'selectedOss', []);
 | 
			
		||||
      this.searchForm.pageNumber = value;
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 自定义tree节点显示内容和交互
 | 
			
		||||
    renderContent (h, { root, node, data }) {
 | 
			
		||||
      return h('span', {style: {display: 'inline-block', width: '100%'}},
 | 
			
		||||
      [
 | 
			
		||||
        h('span', [h("Icon", {type: 'ios-paper-outline', style: {marginRight: '8px'}}), h('span', data.title)]),
 | 
			
		||||
        h('span', {style: {display: 'inline-block', float: 'right', marginRight: '10px'}},
 | 
			
		||||
        [
 | 
			
		||||
          h("Dropdown", {style: {marginLeft: "4px"}},
 | 
			
		||||
            [
 | 
			
		||||
            h("Icon", {props: {type: 'ios-more', size: "20",}, style: {display: 'inline-block'}, on:{click: () => {}}}),
 | 
			
		||||
            h("DropdownMenu", {slot: "list"
 | 
			
		||||
            }, [
 | 
			
		||||
              h("DropdownItem", { nativeOn:{click: () => {this.handleContextMenuEdit()}} }, "编辑"),
 | 
			
		||||
              h("DropdownItem", { nativeOn:{click: () => {this.handleContextMenuDelete()}} }, "删除"),
 | 
			
		||||
            ])
 | 
			
		||||
          ]),
 | 
			
		||||
        ])
 | 
			
		||||
      ]);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    handleContextMenu(val) {
 | 
			
		||||
      console.log('handleContextMenu', val);
 | 
			
		||||
      this.selectedGroupData = val;
 | 
			
		||||
    },
 | 
			
		||||
    // 编辑分组
 | 
			
		||||
| 
						 | 
				
			
			@ -768,6 +938,7 @@ export default {
 | 
			
		|||
          const res = await delFileDirectory(this.selectedGroupData.value);
 | 
			
		||||
          if (res.success) {
 | 
			
		||||
            this.$Message.success("删除成功!");
 | 
			
		||||
            this.getDataList();
 | 
			
		||||
            this.getAllList();
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
| 
						 | 
				
			
			@ -870,7 +1041,7 @@ export default {
 | 
			
		|||
          obj.level = item.level;
 | 
			
		||||
          obj.expand = false;
 | 
			
		||||
          obj.selected = false;
 | 
			
		||||
          obj.contextmenu = true;
 | 
			
		||||
          obj.contextmenu = false;
 | 
			
		||||
          obj.parentId = item.parentId;
 | 
			
		||||
          obj.children = this.getTree(item.children); // 递归调用
 | 
			
		||||
          arr.push(obj);
 | 
			
		||||
| 
						 | 
				
			
			@ -881,6 +1052,7 @@ export default {
 | 
			
		|||
 | 
			
		||||
    // 选择分类回调
 | 
			
		||||
    handleCateChange(data) {
 | 
			
		||||
      if (data) {
 | 
			
		||||
        this.selectedGroupData = data[0];
 | 
			
		||||
        let {value, type, level} = data[0];
 | 
			
		||||
        this.list.push({value, type, level});
 | 
			
		||||
| 
						 | 
				
			
			@ -893,6 +1065,8 @@ export default {
 | 
			
		|||
        }
 | 
			
		||||
        this.searchForm.userEnums = type;
 | 
			
		||||
        this.getDataList();
 | 
			
		||||
        this.$set(this, 'selectedOss', []);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /**
 | 
			
		||||
     * 选择
 | 
			
		||||
| 
						 | 
				
			
			@ -903,7 +1077,7 @@ export default {
 | 
			
		|||
    // 更多操作
 | 
			
		||||
    handleDropdown(name) {
 | 
			
		||||
      if (name === "refresh") {
 | 
			
		||||
        this.getDataList();
 | 
			
		||||
        this.getDataList('refresh');
 | 
			
		||||
      } else if (name === "removeAll") {
 | 
			
		||||
        this.removeAll();
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -974,14 +1148,14 @@ export default {
 | 
			
		|||
    changeShowType() {
 | 
			
		||||
      this.searchForm.pageNumber = 1;
 | 
			
		||||
      if (this.showType == "list") {
 | 
			
		||||
        this.searchForm.pageSize = 10;
 | 
			
		||||
        this.searchForm.pageSize = 20;
 | 
			
		||||
      } else {
 | 
			
		||||
        this.searchForm.pageSize = 12;
 | 
			
		||||
      }
 | 
			
		||||
      this.getDataList();
 | 
			
		||||
    },
 | 
			
		||||
    // 获取列表数据
 | 
			
		||||
    getDataList() {
 | 
			
		||||
    getDataList(type = null) {
 | 
			
		||||
      if (this.showType == "list") {
 | 
			
		||||
        this.pageSizeOpts = [10, 20, 50];
 | 
			
		||||
      } else {
 | 
			
		||||
| 
						 | 
				
			
			@ -993,6 +1167,9 @@ export default {
 | 
			
		|||
 | 
			
		||||
        this.data = res.result.records;
 | 
			
		||||
        this.total = res.result.total;
 | 
			
		||||
        if (type === 'refresh') {
 | 
			
		||||
          this.$Message.success('刷新成功!');
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    // 搜索
 | 
			
		||||
| 
						 | 
				
			
			@ -1000,7 +1177,7 @@ export default {
 | 
			
		|||
      this.searchForm.title = this.searchForm.name;
 | 
			
		||||
      this.searchForm.pageNumber = 1;
 | 
			
		||||
      if (this.showType == "list") {
 | 
			
		||||
        this.searchForm.pageSize = 5;
 | 
			
		||||
        this.searchForm.pageSize = 20;
 | 
			
		||||
      } else {
 | 
			
		||||
        this.searchForm.pageSize = 12;
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -1064,16 +1241,15 @@ export default {
 | 
			
		|||
        loading: true,
 | 
			
		||||
        onOk: () => {
 | 
			
		||||
          let ids = "";
 | 
			
		||||
          this.selectList.forEach(function (e) {
 | 
			
		||||
            ids += e.id + ",";
 | 
			
		||||
          });
 | 
			
		||||
          this.selectList.forEach(function (e) {ids += e.id + ",";});
 | 
			
		||||
          ids = ids.substring(0, ids.length - 1);
 | 
			
		||||
          deleteFile(ids).then((res) => {
 | 
			
		||||
            this.$Modal.remove();
 | 
			
		||||
            if (res.success) {
 | 
			
		||||
              this.$set(this, 'selectedOss', []);
 | 
			
		||||
              // this.clearSelectAll();
 | 
			
		||||
              this.init();
 | 
			
		||||
              this.$Message.success("批量删除文件成功");
 | 
			
		||||
              this.clearSelectAll();
 | 
			
		||||
              this.getDataList();
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
            .catch((err) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -1157,6 +1333,8 @@ export default {
 | 
			
		|||
    if (!this.isComponent) {
 | 
			
		||||
      // 是组件的话,初始化不调用接口
 | 
			
		||||
      this.init();
 | 
			
		||||
    } else {
 | 
			
		||||
      this.searchForm.pageSize =18; // 页面大小
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,7 +75,7 @@
 | 
			
		|||
      </div>
 | 
			
		||||
    </Form>
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@
 | 
			
		|||
        <Input type='number' v-model="formValidate.closeAfterSale">
 | 
			
		||||
        <span slot="append">天</span>
 | 
			
		||||
        </Input>
 | 
			
		||||
        <span class="desc">订单完成后,多少天内允许退单,如果天数为0,则不允许退单</span>
 | 
			
		||||
        <span class="desc">订单完成后,多少天内允许退单,如果天数为0,则完成订单当天可以退单,之后就不再允许。</span>
 | 
			
		||||
      </FormItem>
 | 
			
		||||
      <FormItem label="已完成订单允许投诉" prop="closeComplaint">
 | 
			
		||||
        <Input type='number' v-model="formValidate.closeComplaint">
 | 
			
		||||
| 
						 | 
				
			
			@ -54,9 +54,9 @@ export default {
 | 
			
		|||
        autoEvaluation: "",
 | 
			
		||||
        autoReceive: "",
 | 
			
		||||
        closeAfterSale: "",
 | 
			
		||||
        closeComplaint:""
 | 
			
		||||
        closeComplaint: ""
 | 
			
		||||
      },
 | 
			
		||||
      result:""
 | 
			
		||||
      result: ""
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  props: ["res", "type"],
 | 
			
		||||
| 
						 | 
				
			
			@ -114,16 +114,20 @@ export default {
 | 
			
		|||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
@import "./style.scss";
 | 
			
		||||
 | 
			
		||||
.label-item {
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.ivu-input-wrapper {
 | 
			
		||||
  width: 100px;
 | 
			
		||||
  margin-right: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/deep/ .ivu-input {
 | 
			
		||||
  width: 100px !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.desc {
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  color: #999;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
# 默认依赖包指定淘宝源
 | 
			
		||||
registry=https://registry.npm.taobao.org/
 | 
			
		||||
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
 | 
			
		||||
phantomjs_cdnurl=https://npm.taobao.org/mirrors/phantomjs/
 | 
			
		||||
electron_mirror=https://npm.taobao.org/mirrors/electron/
 | 
			
		||||
registry "https://registry.npmmirror.com"
 | 
			
		||||
sass_binary_site "https://npmmirror.com/mirrors/node-sass"
 | 
			
		||||
phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
 | 
			
		||||
electron_mirror "https://npmmirror.com/mirrors/electron"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,22 +2,71 @@
 | 
			
		|||
// 统一请求路径前缀在libs/axios.js中修改
 | 
			
		||||
import {getRequest, postRequest, putRequest, deleteRequest, importRequest, getRequestWithNoToken} from '@/libs/axios';
 | 
			
		||||
 | 
			
		||||
//获取分销设置
 | 
			
		||||
export const getDistributionSetting = (params) => {
 | 
			
		||||
  return getRequest(`/distribution/setting`, params)
 | 
			
		||||
 | 
			
		||||
//获取分销商品列表
 | 
			
		||||
export const getDistributionGoods = (params) => {
 | 
			
		||||
  return getRequest('/distribution/goods', params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 取消分销商品
 | 
			
		||||
export const distributionGoodsCancel = (id) => {
 | 
			
		||||
  return deleteRequest(`/distribution/goods/cancel/${id}`)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 选择分销商品
 | 
			
		||||
export const distributionGoodsCheck = (id,param) => {
 | 
			
		||||
  return putRequest(`/distribution/goods/checked/${id}`,param)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//查询分销商
 | 
			
		||||
export const getDistributionListData = (params) => {
 | 
			
		||||
    return getRequest('/distribution/getByPage', params)
 | 
			
		||||
}
 | 
			
		||||
//审核分销商
 | 
			
		||||
export const auditDistribution = (id, params) => {
 | 
			
		||||
    return putRequest(`/distribution/audit/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 清退分销商
 | 
			
		||||
export const retreatDistribution = (id, params) => {
 | 
			
		||||
    return putRequest(`/distribution/retreat/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 恢复分销商
 | 
			
		||||
export const resumeDistribution = (id, params) => {
 | 
			
		||||
    return putRequest(`/distribution/resume/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//保存更新分销设置
 | 
			
		||||
export const saveDistributionSetting = (params) => {
 | 
			
		||||
    return putRequest('/distribution/setting', params)
 | 
			
		||||
    return postRequest('/distribution/setting/insertOrUpdate', params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//获取分销设置
 | 
			
		||||
export const getDistributionSetting = (id, params) => {
 | 
			
		||||
    return getRequest(`/distribution/setting/get/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//获取分销订单列表
 | 
			
		||||
export const getDistributionOrder = (params) => {
 | 
			
		||||
    return getRequest('/distribution/order', params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//获取分销商品列表
 | 
			
		||||
export const getDistributionGoods = (params) => {
 | 
			
		||||
  return getRequest('/distribution/goods', params)
 | 
			
		||||
 | 
			
		||||
//删除分销商品
 | 
			
		||||
export const delDistributionGoods = (ids) => {
 | 
			
		||||
    return deleteRequest(`/distribution/goods/delByIds/${ids}`)
 | 
			
		||||
}
 | 
			
		||||
//获取分销佣金信息
 | 
			
		||||
export const getDistributionCash = (params) => {
 | 
			
		||||
    return getRequest('/distribution/cash/getByPage', params)
 | 
			
		||||
}
 | 
			
		||||
//审核分销佣金申请
 | 
			
		||||
export const auditDistributionCash = (id,params) => {
 | 
			
		||||
    return postRequest(`/distribution/cash/audit/${id}`, params)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,96 +0,0 @@
 | 
			
		|||
<template>
 | 
			
		||||
  <div class="search">
 | 
			
		||||
    <Card style="margin-left: 10px">
 | 
			
		||||
      <Tabs v-model="type">
 | 
			
		||||
        <TabPane label="分销设置" name="INFO">
 | 
			
		||||
          <Form ref="form" :model="form" :label-width="100" >
 | 
			
		||||
            <FormItem label="是否开启分销" prop="isOpen" class="wangEditor">
 | 
			
		||||
              <i-switch v-model="form.isOpen"></i-switch>
 | 
			
		||||
              <span class="desc">开启分销,则全店商品具有分销功能</span>
 | 
			
		||||
            </FormItem>
 | 
			
		||||
            <FormItem label="一级佣金比例" prop="isOpen">
 | 
			
		||||
              <InputNumber :min="0" :max="99999" v-model="form.commission" type="number" maxlength="2"
 | 
			
		||||
                           clearable style="width: 20%"/>
 | 
			
		||||
            </FormItem>
 | 
			
		||||
            <FormItem label="二级分佣比例" prop="stockWarning">
 | 
			
		||||
              <InputNumber :min="0" :max="99999" v-model="form.secondaryCommission" type="number"
 | 
			
		||||
                           maxlength="2"
 | 
			
		||||
                           clearable style="width: 20%"/>
 | 
			
		||||
            </FormItem>
 | 
			
		||||
            <Form-item>
 | 
			
		||||
              <Button @click="handleSubmit" :loading="submitLoading" type="primary" style="margin-right: 5px">修改
 | 
			
		||||
              </Button>
 | 
			
		||||
            </Form-item>
 | 
			
		||||
          </Form>
 | 
			
		||||
        </TabPane>
 | 
			
		||||
      </Tabs>
 | 
			
		||||
    </Card>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import {getDistributionSetting, saveDistributionSetting} from "@/api/distribution";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "distributionSetting",
 | 
			
		||||
  components: {},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      type: "INFO",
 | 
			
		||||
      form: {
 | 
			
		||||
        // 添加或编辑表单对象初始化数据
 | 
			
		||||
        isOpen: false, // 是否开启分销
 | 
			
		||||
        commission: 0, // 一级佣金比例
 | 
			
		||||
        secondaryCommission: 0, //二级分佣比例
 | 
			
		||||
      },
 | 
			
		||||
      // 表单验证规则
 | 
			
		||||
      validate: {},
 | 
			
		||||
      submitLoading: false, // 添加或编辑提交状态
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
 | 
			
		||||
    // 初始化数据
 | 
			
		||||
    init() {
 | 
			
		||||
      this.getDistributionSetting();
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    //获取店铺信息
 | 
			
		||||
    getDistributionSetting() {
 | 
			
		||||
      this.loading = true;
 | 
			
		||||
      getDistributionSetting().then((res) => {
 | 
			
		||||
        this.loading = false;
 | 
			
		||||
        if (res.success) {
 | 
			
		||||
          this.form = res.result;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    //提交保存
 | 
			
		||||
    handleSubmit() {
 | 
			
		||||
      this.$refs.form.validate((valid) => {
 | 
			
		||||
        if (valid) {
 | 
			
		||||
          this.submitLoading = true;
 | 
			
		||||
          saveDistributionSetting(this.form).then((res) => {
 | 
			
		||||
            this.submitLoading = false;
 | 
			
		||||
            if (res.success) {
 | 
			
		||||
              this.$Message.success("修改成功");
 | 
			
		||||
              this.getDistributionSetting();
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  mounted() {
 | 
			
		||||
    this.init();
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.desc {
 | 
			
		||||
  margin-left: 10px;
 | 
			
		||||
  color: #999;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +102,7 @@
 | 
			
		|||
          <h4>商品规格及图片</h4>
 | 
			
		||||
          <div class="form-item-view">
 | 
			
		||||
            <FormItem class="form-item-view-el required" label="主图" prop="goodsGalleryFiles">
 | 
			
		||||
              <div style="display: flex; flex-wrap: flex-start">
 | 
			
		||||
              <div style="display: flex; flex-wrap: wrap;">
 | 
			
		||||
                <vuedraggable :animation="200" :list="baseInfoForm.goodsGalleryFiles">
 | 
			
		||||
                  <div v-for="(item, __index) in baseInfoForm.goodsGalleryFiles" :key="__index"
 | 
			
		||||
                       class="demo-upload-list">
 | 
			
		||||
| 
						 | 
				
			
			@ -110,27 +110,29 @@
 | 
			
		|||
                      <img :src="item"/>
 | 
			
		||||
                      <div class="demo-upload-list-cover">
 | 
			
		||||
                        <div>
 | 
			
		||||
                          <Icon size="30" type="md-search" @click.native="handleViewGoodsPicture(item.url)"></Icon>
 | 
			
		||||
                          <Icon size="30" type="md-search" @click.native="handleViewGoodsPicture(item)"></Icon>
 | 
			
		||||
                          <Icon size="30" type="md-trash" @click.native="handleRemoveGoodsPicture(item)"></Icon>
 | 
			
		||||
                        </div>
 | 
			
		||||
                      </div>
 | 
			
		||||
                    </template>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </vuedraggable>
 | 
			
		||||
 | 
			
		||||
                <Upload ref="upload"
 | 
			
		||||
                        :action="uploadFileUrl" :before-upload="handleBeforeUploadGoodsPicture"
 | 
			
		||||
                        :format="['jpg', 'jpeg', 'png', 'webp']"
 | 
			
		||||
                        :headers="{ ...accessToken }"
 | 
			
		||||
                        :max-size="2048" :on-error="() => { $Spin.hide(); }" :on-exceeded-size="handleMaxSize"
 | 
			
		||||
                        :on-format-error="handleFormatError" :on-progress="() => { $Spin.show(); }"
 | 
			
		||||
                        :on-success="handleSuccessGoodsPicture" :show-upload-list="false" multiple
 | 
			
		||||
                        style="margin-left: 10px"
 | 
			
		||||
                        type="drag">
 | 
			
		||||
                  <div style="width: 148px; height: 148px; line-height: 148px">
 | 
			
		||||
                    <Icon size="20" type="md-add"></Icon>
 | 
			
		||||
                <!--<Upload ref="upload"-->
 | 
			
		||||
                        <!--:action="uploadFileUrl" :before-upload="handleBeforeUploadGoodsPicture"-->
 | 
			
		||||
                        <!--:format="['jpg', 'jpeg', 'png', 'webp']"-->
 | 
			
		||||
                        <!--:headers="{ ...accessToken }"-->
 | 
			
		||||
                        <!--:max-size="2048" :on-error="() => { $Spin.hide(); }" :on-exceeded-size="handleMaxSize"-->
 | 
			
		||||
                        <!--:on-format-error="handleFormatError" :on-progress="() => { $Spin.show(); }"-->
 | 
			
		||||
                        <!--:on-success="handleSuccessGoodsPicture" :show-upload-list="false" multiple-->
 | 
			
		||||
                        <!--style="margin-left: 10px"-->
 | 
			
		||||
                        <!--type="drag">-->
 | 
			
		||||
                  <!--<div style="width: 148px; height: 148px; line-height: 148px">-->
 | 
			
		||||
                    <!--<Icon size="20" type="md-add"></Icon>-->
 | 
			
		||||
                  <!--</div>-->
 | 
			
		||||
                <!--</Upload>-->
 | 
			
		||||
              </div>
 | 
			
		||||
                </Upload>
 | 
			
		||||
              <div style="width: 100%;display: flex;justify-content: start;margin-top: 10px;">
 | 
			
		||||
                <Button @click="handleCLickImg('goodsGalleryFiles')" type="primary">上传图片</Button>
 | 
			
		||||
              </div>
 | 
			
		||||
              <Modal v-model="goodsPictureVisible" title="View Image">
 | 
			
		||||
                <img v-if="goodsPictureVisible" :src="previewGoodsPicture" style="width: 100%"/>
 | 
			
		||||
| 
						 | 
				
			
			@ -474,7 +476,7 @@
 | 
			
		|||
    <!--<ossManage @callback="callbackSelected" ref="ossManage" />-->
 | 
			
		||||
    <!--</Modal>-->
 | 
			
		||||
    <Modal v-model="picModalFlag" width="1200px" @on-ok="confirmUrls">
 | 
			
		||||
      <ossManage ref="ossManage" @callback="callbackSelected" @selected="(list)=>{ selectedImage = list}"/>
 | 
			
		||||
      <ossManage ref="ossManage" :isComponent="true" @callback="callbackSelected" @selected="(list)=>{ selectedImage = list}"/>
 | 
			
		||||
    </Modal>
 | 
			
		||||
 | 
			
		||||
  </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -490,7 +492,7 @@ import {uploadFile} from "@/libs/axios";
 | 
			
		|||
import {regular} from "@/utils";
 | 
			
		||||
import DPlayer from 'dplayer';
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
| 
						 | 
				
			
			@ -746,8 +748,9 @@ export default {
 | 
			
		|||
      if (val && this.selectedFormBtnName == 'selectedSkuImages') {
 | 
			
		||||
        this.selectedSku.images.push(val);
 | 
			
		||||
      } else {
 | 
			
		||||
        this.baseInfoForm[this.selectedFormBtnName].push(val);
 | 
			
		||||
        this.baseInfoForm[this.selectedFormBtnName].push(val.url);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    },
 | 
			
		||||
    confirmUrls() {
 | 
			
		||||
      if (this.selectedImage && this.selectedFormBtnName == 'selectedSkuImages') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,7 +57,7 @@
 | 
			
		|||
    </Modal>
 | 
			
		||||
 | 
			
		||||
    <Modal width="1000" v-model="showOssManager" @on-ok="confirmUrls">
 | 
			
		||||
    <OssManage ref="ossManage" @selected="(list)=>{ selectedImage = list}" @callback="handleCallback" />
 | 
			
		||||
    <OssManage ref="ossManage" :isComponent="true" @selected="(list)=>{ selectedImage = list}" @callback="handleCallback" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
 <template>
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="login" @click="$refs.verify.show = false">
 | 
			
		||||
    <Row type="flex" @keydown.enter.native="submitLogin">
 | 
			
		||||
      <Col style="width: 368px">
 | 
			
		||||
| 
						 | 
				
			
			@ -9,12 +9,12 @@
 | 
			
		|||
            <!--账号密码登录-->
 | 
			
		||||
            <Form ref="usernameLoginForm" :model="form" :rules="rules" class="form">
 | 
			
		||||
              <FormItem prop="username">
 | 
			
		||||
                <Input v-model="form.username" prefix="ios-contact" size="large" clearable placeholder="请输入用户名"
 | 
			
		||||
                <Input v-model="form.username" prefix="ios-contact" clearable placeholder="请输入用户名"
 | 
			
		||||
                  autocomplete="off" />
 | 
			
		||||
              </FormItem>
 | 
			
		||||
              <FormItem prop="password">
 | 
			
		||||
                <Input type="password" v-model="form.password" prefix="ios-lock" size="large" password placeholder="请输入密码"
 | 
			
		||||
                  autocomplete="off" />
 | 
			
		||||
                <Input type="password" v-model="form.password" prefix="ios-lock" password
 | 
			
		||||
                  placeholder="请输入密码" autocomplete="off" />
 | 
			
		||||
              </FormItem>
 | 
			
		||||
            </Form>
 | 
			
		||||
            <div class="register">
 | 
			
		||||
| 
						 | 
				
			
			@ -25,21 +25,21 @@
 | 
			
		|||
            <!-- 验证码登录 -->
 | 
			
		||||
            <Form ref="formSms" :model="formSms" :rules="ruleInline" @click.self='$refs.verify.show = false'>
 | 
			
		||||
              <FormItem prop="mobile">
 | 
			
		||||
                <i-input type="text" v-model="formSms.mobile" clearable placeholder="手机号">
 | 
			
		||||
                <i-input type="text" maxlength="11" v-model="formSms.mobile" clearable placeholder="手机号">
 | 
			
		||||
                  <Icon type="md-lock" slot="prepend"></Icon>
 | 
			
		||||
                </i-input>
 | 
			
		||||
              </FormItem>
 | 
			
		||||
              <FormItem prop="code">
 | 
			
		||||
                <i-input type="text" v-model="formSms.code" placeholder="手机验证码">
 | 
			
		||||
                  <Icon type="ios-text-outline" style="font-weight: bold" slot="prepend" />
 | 
			
		||||
                  <Button slot="append" @click="sendCode">{{ codeMsg }}</Button>
 | 
			
		||||
                  <Button slot="append" @click="sendCode" :loading="sendCodeLoading">{{ codeMsg }}</Button>
 | 
			
		||||
                </i-input>
 | 
			
		||||
              </FormItem>
 | 
			
		||||
              <FormItem>
 | 
			
		||||
                <Button @click.stop="verifyBtnClick" long :type="verifyStatus ? 'success' : 'default'">{{ verifyStatus ?
 | 
			
		||||
                <!-- <Button @click.stop="verifyBtnClick" long :type="verifyStatus ? 'success' : 'default'">{{ verifyStatus ?
 | 
			
		||||
                  '验证通过' :
 | 
			
		||||
                  '点击完成安全验证' }}
 | 
			
		||||
                </Button>
 | 
			
		||||
                </Button> -->
 | 
			
		||||
              </FormItem>
 | 
			
		||||
            </Form>
 | 
			
		||||
          </Tab-pane>
 | 
			
		||||
| 
						 | 
				
			
			@ -60,14 +60,13 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getCurrentPermissionList } from "@/api/index";
 | 
			
		||||
import { login, userMsg, storeSmsLogin } from "@/api/index";
 | 
			
		||||
import { sendSms } from "@/api/common.js";
 | 
			
		||||
import Cookies from "js-cookie";
 | 
			
		||||
import Header from "@/views/main-components/header";
 | 
			
		||||
import Footer from "@/views/main-components/footer";
 | 
			
		||||
import { login, storeSmsLogin, userMsg } from "@/api/index";
 | 
			
		||||
import util from "@/libs/util.js";
 | 
			
		||||
import Footer from "@/views/main-components/footer";
 | 
			
		||||
import Header from "@/views/main-components/header";
 | 
			
		||||
import verify from "@/views/my-components/verify";
 | 
			
		||||
import Cookies from "js-cookie";
 | 
			
		||||
export default {
 | 
			
		||||
  components: {
 | 
			
		||||
    Header,
 | 
			
		||||
| 
						 | 
				
			
			@ -77,6 +76,7 @@ export default {
 | 
			
		|||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      saveLogin: true, // 保存登录状态
 | 
			
		||||
      sendCodeLoading:false,
 | 
			
		||||
      loading: false, // 加载状态
 | 
			
		||||
      verifyStatus: false, // 是否图片验证通过
 | 
			
		||||
      time: 60, // 倒计时
 | 
			
		||||
| 
						 | 
				
			
			@ -171,26 +171,30 @@ export default {
 | 
			
		|||
    },
 | 
			
		||||
    // 发送手机验证码
 | 
			
		||||
    sendCode() {
 | 
			
		||||
      if (this.time === 60) {
 | 
			
		||||
      if (this.formSms.mobile === "") {
 | 
			
		||||
        this.$Message.warning("请先填写手机号");
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      if (!this.verifyStatus) {
 | 
			
		||||
          this.$Message.warning("请先完成安全验证");
 | 
			
		||||
          return;
 | 
			
		||||
        this.$refs.verify.init();
 | 
			
		||||
        return
 | 
			
		||||
      }
 | 
			
		||||
      if (this.time === 60) {
 | 
			
		||||
        this.sendCodeLoading = true
 | 
			
		||||
        let params = {
 | 
			
		||||
          mobile: this.formSms.mobile,
 | 
			
		||||
          verificationEnums: "LOGIN",
 | 
			
		||||
        };
 | 
			
		||||
        sendSms(params).then((res) => {
 | 
			
		||||
 | 
			
		||||
          if (res.success) {
 | 
			
		||||
            this.$Message.success("验证码发送成功");
 | 
			
		||||
            let that = this;
 | 
			
		||||
            this.interval = setInterval(() => {
 | 
			
		||||
              // this.sendCodeLoading = false
 | 
			
		||||
              that.time--;
 | 
			
		||||
              if (that.time === 0) {
 | 
			
		||||
                this.sendCodeLoading = false
 | 
			
		||||
                that.time = 60;
 | 
			
		||||
                that.codeMsg = "重新发送";
 | 
			
		||||
                that.verifyStatus = false;
 | 
			
		||||
| 
						 | 
				
			
			@ -202,6 +206,8 @@ export default {
 | 
			
		|||
          } else {
 | 
			
		||||
            this.$Message.warning(res.message);
 | 
			
		||||
          }
 | 
			
		||||
        }).catch(() => {
 | 
			
		||||
          this.sendCodeLoading = false
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			@ -216,10 +222,16 @@ export default {
 | 
			
		|||
      } else if (this.loginType == 'mobileLogin') {
 | 
			
		||||
        this.$refs['formSms'].validate((valid) => {
 | 
			
		||||
          if (valid) {
 | 
			
		||||
            this.loading = true;
 | 
			
		||||
 | 
			
		||||
            storeSmsLogin(this.formSms).then(res => {
 | 
			
		||||
              this.loading = false;
 | 
			
		||||
 | 
			
		||||
              if (res.success) {
 | 
			
		||||
                this.afterLogin(res)
 | 
			
		||||
              }
 | 
			
		||||
            }).catch(() => {
 | 
			
		||||
              this.loading = false;
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
| 
						 | 
				
			
			@ -244,8 +256,12 @@ export default {
 | 
			
		|||
          .catch(() => {
 | 
			
		||||
            this.loading = false;
 | 
			
		||||
          });
 | 
			
		||||
      }
 | 
			
		||||
      } else {
 | 
			
		||||
        this.verifyStatus = true;
 | 
			
		||||
 | 
			
		||||
        this.sendCode()
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$refs.verify.show = false;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,7 +57,7 @@
 | 
			
		|||
    </Modal>
 | 
			
		||||
 | 
			
		||||
    <Modal width="1200px" v-model="picModalFlag" @on-ok="confirmUrls">
 | 
			
		||||
      <ossManage @callback="callbackSelected" @selected="(list)=>{ selectedImage = list}" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected"  :isComponent="true" @selected="(list)=>{ selectedImage = list}" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@
 | 
			
		|||
<script>
 | 
			
		||||
import { uploadFile } from "@/libs/axios";
 | 
			
		||||
import vuedraggable from "vuedraggable";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "uploadPicThumb",
 | 
			
		||||
  components: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,7 +8,7 @@
 | 
			
		|||
        <Button @click="orderLogModal = true" type="primary">订单日志</Button>
 | 
			
		||||
        <Button @click="printOrder" type="primary" ghost style="float:right;">打印发货单</Button>
 | 
			
		||||
        <Button v-if="allowOperation.take" @click="orderTake" type="primary">订单核销</Button>
 | 
			
		||||
        <Button v-if="allowOperation.ship" @click="orderDeliver" type="primary">发货</Button>
 | 
			
		||||
        <!-- <Button v-if="allowOperation.ship" @click="orderDeliver" type="primary">发货</Button> -->
 | 
			
		||||
 | 
			
		||||
        <Button v-if="allowOperation.ship" @click="groupShip" type="primary">分包裹发货</Button>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -299,7 +299,7 @@
 | 
			
		|||
 | 
			
		||||
          </FormItem>
 | 
			
		||||
          <FormItem label="详细地址" prop="consigneeDetail">
 | 
			
		||||
            <Input v-model="addressForm.consigneeDetail" size="large" maxlength="11"></Input>
 | 
			
		||||
            <Input v-model="addressForm.consigneeDetail" size="large"></Input>
 | 
			
		||||
          </FormItem>
 | 
			
		||||
        </Form>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -420,7 +420,7 @@
 | 
			
		|||
        <Form :model="faceSheetForm" ref="faceSheetForm" v-if="facesheetFlag" :rules="faceSheetFormValidate">
 | 
			
		||||
          <FormItem label="物流公司" prop="logisticsId" style="position: relative" :label-width="90">
 | 
			
		||||
            <Select v-model="faceSheetForm.logisticsId" placeholder="请选择" style="width: 250px">
 | 
			
		||||
              <Option v-for="(item, i) in checkedLogistics" :key="i" :value="item.logisticsId">{{ item.name }}
 | 
			
		||||
              <Option v-for="(item, i) in checkedLogistics" :key="i" :value="item.id">{{ item.name }}
 | 
			
		||||
              </Option>
 | 
			
		||||
            </Select>
 | 
			
		||||
          </FormItem>
 | 
			
		||||
| 
						 | 
				
			
			@ -429,7 +429,7 @@
 | 
			
		|||
          :rules="orderDeliverFormValidate" style="position: relative">
 | 
			
		||||
          <FormItem label="物流公司" prop="logisticsId">
 | 
			
		||||
            <Select v-model="orderDeliveryForm.logisticsId" placeholder="请选择" style="width: 250px">
 | 
			
		||||
              <Option v-for="(item, i) in checkedLogistics" :key="i" :value="item.logisticsId">{{ item.name }}
 | 
			
		||||
              <Option v-for="(item, i) in checkedLogistics" :key="i" :value="item.id">{{ item.name }}
 | 
			
		||||
              </Option>
 | 
			
		||||
            </Select>
 | 
			
		||||
          </FormItem>
 | 
			
		||||
| 
						 | 
				
			
			@ -1116,6 +1116,7 @@ export default {
 | 
			
		|||
          }
 | 
			
		||||
        })
 | 
			
		||||
      } else {
 | 
			
		||||
        console.log("this.orderDeliveryForm",this.orderDeliveryForm)
 | 
			
		||||
        this.$refs['orderDeliveryForm'].validate((valid) => {
 | 
			
		||||
          if (valid) {
 | 
			
		||||
            API_Order.orderDelivery(this.sn, this.orderDeliveryForm).then(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -100,7 +100,7 @@
 | 
			
		|||
import changeSize from "../directives/changeSize";
 | 
			
		||||
import dragItem from "../directives/dragItem";
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "Zone",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -231,7 +231,7 @@ import Recommend from "./modelList/recommend.vue";
 | 
			
		|||
import NotEnough from "./modelList/notEnough.vue";
 | 
			
		||||
import Seckill from "./modelList/seckill.vue";
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "modelFormItem",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,7 +121,7 @@
 | 
			
		|||
 | 
			
		||||
<script>
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "modelCarousel",
 | 
			
		||||
  props: ["data"],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -85,14 +85,14 @@
 | 
			
		|||
    ></liliDialog>
 | 
			
		||||
    <!-- 选择图片 -->
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag" footer-hide>
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
export default {
 | 
			
		||||
  name: "modelCarousel",
 | 
			
		||||
  props: ["data"],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -175,7 +175,7 @@
 | 
			
		|||
    ></liliDialog>
 | 
			
		||||
    <!-- 选择图片 -->
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag" footer-hide>
 | 
			
		||||
      <ossManage @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,7 +140,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
export default {
 | 
			
		||||
    props:{
 | 
			
		||||
        data:{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -206,7 +206,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
    data: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,263 @@
 | 
			
		|||
.search {
 | 
			
		||||
  .oss-operation {
 | 
			
		||||
    margin-bottom: 2vh;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    align-items: center;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
 | 
			
		||||
    button {
 | 
			
		||||
      margin-right: 5px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.none {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.oss-wrapper {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  flex-wrap: wrap;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.oss-card {
 | 
			
		||||
  margin: 10px 20px 10px 0;
 | 
			
		||||
  width: 290px;
 | 
			
		||||
 | 
			
		||||
  :hover {
 | 
			
		||||
    .content .other .name {
 | 
			
		||||
      color: #1890ff;
 | 
			
		||||
      transition: color .3s;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
 | 
			
		||||
  .ivu-card-body {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: column;
 | 
			
		||||
 | 
			
		||||
    :hover {
 | 
			
		||||
      .play {
 | 
			
		||||
        transition: opacity .3s;
 | 
			
		||||
        opacity: 1 !important;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .img {
 | 
			
		||||
      height: 135px;
 | 
			
		||||
      object-fit: cover;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .video {
 | 
			
		||||
      height: 135px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
 | 
			
		||||
      .cover {
 | 
			
		||||
        height: 100%;
 | 
			
		||||
        width: 100%;
 | 
			
		||||
        object-fit: fill;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .play {
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        top: 43px;
 | 
			
		||||
        left: 117px;
 | 
			
		||||
        height: 50px;
 | 
			
		||||
        width: 50px;
 | 
			
		||||
        opacity: 0.8;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .other {
 | 
			
		||||
      padding: 16px;
 | 
			
		||||
      height: 135px;
 | 
			
		||||
 | 
			
		||||
      .name {
 | 
			
		||||
        font-size: 16px;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
        color: rgba(0, 0, 0, .85);
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        margin-bottom: 4px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .key {
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        height: 45px;
 | 
			
		||||
        word-break: break-all;
 | 
			
		||||
        color: rgba(0, 0, 0, .45);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        font-size: 12px;
 | 
			
		||||
        color: rgba(0, 0, 0, .45);
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        height: 36px;
 | 
			
		||||
        word-break: break-all;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .actions {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      align-items: center;
 | 
			
		||||
      height: 50px;
 | 
			
		||||
      background: #f7f9fa;
 | 
			
		||||
      border-top: 1px solid #e8e8e8;
 | 
			
		||||
 | 
			
		||||
      i:hover {
 | 
			
		||||
        color: #1890ff;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .btn {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        width: 33.33%;
 | 
			
		||||
        border-right: 1px solid #e8e8e8;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .btn-no {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        width: 33.33%;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.oss-manage-box {
 | 
			
		||||
  .file-list {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    border-right: 1px solid #e5e6eb;
 | 
			
		||||
    padding: 16px 0 24px;
 | 
			
		||||
  }
 | 
			
		||||
  .pic-list {
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    padding: 0 0 24px 0;
 | 
			
		||||
  }
 | 
			
		||||
  .img-box {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-wrap: wrap;
 | 
			
		||||
    align-items: flex-start;
 | 
			
		||||
    justify-content: flex-start;
 | 
			
		||||
    align-content: flex-start;
 | 
			
		||||
    margin-top: 20px;
 | 
			
		||||
    .img-item {
 | 
			
		||||
      width: 120px;
 | 
			
		||||
      height: 158px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      margin: 0 13px 8px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      .card {
 | 
			
		||||
        width: 120px;
 | 
			
		||||
        height: 120px;
 | 
			
		||||
        border-radius: 8px;
 | 
			
		||||
        border: 2px solid transparent;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        img {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 100%;
 | 
			
		||||
        }
 | 
			
		||||
        .checkbox {
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          top: 10px;
 | 
			
		||||
          right: 10px;
 | 
			
		||||
          z-index: 1000;
 | 
			
		||||
        }
 | 
			
		||||
        .preview {
 | 
			
		||||
          width: 100%;
 | 
			
		||||
          height: 26px;
 | 
			
		||||
          background-color: #ffffff;
 | 
			
		||||
          text-align: center;
 | 
			
		||||
          line-height: 30px;
 | 
			
		||||
          color: #666666;
 | 
			
		||||
          position: absolute;
 | 
			
		||||
          left: 0;
 | 
			
		||||
          bottom: 0;
 | 
			
		||||
          display: flex;
 | 
			
		||||
          flex-wrap: nowrap;
 | 
			
		||||
          > div {
 | 
			
		||||
            width: 100%;
 | 
			
		||||
            flex: 1;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .card:hover,
 | 
			
		||||
      .custom-checkbox-card-checked {
 | 
			
		||||
        border: 2px solid #ff5c58;
 | 
			
		||||
      }
 | 
			
		||||
      .text {
 | 
			
		||||
        width: 120px;
 | 
			
		||||
        height: 36px;
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
        color: #252931;
 | 
			
		||||
        font-size: 14px;
 | 
			
		||||
        line-height: 36px;
 | 
			
		||||
        overflow: hidden;
 | 
			
		||||
        text-overflow: ellipsis;
 | 
			
		||||
        white-space: nowrap;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        -webkit-line-clamp: 1;
 | 
			
		||||
        -webkit-box-orient: vertical;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .page-box {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: flex-end;
 | 
			
		||||
    margin-top: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  .pagination-box {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-direction: row-reverse;
 | 
			
		||||
  }
 | 
			
		||||
  /* Checkbox默认的样式 */
 | 
			
		||||
  .check-box {
 | 
			
		||||
    .ivu-checkbox {
 | 
			
		||||
      position: absolute;
 | 
			
		||||
      right: 10px;
 | 
			
		||||
      top: 10px;
 | 
			
		||||
      z-index: 100;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  /* 覆盖iView默认的Checkbox样式 */
 | 
			
		||||
  .ivu-checkbox-wrapper {
 | 
			
		||||
    /*font-size: 16px; !* 修改字体大小 *!*/
 | 
			
		||||
    /*color: #495060; !* 修改文本颜色 *!*/
 | 
			
		||||
    /* 添加其他需要的样式 */
 | 
			
		||||
  }
 | 
			
		||||
  .ivu-checkbox-inner {
 | 
			
		||||
    /*width: 20px; !* 修改选框大小 *!*/
 | 
			
		||||
    /*height: 20px;*/
 | 
			
		||||
    /*border-color: #dcdee2; !* 修改边框颜色 *!*/
 | 
			
		||||
    /* 添加其他需要的样式 */
 | 
			
		||||
  }
 | 
			
		||||
  /* 当Checkbox被选中时的样式 */
 | 
			
		||||
  .ivu-checkbox-checked .ivu-checkbox-inner {
 | 
			
		||||
    /*background-color: #2db7f5; !* 修改选中时的背景颜色 *!*/
 | 
			
		||||
  }
 | 
			
		||||
  /* 当Checkbox不可用时的样式 */
 | 
			
		||||
  .ivu-checkbox-disabled .ivu-checkbox-inner {
 | 
			
		||||
    /*background-color: #e9e9e9; !* 修改禁用状态下的背景颜色 *!*/
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .demo-tree-render .ivu-tree-title{
 | 
			
		||||
    width: 94%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
				
			
			@ -221,13 +221,13 @@
 | 
			
		|||
    ></liliDialog>
 | 
			
		||||
    <hotzone ref="hotzone" @changeZone="changeZone"></hotzone>
 | 
			
		||||
    <Modal width="1200px" v-model="picModelFlag">
 | 
			
		||||
      <ossManage  @callback="callbackSelected" ref="ossManage" />
 | 
			
		||||
      <ossManage  @callback="callbackSelected" :isComponent="true" ref="ossManage" />
 | 
			
		||||
    </Modal>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
// import ossManage from "@/views/sys/oss-manage/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManage";
 | 
			
		||||
import ossManage from "@/views/shop/ossManages";
 | 
			
		||||
import hotzone from "@/views/shop/hotzone";
 | 
			
		||||
import { modelData } from "./config";
 | 
			
		||||
import ways from "@/views/lili-dialog/wap.js"; // 选择链接的类型
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue