integrated_traffic_vue/src/views/open_circuit/job_data/index.vue

226 lines
6.7 KiB
Vue
Raw Normal View History

2024-01-05 14:32:49 +08:00
<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="50px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="6">
<el-form-item label="编号" prop="KEYWORDS">
<el-input
v-model="searchForm.KEYWORDS"
placeholder="请输入关键字"
/>
</el-form-item>
</el-col>
2024-02-21 09:42:49 +08:00
<el-col v-if="entrance === 'job_data'" :span="6">
2024-02-29 08:46:56 +08:00
<el-form-item label="状态" prop="STEP_ID">
<el-select v-model="searchForm.STEP_ID">
2024-01-05 14:32:49 +08:00
<el-option
2024-02-29 08:46:56 +08:00
v-for="item in stepList"
:key="item.STEP_ID"
:label="item.STEP_NAME"
:value="item.STEP_ID"
2024-01-05 14:32:49 +08:00
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPagination">
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
v-model:pagination="pagination"
2024-02-21 09:42:49 +08:00
:data="list"
2024-01-05 14:32:49 +08:00
@get-data="fnGetData"
>
<el-table-column label="序号" width="70">
2024-02-21 09:42:49 +08:00
<template #default="{ $index }">
2024-01-05 14:32:49 +08:00
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column prop="CHECK_NO" label="编号" show-overflow-tooltip />
<el-table-column prop="APPLY_USER_NAME" label="填写人" />
<el-table-column
2024-02-29 08:46:56 +08:00
prop="CONFIRM_USER_NAME"
2024-01-05 14:32:49 +08:00
label="作业负责人"
show-overflow-tooltip
/>
<el-table-column label="所在单位负责人" show-overflow-tooltip>
2024-02-21 09:42:49 +08:00
<template #default="{ row }">
2024-02-29 08:46:56 +08:00
{{ row.LEADER_USER_NAME || " 已跳过" }}
2024-01-05 14:32:49 +08:00
</template>
</el-table-column>
<el-table-column
label="消防、安全管理部门负责人"
show-overflow-tooltip
width="200"
>
2024-02-21 09:42:49 +08:00
<template #default="{ row }">
2024-02-29 08:46:56 +08:00
{{ row.AUDIT_DEPARTMENT_NAME || " 已跳过" }}
2024-01-05 14:32:49 +08:00
</template>
</el-table-column>
<el-table-column label="审批部门负责人" show-overflow-tooltip>
2024-02-21 09:42:49 +08:00
<template #default="{ row }">
2024-02-29 08:46:56 +08:00
{{ row.APPROVE_USER_NAME || " 已跳过" }}
2024-01-05 14:32:49 +08:00
</template>
</el-table-column>
<el-table-column
prop="ACCEPT_USER_NAME"
label="验收部门负责人"
show-overflow-tooltip
/>
<el-table-column label="审核状态">
2024-02-21 09:42:49 +08:00
<template #default="{ row }">
2024-02-29 08:46:56 +08:00
<span v-if="row.STEP_ID === 0"></span>
<span v-else-if="row.STEP_ID !== -1">{{ row.NEXT_STEP_NAME }}</span>
<span v-else>{{ row.STEP_NAME }}</span>
2024-01-05 14:32:49 +08:00
</template>
</el-table-column>
2024-01-11 17:15:52 +08:00
<el-table-column label="操作" width="250">
2024-02-21 09:42:49 +08:00
<template #default="{ row }">
2024-01-11 17:15:52 +08:00
<el-button
2024-02-29 08:46:56 +08:00
v-if="
entrance === 'job_data' &&
row.STATUS > -1 &&
row.NEXT_STEP_ID !== 99
"
2024-01-11 17:15:52 +08:00
type="primary"
text
link
@click="
router.push({
path: '/open_circuit/job_data/add_video',
2024-02-29 08:46:56 +08:00
query: {
CUTROAD_ID: row.CUTROAD_ID,
CHECK_NO: row.CHECK_NO,
},
2024-01-11 17:15:52 +08:00
})
"
>
添加监控
</el-button>
2024-02-29 08:46:56 +08:00
<el-button
v-if="
entrance === 'archive' &&
row.NEXT_STEP_ID === 99 &&
row.VIDEO_PATH
"
type="primary"
text
link
@click="fnPreviewVideo(row.VIDEO_PATH)"
>
查看验收视频
</el-button>
2024-01-05 14:32:49 +08:00
<el-button
2024-02-21 09:42:49 +08:00
v-if="entrance === 'job_data'"
2024-01-05 14:32:49 +08:00
type="primary"
text
link
2024-02-29 08:46:56 +08:00
@click="fnFlowChart(row.CUTROAD_ID)"
2024-01-05 14:32:49 +08:00
>
流程图
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path:
props.entrance === 'job_data'
? '/open_circuit/job_data/view'
: '/open_circuit/archive/view',
query: { CUTROAD_ID: row.CUTROAD_ID, entrance },
})
"
>
审批表详情
</el-button>
</template>
</el-table-column>
</layout-table>
</layout-card>
<flow-chart
v-model:visible="data.flowChartDialog.visible"
2024-02-29 08:46:56 +08:00
:flow-list="data.flowChartDialog.flowList"
:flowing="data.flowChartDialog.flowing"
/>
<layout-video
v-model:visible="data.videoDialog.visible"
:src="data.videoDialog.src"
append-to-body
2024-01-05 14:32:49 +08:00
/>
</div>
</template>
<script setup>
2024-02-29 08:46:56 +08:00
import { serialNumber } from "@/assets/js/utils.js";
2024-01-05 14:32:49 +08:00
import { useRouter } from "vue-router";
import useListData from "@/assets/js/useListData.js";
2024-02-29 08:46:56 +08:00
import { reactive, ref } from "vue";
2024-01-05 14:32:49 +08:00
import FlowChart from "./components/flow_chart.vue";
2024-02-29 08:46:56 +08:00
import {
getOpenCircuitFlow,
getOpenCircuitList,
getTaskSetps,
} from "@/request/eight_work.js";
import LayoutVideo from "@/components/video/index.vue";
2024-01-05 14:32:49 +08:00
const props = defineProps({
entrance: {
type: String,
default: "job_data",
},
});
2024-02-29 08:46:56 +08:00
const stepList = ref([]);
const getStepList = async () => {
const { list } = await getTaskSetps({ TASK_ID: 1 });
stepList.value = [
{ STEP_NAME: "请选择", STEP_ID: "" },
...list,
{ STEP_NAME: "验收归档", STEP_ID: "99" },
];
};
const fnPreviewVideo = (VIDEO_PATH) => {
data.videoDialog.visible = true;
data.videoDialog.src = VIDEO_PATH;
};
getStepList();
2024-01-05 14:32:49 +08:00
const router = useRouter();
2024-01-05 17:33:18 +08:00
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getOpenCircuitList, {
2024-02-29 08:46:56 +08:00
otherParams: props.entrance === "archive" ? { STEP_ID: "99" } : {},
2024-01-05 17:33:18 +08:00
});
2024-01-05 14:32:49 +08:00
const data = reactive({
flowChartDialog: {
visible: false,
2024-02-29 08:46:56 +08:00
flowList: {},
flowing: {},
},
videoDialog: {
visible: false,
src: "",
2024-01-05 14:32:49 +08:00
},
});
2024-02-29 08:46:56 +08:00
const fnFlowChart = async (CUTROAD_ID) => {
const { flowList, flowingWork } = await getOpenCircuitFlow({ CUTROAD_ID });
2024-01-05 14:32:49 +08:00
data.flowChartDialog.visible = true;
2024-02-29 08:46:56 +08:00
data.flowChartDialog.flowList = flowList;
data.flowChartDialog.flowing = flowingWork;
2024-01-05 14:32:49 +08:00
};
</script>
<style scoped></style>