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
| <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"
| @row-del="rowDel"
| @search-change="searchChange"
| @refresh-change="refreshChange"
| @search-reset="searchReset"
| @selection-change="selectionChange"
| @current-change="currentChange"
| @size-change="sizeChange"
| @on-load="onLoad"
| >
| <template #menu-left>
| <el-button type="success" icon="Edit" v-hasPermi="['system:post:edit']"
| :disabled="pageF.single"
| @click="handleUpdate">修改
| </el-button>
| <el-button
| type="danger"
| icon="Delete"
| :disabled="pageF.multiple"
| @click="handleDelete"
| v-hasPermi="['system:post:remove']"
| >删除
| </el-button>
| <el-button
| type="warning"
| plain
| icon="Download"
| @click="handleExport"
| v-hasPermi="['system:post:export']"
| >导出
| </el-button>
| </template>
| <template #status="scope">
| <dict-tag v-if="scope.dic" :options="scope.dic" :value="scope.row.status" />
| </template>
| </avue-crud>
| </basicContainer>
| </template>
|
| <script setup name="Post" lang="ts">
| import {listPost, addPost, delPost, getPost, updatePost, exportPost, PostI} from "@/api/system/post";
| import useCurrentInstance from "@/utils/useCurrentInstance";
| import {computed, reactive, ref, toRefs} from "vue";
| import {PageQueryInterface, PagesInterface} from "@/utils/globalInterface";
| import {usePagePlus} from "@/hooks/usePagePlus";
| import {hasPermission} from "@/utils/permissionUtils";
| import { useTableColumnWidth} from "@/hooks/useAvueTableWidths";
|
| const {proxy} = useCurrentInstance();
|
| const crudRef = ref();
| const data = reactive({
| form: <PostI>{},
| queryParams: <PostI & PageQueryInterface>{},
| page: <PagesInterface>{
| pageSize: 10,
| total: 0,
| currentPage: 1,
| },
| selectionList:[]
| });
| const permissionList = computed(()=>{
| return {
| addBtn: hasPermission(["system:post:add"]),
| delBtn: hasPermission(["system:post:remove"]),
| editBtn: hasPermission(["system:post:edit"]),
| viewBtn: hasPermission(["system:post:query"]),
| }
| })
|
|
| const {queryParams,page, form, selectionList} = toRefs(data);
|
| const option = ref({
| pageKey: 'post',
| rowKey: 'postId',
| column:<any> {
| postId: {label: '岗位编号', display: false},
| postName: {
| label: '岗位名称', search: true,
| rules:[{required: true, message: "岗位名称不能为空", trigger: "blur"}]
| },
| postCode: {label: '岗位编码', search: true,
| rules:[{required: true, message: "岗位编码不能为空", trigger: "blur"}]
| },
| postSort: {label: '岗位顺序', type: 'number', step: 1,value:1,rules:[{required: true, message: "岗位顺序不能为空", trigger: "blur"}]},
| status: {
| label: '岗位状态',
| type: 'radio', search: true,value: "0",
| dicUrl: '/system/dict/data/type/sys_normal_disable',
| },
| createTime: {label: '创建时间', display: false},
| remark: {
| span: 24,
| label: '备注',
| type: 'textarea',
| minRows: 3,
| maxRows: 5,
| hide: true
| },
| }
| })
|
| const {
| tableData,pageF,rowSave,rowUpdate,rowDel,beforeOpen,searchChange,
| searchReset,selectionChange,onLoad,currentChange,sizeChange,handleDelete,handleExport,handleUpdate,refreshChange
| } = usePagePlus({
| form:form,
| option:option,
| queryParams:queryParams.value,
| idKey:'postId',
| page:page.value,
| getListApi:listPost,
| getDetailApi:getPost,
| exportApi:exportPost,
| deleteApi:delPost,
| addApi:addPost,
| updateApi:updatePost,
| handleUpdateFunc:()=>{
| crudRef.value.rowEdit(selectionList.value[0]);
| },
| handleSelectionChangeFunc:(selection:any)=>{
| selectionList.value = selection;
| }
| })
|
|
|
| </script>
|
|