Compare commits

...

3 Commits

7 changed files with 334 additions and 5 deletions

View File

@ -22,3 +22,16 @@ export function apiStoreRefundOrderDetail(params: any) {
return request.get({ url: '/store_order/storeRefundOrder/detail', params }) return request.get({ url: '/store_order/storeRefundOrder/detail', params })
} }
export function apiStoreFinanceBillLists(params: any) {
return request.get({ url: '/store_cash_finance_flow/storecashfinanceflow/lists', params })
}
export function apiStoreFinanceBillEdit(params: any) {
return request.post({ url: '/store_cash_finance_flow/storecashfinanceflow/edit', params })
}
export function apiStoreFinanceBillDetail(params: any) {
return request.get({ url: '/store_cash_finance_flow/storecashfinanceflow/detail', params })
}

View File

@ -35,15 +35,15 @@
<div>{{ detailData.pay_time }}</div> <div>{{ detailData.pay_time }}</div>
</li> </li>
<li v-if="!orderType"> <!-- <li v-if="!orderType">
<div>退款件数</div> <div>退款件数</div>
<!-- <div>{{ detailData.pay_time }}</div> --> <div>{{ detailData.pay_time }}</div>
</li> </li>
<li v-if="!orderType"> <li v-if="!orderType">
<div>退款时间</div> <div>退款时间</div>
<!-- <div>{{ detailData.pay_time }}</div> --> <div>{{ detailData.pay_time }}</div>
</li> </li> -->
</ul> </ul>
<!-- content --> <!-- content -->

View File

@ -0,0 +1,95 @@
<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" label-width="80px">
<el-row>
<el-col :span="6">
<el-form-item label="随便搜">
<el-select class="flex-1" v-model="queryParams.status" clearable placeholder="请选择商品状态">
<el-option label="销售中" :value="0" />
<el-option label="仓库中" :value="0" />
<el-option label="已售罄" :value="0" />
<el-option label="库存预警" :value="0" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="随便搜" prop="nature">
<el-input v-model="queryParams.status" clearable placeholder="请输入商品名称" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column label="入账门店" prop="progress" show-overflow-tooltip />
<el-table-column label="入账时间" prop="progress" show-overflow-tooltip />
<el-table-column label="应入帐金额" prop="progress" show-overflow-tooltip />
<el-table-column label="已入账金额" prop="progress" show-overflow-tooltip />
<el-table-column label="未入账金额" prop="progress" show-overflow-tooltip />
<el-table-column label="操作" width="170" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
编辑
</el-button>
<el-button type="primary" link @click="handleEdit(row)">
起码子
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<!-- <detailPopup ref="editRef" /> -->
</div>
</template>
<script lang="ts" setup name="manageProjectLists">
import { ref, reactive } from "vue"
import { usePaging } from '@/hooks/usePaging'
// import { apiGoodsListLists, apiStatus, apiGoodsTypeLists } from '@/api/goodsList'
// import detailPopup from './detail.vue'
// const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
// const showDetail = ref(false)
//
const queryParams = reactive({
status: ""
})
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
//
const { pager, getLists, resetParams, resetPage } = usePaging({
// fetchFun: apiGoodsListLists,
params: queryParams
})
//
const handleEdit = async (data: any) => {
// editRef.value?.open()
}
// getLists()
</script>

View File

@ -0,0 +1,91 @@
<template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" :show-footer="false">
<el-descriptions :column="1" border>
<el-descriptions-item label="开户账号" label-class-name="my-label">
<span>{{ formData.bank_code }}</span>
</el-descriptions-item>
<el-descriptions-item label="开户银行" label-class-name="my-label">
<span>{{ formData.bank_name }}</span>
</el-descriptions-item>
<el-descriptions-item label="开户网点" label-class-name="my-label">
<span>{{ formData.bank_address }}</span>
</el-descriptions-item>
<el-descriptions-item label="应付金额" label-class-name="my-label">
<span class="text-3xl"> {{ formData.receivable }}</span>
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="my-label">
<span>{{ formData.remark }}</span>
</el-descriptions-item>
<el-descriptions-item label="收款码" label-class-name="my-label">
<el-image class="w-[100px] h-[100px] mr-2" :src="formData.image" :preview-src-list="[formData.image]" />
</el-descriptions-item>
</el-descriptions>
<div class="flex mt-4 justify-end">
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="confirm">确认已支付</el-button>
</div>
</popup>
</div>
</template>
<script lang="ts" setup name="manageProjectEdit">
import Popup from '@/components/popup/index.vue'
import { apiStoreFinanceBillEdit, apiStoreFinanceBillDetail } from '@/api/store_order'
const emit = defineEmits(['success', 'close'])
const popupRef = shallowRef<InstanceType<typeof Popup>>()
//
const popupTitle = computed(() => {
return '支付详情'
})
const formData = ref({
"cash_price": "",
"receivable": "",
"receipts": "",
"file": "",
"remark": null,
"create_time": "",
"update_time": "",
"delete_time": null,
"image": "",
"bank_code": "",
"bank_name": "",
"bank_address": ""
})
let rowId;
//
const open = async (id: any) => {
rowId = id
let res = await apiStoreFinanceBillDetail({ id })
formData.value = res
console.log(formData.value)
popupRef.value?.open()
}
const confirm = async () => {
await apiStoreFinanceBillEdit({ id: rowId })
popupRef.value?.close()
}
const close = (data: any) => {
popupRef.value?.close()
}
defineExpose({
open
})
</script>

