integrated_traffic_vue/src/views/keyprojects/outsourced/index.vue

244 lines
7.1 KiB
Vue

<template>
<div>
<el-card>
<el-form
:model="searchForm"
label-width="100px"
@submit.prevent="fnResetPagination"
>
<el-row>
<el-col :span="4">
<el-form-item label="关键字搜索" prop="KEYWORDS">
<el-input v-model="searchForm.KEYWORDS" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="创建单位" prop="CORP_NAME">
<el-input v-model="searchForm.CORP_NAME" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="施工相关方" prop="UNITS_ID">
<el-select
v-model="searchForm.UNITS_ID"
clearable
placeholder="请选择状态"
>
<el-option
v-for="item in data.unitsList"
:key="item.UNITS_ID"
:label="item.UNITS_NAME"
:value="item.UNITS_ID"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label-width="10px">
<el-button type="primary" native-type="submit">搜索</el-button>
<el-button native-type="reset" @click="fnResetPaginationTransfer">
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<layout-card>
<layout-table
:data="list"
@get-data="fnGetData"
v-model:pagination="pagination"
>
<el-table-column label="序号" width="60">
<template #default="{ $index }">
{{ serialNumber(pagination, $index) }}
</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="CORP_NAME"
label="创建单位"
/>
<el-table-column prop="OUTSOURCED_NAME" label="重点工程名称" />
<el-table-column prop="UNITS_NAME" label="施工相关方" />
<el-table-column label="辖区单位">
<template v-slot="{ row }">
<span v-if="row.JURISDICTION_UNIT_NAME">
{{ row.JURISDICTION_UNIT_NAME }}
</span>
<span v-else>{{ row.INVOLVING_CORPS_DEPART_NAME }}</span>
</template>
</el-table-column>
<el-table-column prop="UNITS_NAME" label="主管部门">
<template v-slot="{ row }">
<span v-if="row.Q_COMPETENT_DEPT_NAME">
{{ row.Q_COMPETENT_DEPT_NAME }}
</span>
<span v-else>{{ row.MANAGER_DEPARTMENT_NAME }}</span>
</template>
</el-table-column>
<el-table-column prop="DEPARTMENT_NAME" label="监管部门">
<template v-slot="{ row }">
<span v-if="row.Q_DEPARTMENT_NAME">
{{ row.Q_DEPARTMENT_NAME }}
</span>
<span v-else>{{ row.DEPARTMENT_NAME }}</span>
</template>
</el-table-column>
<el-table-column prop="MANAGE_CORPS_NAME" label="监理单位" />
<el-table-column prop="STATE" label="状态">
<template v-slot="{ row }">
<span v-if="row.STATE === '0'">未开始</span>
<span v-if="row.STATE === '1'">进行中</span>
<span v-if="row.STATE === '2'">已结束</span>
</template>
</el-table-column>
<el-table-column prop="CREATOR" label="创建人" />
<el-table-column label="操作" align="center" width="200">
<template v-slot="{ row }">
<el-button
type="primary"
text
link
@click="
router.push({
path: '/keyprojects/outsourced/view',
query: {
outsourcedId: row.OUTSOURCED_ID,
},
})
"
>
查看
</el-button>
<el-button
type="primary"
text
link
v-if="row.STATE === '1'"
@click="fnHandleJie(row.OUTSOURCED_ID)"
>
结束
</el-button>
<el-button
type="primary"
text
link
v-if="row.STATE === '0'"
@click="fnHandleStart(row.OUTSOURCED_ID)"
>
审批
</el-button>
<el-button
type="primary"
text
link
@click="
router.push({
path: '/keyprojects/outsourced/add',
query: {
type: 'edit',
outsourcedId: row.OUTSOURCED_ID,
},
})
"
>
编辑
</el-button>
<el-button
type="primary"
text
link
@click="fnHandleDelete(row.OUTSOURCED_ID)"
>
删除
</el-button>
</template>
</el-table-column>
<template #button>
<el-button
type="primary"
@click="
router.push({
path: '/keyprojects/outsourced/add',
query: {
type: 'add',
},
})
"
>
新增
</el-button>
</template>
</layout-table>
</layout-card>
</div>
</template>
<script setup>
import useListData from "@/assets/js/useListData";
import { serialNumber } from "@/assets/js/utils";
import {
getOutsourcedList,
getUnitsListAll,
setOutsourcedDelete,
getOutsourcedJie,
getOutsourcedStart,
} from "@/request/keyprojects.js";
import { reactive } from "vue";
import router from "@/router";
import { ElMessage, ElMessageBox } from "element-plus";
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
useListData(getOutsourcedList);
const data = reactive({
unitsList: [],
});
const fnGetUnitsList = async () => {
const resData = await getUnitsListAll({});
data.unitsList = resData.varList;
};
fnGetUnitsList();
const fnResetPaginationTransfer = () => {
fnGetData(searchForm);
};
const fnHandleDelete = async (OUTSOURCED_ID) => {
await ElMessageBox.confirm("确定要删除吗?", {
type: "warning",
});
await setOutsourcedDelete({ OUTSOURCED_ID });
ElMessage.success("删除成功");
fnGetData();
};
const fnHandleJie = async (OUTSOURCED_ID) => {
await ElMessageBox.confirm("确定要结束吗?", {
type: "warning",
});
const resData = await getOutsourcedJie({ OUTSOURCED_ID });
if (resData.code === "0") {
ElMessage.success("操作成功");
} else {
ElMessage.warning(resData.message);
}
fnGetData();
};
const fnHandleStart = async (OUTSOURCED_ID) => {
const resData = await getOutsourcedStart({ OUTSOURCED_ID });
if (resData.code === "0") {
ElMessage.success("审批成功");
} else {
ElMessage.warning(resData.message);
}
fnGetData();
};
</script>
<style scoped></style>