wujianwei
2026-01-12 acfe8943be0bb1440e0e6ba27ad9e694859e835e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<template>
  <basicContainer>
    <avue-crud :option="option" :table-loading="pageF.loading" :data="tableData" :page="page"
      :permission="permissionList" :before-open="beforeOpen" v-model="form" ref="crudRef" @row-update="rowUpdate"
      @row-save="rowSave" @refresh-change="refreshChange" @row-del="rowDel" @search-change="searchChange"
      @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
      @size-change="sizeChange" @on-load="onLoad">
      <template #menu-left>
        <el-button type="success" icon="Edit" :disabled="pageF.single" v-hasPermi="['cwgl:receivableFeeDetail:edit']"
          @click="handleUpdate">修改
        </el-button>
        <el-button type="danger" icon="Delete" :disabled="pageF.multiple" @click="handleDelete"
          v-hasPermi="['cwgl:receivableFeeDetail:remove']">删除
        </el-button>
        <el-button type="warning" plain icon="Download" @click="handleExport"
          v-hasPermi="['cwgl:receivableFeeDetail:export']">导出
        </el-button>
      </template>
    </avue-crud>
  </basicContainer>
</template>
 
<script setup name="receivableFeeDetail" lang="ts">
import { ReceivableFeeDetailI, addReceivableFeeDetail, delReceivableFeeDetail, exportReceivableFeeDetail, getReceivableFeeDetail, listReceivableFeeDetail, updateReceivableFeeDetail } from "@/api/cwgl/receivableFeeDetail";
import useCurrentInstance from "@/utils/useCurrentInstance";
import { computed, reactive, ref, toRefs } from "vue";
import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface";
import { usePagePlus } from "@/hooks/usePagePlus";
import { hasPermission } from "@/utils/permissionUtils";
 
const { proxy } = useCurrentInstance();
const crudRef = ref();
 
const permissionList = computed(() => {
  return {
    addBtn: hasPermission(["cwgl:receivableFeeDetail:add"]),
    delBtn: hasPermission(["cwgl:receivableFeeDetail:remove"]),
    editBtn: hasPermission(["cwgl:receivableFeeDetail:edit"]),
    viewBtn: hasPermission(["cwgl:receivableFeeDetail:query"]),
  }
})
 
const data = reactive({
  form: <ReceivableFeeDetailI>{},
  queryParams: <ReceivableFeeDetailI & PageQueryInterface>{},
  page: <PagesInterface>{
    pageSize: 10,
    total: 0,
    currentPage: 1,
  },
  selectionList: [],
})
const { queryParams, form, page, selectionList } = toRefs(data);
const option = ref({
  pageKey: 'ReceivableFeeDetail',
  rowKey: 'id',
  column: {
    id: {
      label: 'ID',
    },
    receivableFeeId: {
      label: '应收费用管理ID',
      rules: [
        {
          required: true,
          message: "应收费用管理ID不能为空", trigger: "blur"
        }
      ],
    },
    feeType: {
      label: '费用类型',
      rules: [
        {
          required: true,
          message: "费用类型不能为空", trigger: "change"
        }
      ],
    },
    feeName: {
      label: '费用名称',
      rules: [
        {
          required: true,
          message: "费用名称不能为空", trigger: "blur"
        }
      ],
    },
    billingUnit: {
      label: '计费单位',
    },
    unitPrice: {
      label: '计费单价',
    },
    billingQuantity: {
      label: '计费数量',
    },
    billingAmount: {
      label: '计费金额',
    },
    actualAmount: {
      label: '实收金额',
    },
    currency: {
      label: '币制',
    },
    feeRegTime: {
      label: '费用登记时间',
    },
    remark: {
      label: '备注',
      type: 'textarea', minRows: 3, maxRows: 5,
    },
    createBy: {
      label: '创建人',
    },
    createTime: {
      label: '创建时间',
    },
    updateBy: {
      label: '更新人',
    },
    updateTime: {
      label: '更新时间',
    },
    deleted: {
      label: '删除标记(0:正常;1:删除)',
    },
  }
})
 
const { tableData, pageF, rowSave, rowUpdate, rowDel, beforeOpen, searchChange,
  searchReset, selectionChange, onLoad, currentChange, sizeChange, handleDelete, handleExport, handleUpdate, refreshChange } = usePagePlus({
    form: form,
    option: option,
    queryParams: queryParams,
    idKey: 'id',
    page: page.value,
    getListApi: listReceivableFeeDetail,
    getDetailApi: getReceivableFeeDetail,
    exportApi: exportReceivableFeeDetail,
    deleteApi: delReceivableFeeDetail,
    addApi: addReceivableFeeDetail,
    updateApi: updateReceivableFeeDetail,
    handleUpdateFunc: () => {
      crudRef.value.rowEdit(selectionList.value[0]);
    },
    handleSelectionChangeFunc: (selection: any) => {
      selectionList.value = selection;
    }
  })
 
 
</script>