| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { queryResultLoadingAndInfo } from '@/common/methods/request/resultInfo'
- import { getUsrId } from '@/services/bus/user'
- import { FinanceReportReq } from "@/services/go/ermcp/report/interface"
- import moment, { Moment } from "moment"
- import { ref, SetupContext } from "vue"
- import { reportCycleType, reportCyleTimeType } from "./enum"
- import { TypeAndTime, Value } from "./interface"
- export function handleReprotType(context: SetupContext) {
- // 选中的周期类型
- const selectedReportType = ref<Value>({ key: reportCycleType.day })
- // 时间格式化类型
- const dateFormat = ref<reportCyleTimeType>(reportCyleTimeType.day)
- // 时间
- const time = ref<Moment>(getInitTime());
- // 交易用户
- const selectedUser = ref<Value>({ key: getUsrId() })
- // 周期类型与时间类型 一对一的关系
- const timeMap = new Map([
- [reportCycleType.day, reportCyleTimeType.day],
- [reportCycleType.month, reportCyleTimeType.month],
- [reportCycleType.year, reportCyleTimeType.year],
- [reportCycleType.week, reportCyleTimeType.week],
- ])
- // 报表类型
- const reportType = ref<{ value: number, lable: string }[]>([
- { value: reportCycleType.day, lable: '日报表' },
- { value: reportCycleType.week, lable: '周报表' },
- { value: reportCycleType.month, lable: '月报表' },
- ])
- // 初始化时间
- function getInitTime() {
- return moment(new Date(), dateFormat.value)
- }
- function getFomateType(): reportCyleTimeType {
- const { key } = selectedReportType.value
- const temp = timeMap.get(key)
- return temp ? temp : reportCyleTimeType.day
- }
- // 周期类型变更
- function reportTypeChange() {
- time.value = getInitTime()
- dateFormat.value = getFomateType()
- update()
- }
- // 时间变更
- function timeChange() {
- update()
- }
- // 交易用户变更
- function userChange() {
- update()
- }
- // 根据周期类型 格式化时间
- function formateTime() {
- return moment(time.value).format(getFomateType())
- }
- // 是否为 月报表
- function isMonth() {
- return selectedReportType.value.key === reportCycleType.month
- }
- // 通知上层更新数据
- function update() {
- const param = { cycletype: selectedReportType.value.key, cycletime: formateTime(), userid: selectedUser.value.key }
- context.emit('update', param)
- }
- return { selectedReportType, reportType, isMonth, reportTypeChange, dateFormat, time, timeChange, selectedUser, userChange }
- }
- export function handleInitTypeAndTime() {
- // 初始化时间
- function getInitTime() {
- return moment(new Date()).format(reportCyleTimeType.day)
- }
- // 初始化类型
- function getInitType() {
- return reportCycleType.day
- }
- return { getInitTime, getInitType }
- }
- /**
- * 获取表格列表数据
- * @param type
- * @returns
- */
- export function queryTableList<T>(fn: Function) {
- // 加载状态
- const loading = ref<boolean>(false);
- // 表格数据
- const tableList = ref<T[]>([]);
- function queryTable(value: TypeAndTime) {
- const param: FinanceReportReq = {
- querytype: 1,
- ...value
- }
- queryResultLoadingAndInfo(fn, loading, param).then(res => {
- const result = res?.map((e: T, i: number) => {
- return { ...e, key: String(i) };
- });
- tableList.value = result ? result : []
- })
- }
- return { loading, tableList, queryTable }
- }
|