feat(lint):添加lint 保存时修复

This commit is contained in:
woody 2025-05-22 16:50:14 +08:00
parent 4592316246
commit 0890b44385
10 changed files with 7360 additions and 650 deletions

5
.eslintignore Normal file
View File

@ -0,0 +1,5 @@
node_modules/
dist/
unpackage/
*.log
*.lock

26
.eslintrc.js Normal file
View File

@ -0,0 +1,26 @@
module.exports = {
root: true,
env: {
node: true,
'vue/setup-compiler-macros': true, // 针对 <script setup>
},
extends: [
'plugin:vue/essential',
'eslint:recommended',
'@vue/eslint-config-standard',
'plugin:prettier/recommended', // 确保这个是最后一个,以便它可以覆盖其他配置
],
parserOptions: {
ecmaVersion: 2020,
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'vue/multi-word-component-names': 'off', // uniapp 页面组件名通常是单个词
// 您可以在这里添加或覆盖其他规则
// 例如,强制使用单引号
// 'quotes': ['error', 'single'],
// Prettier 相关的规则通常由 plugin:prettier/recommended 自动处理
// 如果需要覆盖 Prettier 自身的规则,请在 .prettierrc.js 中配置
},
};

13
.prettierrc.js Normal file
View File

@ -0,0 +1,13 @@
module.exports = {
printWidth: 80, // 每行代码长度默认80
tabWidth: 2, // 每个tab相当于多少个空格默认2
useTabs: false, // 是否使用tab进行缩进默认false
singleQuote: true, // 使用单引号默认false
semi: true, // 声明语句后加分号默认true
trailingComma: 'es5', // 多行使用拖尾逗号默认none
bracketSpacing: true, // 对象字面量的大括号间使用空格默认true
arrowParens: 'always', // 箭头函数参数始终显示括号
// jsxBracketSameLine: false, // JSX标签的反尖括号保持在上一行默认false- Vue项目中通常不直接写JSX但可保留
vueIndentScriptAndStyle: true, // script和style标签内是否缩进 (默认false)
endOfLine: 'lf', // 文件末尾换行符 (可选 'auto', 'lf', 'crlf', 'cr')
};

6799
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,9 @@
"test:h5": "cross-env UNI_PLATFORM=h5 jest -i", "test:h5": "cross-env UNI_PLATFORM=h5 jest -i",
"test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i", "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i",
"test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i", "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i",
"test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i" "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i",
"lint": "eslint --ext .js,.vue src",
"lint:fix": "eslint --ext .js,.vue src --fix"
}, },
"dependencies": { "dependencies": {
"@dcloudio/uni-app": "^2.0.2-3081220230817001", "@dcloudio/uni-app": "^2.0.2-3081220230817001",
@ -97,12 +99,18 @@
"@dcloudio/webpack-uni-pages-loader": "^2.0.2-3081220230817001", "@dcloudio/webpack-uni-pages-loader": "^2.0.2-3081220230817001",
"@vue/cli-plugin-babel": "~4.5.13", "@vue/cli-plugin-babel": "~4.5.13",
"@vue/cli-service": "~4.5.13", "@vue/cli-service": "~4.5.13",
"@vue/eslint-config-standard": "^9.0.1",
"babel-plugin-import": "^1.11.0", "babel-plugin-import": "^1.11.0",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"eslint": "^9.27.0",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-vue": "^10.1.0",
"jest": "^25.4.0", "jest": "^25.4.0",
"less": "^3.9.0", "less": "^3.9.0",
"less-loader": "^4.1.0", "less-loader": "^4.1.0",
"postcss-comment": "^2.0.0", "postcss-comment": "^2.0.0",
"prettier": "^3.5.3",
"sass": "^1.67.0", "sass": "^1.67.0",
"sass-loader": "^10.4.1", "sass-loader": "^10.4.1",
"vue-template-compiler": "^2.6.11" "vue-template-compiler": "^2.6.11"
@ -114,4 +122,4 @@
"uni-app": { "uni-app": {
"scripts": {} "scripts": {}
} }
} }

View File

