This commit is contained in:
王一嘉
2025-07-14 16:58:46 +08:00
parent af94cd0a97
commit d68450709b
24 changed files with 397 additions and 79 deletions

View File

@@ -14,6 +14,7 @@ import {reactive} from "vue";
import Api from "../../api/index.js";
import {onShow} from "@dcloudio/uni-app";
import {useSystemStore} from "../../pinia/SystemStore/index.js";
import XPrompt from "../../components/XPrompt.vue";
const SystemStore = useSystemStore();
const BASE = [
@@ -127,8 +128,21 @@ const deleteItem = async (id) => {
<view class="px-[12rpx] py-[7rpx] test-24r warn" v-else-if="v.status === 0 || v.status === 3">
{{ v.status_text }}
</view>
<view class="px-[12rpx] py-[7rpx] test-24r error" v-else-if="v.status === -2">
{{ v.status_text }}
<x-prompt title="封禁原因" :info="v.check_text">
<template v-slot:button>
<tui-icon name="about" :size="15" color="#F53F3F"></tui-icon>
</template>
</x-prompt>
</view>
<view class="px-[12rpx] py-[7rpx] test-24r error" v-else>
{{ v.status_text }}
<x-prompt title="账号异常" :info="v.check_text">
<template v-slot:button>
<tui-icon name="about" :size="15" color="#F53F3F"></tui-icon>
</template>
</x-prompt>
</view>
</view>
<view class="!w-full !h-[2rpx] bg-[#E5E6EB] !my-[20rpx]"></view>
@@ -137,9 +151,10 @@ const deleteItem = async (id) => {
<image class="!size-[88rpx] image-bor rounded-[12rpx]" :src="v.qrcode" mode="aspectFill"></image>
<!---->
<image @click="toPage(`/pages/addAccount/index?id=${v.id}`)"
<image v-if="v.status!==0 && v.status!==-2" @click="toPage(`/pages/addAccount/index?id=${v.id}`)"
class="!size-[72rpx] rounded-[50%] overflow-hidden !ml-auto" :src="EDITICON"></image>
<image @click="deleteItem(v.id)" class="!size-[72rpx] rounded-[50%] overflow-hidden"
<image v-if="v.status!==0 && v.status!==-2" @click="deleteItem(v.id)"
class="!size-[72rpx] rounded-[50%] overflow-hidden"
:src="DELETEICON"></image>
</view>
</view>

View File

@@ -52,6 +52,14 @@ onLoad((options) => {
});
if (SystemStore.accountManagementPo.pid) form.pid = Number(SystemStore.accountManagementPo.pid);
})
const getSelect = async () => {
const {data} = await Api.system.getPlatform();
data.shift();
return {
data: data,
}
}
</script>
<template>
@@ -61,7 +69,7 @@ onLoad((options) => {
<view class="min-h-[calc(100vh-100rpx)] bg-[#fff] px-[30rpx] py-[25rpx]">
<x-form>
<x-form-item label="宣发平台">
<x-select v-model:model-value="form.pid" :api="Api.system.getPlatform"></x-select>
<x-select v-model:model-value="form.pid" :api="getSelect"></x-select>
</x-form-item>
<x-form-item label="账号">
<x-input v-model:model-value="form.account" height="80rpx" placeholder="请输入帐号"></x-input>

View File

@@ -89,7 +89,7 @@ const success = async () => {
<view class="items-center test-24r xy">
<x-t-y v-model:model-value="TY">
本人承诺已阅读并同意
<text class="text-[var(--primary-color)]" @click="toPage('/pages/richPage/index?id=3')">
<text class="text-[var(--primary-color)]" @click="toPage('/pages/richPage/index?id=4')">
灵活用工平台综合服务协议
</text>
本人按照协议内容向贵司提供相应的服务

View File

@@ -89,7 +89,7 @@ const success = async () => {
<view class="items-center test-24r xy">
<x-t-y v-model:model-value="TY">
本人承诺已阅读并同意
<text class="text-[var(--primary-color)]" @click="toPage('/pages/richPage/index?id=3')">
<text class="text-[var(--primary-color)]" @click="toPage('/pages/richPage/index?id=4')">
灵活用工平台综合服务协议
</text>
本人按照协议内容向贵司提供相应的服务

View File

@@ -83,6 +83,7 @@ const vo = reactive({
const {loading, pagination, initFetchData} = useTableQuery({
api: Api.system.getTask,
uuid: true,
immediate: false,
parameter: po,
callback: (data) => {

View File

@@ -1,5 +1,5 @@
<script setup>
import {reactive} from "vue";
import {nextTick, reactive} from "vue";
import XInput from "../../components/XInput.vue";
import XLink from "../../components/XLink.vue";
import {showToast, toPage, verifyForm} from "../../utils/uils.js";
@@ -28,12 +28,14 @@ const rules = {
const success = async () => {
verifyForm(form, rules);
const {msg, data} = await Api.system.accountLogin(form);
showToast(msg);
const {data} = await Api.system.accountLogin(form);
showToast('登录成功');
UserStore.isLogin = true;
UserStore.token = data.token;
Object.assign(UserStore.userInfo, data);
await toPage('/pages/home/index');
await nextTick(() => {
toPage('/pages/home/index');
})
}
</script>

View File

@@ -35,7 +35,7 @@ onMounted(() => {
<style lang="scss" scoped>
.scrollX {
width: max-content !important;
animation: scroll 800s linear infinite;
animation: scroll 1200s linear infinite;
image {
flex-shrink: 0;

View File

@@ -1,5 +1,5 @@
<script setup>
import {reactive} from "vue";
import {reactive, nextTick} from "vue";
import XInput from "../../components/XInput.vue";
import {showToast, toPage, verifyForm} from "../../utils/uils.js";
import SendMsg from "../../components/SendMsg.vue";
@@ -29,12 +29,14 @@ const rules = {
const success = async () => {
verifyForm(form, rules);
const {msg, data} = await Api.system.accountLogin(form);
showToast(msg);
const {data} = await Api.system.smsLogin(form);
showToast('登录成功');
UserStore.isLogin = true;
UserStore.token = data.token;
Object.assign(UserStore.userInfo, data);
await toPage('/pages/home/index');
await nextTick(() => {
toPage('/pages/home/index');
})
}
</script>

View File

@@ -52,6 +52,12 @@ onLoad((options) => {
<w-x-official-account v-model:show="showWX"></w-x-official-account>
</template>
<style lang="scss">
page {
background-color: #fff;
}
</style>
<style lang="scss" scoped>
.title {
color: rgb(29, 33, 41);

View File

@@ -84,6 +84,12 @@ onLoad((options) => {
</view>
</template>
<style lang="scss">
page {
background-color: #fff;
}
</style>
<style lang="scss" scoped>
.title {
color: rgb(29, 33, 41);

View File

@@ -27,7 +27,7 @@ const rules = {
},
};
const form = reactive({
mobile: null,
mobile: UserStore.userInfo.full_mobile,
captcha: null,
password: null,
});
@@ -47,7 +47,7 @@ const success = async () => {
<x-form ref="XFormRef" :model="form" :rules="rules">
<x-form-item label="手机号">
<x-input height="72rpx" placeholder="微信号" v-model:model-value="form.mobile"></x-input>
<x-input height="72rpx" placeholder="微信号" disabled v-model:model-value="form.mobile"></x-input>
</x-form-item>
<x-form-item label="验证码">
<send-msg height="72rpx" :mobile="form.mobile" v-model:model-value="form.captcha" :type="3"></send-msg>

View File

@@ -31,7 +31,7 @@ const rules = {
},
};
const form = reactive({
old_mobile: null,
old_mobile: UserStore.userInfo.full_mobile,
old_captcha: null,
new_mobile: null,
new_captcha: null,
@@ -52,7 +52,8 @@ const success = async () => {
<x-form ref="XFormRef" :model="form" :rules="rules">
<x-form-item label="原手机号">
<x-input height="72rpx" placeholder="原手机号" v-model:model-value="form.old_mobile"></x-input>
<x-input height="72rpx" placeholder="原手机号" disabled
v-model:model-value="form.old_mobile"></x-input>
</x-form-item>
<x-form-item label="验证码">
<send-msg

View File

@@ -1,5 +1,6 @@
<script setup>
import {ref} from "vue";
import ZY_ICON from "../../../static/icons/注意.png";
import XConfirmModal from "../../../components/XConfirmModal.vue";
import {showToast} from "../../../utils/uils.js";
import {useUserStore} from "../../../pinia/UserStore/index.js";
@@ -11,7 +12,18 @@ const UserStore = useUserStore();
const emits = defineEmits(['success']);
const show = ref(false);
const defaultDrawal = ref();
const toast = ref();
const open = debounce(async () => {
const {data} = await Api.system.getDefaultWithdrawalInfo();
if (!data) {
toast.value.show({
title: "未添加收款信息",
content: "添加后重新发起打款",
imgUrl: ZY_ICON,
icon: true
});
return;
}
if (UserStore.userInfo.money < 1) {
showToast({
icon: 'error',
@@ -26,7 +38,6 @@ const open = debounce(async () => {
});
return;
}
const {data} = await Api.system.getDefaultWithdrawalInfo();
defaultDrawal.value = data;
show.value = true;
}, 500);
@@ -79,6 +90,8 @@ const success = debounce(async () => {
</template>
</x-confirm-modal>
</view>
<tui-toast ref="toast"></tui-toast>
</template>
<style scoped lang="scss">

View File

@@ -44,7 +44,7 @@ onShow(() => {
v-else
@click="toPage('/pages/paymentAccount/index')">
<image class="!size-[72rpx] rounded-[20rpx]" mode="aspectFill" :src="ZFENUM[defaultDrawal.type]"></image>
<view class="text-[#1D2129] test-28r">{{ defaultDrawal.account }}</view>
<view class="text-[#1D2129] test-28r">{{ defaultDrawal.realname }} {{ defaultDrawal.account }}</view>
<image class="!w-[12rpx] !ml-auto" mode="widthFix" :src="ICON2"></image>
</view>

View File

@@ -10,6 +10,8 @@ import XDateTime from "../../components/XDateTime.vue";
import dayjs from "dayjs";
import ZFENUM from "../../enum/ZFENUM.js";
import TXJLENUM from "../../enum/TXJLENUM.js";
import XModal from "../../components/XModal.vue";
import WithdrawAgainModal from "../../components/WithdrawAgainModal.vue";
const po = reactive({
time: dayjs().format('YYYY-MM'),
@@ -21,8 +23,9 @@ const vo = reactive({
month_money: 0,
all_money: 0,
});
const {loading, pagination, initFetchData} = useTableQuery({
const {loading, pagination, initFetchData, fetchData} = useTableQuery({
api: Api.system.getWithdrawLog,
uuid: true,
parameter: po,
callback: (data) => {
Object.assign(vo, data);
@@ -74,7 +77,12 @@ const {loading, pagination, initFetchData} = useTableQuery({
</view>
</view>
<view class="!ml-auto">
<x-tag :type="TXJLENUM[v.status]">{{ v.status_text }}</x-tag>
<x-tag :type="TXJLENUM[v.status]">
{{ v.status_text }}
<WithdrawAgainModal :id="v.id" @success="fetchData">
<tui-icon v-if="v.status===-1" :size="15" color="#F53F3F" name="about"></tui-icon>
</WithdrawAgainModal>
</x-tag>
</view>
</view>
<view