Compare commits
4 Commits
0767228b64
...
8ef3a7c6f1
| Author | SHA1 | Date |
|---|---|---|
|
|
8ef3a7c6f1 | |
|
|
06b10364fa | |
|
|
37747116ed | |
|
|
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" },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@
|
|||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="初始密码">
|
||||
<el-input v-model="formData.password" type="password" placeholder="请输入密码" show-password />
|
||||
<el-input v-model="formData.password" type="password" placeholder="请输入密码" show-password
|
||||
:disabled="!!props.userId" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
|
@ -35,10 +36,10 @@
|
|||
|
||||
<el-form-item label="所属单位">
|
||||
<div class="TreeBox">
|
||||
<el-tree :data="unitTreeData" :props="treeProps" show-line highlight-current default-expand-all
|
||||
<el-tree ref="treeRef" :current-node-key="formData.deptId" :data="unitTreeData"
|
||||
:props="treeProps" node-key="id" show-line highlight-current default-expand-all
|
||||
@current-change="handleUnitChange" :expand-on-click-node="false" class="unit-tree" />
|
||||
</div>
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="角色">
|
||||
|
|
@ -63,11 +64,11 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { getUser, deptTreeSelect, addUser } from '@/api/system/user.js'
|
||||
import { getUser, deptTreeSelect, addUser, updateUser } from '@/api/system/user.js'
|
||||
import { listRole } from '@/api/system/role.js'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
import { ref, onBeforeMount } from 'vue'
|
||||
import { ref, onBeforeMount, onMounted, watch, nextTick } from 'vue'
|
||||
const props = defineProps({
|
||||
userId: {
|
||||
type: Number || String,
|
||||
|
|
@ -103,6 +104,9 @@ const roleList = ref([])
|
|||
// 所属单位树形数据
|
||||
const unitTreeData = ref([])
|
||||
|
||||
// 树组件引用
|
||||
const treeRef = ref(null)
|
||||
|
||||
// 树形结构配置
|
||||
const treeProps = {
|
||||
children: 'children',
|
||||
|
|
@ -113,6 +117,12 @@ onBeforeMount(() => {
|
|||
getUnitTree()
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
if (props.userId) {
|
||||
getUserDetail()
|
||||
}
|
||||
})
|
||||
|
||||
// 查询角色
|
||||
const getRoleList = async () => {
|
||||
let res = await listRole()
|
||||
|
|
@ -133,14 +143,33 @@ const getUnitTree = async () => {
|
|||
// 查询用户详情
|
||||
|
||||
const getUserDetail = async () => {
|
||||
let res = await getUser({
|
||||
account: formData.value.account
|
||||
})
|
||||
let res = await getUser(props.userId)
|
||||
if (res.code === 200) {
|
||||
formData.value = res.data
|
||||
console.log('用户详情:', res.data)
|
||||
formData.value.userName = res.data.userName // 账户名
|
||||
formData.value.nickName = res.data.nickName // 姓名
|
||||
formData.value.password = res.data.password // 初始密码
|
||||
formData.value.phonenumber = res.data.phonenumber // 联系电话
|
||||
formData.value.email = res.data.email // 邮箱
|
||||
// 角色
|
||||
formData.value.roleId = res.data.roleId
|
||||
formData.value.roleName = res.data.roleName
|
||||
// 选中所属单位
|
||||
formData.value.deptId = res.data.dept.deptId
|
||||
formData.value.deptName = res.data.dept.deptName
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 监听 deptId 变化,手动设置树节点高亮
|
||||
watch(() => formData.value.deptId, (newVal) => {
|
||||
if (newVal && treeRef.value) {
|
||||
nextTick(() => {
|
||||
treeRef.value.setCurrentKey(newVal)
|
||||
})
|
||||
}
|
||||
}, { immediate: true })
|
||||
|
||||
// 角色选择事件
|
||||
const handleRoleChange = (roleId) => {
|
||||
console.log('Selected roleId:', roleId)
|
||||
|
|
@ -164,13 +193,17 @@ const handleClose = () => {
|
|||
}
|
||||
|
||||
// 提交表单
|
||||
const handleSubmit = () => {
|
||||
const handleSubmit = async () => {
|
||||
console.log('提交数据:', formData.value)
|
||||
// 校验表单
|
||||
if (!formData.value.roleId) {
|
||||
ElMessage.warning('请选择角色')
|
||||
return
|
||||
}
|
||||
if (!formData.value.password && !props.userId) {
|
||||
ElMessage.warning('请输入初始密码')
|
||||
return
|
||||
}
|
||||
if (!formData.value.deptId) {
|
||||
ElMessage.warning('请选择所属单位')
|
||||
return
|
||||
|
|
@ -188,16 +221,33 @@ const handleSubmit = () => {
|
|||
return
|
||||
}
|
||||
|
||||
const isEditMode = !!props.userId
|
||||
const fetchFunc = isEditMode ? updateUser : addUser
|
||||
const successMsg = isEditMode ? '更新成功' : '添加成功'
|
||||
const errorMsg = isEditMode ? '更新失败' : '添加失败'
|
||||
|
||||
addUser(formData.value).then(res => {
|
||||
const params = {
|
||||
...formData.value,
|
||||
userId: props.userId
|
||||
}
|
||||
|
||||
if (isEditMode) {
|
||||
delete params.password
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await fetchFunc(params)
|
||||
if (res.code === 200) {
|
||||
ElMessage.success('添加成功')
|
||||
ElMessage.success(successMsg)
|
||||
props.CloseDialog()
|
||||
} else {
|
||||
ElMessage.error(res.msg || '添加失败')
|
||||
ElMessage.error(res.msg || errorMsg)
|
||||
}
|
||||
})
|
||||
|
||||
} catch (error) {
|
||||
ElMessage.error(errorMsg)
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 提交逻辑
|
||||
// props.CloseDialog()
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="phonenumber" label="联系电话" />
|
||||
<el-table-column prop="remark" label="角色" />
|
||||
<el-table-column prop="roleNames" label="角色" />
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template #default="{ row }">
|
||||
<el-tag :type="getStatusTagType(row.status)">{{ statusMap[row.status] }}</el-tag>
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, onMounted, getCurrentInstance, reactive, toRefs, nextTick } from 'vue'
|
||||
import { ref, onMounted, getCurrentInstance, reactive } from 'vue'
|
||||
import { listDept } from '@/api/treeRatingManagement'
|
||||
import { listUser, delUser } from '@/api/system/user.js'
|
||||
import UserDialog from "./UserDialog.vue";
|
||||
|
|
@ -129,6 +129,7 @@ const statusMap = {
|
|||
'0': '已生效',
|
||||
'1': '已停用',
|
||||
'2': '待审核',
|
||||
'3': '已驳回',
|
||||
}
|
||||
|
||||
const dialogShow = ref(false); // 新增账户弹窗显示状态
|
||||
|
|
@ -293,6 +294,7 @@ const getStatusTagType = (status) => {
|
|||
if (status === '0') return 'success'
|
||||
if (status === '1') return 'info'
|
||||
if (status === '2') return 'primary'
|
||||
if (status === '3') return 'danger'
|
||||
return 'info'
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,18 +2,18 @@
|
|||
<template>
|
||||
<div class="MainBox">
|
||||
<div class="FormBox card-box">
|
||||
<el-form :model="formData" inline ref="formRef">
|
||||
<el-form-item label="用户名" prop="username">
|
||||
<el-input v-model="formData.username" placeholder="请输入用户名"></el-input>
|
||||
<el-form :model="queryData" inline ref="formRef">
|
||||
<el-form-item label="用户名" prop="userName">
|
||||
<el-input v-model="queryData.userName" placeholder="请输入用户名"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间范围" prop="timeRange">
|
||||
<el-date-picker v-model="formData.timeRange" type="daterange" value-format="yyyy-MM-dd"
|
||||
<el-date-picker v-model="queryData.timeRange" type="daterange" value-format="YYYY-MM-DD"
|
||||
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="ButtonBox">
|
||||
<el-button type="primary" @click="handleSearch">查询</el-button>
|
||||
<el-button type="primary" @click="handleSearch">重置</el-button>
|
||||
<el-button type="primary" @click="handleReset">重置</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-box">
|
||||
|
|
@ -27,12 +27,18 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="phonenumber" label="联系电话" />
|
||||
<el-table-column prop="remark" label="角色" />
|
||||
<el-table-column prop="status" label="状态" />
|
||||
<el-table-column prop="roleNames" label="角色" />
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template #default="{ row }">
|
||||
<el-tag type="primary">
|
||||
{{ statusMap[row.status] || '-' }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operation" label="操作" width="100">
|
||||
<template #default="scope">
|
||||
<div class="FlexBox">
|
||||
<el-button type="text" size="mini" @click="handleApprove(scope.row)">审批</el-button>
|
||||
<el-button type="text" size="mini" @click="openApproveDialog(scope.row)">审批</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -45,17 +51,41 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<el-dialog v-model="approveDialogVisible" title="用户审批" width="500px" :close-on-click-modal="false">
|
||||
<el-form :model="approveForm" :rules="approveRules" ref="approveFormRef" label-width="100px">
|
||||
<el-form-item label="审核状态" prop="auditStatus">
|
||||
<el-radio-group v-model="approveForm.auditStatus">
|
||||
<el-radio label="1">通过</el-radio>
|
||||
<el-radio label="2">驳回</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核意见" prop="auditOpinion">
|
||||
<el-input v-model="approveForm.auditOpinion" type="textarea" :rows="4" placeholder="请输入审核意见" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="closeApproveDialog">取消</el-button>
|
||||
<el-button type="primary" @click="submitApprove">确定</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import dayjs from "dayjs";
|
||||
import { ref, onBeforeMount } from "vue";
|
||||
import { listUser } from "@/api/system/user";
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { listUser, FetchUserReview } from "@/api/system/user";
|
||||
// 状态映射
|
||||
const statusMap = {
|
||||
'0': '已生效',
|
||||
'1': '已停用',
|
||||
'2': '待审核',
|
||||
'3': '已驳回',
|
||||
}
|
||||
|
||||
// 查询表单
|
||||
const formData = ref({
|
||||
username: "",
|
||||
const queryData = ref({
|
||||
userName: "",
|
||||
timeRange: [],
|
||||
});
|
||||
|
||||
|
|
@ -72,19 +102,74 @@ const pageInfo = ref({
|
|||
// 表格数据
|
||||
const tableData = ref([]);
|
||||
|
||||
// 当前审批的用户
|
||||
const currentUser = ref();
|
||||
|
||||
// 审批弹窗
|
||||
const approveDialogVisible = ref(false);
|
||||
const approveFormRef = ref();
|
||||
const approveForm = ref({
|
||||
auditStatus: '1',
|
||||
auditOpinion: ''
|
||||
});
|
||||
|
||||
// 审批表单验证规则
|
||||
const approveRules = ref({
|
||||
auditStatus: [
|
||||
{ required: true, message: '请选择审核状态', trigger: 'change' }
|
||||
],
|
||||
auditOpinion: [
|
||||
{
|
||||
required: true,
|
||||
message: '驳回时审核意见为必填项',
|
||||
trigger: 'blur',
|
||||
validator: (rule, value, callback) => {
|
||||
if (approveForm.value.auditStatus === '0' && !value) {
|
||||
callback(new Error('驳回时审核意见为必填项'));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// 分页切换
|
||||
const handleCurrentChange = (val) => {
|
||||
pageInfo.value.pageNum = val;
|
||||
getinit();
|
||||
}
|
||||
|
||||
onBeforeMount(() => {
|
||||
getinit();
|
||||
});
|
||||
|
||||
// 查询用户列表
|
||||
const handleSearch = () => {
|
||||
pageInfo.value.pageNum = 1;
|
||||
getinit();
|
||||
}
|
||||
|
||||
// 重置查询表单
|
||||
const handleReset = () => {
|
||||
queryData.value = {
|
||||
userName: "",
|
||||
timeRange: [],
|
||||
};
|
||||
pageInfo.value.pageNum = 1;
|
||||
getinit();
|
||||
}
|
||||
|
||||
// 初始化查询用户列表
|
||||
const getinit = async () => {
|
||||
console.log(queryData.value.timeRange,'时间范围');
|
||||
let query = {
|
||||
username: formData.value.username,
|
||||
startTime: formData.value.timeRange[0] ? dayjs(formData.value.timeRange[0]).format('YYYY-MM-DD') : '',
|
||||
endTime: formData.value.timeRange[1] ? dayjs(formData.value.timeRange[1]).format('YYYY-MM-DD') : '',
|
||||
userName: queryData.value.userName,
|
||||
startTime: queryData.value.timeRange[0] ? dayjs(queryData.value.timeRange[0]).format('YYYY-MM-DD') : '',
|
||||
endTime: queryData.value.timeRange[1] ? dayjs(queryData.value.timeRange[1]).format('YYYY-MM-DD') : '',
|
||||
pageNum: pageInfo.value.pageNum,
|
||||
pageSize: pageInfo.value.pageSize,
|
||||
pageSize: pageInfo.value.pageSize,
|
||||
status: 2
|
||||
};
|
||||
loading.value = true;
|
||||
let res = await listUser(query);
|
||||
|
|
@ -95,6 +180,46 @@ const getinit = async () => {
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
// 打开审批弹窗
|
||||
const openApproveDialog = (row) => {
|
||||
currentUser.value = row;
|
||||
approveForm.value = {
|
||||
auditStatus: '1',
|
||||
auditOpinion: ''
|
||||
};
|
||||
approveDialogVisible.value = true;
|
||||
}
|
||||
|
||||
// 关闭审批弹窗
|
||||
const closeApproveDialog = () => {
|
||||
approveDialogVisible.value = false;
|
||||
currentUser.value = null;
|
||||
getinit();
|
||||
}
|
||||
|
||||
// 提交审批
|
||||
const submitApprove = async () => {
|
||||
await approveFormRef.value.validate(async (valid) => {
|
||||
if (valid) {
|
||||
let params = {
|
||||
userId: currentUser.value.userId,
|
||||
auditStatus: approveForm.value.auditStatus,
|
||||
auditOpinion: approveForm.value.auditOpinion,
|
||||
status: approveForm.value.auditStatus === '1' ? 0 : 3
|
||||
};
|
||||
|
||||
let res = await FetchUserReview(params);
|
||||
if (res.code === 200) {
|
||||
ElMessage.success('操作成功');
|
||||
closeApproveDialog();
|
||||
} else {
|
||||
ElMessage.error(res.msg || '操作失败');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.MainBox {
|
||||
|
|
|
|||
|
|
@ -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 pageSize = ref(10); // 每页显示条数
|
||||
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 = '';
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -40,10 +40,10 @@
|
|||
|
||||
<div class="card-box">
|
||||
<el-table v-loading="loading" :data="tableData" >
|
||||
<el-table-column prop="unitName" label="单位名称"></el-table-column>
|
||||
<el-table-column prop="unitType" label="单位类型">
|
||||
<el-table-column prop="deptName" label="单位名称"></el-table-column>
|
||||
<el-table-column prop="deptType" label="单位类型">
|
||||
<template #default="scope">
|
||||
{{ getUnitTypeName(scope.row.unitType) }}
|
||||
{{ getUnitTypeName(scope.row.deptType) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="areaName" label="所属区域"></el-table-column>
|
||||
|
|
@ -78,6 +78,7 @@
|
|||
<script setup name="Index">
|
||||
import { ref, onMounted } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { listDept } from "@/api/system/dept";
|
||||
import { listUnitArchive, delUnitArchive, changeUnitArchiveStatus } from "@/api/unit";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
|
||||
|
|
@ -103,7 +104,7 @@ const getList = async () => {
|
|||
loading.value = true;
|
||||
try {
|
||||
const params = {
|
||||
unitType: parseInt(activeTab.value),
|
||||
deptType: parseInt(activeTab.value),
|
||||
pageNum: pageNum.value,
|
||||
pageSize: pageSize.value
|
||||
};
|
||||
|
|
@ -119,7 +120,7 @@ const getList = async () => {
|
|||
params.status = queryForm.value.status;
|
||||
}
|
||||
|
||||
const response = await listUnitArchive(params);
|
||||
const response = await listDept(params);
|
||||
if (response.code === 200) {
|
||||
tableData.value = response.rows || response.data || [];
|
||||
total.value = response.total || 0;
|
||||
|
|
@ -253,13 +254,13 @@ const handleDelete = (row) => {
|
|||
};
|
||||
|
||||
// 根据unitType获取单位类型名称
|
||||
const getUnitTypeName = (unitType) => {
|
||||
const getUnitTypeName = (deptType) => {
|
||||
const typeMap = {
|
||||
1: '施工单位',
|
||||
2: '监理单位',
|
||||
3: '业主单位'
|
||||
};
|
||||
return typeMap[unitType] || '未知类型';
|
||||
return typeMap[deptType] || '未知类型';
|
||||
};
|
||||
|
||||
// 组件挂载时获取数据
|
||||
|
|
|
|||
Loading…
Reference in New Issue