|
@@ -1,20 +1,61 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <hc-card title="项目数据">
|
|
|
|
|
|
|
+ <hc-card id="add-card-target" title="项目管理">
|
|
|
<template #extra>
|
|
<template #extra>
|
|
|
- <el-button type="primary" class="mr-10px" @click="addRowClick">项目新增</el-button>
|
|
|
|
|
- <el-button type="warning" class="mr-10px">导入</el-button>
|
|
|
|
|
- <el-button type="danger" :disabled="tableCheckKeys.length <= 0" @click="batchDelClick">批量删除</el-button>
|
|
|
|
|
|
|
+ <!-- <el-button type="primary" class="mr-10px" @click="addRowClick">新增项目</el-button> -->
|
|
|
|
|
+ <el-button color="#20C98B" type="primary" @click="addRowClick">
|
|
|
|
|
+ <hc-icon class="text-white" name="add" />
|
|
|
|
|
+ <span class="text-white">新增项目</span>
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button type="warning" class="mr-10px" color="orange">
|
|
|
|
|
+ <HcIcon name="file-transfer" class="text-white" />
|
|
|
|
|
+ <span class="text-white">导入项目</span>
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ <el-button type="danger" :disabled="tableCheckKeys.length <= 0" @click="batchDelClick">
|
|
|
|
|
+ <HcIcon name="delete-bin" class="text-white" />
|
|
|
|
|
+ 删除项目
|
|
|
|
|
+ </el-button>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <template #search>
|
|
|
|
|
+ <div class="w-[150px]">
|
|
|
|
|
+ <el-select v-model="searchForm.projectType" filterable clearable block placeholder="项目类型" @change="searchClick">
|
|
|
|
|
+ <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ml-2 w-[150px]">
|
|
|
|
|
+ <el-select v-model="searchForm.projectType" filterable clearable block placeholder="路线类型" @change="searchClick">
|
|
|
|
|
+ <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="ml-2 w-[150px]">
|
|
|
|
|
+ <el-select v-model="searchForm.projectStage" filterable clearable block placeholder="项目阶段" @change="searchClick">
|
|
|
|
|
+ <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <div class="ml-2 w-[150px]">
|
|
|
|
|
+ <el-select v-model="searchForm.projectType" filterable clearable block placeholder="运营公司" @change="searchClick">
|
|
|
|
|
+ <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="relative ml-3 w-[260px]">
|
|
|
|
|
+ <hc-search-input v-model="searchForm.name" color="#151921" text="搜索" @search="searchClick" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
<hc-table
|
|
<hc-table
|
|
|
:column="tableColumn" :datas="tableData" :index-style="{ width: 60 }" :loading="tableLoading"
|
|
:column="tableColumn" :datas="tableData" :index-style="{ width: 60 }" :loading="tableLoading"
|
|
|
is-check :check-style="{ fixed: true, width: 29 }" @selection-change="tableCheckChange"
|
|
is-check :check-style="{ fixed: true, width: 29 }" @selection-change="tableCheckChange"
|
|
|
>
|
|
>
|
|
|
- <template #name="{ row }">
|
|
|
|
|
- <el-link type="primary" @click="editRowClick(row)">{{ row.name }}</el-link>
|
|
|
|
|
|
|
+ <template #key3="{ row }">
|
|
|
|
|
+ <!-- <el-link type="primary" @click="editRowClick(row)">{{ row.key3 }}</el-link> -->
|
|
|
|
|
+ <el-tag v-if="row.key3 === 1" type="primary">施工期</el-tag>
|
|
|
|
|
+ <el-tag v-if="row.key3 === 2" type="success">运营期</el-tag>
|
|
|
</template>
|
|
</template>
|
|
|
<template #action="{ row }">
|
|
<template #action="{ row }">
|
|
|
- <el-link type="warning" @click="rowEarningsClick(row)">收益数据</el-link>
|
|
|
|
|
- <el-link type="primary" @click="rowViewClick(row)">查看</el-link>
|
|
|
|
|
|
|
+ <el-link type="warning" @click="rowViewClick(row)">查看</el-link>
|
|
|
|
|
+ <el-link type="primary" @click="rowEarningsClick(row)">编辑</el-link>
|
|
|
|
|
+
|
|
|
<el-link type="danger" @click="rowDelClick(row)">删除</el-link>
|
|
<el-link type="danger" @click="rowDelClick(row)">删除</el-link>
|
|
|
</template>
|
|
</template>
|
|
|
</hc-table>
|
|
</hc-table>
|
|
@@ -23,10 +64,10 @@
|
|
|
</template>
|
|
</template>
|
|
|
</hc-card>
|
|
</hc-card>
|
|
|
|
|
|
|
|
- <!--新增、编辑-->
|
|
|
|
|
- <HcAddAndEdit v-model="isAddAndEditShow" :data="addAndEditForm" @close="addAndEditClose" @finish="addAndEditSubmit"/>
|
|
|
|
|
|
|
+ <!-- 新增、编辑 -->
|
|
|
|
|
+ <HcAddAndEdit v-model="isAddAndEditShow" :data="addAndEditForm" @close="addAndEditClose" @finish="addAndEditSubmit" />
|
|
|
|
|
|
|
|
- <!--查看-->
|
|
|
|
|
|
|
+ <!-- 查看 -->
|
|
|
<HcAddAndEdit v-model="isViewShow" :data="rowInfo" disabled @close="viewClose">
|
|
<HcAddAndEdit v-model="isViewShow" :data="rowInfo" disabled @close="viewClose">
|
|
|
<hc-card-item ui="hc-project-data-view-info">
|
|
<hc-card-item ui="hc-project-data-view-info">
|
|
|
<div class="hc-flex-center mb-24px">
|
|
<div class="hc-flex-center mb-24px">
|
|
@@ -36,23 +77,23 @@
|
|
|
</div>
|
|
</div>
|
|
|
<el-form :model="rowInfo" label-width="auto">
|
|
<el-form :model="rowInfo" label-width="auto">
|
|
|
<el-form-item label="通行费用:">
|
|
<el-form-item label="通行费用:">
|
|
|
- <el-input v-model="rowInfo.key20" placeholder="请输入通行费用" clearable disabled/>
|
|
|
|
|
|
|
+ <el-input v-model="rowInfo.key20" placeholder="请输入通行费用" clearable disabled />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="广告费用:">
|
|
<el-form-item label="广告费用:">
|
|
|
- <el-input v-model="rowInfo.key21" placeholder="请输入广告费用" clearable disabled/>
|
|
|
|
|
|
|
+ <el-input v-model="rowInfo.key21" placeholder="请输入广告费用" clearable disabled />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="服务区费用:">
|
|
<el-form-item label="服务区费用:">
|
|
|
- <el-input v-model="rowInfo.key22" placeholder="请输入服务区费用" clearable disabled/>
|
|
|
|
|
|
|
+ <el-input v-model="rowInfo.key22" placeholder="请输入服务区费用" clearable disabled />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
|
</HcAddAndEdit>
|
|
</HcAddAndEdit>
|
|
|
|
|
|
|
|
- <!--查看收益数据-->
|
|
|
|
|
|
|
+ <!-- 查看收益数据 -->
|
|
|
<hc-dialog v-model="isEarningsShow" widths="40rem" title="收益录入" is-footer-center @close="dialogEarningsClose">
|
|
<hc-dialog v-model="isEarningsShow" widths="40rem" title="收益录入" is-footer-center @close="dialogEarningsClose">
|
|
|
<el-form ref="formRef" :model="formModel" :rules="formRules" label-width="auto">
|
|
<el-form ref="formRef" :model="formModel" :rules="formRules" label-width="auto">
|
|
|
<el-form-item label="项目名称:">
|
|
<el-form-item label="项目名称:">
|
|
|
- <el-input v-model="formModel.name" placeholder="请输入项目名称" clearable disabled/>
|
|
|
|
|
|
|
+ <el-input v-model="formModel.name" placeholder="请输入项目名称" clearable disabled />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<hc-card-item ui="hc-project-data-view-info">
|
|
<hc-card-item ui="hc-project-data-view-info">
|
|
|
<div class="hc-flex-center mb-24px">
|
|
<div class="hc-flex-center mb-24px">
|
|
@@ -61,13 +102,13 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</div>
|
|
</div>
|
|
|
<el-form-item label="通行费用:">
|
|
<el-form-item label="通行费用:">
|
|
|
- <el-input v-model="formModel.key20" placeholder="请输入通行费用" clearable/>
|
|
|
|
|
|
|
+ <el-input v-model="formModel.key20" placeholder="请输入通行费用" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="广告费用:">
|
|
<el-form-item label="广告费用:">
|
|
|
- <el-input v-model="formModel.key21" placeholder="请输入广告费用" clearable/>
|
|
|
|
|
|
|
+ <el-input v-model="formModel.key21" placeholder="请输入广告费用" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="服务区费用:">
|
|
<el-form-item label="服务区费用:">
|
|
|
- <el-input v-model="formModel.key22" placeholder="请输入服务区费用" clearable/>
|
|
|
|
|
|
|
+ <el-input v-model="formModel.key22" placeholder="请输入服务区费用" clearable />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
@@ -79,18 +120,32 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import {nextTick, onMounted, ref} from 'vue'
|
|
|
|
|
-import {HcDelMsg} from "hc-vue3-ui";
|
|
|
|
|
|
|
+import { nextTick, onMounted, ref } from 'vue'
|
|
|
|
|
+import { HcDelMsg } from 'hc-vue3-ui'
|
|
|
import HcAddAndEdit from './data/addAndEdit.vue'
|
|
import HcAddAndEdit from './data/addAndEdit.vue'
|
|
|
|
|
+import { getDictionaryData } from '~src/utils/tools'
|
|
|
|
|
|
|
|
//渲染完成
|
|
//渲染完成
|
|
|
-onMounted(() => {
|
|
|
|
|
- searchClick()
|
|
|
|
|
|
|
+onMounted(async () => {
|
|
|
|
|
+ await getProStation()
|
|
|
|
|
+ await getProType()
|
|
|
|
|
+ searchClick().then()
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
//搜索条件
|
|
//搜索条件
|
|
|
-const searchForm = ref({current: 1, size: 20, total: 0})
|
|
|
|
|
|
|
+const searchForm = ref({ current: 1, size: 20, total: 0, projectStage: '', projectType: '', name:'' })
|
|
|
|
|
+
|
|
|
|
|
+//项目阶段
|
|
|
|
|
+const stateOptions = ref([])
|
|
|
|
|
+const getProStation = async () => {
|
|
|
|
|
+ stateOptions.value = await getDictionaryData('projectStage', true)
|
|
|
|
|
|
|
|
|
|
+}
|
|
|
|
|
+//项目类型
|
|
|
|
|
+const typeOptions = ref([])
|
|
|
|
|
+const getProType = async () => {
|
|
|
|
|
+ typeOptions.value = await getDictionaryData('projectType', true)
|
|
|
|
|
+ }
|
|
|
//搜索
|
|
//搜索
|
|
|
const searchClick = () => {
|
|
const searchClick = () => {
|
|
|
searchForm.value.current = 1
|
|
searchForm.value.current = 1
|
|
@@ -106,19 +161,19 @@ const pageChange = ({ current, size }) => {
|
|
|
|
|
|
|
|
//表格数据
|
|
//表格数据
|
|
|
const tableColumn = [
|
|
const tableColumn = [
|
|
|
- { key: 'name', name: '项目名称' },
|
|
|
|
|
- { key: 'key1', name: '起始年限', width: 100, align: 'center' },
|
|
|
|
|
- { key: 'key2', name: '结束年限', width: 100, align: 'center' },
|
|
|
|
|
- { key: 'key3', name: '成本(万元)', width: 100, align: 'center' },
|
|
|
|
|
- { key: 'key4', name: '收入(万元)', width: 100, align: 'center' },
|
|
|
|
|
- { key: 'key5', name: '收支平衡', width: 80, align: 'center' },
|
|
|
|
|
- { key: 'key6', name: '收益率', width: 80, align: 'center' },
|
|
|
|
|
|
|
+ { key: 'name', name: '项目类型' },
|
|
|
|
|
+ { key: 'key1', name: '线路类型', align: 'center' },
|
|
|
|
|
+ { key: 'key2', name: '路段名称', align: 'center' },
|
|
|
|
|
+ { key: 'key3', name: '项目阶段', align: 'center' },
|
|
|
|
|
+ { key: 'key4', name: '实际运营里程(公里)', align: 'center' },
|
|
|
|
|
+ { key: 'key5', name: '车道数', width: 80, align: 'center' },
|
|
|
|
|
+ { key: 'key6', name: '运营公司', align: 'center' },
|
|
|
{ key: 'action', name: '操作', width: 160, fixed:'right', align: 'center' },
|
|
{ key: 'action', name: '操作', width: 160, fixed:'right', align: 'center' },
|
|
|
]
|
|
]
|
|
|
const tableData = ref([
|
|
const tableData = ref([
|
|
|
- {id:1, name: 'xx高速公路1', key1: '2022年', key2: '2024年', key3: '200', key4: '150', key5: '0', key6: '0'},
|
|
|
|
|
- {id:2, name: 'xx高速公路2', key1: '2022年', key2: '2024年', key3: '200', key4: '150', key5: '0', key6: '0'},
|
|
|
|
|
- {id:3, name: 'xx高速公路3', key1: '2022年', key2: '2024年', key3: '200', key4: '150', key5: '0', key6: '0'},
|
|
|
|
|
|
|
+ { id:1, name: 'xx高速公路1', key1: '2022年', key2: '2024年', key3: 1, key4: '150', key5: '0', key6: '0' },
|
|
|
|
|
+ { id:2, name: 'xx高速公路2', key1: '2022年', key2: '2024年', key3: 2, key4: '150', key5: '0', key6: '0' },
|
|
|
|
|
+ { id:3, name: 'xx高速公路3', key1: '2022年', key2: '2024年', key3:1, key4: '150', key5: '0', key6: '0' },
|
|
|
])
|
|
])
|
|
|
|
|
|
|
|
//获取表格数据
|
|
//获取表格数据
|
|
@@ -172,7 +227,7 @@ const addAndEditClose = () => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//选择年份
|
|
//选择年份
|
|
|
-const yearOptions = [{value: '2024', label: '2024年'}]
|
|
|
|
|
|
|
+const yearOptions = [{ value: '2024', label: '2024年' }]
|
|
|
const changeYear = (val) => {
|
|
const changeYear = (val) => {
|
|
|
console.log(val)
|
|
console.log(val)
|
|
|
}
|
|
}
|