feat(工作票): 实现工作票签发审核功能
添加工作票API接口文件,包含列表和详情查询 修改路由配置和页面标题为"工作票签发审核" 完善列表页、详情页和弹窗的数据获取和展示逻辑
This commit is contained in:
parent
0767228b64
commit
f56c7923df
|
|
@ -0,0 +1,18 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询工作票列表
|
||||
export function FetchWorkTicketList(params) {
|
||||
return request({
|
||||
url: '/manage/contractor/workTicket/list',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 查询工作票详情
|
||||
export function FetchWorkTicketDetail(id) {
|
||||
return request({
|
||||
url: '/manage/contractor/workTicket/' + id,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
|
@ -223,7 +223,7 @@ export const constantRoutes = [
|
|||
component: () =>
|
||||
import("@/views/proprietor/TicketIssueAudit/index.vue"),
|
||||
name: "TicketIssueAudit",
|
||||
meta: { title: "票证签发审核", icon: "table" },
|
||||
meta: { title: "工作票签发审核", icon: "table" },
|
||||
},
|
||||
{
|
||||
path: "/proprietor/TicketIssueAudit/Detail",
|
||||
|
|
@ -231,7 +231,7 @@ export const constantRoutes = [
|
|||
import("@/views/proprietor/TicketIssueAudit/Detail.vue"),
|
||||
name: "TicketIssueAuditDetail",
|
||||
hidden: true,
|
||||
meta: { title: "票证签发审核详情", icon: "table" },
|
||||
meta: { title: "工作票签发审核详情", icon: "table" },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!-- 业主模块-票证签发审核-列表页 -->
|
||||
<!-- 业主模块-工作票签发审核-详情页 -->
|
||||
<template>
|
||||
<div class="MainBox">
|
||||
<div class="ticket-detail-container">
|
||||
|
|
@ -158,7 +158,8 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { FetchWorkTicketDetail } from '@/api/workTicket'
|
||||
|
||||
const formData = ref({
|
||||
necessary: null,
|
||||
|
|
|
|||
|
|
@ -63,11 +63,16 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { ref,onBeforeMount } from 'vue'
|
||||
import { UploadFilled } from '@element-plus/icons-vue'
|
||||
import { FetchWorkTicketDetail } from '@/api/workTicket'
|
||||
|
||||
const auditResult = ref('')
|
||||
const props = defineProps({
|
||||
Tid: {
|
||||
type: Number || String,
|
||||
default: ''
|
||||
},
|
||||
show: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
|
|
@ -78,6 +83,21 @@ const props = defineProps({
|
|||
}
|
||||
})
|
||||
|
||||
onBeforeMount(() => {
|
||||
if (props.Tid) {
|
||||
getDetail();
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
// 获取详情
|
||||
const getDetail = async () => {
|
||||
let res = await FetchWorkTicketDetail(props.Tid);
|
||||
if (res.code == 200) {
|
||||
formData.value = res.data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 项目树形结构数据
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<!-- 业主模块-票证签发审核-列表页 -->
|
||||
<!-- 业主模块-工作票签发审核-列表页 -->
|
||||
<template>
|
||||
<div class="MainBox">
|
||||
<el-tabs v-model="activeTab" class="mb-4">
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
<el-form :model="queryForm" inline class="card-box mb-4" label-position="top">
|
||||
<el-form-item label="项目名称/编号">
|
||||
<el-input v-model="queryForm.name" placeholder="请输入项目名称/编号"></el-input>
|
||||
<el-input v-model="queryForm.keyword" placeholder="请输入项目名称/编号"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="提交时间">
|
||||
<el-date-picker v-model="queryForm.dateRange" type="daterange" value-format="yyyy-MM-dd"
|
||||
|
|
@ -43,17 +43,17 @@
|
|||
</el-form>
|
||||
|
||||
<div class="card-box">
|
||||
<el-table :data="tableData">
|
||||
<el-table :data="tableData" :loading="loading">
|
||||
<el-table-column prop="ticketNumber" label="票证编号"></el-table-column>
|
||||
<el-table-column prop="ticketType" label="票证类型"></el-table-column>
|
||||
<el-table-column prop="riskType" label="票证类型"></el-table-column>
|
||||
<el-table-column prop="projectName" label="项目名称"></el-table-column>
|
||||
<el-table-column prop="enterpriseName" label="施工单位"></el-table-column>
|
||||
<el-table-column prop="submitterName" label="提交人"></el-table-column>
|
||||
<el-table-column prop="submitTime" label="提交时间"></el-table-column>
|
||||
<el-table-column prop="updateBy" label="提交人"></el-table-column>
|
||||
<el-table-column prop="updateTime" label="提交时间"></el-table-column>
|
||||
<el-table-column prop="status" label="当前状态">
|
||||
<template #default="scope">
|
||||
<el-tag :type="scope.row.status === '待审核' ? 'primary' : 'danger'">
|
||||
{{ scope.row.status }}
|
||||
<el-tag :type="scope.row.status === '1' ? 'primary' : 'danger'">
|
||||
{{ statusCodeMap[scope.row.status] }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -72,70 +72,88 @@
|
|||
total }}
|
||||
条</span>
|
||||
<el-pagination v-model:current-page="pageNum" v-model:page-size="pageSize" :page-sizes="[5, 10, 20]"
|
||||
:total="total" layout="prev, pager, next"></el-pagination>
|
||||
:total="total" layout="prev, pager, next" @current-change="handlePageChange"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 审核签发票证-弹窗详情 -->
|
||||
<DialogBox v-if="dialogShow" ref="dialogRef" :show="dialogShow" :CloseDialog="handleCancel" />
|
||||
<DialogBox v-if="dialogShow" ref="dialogRef" :show="dialogShow" :CloseDialog="handleCancel" :Tid="Tid" />
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script setup name="Index">
|
||||
import { FetchWorkTicketList } from '@/api/workTicket.js'
|
||||
import DialogBox from "./DialogBox.vue";
|
||||
import { ref } from "vue";
|
||||
import { ref, onBeforeMount } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
|
||||
// 状态码参照表
|
||||
const statusCodeMap = {
|
||||
"0": "草稿",
|
||||
"1": "待审核",
|
||||
"2": "已签发",
|
||||
"3": "已驳回",
|
||||
"4": "已作废"
|
||||
}
|
||||
|
||||
const activeTab = ref("1"); // 当前选中的tab
|
||||
|
||||
// 查询表单数据
|
||||
const queryForm = ref({
|
||||
name: "",
|
||||
status: ""
|
||||
name: "", // 项目名称
|
||||
});
|
||||
|
||||
const dialogShow = ref(false);
|
||||
const Tid = ref(''); // 当前工作票ID
|
||||
const loading = ref(false); // 加载状态
|
||||
const dialogShow = ref(false); // 弹窗显示状态
|
||||
|
||||
// 表格数据
|
||||
const tableData = ref([
|
||||
{
|
||||
id: 1,
|
||||
ticketNumber: "123456",
|
||||
ticketType: "工作票",
|
||||
projectName: "项目A",
|
||||
enterpriseName: "中建一局",
|
||||
submitterName: "张三",
|
||||
submitTime: "2023-05-12 14:30",
|
||||
status: "待审核"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
ticketNumber: "123457",
|
||||
ticketType: "微信作业票",
|
||||
projectName: "项目B",
|
||||
enterpriseName: "中铁建工",
|
||||
submitterName: "李四",
|
||||
submitTime: "2023-05-13 09:45",
|
||||
status: "已驳回"
|
||||
}
|
||||
]);
|
||||
const tableData = ref([]);
|
||||
const pageNum = ref(1); // 当前页码
|
||||
const pageSize = ref(5); // 每页显示条数
|
||||
const total = ref(20); // 总记录数
|
||||
|
||||
|
||||
onBeforeMount(() => {
|
||||
getInit();
|
||||
})
|
||||
|
||||
// 处理审核签发点击事件
|
||||
const handleAuditClick = (row) => {
|
||||
console.log("审核签发", row);
|
||||
Tid.value = row.id;
|
||||
dialogShow.value = true;
|
||||
}
|
||||
|
||||
// 获取列表数据
|
||||
const getInit = async () => {
|
||||
let params = {
|
||||
pageNum: pageNum.value,
|
||||
pageSize: pageSize.value,
|
||||
name: queryForm.value.name,
|
||||
status: activeTab.value,
|
||||
}
|
||||
let res = await FetchWorkTicketList(params);
|
||||
console.log("数据列表", res);
|
||||
if (res.code === 200) {
|
||||
tableData.value = res.rows;
|
||||
total.value = res.total;
|
||||
}
|
||||
}
|
||||
|
||||
// 分页
|
||||
const handlePageChange = (page) => {
|
||||
pageNum.value = page;
|
||||
getInit();
|
||||
};
|
||||
|
||||
// 查询详情
|
||||
const handleDetailClick = (row) => {
|
||||
console.log("查看详情", row);
|
||||
router.push({
|
||||
path: "/proprietor/TicketIssueAudit/Detail",
|
||||
query: {
|
||||
id: row.id
|
||||
Tid: row.id
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -143,7 +161,8 @@ const handleDetailClick = (row) => {
|
|||
// 关闭弹窗
|
||||
const handleCancel = () => {
|
||||
console.log('关闭弹窗')
|
||||
dialogShow.value = false
|
||||
dialogShow.value = false;
|
||||
Tid.value = '';
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue