2025-08-20 13:59:17 +08:00
|
|
|
<template>
|
2026-03-05 16:33:38 +08:00
|
|
|
<MBLoading
|
|
|
|
|
v-if="submitLoading"
|
|
|
|
|
style="position: absolute;display: block;z-index: 9999;background: rgb(0 0 0 / 14%);inset: 0px;overflow: hidden;margin: 0;height: 100svh;"/>
|
2026-03-05 16:21:47 +08:00
|
|
|
<view ref="targetRef" class="container">
|
2026-02-05 17:28:43 +08:00
|
|
|
<MBCard>
|
|
|
|
|
<uni-forms ref="baseForm" :modelValue="queryParams">
|
2026-02-05 15:13:59 +08:00
|
|
|
<uni-forms-item label="支付方式">
|
2026-02-05 17:28:43 +08:00
|
|
|
<DictSelect v-model="queryParams.isPayNow" dict="dazhong_paytype" @change="handleQuery"/>
|
2026-02-05 15:13:59 +08:00
|
|
|
</uni-forms-item>
|
|
|
|
|
<uni-forms-item label="生产单位">
|
2026-02-05 17:28:43 +08:00
|
|
|
<ProductionUnit v-model="queryParams.companyId" @change="handleQuery"/>
|
2026-02-05 15:13:59 +08:00
|
|
|
</uni-forms-item>
|
|
|
|
|
</uni-forms>
|
2026-02-05 17:28:43 +08:00
|
|
|
</MBCard>
|
2026-02-05 15:13:59 +08:00
|
|
|
|
2026-02-05 17:28:43 +08:00
|
|
|
<MBLoading v-if="loading"/>
|
2026-02-05 15:13:59 +08:00
|
|
|
<view v-else>
|
2026-03-05 16:21:47 +08:00
|
|
|
<MBCard v-if="selected.length>0" :style="{
|
|
|
|
|
position: 'fixed',
|
|
|
|
|
zIndex : 10,
|
|
|
|
|
width:'100%',
|
|
|
|
|
left: 0,
|
|
|
|
|
bottom: 0,
|
|
|
|
|
height:'110px'
|
|
|
|
|
}
|
|
|
|
|
">
|
|
|
|
|
<view class="context">
|
|
|
|
|
<view class="label">
|
|
|
|
|
<text>已选订单数量:</text>
|
|
|
|
|
<text>{{ selected.length }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="label">
|
|
|
|
|
<text>已选订单总金额:</text>
|
|
|
|
|
<text>{{ totalMoney.toFixed(2) }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
2026-03-05 16:33:38 +08:00
|
|
|
<view :style="{
|
|
|
|
|
display:'flex',
|
|
|
|
|
marginTop:'15px',
|
|
|
|
|
justifyContent:'space-between',
|
|
|
|
|
alignItems:'center'
|
|
|
|
|
}">
|
|
|
|
|
<button class="mini-btn" size="mini" type="success" @click="handleBack">回退</button>
|
|
|
|
|
<button class="mini-btn" size="mini" type="primary" @click="handleSubmit">审核</button>
|
|
|
|
|
</view>
|
2026-03-05 16:21:47 +08:00
|
|
|
</MBCard>
|
|
|
|
|
<ListItem v-if="tableData.length > 0" :items="tableData" @checkboxSelected="handleSelect"/>
|
2026-02-09 19:14:48 +08:00
|
|
|
<uni-load-more
|
|
|
|
|
v-else
|
|
|
|
|
:contentText="{
|
|
|
|
|
contentnomore: '- 暂无商务审批数据 -'
|
|
|
|
|
}"
|
|
|
|
|
:status="'no-more'"
|
|
|
|
|
/>
|
2026-03-05 16:37:08 +08:00
|
|
|
<!-- <MBPagination-->
|
|
|
|
|
<!-- v-if="total > 0"-->
|
|
|
|
|
<!-- v-model:limit="paging.pageSize"-->
|
|
|
|
|
<!-- v-model:page="paging.pageNum"-->
|
|
|
|
|
<!-- :total="total"-->
|
|
|
|
|
<!-- @pagination="handleQuery"-->
|
|
|
|
|
<!-- />-->
|
2026-02-05 15:13:59 +08:00
|
|
|
</view>
|
|
|
|
|
</view>
|
2025-08-20 13:59:17 +08:00
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
2026-02-05 15:13:59 +08:00
|
|
|
|
2026-03-05 16:33:38 +08:00
|
|
|
import {getCurrentInstance, onMounted, ref} from "vue"
|
2026-02-05 17:28:43 +08:00
|
|
|
import UniForms from "../../../uni_modules/uni-forms/components/uni-forms/uni-forms.vue";
|
|
|
|
|
import UniFormsItem from "../../../uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue";
|
|
|
|
|
import DictSelect from "../../../components/DictSelect/DictSelect.vue";
|
|
|
|
|
import ProductionUnit from "../../../components/ProductionUnit/ProductionUnit.vue";
|
|
|
|
|
import MBCard from "../../../components/MB/MBCard.vue";
|
2026-03-05 16:33:38 +08:00
|
|
|
import {managerConfirm, managerRefuse, mangerList} from "../../../api/BusinessApproval";
|
2026-02-05 17:28:43 +08:00
|
|
|
import MBPagination from "../../../components/MB/MBPagination.vue";
|
|
|
|
|
import MBLoading from "../../../components/MB/MBLoading.vue";
|
|
|
|
|
import ListItem from "./ListItem.vue";
|
|
|
|
|
|
2026-02-05 15:13:59 +08:00
|
|
|
const {proxy} = getCurrentInstance()
|
2026-02-05 17:28:43 +08:00
|
|
|
|
|
|
|
|
const queryParams = ref({
|
|
|
|
|
state: '1',
|
|
|
|
|
isPayNow: '',
|
|
|
|
|
companyId: ''
|
|
|
|
|
})
|
|
|
|
|
const loading = ref(true)
|
|
|
|
|
const total = ref(0)
|
|
|
|
|
const paging = ref({
|
|
|
|
|
pageNum: 1,
|
2026-03-05 16:37:08 +08:00
|
|
|
pageSize: 99999,
|
2026-02-05 17:28:43 +08:00
|
|
|
isAsc: 'descending',
|
|
|
|
|
orderByColumn: 'adddate'
|
|
|
|
|
})
|
|
|
|
|
const tableData = ref([])
|
2026-03-05 16:33:38 +08:00
|
|
|
const submitLoading = ref(false)
|
2026-02-05 17:28:43 +08:00
|
|
|
|
|
|
|
|
const handleQuery = async () => {
|
|
|
|
|
loading.value = true
|
|
|
|
|
const data = await mangerList(queryParams.value, paging.value)
|
|
|
|
|
total.value = data.total
|
|
|
|
|
tableData.value = data.rows
|
|
|
|
|
loading.value = false
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-05 16:21:47 +08:00
|
|
|
const selected = ref([])
|
|
|
|
|
const totalMoney = ref(0)
|
|
|
|
|
const handleSelect = (payload) => {
|
|
|
|
|
const {checked, data} = payload
|
|
|
|
|
const id = data.saleid
|
|
|
|
|
|
|
|
|
|
if (checked) {
|
|
|
|
|
if (!selected.value.includes(id)) {
|
|
|
|
|
selected.value.push(id)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
selected.value = selected.value.filter(item => item !== id)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
totalMoney.value = tableData.value.filter(item => selected.value.includes(item.saleid))
|
|
|
|
|
.map(i => i.contractmoney)
|
|
|
|
|
.reduce((a, b) => a + b, 0)
|
|
|
|
|
?? 0
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-05 17:28:43 +08:00
|
|
|
onMounted(async () => {
|
|
|
|
|
await handleQuery()
|
|
|
|
|
})
|
2026-03-05 16:33:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleBack = async () => {
|
|
|
|
|
submitLoading.value = true
|
|
|
|
|
await Promise.allSettled(
|
|
|
|
|
selected.value.map(id =>
|
|
|
|
|
managerRefuse({
|
|
|
|
|
saleIds: id,
|
|
|
|
|
actionType: new Date().getDate() < 25 ? '1' : '0'
|
|
|
|
|
})
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
selected.value = []
|
|
|
|
|
totalMoney.value = 0
|
|
|
|
|
await handleQuery()
|
|
|
|
|
submitLoading.value = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleSubmit = async () => {
|
|
|
|
|
submitLoading.value = true
|
|
|
|
|
await Promise.allSettled(
|
|
|
|
|
selected.value.map(id =>
|
|
|
|
|
managerConfirm({
|
|
|
|
|
saleIds: id,
|
|
|
|
|
actionType: new Date().getDate() < 25 ? '1' : '0'
|
|
|
|
|
})
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
selected.value = []
|
|
|
|
|
totalMoney.value = 0
|
|
|
|
|
await handleQuery()
|
|
|
|
|
submitLoading.value = false
|
|
|
|
|
}
|
2025-08-20 13:59:17 +08:00
|
|
|
</script>
|
|
|
|
|
|