@ -1,40 +1,54 @@
/* /*
* @Descripttion: * @Descripttion:
* @version: * @version:
* @Author: 王三华 * @Author: 王三华
* @Date: 2023-10-10 14:06:25 * @Date: 2023-10-10 14:06:25
*/ */
const http = uni.$u.http const http = uni.$u.http;
// 待办数据 // 待办数据
export const waitApproval = (params) => http.get('/system/manage/index/wait-approval', { params }) export const waitApproval = (params) =>
http.get('/system/manage/index/wait-approval', { params });
// 已办数据 // 已办数据
export const completeApproval = (params) => http.get('/system/manage/index/complete-approval', { params }) export const completeApproval = (params) =>
http.get('/system/manage/index/complete-approval', { params });
// 登录 // 登录
export const login = (params) => http.post('/system/auth/manage/login',params) export const login = (params) => http.post('/system/auth/manage/login', params);
// 审批业务类型 // 审批业务类型
export const approvalBusiness = (params) => http.get('/system/pub/enums/approval-business', { params }) export const approvalBusiness = (params) =>
http.get('/system/pub/enums/approval-business', { params });
// 来源下拉 // 来源下拉
export const signSource = (params) => http.get('/system/pub/enums/sign-source', { params }) export const signSource = (params) =>
http.get('/system/pub/enums/sign-source', { params });
// 审批下拉 // 审批下拉
export const approvalOperation = (params) => http.get('/system/pub/enums/approval-operation', { params }) export const approvalOperation = (params) =>
http.get('/system/pub/enums/approval-operation', { params });
// 审批状态 // 审批状态
export const approvalStatus = (params) => http.get('/system/pub/enums/approval-status-submit', { params }) export const approvalStatus = (params) =>
http.get('/system/pub/enums/approval-status-submit', { params });
// 签呈类型 // 签呈类型
export const signType = (params) => http.get('/system/pub/enums/sign-type', { params }) export const signType = (params) =>
http.get('/system/pub/enums/sign-type', { params });
// 接收数据 // 接收数据
export const receiveApprovalList = (params) => http.get('/system/manage/index/receive-approval-list', { params }) export const receiveApprovalList = (params) =>
http.get('/system/manage/index/receive-approval-list', { params });
// 审批详情 // 审批详情
export const approvalDetails = (id) => http.get('/system/manage/approval-business/detail/' + id) export const approvalDetails = (id) =>
http.get('/system/manage/approval-business/detail/' + id);
// 签呈审核 // 签呈审核
export const approvalTrue = (params) => http.put('/system/manage/approval-business/approval',params) export const approvalTrue = (params) =>
http.put('/system/manage/approval-business/approval', params);
// 接收 // 接收
export const receiveApproval = (params) => http.put('/system/manage/index/receive-approval',params) export const receiveApproval = (params) =>
http.put('/system/manage/index/receive-approval', params);
// 充值币种类型选择 // 充值币种类型选择
export const getenumsCzAccount = (params) => http.get('/system/manage/account/rechargeList', { params }) export const getenumsCzAccount = (params) =>
http.get('/system/manage/account/rechargeList', { params });
// 交款方式选择 // 交款方式选择
export const getpaymentType = (params) => http.get('/system/pub/enums/get-payment-type', { params }) export const getpaymentType = (params) =>
http.get('/system/pub/enums/get-payment-type', { params });
// 已读状态 // 已读状态
export const readState = (params) => http.get('/system/pub/enums/read-state', { params }) export const readState = (params) =>
http.get('/system/pub/enums/read-state', { params });

View File

@ -1,45 +1,96 @@
/* /*
* @Descripttion: * @Descripttion:
* @version: * @version:
* @Author: 王三华 * @Author: 王三华
* @Date: 2023-11-02 11:07:10 * @Date: 2023-11-02 11:07:10
*/ */
const http = uni.$u.http const http = uni.$u.http;
// 货币种类枚举列表 // 货币种类枚举列表
export const accountList = (params) => http.get('/system/pub/enums/account', { params }) export const accountList = (params) =>
http.get('/system/pub/enums/account', { params });
// 业绩汇总 // 业绩汇总
export const memberStructure = (params) => http.get('/member/manage/member-structure/list', { params }) export const memberStructure = (params) =>
http.get('/member/manage/member-structure/list', { params });
// 奖金波比列表 // 奖金波比列表
export const bonusList = (params) => http.get('/member/manage/bonus-statis/list', { params }) export const bonusList = (params) =>
http.get('/member/manage/bonus-statis/list', { params });
// 拨比列表小计 // 拨比列表小计
export const subtotal = (params) => http.get('/member/manage/bonus-statis/subtotal', { params }) export const subtotal = (params) =>
http.get('/member/manage/bonus-statis/subtotal', { params });
// 收益类型 // 收益类型
export const getYieldType = (params) => http.get('/system/manage/bd-bonus-items/list', { params }) export const getYieldType = (params) =>
http.get('/system/manage/bd-bonus-items/list', { params });
// 收益状态 // 收益状态
export const getYieldStatus = (params) => http.get('/system/pub/enums/bonus-income-status', { params }) export const getYieldStatus = (params) =>
http.get('/system/pub/enums/bonus-income-status', { params });
// 订单类型枚举 // 订单类型枚举
export const getOrderType = (params) => http.get('/system/pub/enums/order-type', { params }) export const getOrderType = (params) =>
http.get('/system/pub/enums/order-type', { params });
// 获取全部国家下拉接口 // 获取全部国家下拉接口
export const getcountryAllList = (params) => http.get('/system/manage/country/find-all', { params }) export const getcountryAllList = (params) =>
http.get('/system/manage/country/find-all', { params });
// 获取数据类型 // 获取数据类型
export const getDataType = (params) => http.get('/system/pub/enums/data-type', { params }) export const getDataType = (params) =>
http.get('/system/pub/enums/data-type', { params });
//奖金来源 //奖金来源
export const bonusSource = (params) => http.post('/bonus/manage/bonus/query-bonus-source?pageNum=' + params.pageNum + '&pageSize=' + params.pageSize, params) export const bonusSource = (params) =>
http.post(
'/bonus/manage/bonus/query-bonus-source?pageNum=' +
params.pageNum +
'&pageSize=' +
params.pageSize,
params
);
//奖金汇总 //奖金汇总
export const queryBonusTotal = (params) => http.post('/bonus/manage/bonus/query-bonus-total?pageNum=' + params.pageNum + '&pageSize=' + params.pageSize, params) export const queryBonusTotal = (params) =>
http.post(
'/bonus/manage/bonus/query-bonus-total?pageNum=' +
params.pageNum +
'&pageSize=' +
params.pageSize,
params
);
//奖金明细 //奖金明细
export const queryBonusDetail = (params) => http.post('/bonus/manage/bonus/query-bonus-detail?pageNum=' + params.pageNum + '&pageSize=' + params.pageSize, params) export const queryBonusDetail = (params) =>
http.post(
'/bonus/manage/bonus/query-bonus-detail?pageNum=' +
params.pageNum +
'&pageSize=' +
params.pageSize,
params
);
//安置数据 //安置数据
export const getShowPlace = (params) => http.post('/member/manager/center/show-place?pageNum=' + params.pageNum + '&pageSize=' + params.pageSize, params) export const getShowPlace = (params) =>
http.post(
'/member/manager/center/show-place?pageNum=' +
params.pageNum +
'&pageSize=' +
params.pageSize,
params
);
//推荐数据 //推荐数据
export const getShowRecommend = (params) => http.post('/member/manager/center/show-recommend?pageNum=' + params.pageNum + '&pageSize=' + params.pageSize, params) export const getShowRecommend = (params) =>
http.post(
'/member/manager/center/show-recommend?pageNum=' +
params.pageNum +
'&pageSize=' +
params.pageSize,
params
);
// 获取创客空间详情 // 获取创客空间详情
export const markerSpaceDetail = (params) => http.get('/member/manage/maker-space/detail', { params }) export const markerSpaceDetail = (params) =>
http.get('/member/manage/maker-space/detail', { params });
// 获取超级工作室详情 // 获取超级工作室详情
export const superStudioDetails = (params) => http.get('/member/manage/super-studio/detail', { params }) export const superStudioDetails = (params) =>
http.get('/member/manage/super-studio/detail', { params });
// 获取经销商详情 // 获取经销商详情
export const dealerDetails = (params) => http.get('/member/manage/dealer/detail', { params }) export const dealerDetails = (params) =>
http.get('/member/manage/dealer/detail', { params });
// 顶点下拉选
export const topVertexList = (params) =>
http.get('/member/manage/bonus-vertex-statis/vertexList', { params });

