From 48032a9bf0b5e560fd438ae7ba12ad6f4c8183ed Mon Sep 17 00:00:00 2001
From: wujianwei <wjw@11.com>
Date: 星期一, 02 二月 2026 16:16:45 +0800
Subject: [PATCH] 新增日志
---
ui/admin-ui3/src/views/cwgl/voucherSubjectFee/index.vue | 405 +++++++++++++++++++++++++++++++++++----------------------
1 files changed, 245 insertions(+), 160 deletions(-)
diff --git a/ui/admin-ui3/src/views/cwgl/voucherSubjectFee/index.vue b/ui/admin-ui3/src/views/cwgl/voucherSubjectFee/index.vue
index 4979f1a..05e01ac 100644
--- a/ui/admin-ui3/src/views/cwgl/voucherSubjectFee/index.vue
+++ b/ui/admin-ui3/src/views/cwgl/voucherSubjectFee/index.vue
@@ -1,48 +1,23 @@
<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"
- >
+ <basicContainer>
+ <el-tabs v-model="activeAccountSet" @tab-click="handleTabClick">
+ <el-tab-pane label="鐝犳捣姹囩晠" name="0"></el-tab-pane>
+ <el-tab-pane label="骞跨彔鐗╂祦璐告槗" name="1"></el-tab-pane>
+ </el-tabs>
+ <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:voucherSubjectFee:edit']"
- @click="handleUpdate">淇敼
+ <el-button type="success" icon="Edit" :disabled="pageF.single" v-hasPermi="['cwgl:voucherSubjectFee:edit']"
+ @click="handleUpdate">淇敼
</el-button>
- <el-button
- type="danger"
- icon="Delete"
- :disabled="pageF.multiple"
- @click="handleDelete"
- v-hasPermi="['cwgl:voucherSubjectFee:remove']"
- >鍒犻櫎
+ <el-button type="danger" icon="Delete" :disabled="pageF.multiple" @click="handleDelete"
+ v-hasPermi="['cwgl:voucherSubjectFee:remove']">鍒犻櫎
</el-button>
- <el-button
- type="warning"
- plain
- icon="Download"
- @click="handleExport"
- v-hasPermi="['cwgl:voucherSubjectFee:export']"
- >瀵煎嚭
+ <el-button type="warning" plain icon="Download" @click="handleExport"
+ v-hasPermi="['cwgl:voucherSubjectFee:export']">瀵煎嚭
</el-button>
</template>
</avue-crud>
@@ -50,134 +25,244 @@
</template>
<script setup name="voucherSubjectFee" lang="ts">
- import {VoucherSubjectFeeI,addVoucherSubjectFee, delVoucherSubjectFee, exportVoucherSubjectFee, getVoucherSubjectFee, listVoucherSubjectFee, updateVoucherSubjectFee} from "@/api/cwgl/voucherSubjectFee";
- 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";
+import { listVoucherSubjectSetting } from "@/api/cwgl/voucherSubjectSetting";
- const { proxy } = useCurrentInstance();
- const crudRef = ref();
+import { VoucherSubjectFeeI, addVoucherSubjectFee, delVoucherSubjectFee, exportVoucherSubjectFee, getVoucherSubjectFee, listVoucherSubjectFee, updateVoucherSubjectFee } from "@/api/cwgl/voucherSubjectFee";
+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 permissionList = computed(()=>{
- return {
- addBtn: hasPermission(["cwgl:voucherSubjectFee:add"]),
- delBtn: hasPermission(["cwgl:voucherSubjectFee:remove"]),
- editBtn: hasPermission(["cwgl:voucherSubjectFee:edit"]),
- viewBtn: hasPermission(["cwgl:voucherSubjectFee:query"]),
- }
- })
+const { proxy } = useCurrentInstance();
+const crudRef = ref();
- const data = reactive({
- form:<VoucherSubjectFeeI>{},
- queryParams:<VoucherSubjectFeeI&PageQueryInterface>{},
- page: <PagesInterface>{
- pageSize: 10,
- total: 0,
- currentPage: 1,
+const permissionList = computed(() => {
+ return {
+ addBtn: hasPermission(["cwgl:voucherSubjectFee:add"]),
+ delBtn: hasPermission(["cwgl:voucherSubjectFee:remove"]),
+ editBtn: hasPermission(["cwgl:voucherSubjectFee:edit"]),
+ viewBtn: hasPermission(["cwgl:voucherSubjectFee:query"]),
+ }
+})
+
+const data = reactive({
+ form: <VoucherSubjectFeeI>{},
+ queryParams: <VoucherSubjectFeeI & PageQueryInterface>{},
+ page: <PagesInterface>{
+ pageSize: 10,
+ total: 0,
+ currentPage: 1,
+ },
+ selectionList: [],
+})
+const { queryParams, form, page, selectionList } = toRefs(data);
+const option = ref({
+ pageKey: 'VoucherSubjectFee',
+ rowKey: 'id',
+ viewBtn: false,
+ column: {
+ // id: {
+ // label: 'ID',
+ // },
+ accountSet: {
+ label: '璐﹀',
+ minWidth: 120,
+ addDisabled: true,
+ editDisabled: true,
+ type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/sys_accounting_type',
+ rules: [
+ {
+ required: true,
+ message: "甯愬绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
},
- selectionList:[],
- })
- const {queryParams,form,page,selectionList} = toRefs(data);
- const option = ref({
- pageKey: 'VoucherSubjectFee',
- rowKey: 'id',
- column: {
- id: {
- label: 'ID',
- },
- accountSet: {
- label: '璐﹀',
- rules: [
- {
- required: true,
- message: "璐﹀涓嶈兘涓虹┖", trigger: "blur" }
- ], },
- subjectCode: {
- label: '绉戠洰浠g爜',
- rules: [
- {
- required: true,
- message: "绉戠洰浠g爜涓嶈兘涓虹┖", trigger: "blur" }
- ], },
- subjectName: {
- label: '绉戠洰鍚嶇О',
- rules: [
- {
- required: true,
- message: "绉戠洰鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
- ], },
- subjectType: {
- label: '绉戠洰绫诲埆',
- rules: [
- {
- required: true,
- message: "绉戠洰绫诲埆涓嶈兘涓虹┖", trigger: "change"
- }
- ], },
- feeType: {
- label: '璐圭敤绫诲埆',
- },
- type: {
- label: '甯愬绫诲瀷',
- rules: [
- {
- required: true,
- message: "甯愬绫诲瀷涓嶈兘涓虹┖", trigger: "change"
- }
- ], },
- materialType: {
- label: '鐗╂枡绫诲埆',
- },
- feeName: {
- label: '璐圭敤鍚嶇О',
- },
- status: {
- label: '鐘舵��',
- },
- delFlag: {
- label: '鍒犻櫎鏍囧織',
- },
- createBy: {
- label: '鍒涘缓鑰�',
- },
- createTime: {
- label: '鍒涘缓鏃堕棿',
- },
- updateBy: {
- label: '鏇存柊鑰�',
- },
- updateTime: {
- label: '鏇存柊鏃堕棿',
- },
- remark: {
- label: '澶囨敞',
- type: 'textarea', minRows: 3, maxRows: 5,
- },
- }
- })
+ subjectName: {
+ label: '绉戠洰鍚嶇О',
+ type: 'select', // 濡傛灉闇�瑕佹爲褰㈠彲浠ユ敼涓� 'tree'
+ search: true,
+ props: {
+ label: 'subjectName',
+ value: 'subjectName' // 寤鸿缁戝畾 ID 浣滀负 value
+ },
+ // 鍏抽敭锛氱洃鍚�変腑鍊肩殑鍙樺寲
+ change: ({ value, column, item }) => {
+ // item 鏄綋鍓嶉�変腑鐨勬暣琛屾暟鎹璞�
+ if (item) {
+ form.value.subjectCode = item.subjectCode; // 璧嬪�肩鐩唬鐮�
+ form.value.subjectType = item.subjectType; // 璧嬪�肩鐩被鍒�
- 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:listVoucherSubjectFee,
- getDetailApi:getVoucherSubjectFee,
- exportApi:exportVoucherSubjectFee,
- deleteApi:delVoucherSubjectFee,
- addApi:addVoucherSubjectFee,
- updateApi:updateVoucherSubjectFee,
- handleUpdateFunc:()=>{
+ // 娉ㄦ剰锛氳纭 listVoucherSubjectSetting 鎺ュ彛杩斿洖鐨勫璞′腑鏈� expenseName 瀛楁
+ // 濡傛灉鎺ュ彛瀛楁鍙� feeName锛屽垯鏀逛负 item.feeName
+ form.value.feeName = item.expenseName;
+ } else {
+ // 濡傛灉娓呯┖浜嗛�夋嫨锛屽垯閲嶇疆鐩稿叧瀛楁
+ form.value.subjectCode = '';
+ form.value.subjectType = '';
+ form.value.feeName = '';
+ }
+ },
+ rules: [{ required: true, message: "绉戠洰鍚嶇О涓嶈兘涓虹┖", trigger: "change" }],
+ },
+
+ subjectCode: {
+ label: '绉戠洰浠g爜',
+ disabled: true, // 鑷姩甯﹀嚭锛岃涓哄彧璇�
+ },
+ subjectType: {
+ label: '绉戠洰绫诲埆',
+ minWidth: 150,
+ minWidth: 120,
+ type: 'select', dicUrl: '/system/dict/data/type/sys_subject_category',
+ rules: [
+ {
+ required: true,
+ message: "绉戠洰绫诲埆涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ search: true,
+ },
+ feeType: {
+ label: '璐圭敤绫诲埆',
+ search: true,
+ minWidth: 150,
+ minWidth: 120,
+ type: 'select', dicUrl: '/system/dict/data/type/sys_expense_category',
+ rules: [
+ {
+ required: true,
+ message: "璐圭敤绫诲埆涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+
+ },
+ // type: {
+ // label: '甯愬绫诲瀷',
+ // rules: [
+ // {
+ // required: true,
+ // message: "甯愬绫诲瀷涓嶈兘涓虹┖", trigger: "change"
+ // }
+ // ],
+ // },
+ feeName: {
+ search: true,
+ label: '璐圭敤鍚嶇О',
+ minWidth: 150,
+ minWidth: 120,
+ type: 'select', dicUrl: '/system/dict/data/type/sys_name_harge',
+ rules: [
+ {
+ required: true,
+ message: "璐圭敤鍚嶇О涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+ materialType: {
+ search: true,
+ label: '鐗╂枡绫诲埆',
+ minWidth: 150,
+ minWidth: 120,
+ type: 'select', dicUrl: '/system/dict/data/type/sys_material_category',
+ rules: [
+ {
+ required: true,
+ message: "鐗╂枡绫诲埆涓嶈兘涓虹┖", trigger: "change"
+ }
+ ],
+ },
+
+ // status: {
+ // label: '鐘舵��',
+ // },
+ // delFlag: {
+ // label: '鍒犻櫎鏍囧織',
+ // },
+ // createBy: {
+ // label: '鍒涘缓鑰�',
+ // },
+ // createTime: {
+ // label: '鍒涘缓鏃堕棿',
+ // },
+ // updateBy: {
+ // label: '鏇存柊鑰�',
+ // },
+ // updateTime: {
+ // label: '鏇存柊鏃堕棿',
+ // },
+ // remark: {
+ // label: '澶囨敞',
+ // type: 'textarea', minRows: 3, maxRows: 5,
+ // },
+ }
+})
+
+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: listVoucherSubjectFee,
+ getDetailApi: getVoucherSubjectFee,
+ exportApi: exportVoucherSubjectFee,
+ deleteApi: delVoucherSubjectFee,
+ addApi: addVoucherSubjectFee,
+ updateApi: updateVoucherSubjectFee,
+ handleUpdateFunc: () => {
crudRef.value.rowEdit(selectionList.value[0]);
},
- handleSelectionChangeFunc:(selection:any)=>{
+ getBeginListFunc: (params = {}) => {
+ // 杩欓噷鐨� params 鏄� searchChange 绛夎Е鍙戞椂浼犻�掔殑鍘熷鍙傛暟
+ const nextParams = {
+ ...params,
+ type: activeAccountSet.value // 灏嗗綋鍓嶉�変腑鐨� Tab 鍊兼敞鍏� type 瀛楁
+ };
+ // 鍚屾鏇存柊 queryParams锛岀‘淇濇悳绱㈡爮鐘舵�佷竴鑷�
+ queryParams.value = nextParams;
+ return nextParams;
+ },
+ handleSelectionChangeFunc: (selection: any) => {
selectionList.value = selection;
- }
+ },
+ // --- 鍏抽敭淇敼锛氬鐞嗗脊绐楁墦寮�鍓嶇殑閫昏緫 ---
+ handleBeforeOpenFunc: (type: string) => {
+ if (type === 'add') {
+ form.value.accountSet = activeAccountSet.value;
+ form.value.type = activeAccountSet.value;
+ }
+ listVoucherSubjectSetting({ type: activeAccountSet.value }).then(res => {
+ const subjectNameCol = option.value.column.subjectName;
+ if (subjectNameCol) {
+ // 鍋囪鎺ュ彛杩斿洖鐨勬暟鎹湪 res.data 鎴� res.rows 涓�
+ const listData = res.rows || [];
+
+ // 濡傛灉浣犻渶瑕佹爲褰㈠睍绀猴紝鍙互浣跨敤 handleTree 杞崲
+ subjectNameCol.type = 'tree';
+ subjectNameCol.dicData = proxy.handleTree(listData, "id");
+
+
+ }
+ });
+
+ },
})
+const activeAccountSet = ref('0');
+const handleTabClick = (tab: any) => {
+ const selectedTabName = tab.props.name;
+ console.log("Tab鐐瑰嚮鐨勫��:", selectedTabName);
+ activeAccountSet.value = selectedTabName;
+ queryParams.value.type = selectedTabName;
+ const nextParams = {
+ ...queryParams.value,
+ type: selectedTabName
+ };
+ // 4. 閲嶇疆鍒嗛〉骞跺姞杞�
+ page.value.currentPage = 1;
+ onLoad(page.value, nextParams);
+}
</script>
--
Gitblit v1.8.0