形成液罐,采购和车辆维修记录

master
huangjinysf 12 months ago
parent 9e1cd474c1
commit b5635714a7

@ -14,7 +14,6 @@
* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。
* 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast) 版本。
* 前端技术栈([Vue2](https://cn.vuejs.org) + [Element](https://github.com/ElemeFE/element) + [Vue CLI](https://cli.vuejs.org/zh)),请移步[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue/tree/master/ruoyi-ui)。
* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)  
## 前端运行
@ -64,45 +63,3 @@ yarn dev
演示地址http://vue.ruoyi.vip
文档地址http://doc.ruoyi.vip
## 演示图
<table>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td>
</tr>
<tr>
<td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td>
<td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td>
</tr>
</table>
## 若依前后端分离交流群
QQ群 [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/已满-167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [![加入QQ群](https://img.shields.io/badge/已满-104748341-blue.svg)](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [![加入QQ群](https://img.shields.io/badge/已满-160110482-blue.svg)](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [![加入QQ群](https://img.shields.io/badge/已满-170801498-blue.svg)](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [![加入QQ群](https://img.shields.io/badge/已满-108482800-blue.svg)](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [![加入QQ群](https://img.shields.io/badge/已满-101046199-blue.svg)](https://jq.qq.com/?_wv=1027&k=SpyH2875) [![加入QQ群](https://img.shields.io/badge/已满-136919097-blue.svg)](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [![加入QQ群](https://img.shields.io/badge/已满-143961921-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [![加入QQ群](https://img.shields.io/badge/已满-174951577-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [![加入QQ群](https://img.shields.io/badge/已满-161281055-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [![加入QQ群](https://img.shields.io/badge/已满-138988063-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [![加入QQ群](https://img.shields.io/badge/已满-151450850-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) [![加入QQ群](https://img.shields.io/badge/已满-224622315-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=F58bgRa-Dp-rsQJThiJqIYv8t4-lWfXh&authKey=UmUs4CVG5OPA1whvsa4uSespOvyd8%2FAr9olEGaWAfdLmfKQk%2FVBp2YU3u2xXXt76&noverify=0&group_code=224622315) [![加入QQ群](https://img.shields.io/badge/已满-287842588-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Nxb2EQ5qozWa218Wbs7zgBnjLSNk_tVT&authKey=obBKXj6SBKgrFTJZx0AqQnIYbNOvBB2kmgwWvGhzxR67RoRr84%2Bus5OadzMcdJl5&noverify=0&group_code=287842588) [![加入QQ群](https://img.shields.io/badge/187944233-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=numtK1M_I4eVd2Gvg8qtbuL8JgX42qNh&authKey=giV9XWMaFZTY%2FqPlmWbkB9g3fi0Ev5CwEtT9Tgei0oUlFFCQLDp4ozWRiVIzubIm&noverify=0&group_code=187944233) 点击按钮入群。

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询维修记录列表
export function listVehile_repair_records(query) {
return request({
url: '/md/vehile_repair_records/list',
method: 'get',
params: query
})
}
// 查询维修记录详细
export function getVehile_repair_records(id) {
return request({
url: '/md/vehile_repair_records/' + id,
method: 'get'
})
}
// 新增维修记录
export function addVehile_repair_records(data) {
return request({
url: '/md/vehile_repair_records',
method: 'post',
data: data
})
}
// 修改维修记录
export function updateVehile_repair_records(data) {
return request({
url: '/md/vehile_repair_records',
method: 'put',
data: data
})
}
// 删除维修记录
export function delVehile_repair_records(id) {
return request({
url: '/md/vehile_repair_records/' + id,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询采购申请列表
export function listPurchase(query) {
return request({
url: '/system/purchase/list',
method: 'get',
params: query
})
}
// 查询采购申请详细
export function getPurchase(id) {
return request({
url: '/system/purchase/' + id,
method: 'get'
})
}
// 新增采购申请
export function addPurchase(data) {
return request({
url: '/system/purchase',
method: 'post',
data: data
})
}
// 修改采购申请
export function updatePurchase(data) {
return request({
url: '/system/purchase',
method: 'put',
data: data
})
}
// 删除采购申请
export function delPurchase(id) {
return request({
url: '/system/purchase/' + id,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询储罐台账列表
export function listTank(query) {
return request({
url: '/system/tank/list',
method: 'get',
params: query
})
}
// 查询储罐台账详细
export function getTank(id) {
return request({
url: '/system/tank/' + id,
method: 'get'
})
}
// 新增储罐台账
export function addTank(data) {
return request({
url: '/system/tank',
method: 'post',
data: data
})
}
// 修改储罐台账
export function updateTank(data) {
return request({
url: '/system/tank',
method: 'put',
data: data
})
}
// 删除储罐台账
export function delTank(id) {
return request({
url: '/system/tank/' + id,
method: 'delete'
})
}

@ -0,0 +1,317 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="维修编号" prop="repairNumber">
<el-input
v-model="queryParams.repairNumber"
placeholder="请输入维修编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="上报日期" prop="reportDate">
<el-date-picker clearable
v-model="queryParams.reportDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择上报日期">
</el-date-picker>
</el-form-item>
<el-form-item label="维修项目" prop="repairDetail">
<el-input
v-model="queryParams.repairDetail"
placeholder="请输入维修项目"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="车牌号" prop="licensePlate">
<el-input
v-model="queryParams.licensePlate"
placeholder="请输入车牌号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="负责人" prop="responsiblePerson">
<el-input
v-model="queryParams.responsiblePerson"
placeholder="请输入负责人"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['md:vehile_repair_records:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['md:vehile_repair_records:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['md:vehile_repair_records:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['md:vehile_repair_records:export']"
>导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="vehile_repair_recordsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="id" />
<el-table-column label="维修编号" align="center" prop="repairNumber" />
<el-table-column label="上报图片" align="center" prop="reportImage" width="100">
<template #default="scope">
<image-preview :src="scope.row.reportImage" :width="50" :height="50"/>
</template>
</el-table-column>
<el-table-column label="上报日期" align="center" prop="reportDate" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.reportDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="维修项目" align="center" prop="repairDetail" />
<el-table-column label="车牌号" align="center" prop="licensePlate" />
<el-table-column label="状态" align="center" prop="status" />
<el-table-column label="维修事项" align="center" prop="repairDetails" />
<el-table-column label="负责人" align="center" prop="responsiblePerson" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['md:vehile_repair_records:edit']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['md:vehile_repair_records:remove']"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改维修记录对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="vehile_repair_recordsRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="维修编号" prop="repairNumber">
<el-input v-model="form.repairNumber" placeholder="请输入维修编号" />
</el-form-item>
<el-form-item label="上报图片" prop="reportImage">
<image-upload v-model="form.reportImage"/>
</el-form-item>
<el-form-item label="上报日期" prop="reportDate">
<el-date-picker clearable
v-model="form.reportDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择上报日期">
</el-date-picker>
</el-form-item>
<el-form-item label="维修项目" prop="repairDetail">
<el-input v-model="form.repairDetail" placeholder="请输入维修项目" />
</el-form-item>
<el-form-item label="车牌号" prop="licensePlate">
<el-input v-model="form.licensePlate" placeholder="请输入车牌号" />
</el-form-item>
<el-form-item label="维修事项" prop="repairDetails">
<el-input v-model="form.repairDetails" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="负责人" prop="responsiblePerson">
<el-input v-model="form.responsiblePerson" placeholder="请输入负责人" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="Vehile_repair_records">
import { listVehile_repair_records, getVehile_repair_records, delVehile_repair_records, addVehile_repair_records, updateVehile_repair_records } from "@/api/md/vehile_repair_records";
const { proxy } = getCurrentInstance();
const vehile_repair_recordsList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
repairNumber: null,
reportImage: null,
reportDate: null,
repairDetail: null,
licensePlate: null,
status: null,
repairDetails: null,
responsiblePerson: null
},
rules: {
repairNumber: [
{ required: true, message: "维修编号不能为空", trigger: "blur" }
],
reportDate: [
{ required: true, message: "上报日期不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询维修记录列表 */
function getList() {
loading.value = true;
listVehile_repair_records(queryParams.value).then(response => {
vehile_repair_recordsList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
repairNumber: null,
reportImage: null,
reportDate: null,
repairDetail: null,
licensePlate: null,
status: null,
repairDetails: null,
responsiblePerson: null
};
proxy.resetForm("vehile_repair_recordsRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加维修记录";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getVehile_repair_records(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改维修记录";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["vehile_repair_recordsRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateVehile_repair_records(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addVehile_repair_records(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除维修记录编号为"' + _ids + '"的数据项?').then(function() {
return delVehile_repair_records(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('md/vehile_repair_records/export', {
...queryParams.value
}, `vehile_repair_records_${new Date().getTime()}.xlsx`)
}
getList();
</script>

@ -0,0 +1,408 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="申请日期" prop="applicationDate">
<el-date-picker clearable
v-model="queryParams.applicationDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择申请日期">
</el-date-picker>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入产品名称"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="规格型号" prop="specification">
<el-input
v-model="queryParams.specification"
placeholder="请输入规格型号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="数量" prop="quantity">
<el-input
v-model="queryParams.quantity"
placeholder="请输入数量"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="单位" prop="unit">
<el-input
v-model="queryParams.unit"
placeholder="请输入单位"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="申请人" prop="applicant">
<el-input
v-model="queryParams.applicant"
placeholder="请输入申请人"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="审核人" prop="reviewer">
<el-input
v-model="queryParams.reviewer"
placeholder="请输入审核人"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="审核日期" prop="reviewDate">
<el-date-picker clearable
v-model="queryParams.reviewDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择审核日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['system:purchase:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:purchase:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:purchase:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['system:purchase:export']"
>导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="purchaseList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="id" />
<el-table-column label="申请日期" align="center" prop="applicationDate" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.applicationDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="产品名称" align="center" prop="productName" />
<el-table-column label="规格型号" align="center" prop="specification" />
<el-table-column label="数量" align="center" prop="quantity" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="申请部门" align="center" prop="applicationDepartment">
<!-- <template #default="scope">
<dict-tag :options="sys_user_sex" :value="scope.row.applicationDepartment ? scope.row.applicationDepartment.split(',') : []"/>
</template> -->
</el-table-column>
<el-table-column label="申请人" align="center" prop="applicant" />
<el-table-column label="审核状态" align="center" prop="reviewStatus">
<!-- <template #default="scope">
<dict-tag :options="sys_user_sex" :value="scope.row.reviewStatus "/>
</template> -->
</el-table-column>
<el-table-column label="审核人" align="center" prop="reviewer" />
<el-table-column label="审核日期" align="center" prop="reviewDate" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.reviewDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="申请原因" align="center" prop="applicationReason" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:purchase:edit']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:purchase:remove']"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改采购申请对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="purchaseRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="申请日期" prop="applicationDate">
<el-date-picker clearable
v-model="form.applicationDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择申请日期">
</el-date-picker>
</el-form-item>
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称" />
</el-form-item>
<el-form-item label="规格型号" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格型号" />
</el-form-item>
<el-form-item label="数量" prop="quantity">
<el-input v-model="form.quantity" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" />
</el-form-item>
<el-form-item label="申请部门" prop="applicationDepartment">
<el-checkbox-group v-model="form.applicationDepartment">
<el-checkbox
v-for="dict in sys_user_sex"
:key="dict.value"
:label="dict.value">
{{dict.label}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="申请人" prop="applicant">
<el-input v-model="form.applicant" placeholder="请输入申请人" />
</el-form-item>
<el-form-item label="审核状态" prop="reviewStatus">
<el-checkbox-group v-model="form.reviewStatus">
<el-checkbox
v-for="dict in sys_user_sex"
:key="dict.value"
:label="dict.value">
{{dict.label}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="审核人" prop="reviewer">
<el-input v-model="form.reviewer" placeholder="请输入审核人" />
</el-form-item>
<el-form-item label="审核日期" prop="reviewDate">
<el-date-picker clearable
v-model="form.reviewDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择审核日期">
</el-date-picker>
</el-form-item>
<el-form-item label="申请原因" prop="applicationReason">
<el-input v-model="form.applicationReason" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="Purchase">
import { listPurchase, getPurchase, delPurchase, addPurchase, updatePurchase } from "@/api/system/purchase";
const { proxy } = getCurrentInstance();
const { sys_user_sex } = proxy.useDict('sys_user_sex');
const purchaseList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
applicationDate: null,
productName: null,
specification: null,
quantity: null,
unit: null,
applicationDepartment: null,
applicant: null,
reviewStatus: null,
reviewer: null,
reviewDate: null,
},
rules: {
applicationDate: [
{ required: true, message: "申请日期不能为空", trigger: "blur" }
],
productName: [
{ required: true, message: "产品名称不能为空", trigger: "blur" }
],
specification: [
{ required: true, message: "规格型号不能为空", trigger: "blur" }
],
quantity: [
{ required: true, message: "数量不能为空", trigger: "blur" }
],
unit: [
{ required: true, message: "单位不能为空", trigger: "blur" }
],
applicationDepartment: [
{ required: true, message: "申请部门不能为空", trigger: "blur" }
],
reviewStatus: [
{ required: true, message: "审核状态不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询采购申请列表 */
function getList() {
loading.value = true;
listPurchase(queryParams.value).then(response => {
purchaseList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
applicationDate: null,
productName: null,
specification: null,
quantity: null,
unit: null,
applicationDepartment: [],
applicant: null,
reviewStatus: [],
reviewer: null,
reviewDate: null,
applicationReason: null
};
proxy.resetForm("purchaseRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加采购申请";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getPurchase(_id).then(response => {
form.value = response.data;
form.value.applicationDepartment = form.value.applicationDepartment.split(",");
form.value.reviewStatus = form.value.reviewStatus;
open.value = true;
title.value = "修改采购申请";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["purchaseRef"].validate(valid => {
if (valid) {
form.value.applicationDepartment = form.value.applicationDepartment.join(",");
form.value.reviewStatus = form.value.reviewStatus.join(",");
if (form.value.id != null) {
updatePurchase(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addPurchase(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除采购申请编号为"' + _ids + '"的数据项?').then(function() {
return delPurchase(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('system/purchase/export', {
...queryParams.value
}, `purchase_${new Date().getTime()}.xlsx`)
}
getList();
</script>

@ -0,0 +1,411 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px" label-position = "top" >
<el-form-item label="设备名称" prop="deviceName" class="input-width">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入设备名称"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="使用单位" prop="userUnit">
<el-input
v-model="queryParams.userUnit"
placeholder="请输入使用单位"
clearable
@keyup.enter="handleQuery"
class="input-width"
/>
</el-form-item>
<el-form-item label="产品编号" prop="productNo" style ="width:200px">
<el-input
v-model="queryParams.productNo"
placeholder="请输入产品编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="设备代码" prop="deviceCode"style ="width:200px">
<el-input
v-model="queryParams.deviceCode"
placeholder="请输入设备代码"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="检测机构" prop="inspectionAgency" style ="width:200px">
<el-input
v-model="queryParams.inspectionAgency"
placeholder="请输入检测机构"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="报告编号" prop="reportNo" style ="width:200px">
<el-input
v-model="queryParams.reportNo"
placeholder="请输入报告编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="最近检时间" prop="lastInspectionDate" style ="width:200px">
<el-date-picker clearable
v-model="queryParams.lastInspectionDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择最近检时间">
</el-date-picker>
</el-form-item>
<el-form-item label="下一次检时间" prop="nextInspectionDate" style ="width:200px">
<el-date-picker clearable
v-model="queryParams.nextInspectionDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择下一次检时间">
</el-date-picker>
</el-form-item>
<el-form-item label="使用介质" prop="mediumUsed" style ="width:200px">
<el-input
v-model="queryParams.mediumUsed"
placeholder="请输入使用介质"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="办证日期" prop="certificationDate" style ="width:200px">
<el-date-picker clearable
v-model="queryParams.certificationDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择办证日期">
</el-date-picker>
</el-form-item>
<el-form-item label="有效容积" prop="effectiveCapacity">
<el-input
v-model="queryParams.effectiveCapacity"
placeholder="请输入有效容积"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['system:tank:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:tank:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:tank:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['system:tank:export']"
>导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tankList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="id" width="55"/>
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="使用单位" align="center" prop="userUnit" />
<el-table-column label="产品编号" align="center" prop="productNo" />
<el-table-column label="设备代码" align="center" prop="deviceCode" />
<el-table-column label="检测机构" align="center" prop="inspectionAgency" />
<el-table-column label="报告编号" align="center" prop="reportNo" />
<el-table-column label="最近检时间" align="center" prop="lastInspectionDate" width="150">
<template #default="scope">
<span>{{ parseTime(scope.row.lastInspectionDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="下一次检时间" align="center" prop="nextInspectionDate" width="150">
<template #default="scope">
<span>{{ parseTime(scope.row.nextInspectionDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="使用介质" align="center" prop="mediumUsed" />
<el-table-column label="办证日期" align="center" prop="certificationDate" width="150">
<template #default="scope">
<span>{{ parseTime(scope.row.certificationDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="有效容积" align="center" prop="effectiveCapacity" />
<el-table-column label="备注" align="center" prop="remarks" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:tank:edit']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:tank:remove']"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改储罐台账对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="tankRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="设备名称" prop="deviceName">
<el-input v-model="form.deviceName" placeholder="请输入设备名称" />
</el-form-item>
<el-form-item label="使用单位" prop="userUnit">
<el-input v-model="form.userUnit" placeholder="请输入使用单位" />
</el-form-item>
<el-form-item label="产品编号" prop="productNo">
<el-input v-model="form.productNo" placeholder="请输入产品编号" />
</el-form-item>
<el-form-item label="设备代码" prop="deviceCode">
<el-input v-model="form.deviceCode" placeholder="请输入设备代码" />
</el-form-item>
<el-form-item label="检测机构" prop="inspectionAgency">
<el-input v-model="form.inspectionAgency" placeholder="请输入检测机构" />
</el-form-item>
<el-form-item label="报告编号" prop="reportNo">
<el-input v-model="form.reportNo" placeholder="请输入报告编号" />
</el-form-item>
<el-form-item label="最近检时间" prop="lastInspectionDate">
<el-date-picker clearable
v-model="form.lastInspectionDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择最近检时间">
</el-date-picker>
</el-form-item>
<el-form-item label="下一次检时间" prop="nextInspectionDate">
<el-date-picker clearable
v-model="form.nextInspectionDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择下一次检时间">
</el-date-picker>
</el-form-item>
<el-form-item label="使用介质" prop="mediumUsed">
<el-input v-model="form.mediumUsed" placeholder="请输入使用介质" />
</el-form-item>
<el-form-item label="办证日期" prop="certificationDate">
<el-date-picker clearable
v-model="form.certificationDate"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择办证日期">
</el-date-picker>
</el-form-item>
<el-form-item label="有效容积" prop="effectiveCapacity">
<el-input v-model="form.effectiveCapacity" placeholder="请输入有效容积" />
</el-form-item>
<el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="Tank">
import { listTank, getTank, delTank, addTank, updateTank } from "@/api/system/tank";
const { proxy } = getCurrentInstance();
const tankList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
deviceName: null,
userUnit: null,
productNo: null,
deviceCode: null,
inspectionAgency: null,
reportNo: null,
lastInspectionDate: null,
nextInspectionDate: null,
mediumUsed: null,
certificationDate: null,
effectiveCapacity: null,
},
rules: {
deviceName: [
{ required: true, message: "设备名称不能为空", trigger: "blur" }
],
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询储罐台账列表 */
function getList() {
loading.value = true;
listTank(queryParams.value).then(response => {
tankList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
deviceName: null,
userUnit: null,
productNo: null,
deviceCode: null,
inspectionAgency: null,
reportNo: null,
lastInspectionDate: null,
nextInspectionDate: null,
mediumUsed: null,
certificationDate: null,
effectiveCapacity: null,
remarks: null
};
proxy.resetForm("tankRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加储罐台账";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getTank(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改储罐台账";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["tankRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateTank(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addTank(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除储罐台账编号为"' + _ids + '"的数据项?').then(function() {
return delTank(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('system/tank/export', {
...queryParams.value
}, `tank_${new Date().getTime()}.xlsx`)
}
getList();
</script>
<style>
.input-width {
width: 200px;
}
</style>

@ -232,6 +232,9 @@
</template>
</el-form>
</template>
<script setup>

Loading…
Cancel
Save