| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- <template>
- <ContentWrap>
- <!-- 搜索工作栏 -->
- <el-form
- class="-mb-15px"
- :model="queryParams"
- ref="queryFormRef"
- :inline="true"
- label-width="100px"
- >
- <el-form-item label="工程号" prop="projectNo">
- <el-input
- v-model="queryParams.projectNo"
- placeholder="请输入工程号"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
- </el-form-item>
-
- <!-- <el-form-item label="使用证编号 " prop="certificateNo">-->
- <!-- <el-input-->
- <!-- v-model="queryParams.certificateNo"-->
- <!-- placeholder="请输入使用证编号"-->
- <!-- clearable-->
- <!-- @keyup.enter="handleQuery"-->
- <!-- class="!w-240px"-->
- <!-- />-->
- <!-- </el-form-item>-->
- <el-form-item label="单位代码" prop="unitCode">
- <el-input
- v-model="queryParams.unitCode"
- placeholder="请输入单位代码"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
- </el-form-item>
- <el-form-item label="使用单位" prop="unitName">
- <el-input
- v-model="queryParams.unitName"
- placeholder="请输入使用单位"
- clearable
- @keyup.enter="handleQuery"
- class="!w-240px"
- />
- </el-form-item>
- <el-form-item label="责任部门" prop="relationDept">
- <DeptSelect
- v-model="queryParams.relationDept"
- placeholder="请选择责任部门"
- clearable
- class="!w-240px"
- />
- </el-form-item>
- <!-- 区域 -->
- <el-form-item label="区域" prop="equipDistrict">
- <AreaSelect v-model="queryParams.equipDistrict"
- placeholder="请选择区域"
- class="!w-[240px]"
- multiple
- collapse-tags
- collapse-tags-tooltip
- :clearable="true"
- @clear="handleAreaClear"
- @change="handleAreaChange"
- />
- </el-form-item>
- <!-- 街道 -->
- <el-form-item label="街道" prop="equipStreet">
- <StreetSelect v-model="queryParams.equipStreet"
- :district-ids="queryParams.equipDistrict"
- placeholder="请选择街道"
- class="!w-[240px]"
- multiple
- collapse-tags
- collapse-tags-tooltip
- :clearable="true"
- @clear="handleStreetClear"
- @change="handleStreetChange"
- />
- </el-form-item>
- <!-- 管道类别 -->
- <el-form-item label="管道类别" prop="pipeCategory">
- <el-select v-model="queryParams.pipeCategory" multiple placeholder="请选择管道类别" clearable class="!w-[240px]">
- <el-option v-for="item in pipeTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
- </el-select>
- </el-form-item>
- <el-form-item label="使用状态" prop="useStatus">
- <el-select
- v-model="queryParams.useStatus"
- placeholder="请选择使用状态"
- multiple
- clearable
- class="!w-240px"
- >
- <el-option
- v-for="dict in getStrDictOptions(DICT_TYPE.PIPE_USE_STATUS)"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- />
- </el-select>
- </el-form-item>
- <el-form-item class="ml-25">
- <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
- <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
- <el-button
- type="primary"
- plain
- @click="openForm('create')"
- v-hasPermi="['pressure:pipe-equipment:create']"
- >
- <Icon icon="ep:plus" class="mr-5px" /> 新增管道
- </el-button>
- <!-- 复制管道 -->
- <!-- <el-button
- type="primary"
- plain
- @click="handleCopyPipe"
- >
- <Icon icon="ep:document-copy" class="mr-5px" /> 复制管道
- </el-button> -->
- <!-- 同步市局 -->
- <el-button
- type="primary"
- plain
- @click="handleSyncCity"
- >
- <Icon icon="ep:refresh" class="mr-5px" /> 同步市局
- </el-button>
- <el-button
- type="success"
- plain
- @click="handleExport"
- :loading="exportLoading"
- >
- <Icon icon="ep:download" class="mr-5px" /> 导出
- </el-button>
- </el-form-item>
- </el-form>
- </ContentWrap>
- <!-- 列表 -->
- <ContentWrap>
- <el-table v-loading="loading" :data="list" :stripe="true" border>
- <!-- 子表的列表 -->
- <el-table-column type="expand">
- <template #default="scope">
- <PipeEquipmentDetailList :pipe-equipment-id="scope.row.id" />
- </template>
- </el-table-column>
- <el-table-column label="区域" align="center" prop="equipDistrict" sortable >
- <template #default="scope">
- <div>{{ scope.row.equipDistrictName }}</div>
- </template>
- </el-table-column>
- <el-table-column label="街道" align="center" prop="equipStreet" sortable >
- <template #default="scope">
- <div>{{ scope.row.equipStreetName }}</div>
- </template>
- </el-table-column>
- <!-- 工程号 -->
- <el-table-column label="工程号" align="center" prop="projectNo" />
- <!-- 工程名称 -->
- <el-table-column label="工程名称" align="center" prop="projectName" />
- <!-- 使用证号 -->
- <el-table-column label="使用证号" align="center" prop="certificateNo" />
- <!-- 单位名称 -->
- <el-table-column label="单位名称" align="center" prop="unitName" sortable />
- <!-- 单位地址 -->
- <el-table-column label="管道使用地址" align="center" prop="pipeAddress" />
- <!-- 管道使用地址 -->
- <!-- <el-table-column label="管道使用地址" align="center" prop="pipeAddress" /> -->
- <!-- 管道类别 -->
- <el-table-column label="管道类别" align="center" prop="pipeCategory" sortable >
- <template #default="scope">
- {{ pipeTypeOptions.find(i => i.value == scope.row.pipeCategory)?.label }}
- </template>
- </el-table-column>
- <el-table-column label="使用状态" align="center" prop="useStatus" min-width="100" sortable>
- <template #default="scope">
- <dict-tag :type="DICT_TYPE.PIPE_USE_STATUS" :value="scope.row.useStatus" />
- </template>
- </el-table-column>
- <el-table-column label="操作" align="center" min-width="120px" fixed="right">
- <template #default="scope">
- <el-button
- link
- type="primary"
- @click="openForm('update', scope.row.id)"
- v-hasPermi="['pressure:pipe-equipment:update']"
- >
- 编辑
- </el-button>
- <!-- <el-button
- link
- type="danger"
- @click="handleDelete(scope.row.id)"
- v-hasPermi="['pressure:pipe-equipment:delete']"
- >
- 删除
- </el-button> -->
- <el-button
- link
- type="default"
- @click="handleModifyRecord(scope.row.id)"
- >
- 修改记录
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <!-- 分页 -->
- <Pagination
- :total="total"
- v-model:page="queryParams.pageNo"
- v-model:limit="queryParams.pageSize"
- @pagination="getList"
- />
- </ContentWrap>
- <!-- 修改记录弹窗 -->
- <PipeEquipmentOperationRecord ref="operationRecordRef" @success="getList" />
- </template>
- <script setup lang="ts">
- import { EquipPipeApi, EquipPipeVO } from '@/api/pressure2/equippipe'
- import PipeEquipmentDetailList from './components/PipeEquipmentDetailList.vue'
- import AreaSelect from '@/views/system/equipcontainer/components/AreaSelect.vue'
- import StreetSelect from '@/views/system/equipcontainer/components/StreetSelect.vue'
- import DeptSelect from "@/views/pressure2/equipboilerscheduling/components/DeptSelect.vue";
- import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
- import { dateFormatter2 } from '@/utils/formatTime'
- import download from '@/utils/download'
- import {useRoute, useRouter} from 'vue-router'
- import PipeEquipmentOperationRecord from './components/PipeEquipmentOperationRecord.vue'
- /** 容器管道设备 列表 */
- defineOptions({ name: 'PipeEquipment' })
- const message = useMessage() // 消息弹窗
- const { t } = useI18n() // 国际化
- const router = useRouter()
- const loading = ref(true) // 列表的加载中
- const list = ref<EquipPipeVO[]>([]) // 列表的数据
- const total = ref(0) // 列表的总页数
- const queryParams = reactive({
- pageNo: 1,
- pageSize: 10,
- unitCode: undefined,
- equipDistrict: undefined,
- equipStreet: undefined,
- certificateNo: undefined,
- unitName: undefined,
- projectNo: undefined,
- useProjectName: undefined,
- pipeCategory: undefined,
- useStatus: undefined,
- relationDept: undefined,
- })
- const queryFormRef = ref() // 搜索的表单
- const pipeTypeOptions = computed(() => getStrDictOptions(DICT_TYPE.PIPE_TYPE))
- const areaStreetMap = ref<Map<number, number[]>>(new Map())
- const handleAreaClear = () => {
- queryParams.equipDistrict = undefined
- areaStreetMap.value.clear()
- }
- const handleAreaChange = (areas: number[]) => {
- queryParams.equipStreet = undefined
- areaStreetMap.value.clear()
- return
- }
- const handleStreetClear = () => {
- areaStreetMap.value.clear()
- }
- const handleStreetChange = (streets: number[], areaId: number) => {
- if (queryParams.equipDistrict && areaId === queryParams.equipDistrict) {
- areaStreetMap.value.set(areaId, streets)
- }
- }
- /** 查询列表 */
- const getList = async () => {
- loading.value = true
- try {
- const data = await EquipPipeApi.getEquipPipePage(queryParams)
- list.value = data.list
- total.value = data.total
- } finally {
- loading.value = false
- }
- }
- /** 搜索按钮操作 */
- const handleQuery = () => {
- queryParams.pageNo = 1
- getList()
- }
- /** 重置按钮操作 */
- const resetQuery = () => {
- queryFormRef.value.resetFields()
- handleQuery()
- }
- /** 导出按钮操作 */
- const exportLoading = ref(false)
- const handleExport = async () => {
- exportLoading.value = true
- try {
- const data =await EquipPipeApi.exportEquipPipe(queryParams)
- download.excel(data, '管道设备.xls')
- } finally {
- exportLoading.value = false
- }
- }
- /** 添加/修改操作 */
- const openForm = (type: string, id?: number) => {
- const query: any = { type }
- if (id) {
- query.id = id
- }
- router.push({
- name: 'PipeEquipmentForm',
- query
- })
- }
- /** 删除按钮操作 */
- const handleDelete = async (id: string) => {
- try {
- // 删除的二次确认
- await message.delConfirm()
- // 发起删除
- await EquipPipeApi.deleteEquipPipe(id)
- message.success(t('common.delSuccess'))
- // 刷新列表
- await getList()
- } catch {}
- }
- /** 修改记录 */
- const operationRecordRef = ref()
- const handleModifyRecord = (id: string) => {
- operationRecordRef.value.open(id)
- }
- /** 复制管道 */
- const handleCopyPipe = () => {
- console.log('复制管道')
- }
- /** 同步市局 */
- const handleSyncCity = () => {
- console.log('同步市局')
- }
- const route = useRoute()
- watch(() => route.path, async () => {
- if (route.path === '/sbda/pipe-equipment') {
- await getList()
- }
- })
- /** 初始化 **/
- onMounted(() => {
- console.log(pipeTypeOptions)
- getList()
- })
- </script>
|