You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

198 lines
5.4 KiB
Vue

<template>
<div>
<el-form :model="a " label-width="120px">
<el-form-item label="id" :required="false">
<el-input v-model="a['id']"
type="text" autocomplete="new-password" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="aSubmit">提交</el-button>
<el-button>重置</el-button>
</el-form-item>
</el-form>
<pagination v-show="pageData.total > 0"
v-model:page="a['pageNum']"
v-model:limit="a['pageSize']"
:total="pageData.total" @pagination="aSubmit" />
</div>
<div style="margin-bottom: 12px;">
<el-button :icon="Plus" type="primary" @click="aaAdd">新增</el-button>
<el-button :icon="Edit" type="success" :disabled="aaSelectionList.length !== 1" @click="aaUpdate()">编辑
</el-button>
<el-button :icon="Delete" type="danger" :disabled="!(aaSelectionList.length >= 1)" @click="aaDel()">删除
</el-button>
</div>
<el-table :data="formData['table']"
style="width: 100%"
@selection-change="aaSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column prop="materialName" label="materialName" />
<el-table-column prop="planAmount" label="planAmount" />
<el-table-column prop="processName" label="processName" />
<el-table-column prop="releaseName" label="releaseName" />
<el-table-column prop="planId" label="planId" />
<el-table-column label="操作">
<template #default="scope">
<el-button
link
type="primary"
size="small"
@click.prevent="aaUpdate(scope)"
>
修改
</el-button>
<el-button
link
type="primary"
size="small"
@click.prevent="aaDel(scope)"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog v-model="aaOperationFormVisible" :title="aaOperationTitle" width="500">
<el-form :model="aaOperationForm" label-width="120px">
<el-form-item label="materialName" :required="undefined">
<el-input v-model="aaOperationForm['materialName']"
type="input" autocomplete="new-password" />
</el-form-item>
<el-form-item label="planAmount" :required="undefined">
<el-input v-model="aaOperationForm['planAmount']"
type="input" autocomplete="new-password" />
</el-form-item>
<el-form-item label="processName" :required="undefined">
<el-input v-model="aaOperationForm['processName']"
type="input" autocomplete="new-password" />
</el-form-item>
<el-form-item label="releaseName" :required="undefined">
<el-input v-model="aaOperationForm['releaseName']"
type="input" autocomplete="new-password" />
</el-form-item>
<el-form-item label="planId" :required="undefined">
<el-input v-model="aaOperationForm['planId']"
type="input" autocomplete="new-password" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="aaOperationFormVisible = false;aaOperationForm={}">关闭</el-button>
<el-button type="primary" @click="aaAddSubmit">
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { Delete, Edit, Plus } from '@element-plus/icons-vue';
import request from '@/utils/request';
const formData = ref({});
const formDataOperation = {
get: (key) => {
return formData.value[key];
},
set: (key, value) => {
formData.value[key] = value;
}
};
const pageData = ref({});
const a = ref({ 'id': '' });
const aaOperationForm = ref({
'materialName': '',
'planAmount': '',
'processName': '',
'releaseName': '',
'planId': ''
});
const table = ref([]);
const aaSelectionList = ref([]);
const aaOperationFormVisible = ref(false);
const aaOperationTitle = ref('');
const aSubmit = async () => {
let formData = a.value;
let localData = pageData.value;
const table = await request({
url: 'mes/planInfo/list',
method: 'get',
params: formData
});
formDataOperation.set('table', table.rows);
localData.total = table.total;
};
const aaSelectionChange = (e) => {
aaSelectionList.value = e;
};
const aaUpdate = (scope) => {
if (!scope) {
aaOperationForm.value = aaSelectionList.value[0];
} else {
aaOperationForm.value = scope.row;
}
aaOperationFormVisible.value = true;
};
const aaAdd = () => {
aaOperationForm.value = {};
aaOperationFormVisible.value = true;
};
const aaDel = () => {
ElMessageBox.confirm(
'确定删除这些数据吗?',
'Warning',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
beforeClose: async (action, instance, done) => {
try {
let localData = pageData.value;
let formData = { id: aaSelectionList.value.map(v => v[id]) };
done();
} catch (e) {
console.log(e);
}
}
}
)
.then(async () => {
ElMessage({
type: 'success',
message: '删除完成'
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消删除'
});
});
};
const aaAddSubmit = async () => {
let formData = aaOperationForm.value;
let localData = pageData.value;
aaOperationFormVisible.value = false;
};
</script>