From 02409bfbe15f22fc3b5dccadabfd860a660a49d9 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 11 Oct 2025 10:37:14 +0800
Subject: [PATCH] feat: 名称修改
---
src/views/resource/patchTypeManagement.vue | 292 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 158 insertions(+), 134 deletions(-)
diff --git a/src/views/resource/patchTypeManagement.vue b/src/views/resource/patchTypeManagement.vue
index e5d8d5b..7c7eb4e 100644
--- a/src/views/resource/patchTypeManagement.vue
+++ b/src/views/resource/patchTypeManagement.vue
@@ -1,15 +1,28 @@
<template>
<basic-container>
- <avue-crud :option="option" :table-loading="loading" :data="data" v-model:page="page" :permission="permissionList"
- v-model="form" ref="crud" @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" :before-open="beforeOpen"
- @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
- @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
+ <avue-crud
+ :option="option"
+ :table-loading="loading"
+ :data="data"
+ v-model:page="page"
+ :permission="permissionList"
+ v-model="form"
+ ref="crud"
+ @row-update="rowUpdate"
+ @row-save="rowSave"
+ @row-del="rowDel"
+ :before-open="beforeOpen"
+ @search-change="searchChange"
+ @search-reset="searchReset"
+ @selection-change="selectionChange"
+ @current-change="currentChange"
+ @size-change="sizeChange"
+ @refresh-change="refreshChange"
+ @on-load="onLoad"
+ >
<template #search-menu="{ row, size }">
- <el-button icon="el-icon-back" @click="goPatchManagement">
- 返回
- </el-button>
+ <el-button icon="el-icon-back" @click="goPatchManagement"> 返回 </el-button>
</template>
-
<template #status="{ row }">
<el-tag>{{ row.statusName }}</el-tag>
</template>
@@ -21,27 +34,34 @@
</template>
<script setup>
-import {listOfSpotTypesApi,spotTypesCreateApi,editSpotTypeApi,deleteSpotTypeApi} from '@/api/patchManagement/index'
-import { ref, computed, watch } from 'vue'
-import { enable, disable } from '@/api/resource/oss'
-import { useStore } from 'vuex'
-import func from '@/utils/func'
-import { useRouter } from 'vue-router'
+import {
+ searchManagementApi,
+ listOfSpotTypesApi,
+ spotTypesCreateApi,
+ editSpotTypeApi,
+ deleteSpotTypeApi,
+} from '@/api/patchManagement/index';
+import { ref, computed, watch } from 'vue';
+import { enable, disable } from '@/api/resource/oss';
+import { useStore } from 'vuex';
+import func from '@/utils/func';
+import { useRouter } from 'vue-router';
import { ElMessage, ElMessageBox, ElLoading } from 'element-plus';
-const store = useStore()
-const router = useRouter()
+const store = useStore();
+const router = useRouter();
// ---------------- data ----------------
-const form = ref({})
-const query = ref({})
-const loading = ref(true)
+const form = ref({});
+const query = ref({});
+const creatorOption = ref([]);
+const loading = ref(true);
const page = ref({
pageSize: 20,
currentPage: 1,
total: 0,
- lotValue:"",
- userName:''
-})
-const selectionList = ref([])
+ lotValue: '',
+ userName: '',
+});
+const selectionList = ref([]);
const option = ref({
addBtn: true,
addBtnText: '新增类型',
@@ -51,6 +71,8 @@
searchMenuPosition: 'right',
border: true,
index: true,
+ indexLabel: '序号',
+ indexWidth: 60,
selection: true,
grid: false,
menuWidth: 180,
@@ -69,97 +91,108 @@
prop: 'patches_type',
search: true,
searchSpan: 4,
- rules: [
- { required: true, message: '请输入类型名称', trigger: 'blur' },
- ],
+ rules: [{ required: true, message: '请输入类型名称', trigger: 'blur' }],
},
{
label: '创建时间',
prop: 'create_time',
- addDisplay: false,
+ addDisplay: false,
editDisplay: false,
- rules: [
- { required: true, message: '请输入创建时间', trigger: 'blur' },
- ],
+ rules: [{ required: true, message: '请输入创建时间', trigger: 'blur' }],
},
{
label: '创建人',
prop: 'user_name',
search: true,
- addDisplay: false,
- editDisplay: false,
+ addDisplay: false,
+ editDisplay: false,
searchSpan: 4,
- rules: [
- { required: true, message: '请输入创建人', trigger: 'blur' },
- ],
+ type: 'select',
+ dicData: creatorOption,
+ props: {
+ label: 'label',
+ value: 'value',
+ },
+ rules: [{ required: true, message: '请输入创建人', trigger: 'blur' }],
},
],
-})
+});
-const data = ref([])
-
-
+const data = ref([]);
+// 获取搜索数据
+const getsearchManagementApi = () => {
+ searchManagementApi().then(res => {
+ const creatorOptionuniqueMap = new Map();
+ res.data.data.user_names.forEach(item => {
+ const [key, value] = Object.entries(item)[0];
+ if (!creatorOptionuniqueMap.has(key)) {
+ creatorOptionuniqueMap.set(key, value);
+ }
+ });
+ creatorOption.value = Array.from(creatorOptionuniqueMap).map(([key, value]) => ({
+ label: value,
+ value: value,
+ }));
+ });
+};
// ---------------- watch ----------------
watch(
() => form.value.category,
() => {
- const category = func.toInt(form.value.category)
+ const category = func.toInt(form.value.category);
option.value.column.filter(item => {
if (item.prop === 'appId') {
- item.display = category === 4
+ item.display = category === 4;
}
- })
+ });
}
-)
-
-
+);
// ---------------- computed ----------------
-const permission = computed(() => store.getters.permission)
+const permission = computed(() => store.getters.permission);
const permissionList = computed(() => ({
addBtn: validData(permission.value.oss_add),
viewBtn: validData(permission.value.oss_view),
delBtn: validData(permission.value.oss_delete),
editBtn: validData(permission.value.oss_edit),
-}))
+}));
const ids = computed(() => {
- return selectionList.value.map(ele => ele.id).join(',')
-})
+ return selectionList.value.map(ele => ele.id).join(',');
+});
// ---------------- methods ----------------
const rowSave = (row, done, loadingFn) => {
-const createParams ={
- patches_type:row.patches_type
-,
-}
+ const createParams = {
+ patches_type: row.patches_type,
+ };
spotTypesCreateApi(createParams).then(
() => {
- onLoad(page.value)
- ElMessage.success('操作成功!')
- done()
+ onLoad(page.value);
+ ElMessage.success('操作成功!');
+ done();
},
error => {
- console.log(error)
- loadingFn()
+ console.log(error);
+ loadingFn();
}
- )
-}
+ );
+};
const rowUpdate = (row, index, done, loadingFn) => {
editSpotTypeApi(row).then(
- (res) => {
- onLoad(page.value)
- ElMessage.success('操作成功!')
- done()
+ res => {
+ onLoad(page.value);
+ ElMessage.success('操作成功!');
+ done();
},
error => {
- console.log(error)
- loadingFn()
+ console.log(error);
+ loadingFn();
}
- )
-}
+ );
+};
const rowDel = row => {
ElMessageBox.confirm('确定将选择数据删除?', '提示', {
@@ -169,37 +202,35 @@
})
.then(() => deleteSpotTypeApi([row.id]))
.then(() => {
- onLoad(page.value)
- ElMessage.success('操作成功!')
- })
-}
+ onLoad(page.value);
+ ElMessage.success('操作成功!');
+ });
+};
const searchReset = () => {
-page.value.userName=''
-page.value.lotValue =''
-page.value.currentPage=1
-page.value.pageSize=20
- onLoad(page.value)
-}
+ page.value.userName = '';
+ page.value.lotValue = '';
+ page.value.currentPage = 1;
+ page.value.pageSize = 20;
+ onLoad(page.value);
+};
const searchChange = (params, done) => {
- page.value.currentPage = 1
- page.value.lotValue = params.patches_type
- page.value.userName = params.user_name
- onLoad(page.value)
- done()
-}
+ page.value.currentPage = 1;
+ page.value.lotValue = params.patches_type;
+ page.value.userName = params.user_name;
+ onLoad(page.value);
+ done();
+};
const selectionChange = list => {
-
-
// selectionList.value = list
-}
+};
const selectionClear = () => {
- selectionList.value = []
+ selectionList.value = [];
// crudRef.value.toggleSelection()
-}
+};
const handleEnable = row => {
ElMessageBox.confirm('是否确定启用这条配置?', '提示', {
@@ -209,11 +240,11 @@
})
.then(() => enable(row.id))
.then(() => {
- onLoad(page.value)
- ElMessage.success('操作成功!')
+ onLoad(page.value);
+ ElMessage.success('操作成功!');
// crudRef.value.toggleSelection()
- })
-}
+ });
+};
const handleDisable = row => {
ElMessageBox.confirm('是否确定禁用这条配置?', '提示', {
@@ -223,12 +254,11 @@
})
.then(() => disable(row.id))
.then(() => {
- onLoad(page.value)
- ElMessage.success('操作成功!')
+ onLoad(page.value);
+ ElMessage.success('操作成功!');
// crudRef.value.toggleSelection()
- })
-}
-
+ });
+};
const beforeOpen = (done, type) => {
// if (['edit', 'view'].includes(type)) {
@@ -236,56 +266,50 @@
// // form.value = res.data.data
// // })
// }
- done()
-}
+ done();
+};
const currentChange = currentPage => {
- page.value.currentPage = currentPage
-}
+ page.value.currentPage = currentPage;
+};
const sizeChange = pageSize => {
- page.value.pageSize = pageSize
-}
+ page.value.pageSize = pageSize;
+};
const refreshChange = () => {
- onLoad(page.value, query.value)
-}
+ onLoad(page.value, query.value);
+};
const onLoad = (pageParam, params = {}) => {
-const searchparams ={
- current:pageParam.currentPage,
- size:pageParam.pageSize,
- lotValue:pageParam.lotValue,
- userName:pageParam.userName
-}
- loading.value = true
+ const searchparams = {
+ current: pageParam.currentPage,
+ size: pageParam.pageSize,
+ lotValue: pageParam.lotValue,
+ userName: pageParam.userName,
+ };
+ loading.value = true;
listOfSpotTypesApi(searchparams).then(res => {
- const resData = res.data.data
- page.value.total = resData.total
- data.value = resData.records
- loading.value = false
- selectionClear()
- })
-}
+ const resData = res.data.data;
+ page.value.total = resData.total;
+ data.value = resData.records;
+ loading.value = false;
+ selectionClear();
+ });
+};
// ---------------- extra ----------------
const goPatchManagement = () => {
- router.push({ path: '/resource/patchManagement' })
-}
-
-const addPatchType = () => {
- // TODO: 新增图斑类型逻辑
-}
+ router.push({ path: '/resource/patchManagement' });
+};
// ---------------- utils ----------------
-function validData (value) {
- return value !== undefined && value !== null && value !== false
+function validData(value) {
+ return value !== undefined && value !== null && value !== false;
}
-function findObject (list, prop) {
- return list.find(item => item.prop === prop)
-}
-
-const crudRef = ref(null)
+onMounted(() => {
+ getsearchManagementApi();
+});
</script>
-<style scoped lang="scss"></style>
\ No newline at end of file
+<style scoped lang="scss"></style>
--
Gitblit v1.9.3