123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- <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>
- </div>
- <div class="l-flex-RC">
- <div @click="reviewedClk" class="label3 o-mr-10">{{
- $t('taskMessage.toViewAppro')
- }}</div>
- <div @click="noticeClk" class="main5 l-flex-RC">
- <img class="label2 o-mr-5" src="../../../assets/device/searchIcon.png" />
- </div>
- </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.equipmentName') }}: </span>
- {{ item.equipmentName != null ? item.equipmentName : item.clientId.slice(-6) }}
- </div>
- <div class="itemRow">
- <span class="itemTitle">{{ $t('taskMessage.equipmentNo') }}: </span>
- {{ item.clientId }}
- </div>
- <!-- 机主的 -->
- <div class="itemRow">
- <span class="itemTitle">{{ $t('taskMessage.owner') }}: </span>
- {{ $t('taskMessage.machineOwner') }}
- <span class="itemTitle discount">{{ $t('taskMessage.proportion') }}: </span>
- {{ item.proportion }}%
- </div>
- <!-- 平台的 -->
- <div class="itemRow">
- <span class="itemTitle">{{ $t('taskMessage.platform') }}: </span>
- {{ $t('taskMessage.platformAccount') }}
- <span class="itemTitle discount">{{ $t('taskMessage.proportion') }}: </span>
- {{ item.adminProportion }}%
- </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>
- <!-- 分账方4个 -->
- <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>
- <!-- 分账方5个以上 -->
- <div class="itemRow" v-if="item.type >= 3">
- <span class="itemTitle">{{ $t('taskMessage.partners') }}: </span>
- {{ item.personageNam }}
- <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">
- <span v-if="item.checkType === '0' && user.type > 1" style="color: #FFA500"> {{ $t('taskMessage.toBeApproved') }}</span>
- <span v-if="item.checkType === '1'" style="color: #1989fa"> {{ $t('taskMessage.adopt') }}</span>
- <span v-if="item.checkType === '2'" style="color: #ff0033"> {{ $t('taskMessage.cancel') }}</span>
- <span v-if="item.checkType === '3'" style="color: #ff0000"> {{ $t('taskMessage.fail') }}</span>
- </div>
- </div>
- </div>
- </div>
- </van-list>
- </div>
- <!-- 筛选弹窗 -->
- <kDialog :dialogTitle="$t('taskMessage.equipmentInit.searchPop.title')"
- :confirmBtnTxt="$t('taskMessage.equipmentInit.searchPop.filterBtn')" ref="kDialogRef" @confirmclk="confirmClk">
- <template #content>
- <div class="cust_vantBorder">
- <van-field clearable v-model="searchForm.merchantName" :placeholder="$t('taskMessage.equipmentInit.searchPop.merchantNamePlace')
- " :label="$t('taskMessage.equipmentInit.searchPop.merchantName')" />
- <van-field @click-input="busiInpClk" readonly clearable v-model="searchForm.stateName"
- :placeholder="$t('taskMessage.equipmentInit.searchPop.statePlace')"
- :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 = ''"
- class="o-mr-6" name="clear" />
- <van-icon @click="busiInpClk" name="arrow-down" />
- </div>
- </template>
- </van-field>
- </div>
- </template>
- </kDialog>
- <!-- 状态选择框 -->
- <van-popup v-model:show="busiPopShow" position="bottom">
- <van-picker :title="$t('taskMessage.equipmentInit.searchPop.statePlace')" :columns="busiPopList"
- :columns-field-names="busiPopFieldName" @confirm="busiPopConfirm" @cancel="busiPopShow = false" />
- </van-popup>
- </div>
- </template>
- <script>
- import { onMounted, reactive, ref } from "vue";
- import sHeader from "@/components/SimpleHeader";
- import {
- getTaskProportionList,
- changeProportionStatus,
- } from "@/service/taskMessage";
- import { showFailToast } from "vant";
- import { getLoginUser, styleUrl } from "@/common/js/utils";
- import dateUtil from "@/utils/dateUtil";
- import kDialog from "@/components/commom/kDialog/index.vue";
- import { useI18n } from "vue-i18n";
- export default {
- components: { sHeader, kDialog },
- 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 = ({ selectedOptions }) => {
- busiPopShow.value = false;
- searchForm.state = selectedOptions[0].id;
- searchForm.stateName = selectedOptions[0].name;
- };
- // 点击筛选
- const noticeClk = () => {
- kDialogRef.value.openDialog();
- };
- // 点击查询按钮
- const confirmClk = () => {
- isClkReview.value = false;
- searchGetList();
- };
- // 是否点击待审核
- const isClkReview = ref(true);
- // 点击查看待审核
- const reviewedClk = () => {
- isClkReview.value = true;
- // 改为未审核状态
- searchParams.type = "0";
- searchGetList();
- };
- const user = getLoginUser();
- const loading = ref(false); // 加载状态
- const error = ref(false); // 错误状态
- const finished = ref(false); // 结束翻页状态
- const alarmHistoryList = ref([]); // 列表集合
- const alarmHistoryTotal = ref(0); // 列表总数
- let searchParams = reactive({
- adminId: "", // 当前登录账户的id
- type: "1", // 审核状态 未审核_0;全部_1
- current: 1, // 当前页
- size: 20, // 页大小
- username: "", // 商家名称
- });
- // 滚动加载
- const onLoad = () => {
- if (!finished.value) {
- searchParams.current = searchParams.current + 1;
- getList();
- }
- };
- // 查询列表
- const searchGetList = () => {
- alarmHistoryList.value = [];
- searchParams.current = 1;
- getList();
- };
- // 获取设备初始化审批列表数据
- const getList = async () => {
- // 把弹窗的筛选条件组合到请求参数里面
- if (!isClkReview.value) {
- searchParams.type = searchForm.state;
- }
- searchParams.userName = searchForm.merchantName;
- const { data } = await getTaskProportionList(
- Object.assign({}, searchParams)
- );
- if (data.code === "00000") {
- // 列表值叠加
- alarmHistoryList.value = alarmHistoryList.value.concat(
- data.data.records
- );
- alarmHistoryTotal.value = data.data.total;
- if (alarmHistoryList.value.length === data.data.total) {
- finished.value = true;
- }
- loading.value = false;
- console.log(alarmHistoryList);
- } else {
- showFailToast(data.message);
- }
- };
- // 是否有操作的权限
- const isOper = ref(true);
- // 初始化页面获取列表
- onMounted(async () => {
- // 加载样式
- styleUrl('taskMessage');
- if (user) {
- searchParams.adminId = user.id;
- searchGetList();
- // 如果是type大于1,那么不能有操作的权限
- if (user.type > 1) {
- isOper.value = false;
- }
- }
- });
- const showDateTime = (date) => {
- return date
- ? 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,
- });
- if (data.code === "00000") {
- showFailToast("操作成功");
- searchGetList();
- } else {
- showFailToast(data.message);
- }
- console.log(data);
- };
- return {
- loading,
- error,
- finished,
- onLoad,
- alarmHistoryList,
- alarmHistoryTotal,
- showDateTime,
- changeStatusFun,
- kDialogRef,
- noticeClk,
- confirmClk,
- busiInpClk,
- busiPopConfirm,
- busiPopShow,
- searchForm,
- busiPopList,
- busiPopFieldName,
- reviewedClk,
- isOper,
- user,
- };
- },
- };
- </script>
- <style lang="less" scoped>
- @import "../../../common/style/common.less";
- </style>
|