This commit is contained in:
李想 2025-03-11 17:24:51 +08:00
parent bd49946497
commit ead809cb3a
5 changed files with 87 additions and 52 deletions

View File

@ -31,3 +31,28 @@ export function exportPlanType(params = {}) {
responseType: 'blob', responseType: 'blob',
}); });
} }
/* ------ ------ */
// #region
/* 获取土壤类型列表 */
export function getSoilType(params) {
return request('land-resource/baseInfo/soilTypePage', {
method: 'GET',
params,
});
}
/* 创建土壤类型 */
export function saveSoilType(data) {
return request('land-resource/baseInfo/soilTypeSave', {
method: 'POST',
data,
});
}
/* 编辑土壤类型 */
export function updateSoilType(data) {
return request('land-resource/baseInfo/soilTypeSave', {
method: 'PUT',
data,
});
}
// #endregion

View File

@ -0,0 +1,3 @@
import * as redBlack from './redAndBlank';
export { redBlack };

View File

@ -0,0 +1 @@
import request from '@/utils/request';

View File

@ -4,7 +4,7 @@
ref="crudRef" ref="crudRef"
v-model:page="pageData" v-model:page="pageData"
v-model:search="condition" v-model:search="condition"
:table-loading="loading" :table-loading="_loading"
:data="data" :data="data"
:option="option" :option="option"
@search-change="handleSearch" @search-change="handleSearch"
@ -12,7 +12,7 @@
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@row-save="handleSave" @row-save="handleSave"
@row-update="handleUpdete" @row-update="handleUpdate"
> >
<template #menu="{ index, row }"> <template #menu="{ index, row }">
<el-dropdown> <el-dropdown>
@ -22,14 +22,14 @@
<template v-for="item in actions" :key="item.name"> <template v-for="item in actions" :key="item.name">
<el-dropdown-item @click="item.event(row, index)"> <el-dropdown-item @click="item.event(row, index)">
<el-button :type="item.type ?? 'primary'" :icon="item.icon" :size="item.size" :disabled="item.disabled" text> <el-button :type="item.type ?? 'primary'" :icon="item.icon" :size="item.size" :disabled="item.disabled" text>
{{ item.name == '查看' ? (row.status == 1 ? '启用' : '禁用') : item.name }} {{ item.name == '查看' ? (row.status == '1' ? '禁用' : '启用') : item.name }}
</el-button> </el-button>
</el-dropdown-item> </el-dropdown-item>
</template> </template>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown></template </el-dropdown>
> </template>
</avue-crud> </avue-crud>
</CustomCard> </CustomCard>
</template> </template>
@ -41,7 +41,7 @@ import useSoilTypeHook from './useSoilTypeHook';
const { const {
crudRef, crudRef,
condition, condition,
loading, _loading,
data, data,
pageData, pageData,
option, option,
@ -51,7 +51,7 @@ const {
handleSearch, handleSearch,
handleSearchReset, handleSearchReset,
handleSave, handleSave,
handleUpdete, handleUpdate,
} = useSoilTypeHook(); } = useSoilTypeHook();
/* --------------- data --------------- */ /* --------------- data --------------- */

View File

@ -1,31 +1,17 @@
import { ref, onMounted } from 'vue'; import { ref, onMounted, nextTick } from 'vue';
import { CRUD_OPTIONS } from '@/config'; import { CRUD_OPTIONS } from '@/config';
import { getSoilType, saveSoilType, updateSoilType } from '@/apis/baseInfo';
import { ElMessage } from 'element-plus';
export default function useSoilTypeHook() { export default function useSoilTypeHook() {
onMounted(getList); onMounted(getList);
const crudRef = ref(); const crudRef = ref();
const condition = ref({ const condition = ref({
soilType: '', soilType: null,
}); });
const data = ref([ const data = ref([]);
{ const _loading = ref(false);
code: 'a123456',
soilType: '黑土地',
status: 0,
},
{
code: 'b258369',
soilType: '黄土地',
status: 1,
},
{
code: 'c987654',
soilType: '盐碱土地',
status: 0,
},
]);
const loading = ref(false);
const pageData = ref({ const pageData = ref({
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
@ -40,7 +26,7 @@ export default function useSoilTypeHook() {
column: [ column: [
{ {
label: '编号', label: '编号',
prop: 'code', prop: 'id',
display: false, display: false,
addDisplay: false, addDisplay: false,
}, },
@ -69,7 +55,7 @@ export default function useSoilTypeHook() {
display: false, display: false,
addDisplay: false, addDisplay: false,
render: ({ row }) => { render: ({ row }) => {
return row.status === 0 ? '启用' : '禁用'; return row.status === '1' ? '启用' : '禁用';
}, },
}, },
], ],
@ -92,34 +78,32 @@ export default function useSoilTypeHook() {
event: handleDel, event: handleDel,
}, },
]); ]);
function getList() { async function getList() {
let params = { let params = {
current: pageData.value.currentPage, current: pageData.value.currentPage,
pageSize: pageData.value.pageSize, size: pageData.value.pageSize,
...condition.value, ...condition.value,
}; };
console.log('get --- ', params); let res = await getSoilType(params);
console.table(data.value); if (res.code == 200) {
data.value = res.data.records;
pageData.value.total = res.data.total;
}
console.log('get --- ', res);
} }
function handleStatusChange(row, index) { async function handleStatusChange(row, index) {
console.log('handleStatusChange --- ', row); await editSoilType(row, index);
data.value[index].status = data.value[index].status === 0 ? 1 : 0;
console.table(data.value);
} }
function handleCurrentChange(val) { function handleCurrentChange(val) {
console.log('handleCurrentChange --- ', val);
pageData.value.currentPage = val; pageData.value.currentPage = val;
getList(); getList();
} }
function handleSizeChange(val) { function handleSizeChange(val) {
console.log('handleSizeChange --- ', val);
pageData.value.currentPage = 1; pageData.value.currentPage = 1;
pageData.value.pageSize = val; pageData.value.pageSize = val;
getList(); getList();
} }
function handleSearch(val, done) { function handleSearch(val, done) {
console.log('handleSearch --- ', val);
console.log('ccc', condition.value);
resetPage(); resetPage();
done(); done();
} }
@ -127,22 +111,44 @@ export default function useSoilTypeHook() {
resetPage(); resetPage();
} }
function handleEdit(row, index) { function handleEdit(row, index) {
console.log('handleEdit --- ', row); crudRef.value.rowEdit(row, index);
console.log('index --- ', index);
crudRef.value.rowEdit(row);
} }
function handleDel(row) { function handleDel(row) {
console.log('handleDel --- ', row); console.log('handleDel --- ', row);
} }
function handleSave(form, _loading, done) { async function handleSave(form, loading, done) {
console.log('save --- ', form); let res = await saveSoilType(form);
_loading(); if (res.code == 200) {
ElMessage({
type: 'success',
message: '添加成功',
});
}
loading();
getList(); getList();
} }
function handleUpdate(form, _loading, done) { async function handleUpdate(row, index, done, loading) {
console.log('update --- ', form); await editSoilType(row, index);
_loading(); loading();
getList(); done();
}
async function editSoilType(row, index) {
let res = await updateSoilType({
id: row.id,
soilType: row.soilType,
status: row.status === '0' ? '1' : '0',
});
console.log('res ------', res);
if (res.code == 200) {
ElMessage({
type: 'success',
message: '修改成功',
});
nextTick(() => {
data.value[index].soilType = row.soilType;
data.value[index].status = row.status === '0' ? '1' : '0';
});
}
} }
function resetPage() { function resetPage() {
pageData.value.currentPage = 1; pageData.value.currentPage = 1;
@ -152,7 +158,7 @@ export default function useSoilTypeHook() {
return { return {
crudRef, crudRef,
condition, condition,
loading, _loading,
data, data,
pageData, pageData,
option, option,