View File

@ -0,0 +1,169 @@
<template>
<view class="top-member-select">
<u-form-item
:label="label"
:borderBottom="borderBottom"
:labelWidth="labelWidth"
>
<picker
:range="pickerVerList"
range-key="displayLabel"
@change="bindPickerChange"
>
<u--input
v-model="displayedValue"
disabled
disabledColor="#ffffff"
suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px; color: #909399"
readonly
></u--input>
</picker>
</u-form-item>
</view>
</template>
<script>
import * as api from '@/api/settle.js'; // uniapp
export default {
name: 'TopMemberSelect',
props: {
// value propv-model使
// value: {
// type: [String, Number],
// default: ''
// },
label: {
type: String,
default: '系统编号',
},
labelWidth: {
type: [String, Number],
default: 'auto',
},
borderBottom: {
type: Boolean,
default: true, // u-form-item
},
// model prop 使 model.pkVertex
// model: {
// type: Object,
// default: () => {}
// }
},
data() {
return {
pkVertex: '', // memberCode
displayedValue: '', // "memberCode (memberName)"
verList: [], // API
pickerVerList: [], // picker使 displayLabel
};
},
watch: {
// 使 v-modelwatch
// value: {
// handler(newVal) {
// if (this.pkVertex !== newVal) {
// this.setSelectedByValue(newVal);
// }
// },
// immediate: true
// }
},
created() {
this.getList();
},
methods: {
getList() {
api
.topVertexList()
.then((res) => {
this.verList = res.rows || [];
this.pickerVerList = this.verList.map((item) => ({
...item,
// pickerrange-key
pkVertex: item.pkVertex, // pkVertex
memberCode: item.memberCode,
memberName: item.memberName,
displayLabel: `${item.memberCode} (${item.memberName})`,
}));
// (v-model/value prop)
// if (this.value && this.pickerVerList.length > 0) {
// this.setSelectedByValue(this.value);
// } else
if (this.pickerVerList.length > 0) {
// change
this.pkVertex = this.pickerVerList[0].memberCode;
this.displayedValue = this.pickerVerList[0].displayLabel;
this.handleChange();
} else {
this.pkVertex = '';
this.displayedValue = '';
//
this.handleChange();
}
})
.catch((err) => {
console.error('TopMemberSelect 获取列表失败:', err);
this.verList = [];
this.pickerVerList = [];
this.pkVertex = '';
this.displayedValue = '';
this.handleChange();
});
},
bindPickerChange(e) {
const index = e.detail.value;
if (this.pickerVerList && this.pickerVerList[index]) {
const selectedItem = this.pickerVerList[index];
this.pkVertex = selectedItem.memberCode;
this.displayedValue = selectedItem.displayLabel;
this.handleChange();
}
},
handleChange() {
// 使 v-model, emit 'input'
// this.$emit('input', this.pkVertex);
this.$emit('change', this.pkVertex);
},
// (使v-model/value prop)
// setSelectedByValue(value) {
// const selectedItem = this.pickerVerList.find(item => item.memberCode === value);
// if (selectedItem) {
// this.pkVertex = selectedItem.memberCode;
// this.displayedValue = selectedItem.displayLabel;
// } else {
// //
// this.pkVertex = '';
// this.displayedValue = '';
// }
// },
reset() {
this.pkVertex = '';
this.displayedValue = '';
//
// if (this.pickerVerList.length > 0) {
// this.pkVertex = this.pickerVerList[0].memberCode;
// this.displayedValue = this.pickerVerList[0].displayLabel;
// }
this.handleChange();
},
},
};
</script>
<style lang="scss" scoped>
//
.top-member-select {
width: 100%;
}
// pickerinput
// ::v-deep .u-input {
// padding-right: 0 !important; //
// }
// ::v-deep .u-input__content__field-wrapper__field {
// text-align: left !important;
// }
</style>