View File

@ -0,0 +1,121 @@
<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" label-width="80px">
<el-row>
<el-col :span="6">
<el-form-item label="时间筛选">
<el-date-picker v-model="date" type="daterange" range-separator="-" start-placeholder="开始时间"
end-placeholder="结束时间" value-format="YYYY-MM-DD" :clearable="false" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" @click="handleResetPage">查询</el-button>
<el-button @click="handleResetParams">重置</el-button>
<!-- <el-button @click="showDialog = true">重置</el-button> -->
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column label="ID" prop="id" show-overflow-tooltip />
<el-table-column label="门店" prop="store_id" show-overflow-tooltip />
<el-table-column label="交易金额" prop="cash_price" show-overflow-tooltip />
<el-table-column label="应收金额" prop="receivable" show-overflow-tooltip />
<el-table-column label="实收金额" prop="receipts" show-overflow-tooltip />
<el-table-column label="操作人员" prop="admin_id" show-overflow-tooltip />
<el-table-column label="图片" prop="file">
<template #default="{ row }">
<el-image style="width:50px;height:50px;" :src="row.file" :preview-src-list="[row.file]" />
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
<el-table-column label="状态" prop="status" show-overflow-tooltip>
<template #default="{ row }">
<span v-if="row.status == 0" style="color: #FEE082;">未完成收缴</span>
<span style="color: #78E23F;" v-else>已完成</span>
</template>
</el-table-column>
<el-table-column label="操作" width="170" fixed="right">
<template #default="{ row }">
<el-button @click="showPoupop(row.id)" link type="primary">详情</el-button>
<!-- <el-button @click="handleDownlon(row)" link type="primary">下载</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<detailPopup ref="detailRef" @handleClose="closePop" />
</div>
</template>
<script lang="ts" setup name="manageProjectLists">
import { ref, reactive } from "vue"
import { usePaging } from '@/hooks/usePaging'
import { apiStoreFinanceBillLists, apiStoreFinanceBillDetail } from '@/api/store_order'
import detailPopup from './detail.vue'
import { useRoute } from "vue-router"
import useUserStore from "@/stores/modules/user";
const date = ref(null)
const detailRef = ref(null)
//
const queryParams = reactive({
store_id: useUserStore().userInfo.store_id,
start_time: "",
end_time: ""
})
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
const handleResetPage = () => {
if (date.value?.length) {
queryParams.start_time = date.value[0] + ' 00:00:00'
queryParams.end_time = date.value[1] + ' 23:59:59'
} else {
queryParams.start_time = ''
queryParams.end_time = ''
}
resetPage()
}
const handleResetParams = () => {
date.value = []
resetParams()
}
//
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiStoreFinanceBillLists,
params: queryParams
})
//
const showPoupop = async (id: any) => {
detailRef.value?.open(id)
}
const closePop = () => {
detailRef.value?.close()
}
getLists()
</script>

View File

@ -57,7 +57,8 @@ const queryParams = reactive({
store_id: '', store_id: '',
admin_id: '', admin_id: '',
operating_id: '', operating_id: '',
status: '' status: '',
type: 1
}) })
// //

View File

@ -9,6 +9,7 @@
<div> <div>
<div class="text-info">{{ item.title }}</div> <div class="text-info">{{ item.title }}</div>
<div class="text-6xl">{{ item.value() }}</div> <div class="text-6xl">{{ item.value() }}</div>
<el-link v-if="item.title == '现金收银金额'" type="primary" @click="showCollectionCode">入账</el-link>
</div> </div>
</div> </div>
</el-row> </el-row>
@ -42,7 +43,10 @@
import { ref, reactive, onMounted } from "vue" import { ref, reactive, onMounted } from "vue"
import { apidbusinessStatistics } from '@/api/statistics' import { apidbusinessStatistics } from '@/api/statistics'
import vCharts from 'vue-echarts' import vCharts from 'vue-echarts'
import { useRouter } from "vue-router";
const router = useRouter();
const month = ref() const month = ref()
const loading = ref(true) const loading = ref(true)
@ -192,6 +196,10 @@ const monthChange = () => {
getData() getData()
} }
const showCollectionCode = () => {
router.push('/finance/store_finance_bill?showPop=1')
}
onMounted(() => { onMounted(() => {
getData() getData()