|
@@ -1,95 +1,53 @@
|
|
|
<template>
|
|
|
- <!-- 分销申请审批 -->
|
|
|
+ <!-- 提现账号审批 -->
|
|
|
<div class="taskMessagePage flex-col">
|
|
|
- <s-header :name="$t('taskMessage.distributionApplicationApproval')" :noback="false"></s-header>
|
|
|
- <div class="taskMessageBox flex-col">
|
|
|
- <van-list v-model:loading="loading" v-model:error="error" :error-text="$t('common.reqFailClkReload')"
|
|
|
- :finished="finished" :finished-text="$t('common.noMoreTxt')" offset="300" :immediate-check="false" @load="onLoad">
|
|
|
- <div class="searchRow flex-row justify-between">
|
|
|
- <div class="flex-col">
|
|
|
- <div class="flex-row justify-between bd3">
|
|
|
- <div class="flex-col outer4 proportionIcon"></div>
|
|
|
- <span class="flex-col txt2">{{ $t('taskMessage.total') }}<span class="discountNumber">{{ alarmHistoryTotal
|
|
|
- }}</span>{{ $t('taskMessage.recordsInTotal') }}</span>
|
|
|
- </div>
|
|
|
+ <s-header :name="$t('taskMessage.withdrawalAccountApproval')" :noback="false"></s-header>
|
|
|
+ <div class="taskMessageBox">
|
|
|
+ <div class="searchRow flex-row justify-between">
|
|
|
+ <div class="flex-col">
|
|
|
+ <div class="flex-row justify-between bd3">
|
|
|
+ <div class="flex-col outer4 joinPayMchCheckIcon"></div>
|
|
|
+ <span class="flex-col txt2">{{ $t('taskMessage.total') }}<span class="discountNumber">{{ alarmHistoryTotal }}</span>{{ $t('taskMessage.recordsInTotal') }}</span>
|
|
|
</div>
|
|
|
- <div class="l-flex-RC">
|
|
|
- <div @click="reviewedClk" class="label3 o-mr-30">{{
|
|
|
- $t('taskMessage.toViewAppro')
|
|
|
- }}</div>
|
|
|
- <div @click="noticeClk" class="main5 l-flex-RC">
|
|
|
- <img class="label2 o-mr-5" src="../../../assets/device/searchIcon.png" />
|
|
|
- <span class="txt3">{{ $t('taskMessage.search') }}</span>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ <div class="l-flex-RC">
|
|
|
+ <div @click="noticeClk" class="main5 l-flex-RC">
|
|
|
+ <img class="label2 o-mr-5" src="../../../assets/device/searchIcon.png" />
|
|
|
+ <span class="txt3">{{ $t('taskMessage.search') }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="listBox">
|
|
|
- <div v-for="(item, index) in alarmHistoryList" :key="index" class="listItem">
|
|
|
- <div class="itemBox">
|
|
|
- <div class="itemRow">
|
|
|
- <span class="itemTitle">{{ $t('taskMessage.equipmentNo') }}: </span>{{ item.clientId }}
|
|
|
- </div>
|
|
|
- <div class="itemRow" v-if="item.type >= 1">
|
|
|
- <span class="itemTitle">{{ $t('taskMessage.partners') }}: </span>{{ item.agencyName
|
|
|
- }}<span class="itemTitle discount">{{ $t('taskMessage.proportion') }}: </span>{{
|
|
|
- item.agencyProportion
|
|
|
- }}%
|
|
|
- </div>
|
|
|
- <div class="itemRow" v-if="item.type >= 2">
|
|
|
- <span class="itemTitle">{{ $t('taskMessage.partners') }}: </span>{{ item.merchantName
|
|
|
- }}<span class="itemTitle discount">{{ $t('taskMessage.proportion') }}: </span>{{
|
|
|
- item.merchantProportion
|
|
|
- }}%
|
|
|
- </div>
|
|
|
- <div class="itemRow" v-if="item.type >= 3">
|
|
|
- <span class="itemTitle">{{ $t('taskMessage.partners') }}: </span>{{ item.personageName
|
|
|
- }}<span class="itemTitle discount">{{ $t('taskMessage.proportion') }}: </span>{{
|
|
|
- item.personageProportion
|
|
|
- }}%
|
|
|
- </div>
|
|
|
- <div class="itemRow">
|
|
|
- <span class="itemTitle">{{ $t('taskMessage.applicationTime') }}: </span>{{
|
|
|
- showDateTime(item.createDate)
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <div class="itemRow" v-if="item.checkType !== '0'">
|
|
|
- <span class="itemTitle">{{ $t('taskMessage.approvalTime') }}: </span>{{
|
|
|
- showDateTime(item.modifyDate)
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <div class="itemRow" style="display: flex; justify-content: flex-end"
|
|
|
- v-if="item.checkType === '0' && isOper">
|
|
|
- <van-button span="5" round type="primary" style="
|
|
|
- height: 2em;
|
|
|
- padding: 0 1em;
|
|
|
- margin: 0 0.5em;
|
|
|
- background: rgb(255 0 0 / 20%);
|
|
|
- color: #ff0000;
|
|
|
- border-color: #ff0000;
|
|
|
- " @click="changeStatusFun(item, 3)">
|
|
|
- {{ $t('taskMessage.fail') }}
|
|
|
- </van-button>
|
|
|
- <van-button span="5" round type="primary" style="
|
|
|
- height: 2em;
|
|
|
- padding: 0 1em;
|
|
|
- margin: 0 0.5em;
|
|
|
- background: rgb(25 137 250 / 20%);
|
|
|
- color: #1989fa;
|
|
|
- " @click="changeStatusFun(item, 1)">
|
|
|
- {{ $t('taskMessage.adopt') }}
|
|
|
- </van-button>
|
|
|
- </div>
|
|
|
- <div class="itemRow" style="display: flex; justify-content: flex-end" v-if="item.checkType !== '0'">
|
|
|
- <span v-if="item.checkType === '1'" style="color: #1989fa"> {{ $t('taskMessage.adopt') }}</span>
|
|
|
- <span v-if="item.checkType === '2'" style="color: #ff0000"> {{ $t('taskMessage.cancel') }}</span>
|
|
|
- <span v-if="item.checkType === '3'" style="color: #ff0000"> {{ $t('taskMessage.fail') }}</span>
|
|
|
+ </div>
|
|
|
+ <kTabs ref="kTabsRef" tabWidth="100%" @tabclk="tabClk" :tabList="tabList"></kTabs>
|
|
|
+ <div class="flex-col">
|
|
|
+ <van-list v-model:loading="loading" v-model:error="error" :error-text="$t('common.reqFailClkReload')"
|
|
|
+ :finished="finished" :finished-text="$t('common.noMoreTxt')" offset="300" :immediate-check="false" @load="onLoad">
|
|
|
+ <div class="listBox">
|
|
|
+ <div v-for="(item, index) in alarmHistoryList" :key="index" class="listItem" @click="pushInfo(item)">
|
|
|
+ <div class="itemBox">
|
|
|
+ <div class="itemRow l-flex-between">
|
|
|
+ <div class="l-flex-RC">
|
|
|
+ <span class="itemTitle">{{ $t('taskMessage.merchantName') }}: </span>{{ item.altMchName }}
|
|
|
+ </div>
|
|
|
+ <van-icon color="#B9BAD0" name="arrow" />
|
|
|
+ </div>
|
|
|
+ <div class="itemRow">
|
|
|
+ <span class="itemTitle">{{ $t('taskMessage.contactName') }}: </span>{{ item.busiContactName }}
|
|
|
+ </div>
|
|
|
+ <div class="itemRow">
|
|
|
+ <span class="itemTitle">{{ $t('taskMessage.contactPhoneNumber') }}: </span>{{ item.busiContactMobileNo }}
|
|
|
+ </div>
|
|
|
+ <div class="itemRow">
|
|
|
+ <span class="itemTitle">{{ $t('taskMessage.applicationTime') }}: </span>{{ showDateTime(item.createDate) }}
|
|
|
+ </div>
|
|
|
+ <div class="itemRow">
|
|
|
+ <span class="itemTitle">{{ $t('taskMessage.approvalTime') }}: </span>{{ showDateTime(item.modifyDate) }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </van-list>
|
|
|
+ </van-list>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
-
|
|
|
<!-- 筛选弹窗 -->
|
|
|
<kDialog :dialogTitle="$t('taskMessage.equipmentInit.searchPop.title')"
|
|
|
:confirmBtnTxt="$t('taskMessage.equipmentInit.searchPop.filterBtn')" ref="kDialogRef" @confirmclk="confirmClk">
|
|
@@ -103,7 +61,7 @@
|
|
|
:label="$t('taskMessage.equipmentInit.searchPop.state')">
|
|
|
<template #right-icon>
|
|
|
<div class="l-flex-RC">
|
|
|
- <van-icon v-if="searchForm.stateName" @click="searchForm.stateName = ''; searchForm.state = ''"
|
|
|
+ <van-icon v-if="searchForm.stateName" @click="searchForm.state = ''; searchForm.stateName = ''"
|
|
|
class="o-mr-6" name="clear" />
|
|
|
<van-icon @click="busiInpClk" name="arrow-down" />
|
|
|
</div>
|
|
@@ -114,56 +72,43 @@
|
|
|
</kDialog>
|
|
|
<!-- 状态选择框 -->
|
|
|
<van-popup v-model:show="busiPopShow" position="bottom">
|
|
|
- <van-picker :title="$t('taskMessage.equipmentInit.searchPop.statePlace')" :columns="busiPopList"
|
|
|
+ <van-picker :title="$t('taskMessage.equipmentInit.searchPop.statePlace')" :columns="tabList"
|
|
|
:columns-field-names="busiPopFieldName" @confirm="busiPopConfirm" @cancel="busiPopShow = false" />
|
|
|
</van-popup>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { Toast } from "vant";
|
|
|
+import { useRouter } from "vue-router";
|
|
|
+import dateUtil from "@/utils/dateUtil";
|
|
|
import { onMounted, reactive, ref } from "vue";
|
|
|
import sHeader from "@/components/SimpleHeader";
|
|
|
-import {
|
|
|
- getTaskProportionList,
|
|
|
- changeProportionStatus,
|
|
|
-} from "@/service/taskMessage";
|
|
|
-import { Toast } from "vant";
|
|
|
import { getLoginUser, styleUrl } from "@/common/js/utils";
|
|
|
-import dateUtil from "@/utils/dateUtil";
|
|
|
+import { getTaskJoinpayMchCheckList } from "@/service/taskMessage";
|
|
|
import kDialog from "@/components/commom/kDialog/index.vue";
|
|
|
+import kTabs from "@/components/commom/kTabs/index.vue";
|
|
|
import { useI18n } from "vue-i18n";
|
|
|
-
|
|
|
export default {
|
|
|
- components: { sHeader, kDialog },
|
|
|
+ components: { sHeader, kDialog, kTabs },
|
|
|
setup() {
|
|
|
- const { t } = useI18n();
|
|
|
// 筛选弹窗
|
|
|
- const busiPopList = reactive([
|
|
|
- {
|
|
|
- name: t('taskMessage.whole'),
|
|
|
- id: "1",
|
|
|
- },
|
|
|
- {
|
|
|
- name: t('taskMessage.unapproved'),
|
|
|
- id: "0",
|
|
|
- },
|
|
|
- ]);
|
|
|
const busiPopFieldName = reactive({
|
|
|
text: "name",
|
|
|
value: "id",
|
|
|
});
|
|
|
const kDialogRef = ref(null);
|
|
|
const busiPopShow = ref(false);
|
|
|
- // 筛选条件
|
|
|
const searchForm = reactive({
|
|
|
merchantName: "",
|
|
|
state: "",
|
|
|
stateName: '',
|
|
|
});
|
|
|
- // 点击状态输入框
|
|
|
+ // 点击商家输入框
|
|
|
const busiInpClk = () => {
|
|
|
busiPopShow.value = true;
|
|
|
};
|
|
|
+ // 点击状态弹窗确定按钮
|
|
|
const busiPopConfirm = (e) => {
|
|
|
busiPopShow.value = false;
|
|
|
searchForm.state = e.id;
|
|
@@ -173,20 +118,48 @@ export default {
|
|
|
const noticeClk = () => {
|
|
|
kDialogRef.value.openDialog();
|
|
|
};
|
|
|
- // 点击查询按钮
|
|
|
+ // 如果是点击筛选的确定按钮
|
|
|
+ const isSearchConfirm = ref(false);
|
|
|
+ // tab的组件
|
|
|
+ const kTabsRef = ref(null);
|
|
|
+ // 点击右侧按钮
|
|
|
const confirmClk = () => {
|
|
|
- isClkReview.value = false;
|
|
|
- searchGetList();
|
|
|
- };
|
|
|
- // 是否点击待审核
|
|
|
- const isClkReview = ref(true);
|
|
|
- // 点击查看待审核
|
|
|
- const reviewedClk = () => {
|
|
|
- isClkReview.value = true;
|
|
|
- // 改为未审核状态
|
|
|
- searchParams.type = "0";
|
|
|
+ isSearchConfirm.value = true;
|
|
|
+ // 如果什么筛选条件都没,要默认一个,不然会报错
|
|
|
+ if (searchForm.state === '') {
|
|
|
+ searchParams.type = '0';
|
|
|
+ } else {
|
|
|
+ searchParams.type = searchForm.state;
|
|
|
+ }
|
|
|
+ // 改变tab状态
|
|
|
+ kTabsRef.value.chgActive(searchParams.type);
|
|
|
searchGetList();
|
|
|
};
|
|
|
+ const { t } = useI18n();
|
|
|
+ // tabs组件
|
|
|
+ const tabList = ref([
|
|
|
+ {
|
|
|
+ name: t('taskMessage.joinpayMchCheck.convergence'),
|
|
|
+ icon: "",
|
|
|
+ id: 0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: t('taskMessage.joinpayMchCheck.shande'),
|
|
|
+ icon: "",
|
|
|
+ id: 1,
|
|
|
+ },
|
|
|
+ ]);
|
|
|
+ // 点击tab
|
|
|
+ const tabClk = (e) => {
|
|
|
+ isSearchConfirm.value = false;
|
|
|
+ if (!isSearchConfirm.value) {
|
|
|
+ searchParams.type = e.name;
|
|
|
+ searchGetList()
|
|
|
+
|
|
|
+ }
|
|
|
+ console.log(e, 'e11111111')
|
|
|
+ }
|
|
|
+ const router = useRouter();
|
|
|
const user = getLoginUser();
|
|
|
const loading = ref(false); // 加载状态
|
|
|
const error = ref(false); // 错误状态
|
|
@@ -195,10 +168,9 @@ export default {
|
|
|
const alarmHistoryTotal = ref(0); // 列表总数
|
|
|
let searchParams = reactive({
|
|
|
adminId: "", // 当前登录账户的id
|
|
|
- type: "1", // 审核状态 未审核_0;全部_1
|
|
|
+ type: "0", // 类型 汇聚: 0, 杉德: 1
|
|
|
current: 1, // 当前页
|
|
|
size: 20, // 页大小
|
|
|
- username: "", // 商家名称
|
|
|
});
|
|
|
// 滚动加载
|
|
|
const onLoad = () => {
|
|
@@ -215,12 +187,8 @@ export default {
|
|
|
};
|
|
|
// 获取设备初始化审批列表数据
|
|
|
const getList = async () => {
|
|
|
- // 把弹窗的筛选条件组合到请求参数里面
|
|
|
- if (!isClkReview.value) {
|
|
|
- searchParams.type = searchForm.state;
|
|
|
- }
|
|
|
searchParams.userName = searchForm.merchantName;
|
|
|
- const { data } = await getTaskProportionList(
|
|
|
+ const { data } = await getTaskJoinpayMchCheckList(
|
|
|
Object.assign({}, searchParams)
|
|
|
);
|
|
|
if (data.code === "00000") {
|
|
@@ -233,13 +201,10 @@ export default {
|
|
|
finished.value = true;
|
|
|
}
|
|
|
loading.value = false;
|
|
|
- console.log(alarmHistoryList);
|
|
|
} else {
|
|
|
Toast.fail(data.message);
|
|
|
}
|
|
|
};
|
|
|
- // 是否有操作的权限
|
|
|
- const isOper = ref(true);
|
|
|
// 初始化页面获取列表
|
|
|
onMounted(async () => {
|
|
|
// 加载样式
|
|
@@ -247,10 +212,6 @@ export default {
|
|
|
if (user) {
|
|
|
searchParams.adminId = user.id;
|
|
|
searchGetList();
|
|
|
- // 如果是type大于1,那么不能有操作的权限
|
|
|
- if (user.type > 1) {
|
|
|
- isOper.value = false;
|
|
|
- }
|
|
|
}
|
|
|
});
|
|
|
const showDateTime = (date) => {
|
|
@@ -258,19 +219,13 @@ export default {
|
|
|
? dateUtil.formateDate(new Date(date), "yyyy-MM-dd hh:mm:ss")
|
|
|
: "";
|
|
|
};
|
|
|
- const changeStatusFun = async (item, type) => {
|
|
|
- const { data } = await changeProportionStatus({
|
|
|
- id: item.id,
|
|
|
- type: type,
|
|
|
+ const pushInfo = (item) => {
|
|
|
+ router.push({
|
|
|
+ path: "taskJoinPayMchCheckInfo",
|
|
|
+ query: { infoId: item.id, infoType: searchParams.type },
|
|
|
});
|
|
|
- if (data.code === "00000") {
|
|
|
- Toast.fail("操作成功");
|
|
|
- searchGetList();
|
|
|
- } else {
|
|
|
- Toast.fail(data.message);
|
|
|
- }
|
|
|
- console.log(data);
|
|
|
};
|
|
|
+
|
|
|
return {
|
|
|
loading,
|
|
|
error,
|
|
@@ -279,7 +234,7 @@ export default {
|
|
|
alarmHistoryList,
|
|
|
alarmHistoryTotal,
|
|
|
showDateTime,
|
|
|
- changeStatusFun,
|
|
|
+ pushInfo,
|
|
|
kDialogRef,
|
|
|
noticeClk,
|
|
|
confirmClk,
|
|
@@ -287,10 +242,10 @@ export default {
|
|
|
busiPopConfirm,
|
|
|
busiPopShow,
|
|
|
searchForm,
|
|
|
- busiPopList,
|
|
|
busiPopFieldName,
|
|
|
- reviewedClk,
|
|
|
- isOper,
|
|
|
+ tabList,
|
|
|
+ kTabsRef,
|
|
|
+ tabClk,
|
|
|
};
|
|
|
},
|
|
|
};
|