View File

@ -67,6 +67,10 @@
{{ item.orderAmount | toThousandthAndKeepDecimal }} {{ item.orderAmount | toThousandthAndKeepDecimal }}
</td> </td>
</tr> </tr>
<tr v-if="dataList[13].key">
<td align="right">{{ '订单业绩'+ `(${isLocals()})` }}</td>
<td align="left">{{ item.orderAchieve| toThousandthAndKeepDecimal }}</td>
</tr>
<tr v-if="dataList[21].key"> <tr v-if="dataList[21].key">
<td align="right">{{ '商品订单' + "BV" }}</td> <td align="right">{{ '商品订单' + "BV" }}</td>
<td align="left"> <td align="left">
@ -77,10 +81,7 @@
<td align="right">{{ '订单邮费' }}</td> <td align="right">{{ '订单邮费' }}</td>
<td align="left">{{ item.postage| toThousandthAndKeepDecimal }}</td> <td align="left">{{ item.postage| toThousandthAndKeepDecimal }}</td>
</tr> </tr>
<tr v-if="dataList[13].key">
<td align="right">{{ '订单业绩'+ `(${isLocals()})` }}</td>
<td align="left">{{ item.orderAchieve| toThousandthAndKeepDecimal }}</td>
</tr>
<tr v-if="dataList[14].key"> <tr v-if="dataList[14].key">
<td align="right">{{ '发货方式' }}</td> <td align="right">{{ '发货方式' }}</td>
<td align="left">{{ item.deliveryWayStr }}</td> <td align="left">{{ item.deliveryWayStr }}</td>
@ -101,6 +102,10 @@
<td align="right">{{ '支付日期' }}</td> <td align="right">{{ '支付日期' }}</td>
<td align="left">{{ item.payTime }}</td> <td align="left">{{ item.payTime }}</td>
</tr> </tr>
<tr>
<td align="right">订单套数</td>
<td align="left">{{ item.boxNum }}</td>
</tr>
</table> </table>
<view <view
style=" style="

View File

@ -8,9 +8,7 @@
<view class="content"> <view class="content">
<view class="header_a"> <view class="header_a">
<view class="header"> <view class="header">
<img @click="isTop=true" <img @click="isTop = true" src="@/assets/images/search.png" alt="" />
src="@/assets/images/search.png"
alt="">
<!-- <img @click="isFont=true" <!-- <img @click="isFont=true"
src="@/assets/images/change.png" src="@/assets/images/change.png"
alt=""> --> alt=""> -->
@ -18,27 +16,8 @@
</view> </view>
<view class="zhan"></view> <view class="zhan"></view>
<!-- table --> <!-- table -->
<view class="kuang" <view class="kuang" v-for="(item, index) in tableData" :key="index">
v-for="(item,index) in tableData" <table class="tftable" border="1">
:key="index">
<table class="tftable"
border="1">
<tr>
<td align="right">国旗</td>
<td align="left">
<view class="theflex">
<view style="margin-right: 8rpx">
<img style="width: 46rpx; height: 46rpx"
:src="item.nationalFlag1"
alt="" />
</view>
</view>
</td>
</tr>
<tr>
<td align="right">{{ '国家' }}</td>
<td align="left">{{ item.shortName }}</td>
</tr>
<tr> <tr>
<td align="right">{{ '会员编号' }}</td> <td align="right">{{ '会员编号' }}</td>
<td align="left">{{ item.memberCode }}</td> <td align="left">{{ item.memberCode }}</td>
@ -78,449 +57,476 @@
</table> </table>
</view> </view>
<!-- 顶部搜索 --> <!-- 顶部搜索 -->
<u-popup :show="isTop" <u-popup :show="isTop" mode="top" @close="isTop = false">
mode="top"
@close="isTop=false">
<view class="tt"> <view class="tt">
<u--form labelPosition="left" <u--form
labelWidth="auto" labelPosition="left"
:model="select" labelWidth="auto"
ref="uForm"> :model="select"
<u-row gutter="10"> ref="uForm"
>
<u-row gutter="10" style="flex-wrap: wrap">
<u-col span="6">
<top-member-select
label="系统编号"
:borderBottom="false"
@change="topMemberHandleChange"
/>
</u-col>
<u-col span="6"> <u-col span="6">
<u-form-item :label="'会员编号'"> <u-form-item :label="'会员编号'">
<u--input fontSize="12" <u--input fontSize="12" v-model="select.memberCode"></u--input>
v-model="select.memberCode"></u--input>
</u-form-item> </u-form-item>
</u-col> </u-col>
<u-col span="6"> <u-col span="6">
<u-form-item :label="'会员姓名'"> <u-form-item :label="'会员姓名'">
<u--input fontSize="12" <u--input fontSize="12" v-model="select.memberName"></u--input>
v-model="select.memberName"></u--input>
</u-form-item> </u-form-item>
</u-col> </u-col>
</u-row>
<u-row gutter="10">
<u-col span="6"> <u-col span="6">
<u-form-item :label="'订单类型'"> <u-form-item :label="'订单类型'">
<picker :range="orderTypeList" <picker
range-key="label" :range="orderTypeList"
@change="bindPickerChange1"> range-key="label"
<u--input disabled @change="bindPickerChange1"
fontSize="12" >
disabledColor="#ffffff" <u--input
v-model="select.orderTypeVal" disabled
suffixIcon="arrow-down" fontSize="12"
suffixIconStyle="font-size: 12px;"></u--input> disabledColor="#ffffff"
v-model="select.orderTypeVal"
suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px;"
></u--input>
</picker> </picker>
</u-form-item> </u-form-item>
</u-col> </u-col>
<u-col span="6"> <u-col span="6">
<u-form-item :label="'荣誉奖衔'"> <u-form-item :label="'荣誉奖衔'">
<picker :range="awardsList" <picker
range-key="awardsName" :range="awardsList"
@change="bindPickerChange3"> range-key="awardsName"
<u--input disabled @change="bindPickerChange3"
fontSize="12" >
disabledColor="#ffffff" <u--input
v-model="select.pkAwardsVal" disabled
suffixIcon="arrow-down" fontSize="12"
suffixIconStyle="font-size: 12px;"></u--input> disabledColor="#ffffff"
v-model="select.pkAwardsVal"
suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px;"
></u--input>
</picker> </picker>
</u-form-item> </u-form-item>
</u-col> </u-col>
</u-row>
<u-row gutter="10">
<u-col span="6"> <u-col span="6">
<u-form-item :label="'体系名称'"> <u-form-item :label="'体系名称'">
<picker :range="vertexList" <picker
range-key="vertexName" :range="vertexList"
@change="bindPickerChange4"> range-key="vertexName"
<u--input disabled @change="bindPickerChange4"
fontSize="12" >
disabledColor="#ffffff" <u--input
v-model="select.vertexIdVal" disabled
suffixIcon="arrow-down" fontSize="12"
suffixIconStyle="font-size: 12px;"></u--input> disabledColor="#ffffff"
v-model="select.vertexIdVal"
suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px;"
></u--input>
</picker> </picker>
</u-form-item> </u-form-item>
</u-col> </u-col>
<u-col span="6"> <u-col span="6">
<u-form-item :label="'团队名称'"> <u-form-item :label="'团队名称'">
<picker :range="memberteamList" <picker
range-key="teamName" :range="memberteamList"
@change="bindPickerChange5"> range-key="teamName"
<u--input disabled @change="bindPickerChange5"
fontSize="12" >
disabledColor="#ffffff" <u--input
v-model="select.teamIdVal" disabled
suffixIcon="arrow-down" fontSize="12"
suffixIconStyle="font-size: 12px;"></u--input> disabledColor="#ffffff"
v-model="select.teamIdVal"
suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px;"
></u--input>
</picker> </picker>
</u-form-item> </u-form-item>
</u-col> </u-col>
</u-row>
<u-row gutter="10">
<u-col span="6">
<u-form-item :label="'国家'">
<picker :range="countryList"
range-key="name"
@change="bindPickerChange2">
<u--input disabled
fontSize="12"
disabledColor="#ffffff"
v-model="select.pkSettleCountryVal"
suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px;"></u--input>
</picker>
</u-form-item>
</u-col>
</u-row>
<u-row gutter="10">
<u-col span="12"> <u-col span="12">
<u-form-item :label="'订单日期'" <u-form-item :label="'订单日期'" @click="isData = true">
@click="isData=true"> <u--input
<u--input disabled disabled
fontSize="12" fontSize="12"
disabledColor="#ffffff" disabledColor="#ffffff"
v-model="select.operationTimeVal" v-model="select.operationTimeVal"
suffixIcon="arrow-down" suffixIcon="arrow-down"
suffixIconStyle="font-size: 12px;"></u--input> suffixIconStyle="font-size: 12px;"
></u--input>
</u-form-item> </u-form-item>
</u-col> </u-col>
</u-row> </u-row>
</u--form> </u--form>
<view class="footer"> <view class="footer">
<u-button @click="getList1" <u-button
color="#C8161D" @click="getList1"
text="搜索" color="#C8161D"
class="btnn"></u-button> text="搜索"
<u-button @click="reset" class="btnn"
text="重置"></u-button> ></u-button>
<u-button @click="reset" text="重置"></u-button>
</view> </view>
</view> </view>
</u-popup> </u-popup>
<u-calendar @close="isData = false" <u-calendar
:closeOnClickOverlay="true" @close="isData = false"
:show="isData" :closeOnClickOverlay="true"
:allowSameDay="true" :show="isData"
mode="range" :allowSameDay="true"
:maxDate="calendar.maxDate" mode="range"
:minDate="calendar.minDate" :maxDate="calendar.maxDate"
:monthNum="calendar.monthNum" :minDate="calendar.minDate"
@confirm="confirm"></u-calendar> :monthNum="calendar.monthNum"
@confirm="confirm"
></u-calendar>
<!-- 悬浮球 --> <!-- 悬浮球 -->
<drag-button /> <drag-button />
<export-ball ref="exportBall" <export-ball ref="exportBall" @handleExport="handleExport" />
@handleExport="handleExport" />
</view> </view>
</template> </template>
<script> <script>
import * as api from '@/api/information' import * as api from '@/api/information';
import * as fin from '@/api/financial' import * as fin from '@/api/financial';
import * as settle from '@/api/settle' import * as settle from '@/api/settle';
import * as sta from '@/api/statistics' import * as sta from '@/api/statistics';
import topMemberSelect from '@/components/top-member-select/index.vue';
import { isLocals, isLocalSymbol } from '@/util/numberToCurrency';
export default {
components: {
topMemberSelect,
},
data() {
return {
select: {
orderTypeVal: '全部',
orderType: 1,
},
isTop: false,
setTime: 0,
total: 0,
queryParams: {
pageNum: 1,
pageSize: 20,
},
tableData: [],
vertexList: [],
memberteamList: [],
userCountry: {},
import { isLocals, isLocalSymbol } from '@/util/numberToCurrency' orderTypeList: [],
export default { countryList: [],
data() { awardsList: [],
return { calendar: {
select: { minDate: '',
maxDate: '',
monthNum: 25,
},
isData: false,
};
},
onLoad(options) {
if (uni.getStorageSync('userAll')) {
this.userCountry = JSON.parse(uni.getStorageSync('userAll')).country;
}
this.getData();
this.getSearch();
this.chooseTimed();
var s1 = this.getStartTime();
var s2 = this.getEndTime();
this.$set(this.select, 'startPayTime', s1);
this.$set(this.select, 'endPayTime', s2);
this.$set(this.select, 'operationTimeVal', s1 + ' 至 ' + s2);
},
onPullDownRefresh() {
this.getList1();
},
methods: {
isLocalSymbol,
isLocals,
topMemberHandleChange(value) {
this.$set(this.select, 'memberCode', value);
}, },
isTop: false, getStartTime() {
setTime: 0, let date = new Date();
total: 0, let year = date.getFullYear(); //
queryParams: { let month =
pageNum: 1, date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1; // 0-11+1
pageSize: 20, date.setDate(1); //
month = month >= 10 ? month : '0' + month; //
let day = date.getDate(); // setDate(1)
day = day >= 10 ? day : '0' + day; //
return year + '-' + month + '-' + day;
}, },
tableData: [], getEndTime() {
vertexList: [], var date = new Date();
memberteamList: [], var year = date.getFullYear(); //
userCountry: {}, let month =
date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1; // 0-11+1
orderTypeList: [], var day = date.getDate() > 1 ? date.getDate() - 1 : date.getDate(); //
countryList: [], let day1 = date.getDate();
awardsList: [], // "0"
calendar: { if (month >= 1 && month <= 9) {
minDate: '', month = '0' + month;
maxDate: '', }
monthNum: 25, if (day >= 0 && day <= 9) {
day = '0' + day;
}
if (day1 == 1) {
var date2 = new Date();
var year2 = date2.getFullYear();
var month2 = date2.getMonth();
var dates = new Date(year2, month2, 0).getDate();
day = dates;
}
return year + '-' + month + '-' + day;
},
//
chooseTimed() {
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
if (month <= 9) {
month = '0' + month;
}
if (day <= 9) {
day = '0' + day;
}
let minyear = year - 1;
let maxyear = year + 1;
this.calendar.minDate = minyear + '-' + month + '-' + day;
this.calendar.maxDate = maxyear + '-' + month + '-' + day;
},
handleExport() {
let url = '/report/manager/member-report/export-direct-push-new';
let obj = Object.assign({}, this.select, this.queryParams);
this.$refs.exportBall.handleExport(url, obj, `伞下直推新增业绩`);
},
getData() {
//
api.getvertexValue().then((res) => {
this.vertexList = res.data;
});
//
api.getmemberTeamList().then((res) => {
this.memberteamList = res.rows;
});
//
api.getOrderBusiness().then((res) => {
this.orderTypeList = res.data;
});
//
api.getAwardsListChiose().then((res) => {
this.awardsList = res.rows;
});
//
settle.getcountryAllList().then((res) => {
this.countryList = res.data;
});
},
bindPickerChange1(e) {
console.log(e);
this.$set(
this.select,
'orderTypeVal',
this.orderTypeList[e.detail.value].label
);
this.$set(
this.select,
'orderType',
this.orderTypeList[e.detail.value].value
);
},
bindPickerChange2(e) {
this.$set(
this.select,
'pkSettleCountryVal',
this.countryList[e.detail.value].name
);
this.$set(
this.select,
'pkCountry',
this.countryList[e.detail.value].pkId
);
},
bindPickerChange3(e) {
this.$set(
this.select,
'pkAwardsVal',
this.awardsList[e.detail.value].awardsName
);
this.$set(
this.select,
'pkAwards',
this.awardsList[e.detail.value].pkId
);
},
bindPickerChange4(e) {
this.$set(
this.select,
'vertexIdVal',
this.vertexList[e.detail.value].vertexName
);
this.$set(
this.select,
'pkVertex',
this.vertexList[e.detail.value].pkId
);
},
bindPickerChange5(e) {
this.$set(
this.select,
'teamIdVal',
this.memberteamList[e.detail.value].teamName
);
this.$set(
this.select,
'pkTeamCode',
this.memberteamList[e.detail.value].pkId
);
},
onReachBottom() {
this.queryParams.pageNum++;
this.getSearch();
},
//
getSearch() {
sta
.directAddList(Object.assign({}, this.queryParams, this.select))
.then((res) => {
uni.stopPullDownRefresh();
this.total = res.total;
this.tableData = this.tableData.concat(res.rows);
});
},
getList1() {
this.tableData = [];
this.queryParams.pageNum = 1;
this.isTop = false;
this.tableData = [];
this.getSearch();
},
reset() {
this.select = {};
},
confirm(e) {
this.$set(this.select, 'startPayTime', e[0]);
this.$set(this.select, 'endPayTime', e[e.length - 1]);
this.$set(
this.select,
'operationTimeVal',
e[0] + ' 至 ' + e[e.length - 1]
);
this.isData = false;
}, },
isData: false,
}
},
onLoad(options) {
if (uni.getStorageSync('userAll')) {
this.userCountry = JSON.parse(uni.getStorageSync('userAll')).country
}
this.getData()
this.getSearch()
this.chooseTimed()
var s1 = this.getStartTime()
var s2 = this.getEndTime()
this.$set(this.select, 'startPayTime', s1)
this.$set(this.select, 'endPayTime', s2)
this.$set(this.select, 'operationTimeVal', s1 + ' 至 ' + s2)
},
onPullDownRefresh() {
this.getList1()
},
methods: {
isLocalSymbol,
isLocals,
getStartTime() {
let date = new Date()
let year = date.getFullYear() //
let month = date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1 // 0-11+1
date.setDate(1) //
month = month >= 10 ? month : '0' + month //
let day = date.getDate() // setDate(1)
day = day >= 10 ? day : '0' + day //
return year + '-' + month + '-' + day
}, },
getEndTime() { };
var date = new Date()
var year = date.getFullYear() //
let month = date.getDate() === 1 ? date.getMonth() : date.getMonth() + 1 // 0-11+1
var day = date.getDate() > 1 ? date.getDate() - 1 : date.getDate() //
let day1 = date.getDate()
// 0
if (month >= 1 && month <= 9) {
month = '0' + month
}
if (day >= 0 && day <= 9) {
day = '0' + day
}
if (day1 == 1) {
var date2 = new Date()
var year2 = date2.getFullYear()
var month2 = date2.getMonth()
var dates = new Date(year2, month2, 0).getDate()
day = dates
}
return year + '-' + month + '-' + day
},
//
chooseTimed() {
let date = new Date()
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
if (month <= 9) {
month = '0' + month
}
if (day <= 9) {
day = '0' + day
}
let minyear = year - 1
let maxyear = year + 1
this.calendar.minDate = minyear + '-' + month + '-' + day
this.calendar.maxDate = maxyear + '-' + month + '-' + day
},
handleExport() {
let url = '/report/manager/member-report/export-direct-push-new'
let obj = Object.assign({}, this.select, this.queryParams)
this.$refs.exportBall.handleExport(url, obj, `伞下直推新增业绩`)
},
getData() {
//
api.getvertexValue().then((res) => {
this.vertexList = res.data
})
//
api.getmemberTeamList().then((res) => {
this.memberteamList = res.rows
})
//
api.getOrderBusiness().then((res) => {
this.orderTypeList = res.data
})
//
api.getAwardsListChiose().then((res) => {
this.awardsList = res.rows
})
//
settle.getcountryAllList().then((res) => {
this.countryList = res.data
})
},
bindPickerChange1(e) {
this.$set(
this.select,
'orderTypeVal',
this.orderTypeList[e.detail.value].label
)
this.$set(
this.select,
'orderType',
this.orderTypeList[e.detail.value].value
)
},
bindPickerChange2(e) {
this.$set(
this.select,
'pkSettleCountryVal',
this.countryList[e.detail.value].name
)
this.$set(
this.select,
'pkCountry',
this.countryList[e.detail.value].pkId
)
},
bindPickerChange3(e) {
this.$set(
this.select,
'pkAwardsVal',
this.awardsList[e.detail.value].awardsName
)
this.$set(this.select, 'pkAwards', this.awardsList[e.detail.value].pkId)
},
bindPickerChange4(e) {
this.$set(
this.select,
'vertexIdVal',
this.vertexList[e.detail.value].vertexName
)
this.$set(this.select, 'pkVertex', this.vertexList[e.detail.value].pkId)
},
bindPickerChange5(e) {
this.$set(
this.select,
'teamIdVal',
this.memberteamList[e.detail.value].teamName
)
this.$set(this.select, 'pkTeamCode', this.memberteamList[e.detail.value].pkId)
},
onReachBottom() {
this.queryParams.pageNum++
this.getSearch()
},
//
getSearch() {
sta.directAddList(Object.assign({}, this.queryParams, this.select))
.then((res) => {
uni.stopPullDownRefresh()
this.total = res.total
this.tableData = this.tableData.concat(res.rows)
})
},
getList1() {
this.tableData = []
this.queryParams.pageNum = 1
this.isTop = false
this.tableData = []
this.getSearch()
},
reset() {
this.select = {}
},
confirm(e) {
this.$set(this.select, 'startPayTime', e[0])
this.$set(this.select, 'endPayTime', e[e.length - 1])
this.$set(
this.select,
'operationTimeVal',
e[0] + ' 至 ' + e[e.length - 1]
)
this.isData = false
},
},
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.content { .content {
background: #f9f9f9; background: #f9f9f9;
// padding: 20rpx; // padding: 20rpx;
}
.header_a {
position: fixed;
width: 100%;
z-index: 1;
}
.header {
margin: 20rpx;
background: #ffffff;
box-shadow: 0px 2px 10px 0px rgba(204, 204, 204, 0.4);
border-radius: 10px 10px 10px 10px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx 40rpx;
img {
width: 24px;
height: 24px;
} }
} .header_a {
.zhan { position: fixed;
height: 130rpx; width: 100%;
} z-index: 1;
.kuang {
margin: 20rpx;
background: #f9f9f9;
border-radius: 10px 10px 10px 10px;
}
.table_f {
display: flex;
uni-button {
margin: 20rpx 10rpx;
} }
} .header {
.tftable { margin: 20rpx;
font-size: 12px; background: #ffffff;
border-collapse: collapse; box-shadow: 0px 2px 10px 0px rgba(204, 204, 204, 0.4);
border-radius: 10px; border-radius: 10px 10px 10px 10px;
width: 100%; display: flex;
background: #fff; align-items: center;
border: 1px solid #f9f9f9; justify-content: space-between;
margin-top: 20rpx; padding: 30rpx 40rpx;
td { img {
font-size: 11px; width: 24px;
font-family: PingFang SC-Medium, PingFang SC; height: 24px;
font-weight: 500; }
color: #999;
padding: 20rpx 40rpx;
width: 50%;
// height: 60px;
border-left: 1px solid #333;
border-bottom: 1px solid #333;
} }
td:nth-child(odd) { .zhan {
border-left: 1px solid #f9f9f9; height: 130rpx;
} }
tr :nth-child(2) { .kuang {
color: #333333; margin: 20rpx;
background: #f9f9f9;
border-radius: 10px 10px 10px 10px;
} }
} .table_f {
.tt { display: flex;
padding: 20rpx; uni-button {
margin-top: 40px; margin: 20rpx 10rpx;
} }
::v-deep .u-transition {
z-index: 998 !important;
}
.footer {
display: flex;
align-items: center;
padding: 20rpx 60rpx;
.btnn {
margin-right: 40rpx;
} }
} .tftable {
::v-deep .u-input { font-size: 12px;
padding: 0 9px !important; border-collapse: collapse;
} border-radius: 10px;
::v-deep .u-form-item__body__left__content__label { width: 100%;
font-size: 12px; background: #fff;
} border: 1px solid #f9f9f9;
::v-deep .u-form-item__body { margin-top: 20rpx;
padding: 5px 0; td {
} font-size: 11px;
.theflex { font-family:
display: flex; PingFang SC-Medium,
align-items: center; PingFang SC;
} font-weight: 500;
</style> color: #999;
padding: 20rpx 40rpx;
width: 50%;
// height: 60px;
border-left: 1px solid #333;
border-bottom: 1px solid #333;
}
td:nth-child(odd) {
border-left: 1px solid #f9f9f9;
}
tr :nth-child(2) {
color: #333333;
}
}
.tt {
padding: 20rpx;
margin-top: 20rpx;
}
::v-deep .u-transition {
z-index: 998 !important;
}
.footer {
display: flex;
align-items: center;
padding: 20rpx 60rpx;
.btnn {
margin-right: 40rpx;
}
}
::v-deep .u-input {
padding: 0 9px !important;
}
::v-deep .u-form-item__body__left__content__label {
font-size: 12px;
}
::v-deep .u-form-item__body {
padding: 5px 0;
}
.theflex {
display: flex;
align-items: center;
}
</style>