You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
453 lines
13 KiB
453 lines
13 KiB
<template>
|
|
<div
|
|
class="L-main"
|
|
id="L-size-main"
|
|
>
|
|
<div
|
|
class="content-search"
|
|
id="L-header"
|
|
>
|
|
<div class="search-title">查询条件</div>
|
|
<el-form
|
|
:inline="true"
|
|
:model="formInline"
|
|
size="medium"
|
|
class="demo-form-inline"
|
|
>
|
|
<el-row>
|
|
<el-col :span="7">
|
|
<el-form-item label="任务名称:">
|
|
<el-input
|
|
v-model="formInline.taskName"
|
|
placeholder="请输入"
|
|
style="width: 95%"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<!-- <el-col :span="7">
|
|
<el-form-item label="任务编号:">
|
|
<el-input v-model="formInline.id" placeholder="请输入"></el-input>
|
|
</el-form-item>
|
|
</el-col> -->
|
|
<el-col :span="7">
|
|
<el-form-item label="任务状态:">
|
|
<el-select
|
|
v-model="formInline.taskStatus"
|
|
placeholder="请选择"
|
|
>
|
|
<el-option
|
|
label="已关闭"
|
|
value="0"
|
|
>
|
|
</el-option>
|
|
<el-option
|
|
label="进行中"
|
|
value="1"
|
|
>
|
|
</el-option>
|
|
<el-option
|
|
label="正常完成"
|
|
value="2"
|
|
>
|
|
</el-option>
|
|
<el-option
|
|
label="超期完成"
|
|
value="3"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="3">
|
|
<el-form-item class="unit-form">
|
|
<el-button @click="resetQuery('queryFrom')">重置</el-button>
|
|
<el-button
|
|
type="primary"
|
|
@click="handleQuery('queryFrom')"
|
|
>查询</el-button
|
|
>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
</el-form>
|
|
</div>
|
|
<main>
|
|
<section>
|
|
<el-table
|
|
v-loading="loading"
|
|
:data="tableData"
|
|
:height="tabHeader"
|
|
:max-height="tabHeader"
|
|
:row-class-name="tableRowClassName"
|
|
>
|
|
<el-table-column
|
|
type="index"
|
|
width="70"
|
|
label="序号"
|
|
align="center"
|
|
/>
|
|
<!-- <el-table-column label="任务编号" key="id" width="200px" prop="id" align="center" /> -->
|
|
<el-table-column
|
|
label="任务名称"
|
|
key="taskName"
|
|
prop="taskName"
|
|
align="center"
|
|
/>
|
|
<el-table-column
|
|
label="任务下发时间"
|
|
key="taskTime"
|
|
prop="taskTime"
|
|
align="center"
|
|
>
|
|
<!-- <template slot-scope="scope">
|
|
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
|
|
</template> -->
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="任务期限"
|
|
key="taskDeadline"
|
|
prop="taskDeadline"
|
|
align="center"
|
|
/>
|
|
<!-- <el-table-column label="任务完成时间" key="taskFinishTime" prop="taskFinishTime" align="center" /> -->
|
|
<el-table-column
|
|
label="任务状态"
|
|
key="taskStatus"
|
|
width="200px"
|
|
prop="taskStatus"
|
|
class-name="table-status"
|
|
align="center"
|
|
>
|
|
<template #default="scope">
|
|
<span
|
|
v-if="scope.row.taskStatus == 0"
|
|
style="color: #f56c6c"
|
|
>
|
|
已关闭
|
|
</span>
|
|
<span
|
|
v-if="scope.row.taskStatus == 1"
|
|
style="color: #e6a23c"
|
|
>
|
|
进行中
|
|
</span>
|
|
<span
|
|
v-if="scope.row.taskStatus == 2"
|
|
style="color: #67c23a"
|
|
>
|
|
正常完成
|
|
</span>
|
|
<span
|
|
v-if="scope.row.taskStatus == 3"
|
|
style="color: #67c23a"
|
|
>
|
|
超期完成
|
|
</span>
|
|
<span
|
|
v-if="scope.row.taskStatus == 4"
|
|
style="color: #f56c6c"
|
|
>
|
|
审核不通过
|
|
</span>
|
|
<span
|
|
v-if="scope.row.taskStatus == 5"
|
|
style="color: #f56c6c"
|
|
>
|
|
审核驳回
|
|
</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column
|
|
label="操作"
|
|
prop="userId"
|
|
class-name="table-operation"
|
|
align="center"
|
|
>
|
|
<template #default="scope">
|
|
<div
|
|
style="
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
"
|
|
>
|
|
<div
|
|
style="display: flex; align-items: center; cursor: pointer"
|
|
@click="goInfo(scope.row)"
|
|
>
|
|
<img
|
|
src="@/assets/images/icon-ck@2x.png"
|
|
alt=""
|
|
style="width: 20px; margin-right: 5px"
|
|
/>
|
|
<span
|
|
class="look-info"
|
|
style="color: #1485ef; cursor: pointer"
|
|
>查看</span
|
|
>
|
|
</div>
|
|
<!-- v-if="scope.row.taskStatus == 1" -->
|
|
<div
|
|
v-if="scope.row.taskStatus == 1 && scope.row.taskStatus != 0"
|
|
style="
|
|
display: flex;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
margin-left: 10px;
|
|
"
|
|
@click="delInfo(scope.row)"
|
|
>
|
|
<img
|
|
src="@/assets/images/icon-shenhe@2x.png"
|
|
alt=""
|
|
style="width: 15px; margin-right: 5px"
|
|
/>
|
|
<span
|
|
class="del-info"
|
|
style="color: #1485ef; cursor: pointer"
|
|
>开始核查</span
|
|
>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</section>
|
|
<my-pagination
|
|
id="L-pagination"
|
|
:total="total"
|
|
:page="pagination.current"
|
|
:limit="pagination.size"
|
|
@pagination="getPagination"
|
|
:current-page.sync="pagination.current"
|
|
></my-pagination>
|
|
</main>
|
|
|
|
<!-- 注释掉的弹窗部分(如需启用可取消注释) -->
|
|
<!--
|
|
<my-dialog title="新增任务" @close="importClose" ref="taskDialog" class="taskDialogBox" width="40%">
|
|
<el-row>
|
|
<el-col :span="18">
|
|
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
|
|
<el-form-item label="任务名称" prop="taskName">
|
|
<el-input v-model="ruleForm.taskName" placeholder="请输入单位名称"></el-input>
|
|
</el-form-item>
|
|
<el-form-item label="核查单位" prop="dwmc" class="select-box">
|
|
<el-col :span="24">
|
|
<el-select v-model="ruleForm.dwmc" placeholder="请选择活动区域" multiple collapse-tags> </el-select>
|
|
</el-col>
|
|
<el-col class="btn-box">
|
|
<el-button type="primary" @click="addliebiao"><i class="el-icon-s-unfold"></i></el-button>
|
|
</el-col>
|
|
</el-form-item>
|
|
<el-form-item label="任务期限" prop="taskDeadline">
|
|
<el-date-picker
|
|
type="date"
|
|
placeholder="选择日期"
|
|
v-model="ruleForm.taskDeadline"
|
|
style="width: 100%"
|
|
value-format="yyyy-MM-dd"
|
|
></el-date-picker>
|
|
</el-form-item>
|
|
<el-form-item class="newTask-form-item">
|
|
<el-button @click="resetForm('ruleForm')">取消</el-button>
|
|
<el-button type="primary" @click="submitForm('ruleForm')">发布</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-col>
|
|
<el-col :span="6"></el-col>
|
|
</el-row>
|
|
</my-dialog>
|
|
|
|
<div class="newTask-liebiao">
|
|
<my-dialog title="单位列表" ref="liebiaoDialog" class="taskDialogBox" width="80%">
|
|
<danweiList ref="danweiList" @adddanweilist="adddanweilist" @liebiaoClose="liebiaoClose"></danweiList>
|
|
</my-dialog>
|
|
</div>
|
|
-->
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, reactive, onMounted, onUnmounted } from "vue";
|
|
import { useRouter } from "vue-router";
|
|
import myPagination from "@/views/components/Pagination/index.vue";
|
|
// import myDialog from "@/views/components/myDialog/index.vue"
|
|
// import danweiList from "@/views/system/user/danweiList.vue"
|
|
import useUserStore from "@/store/modules/user";
|
|
const userStore = useUserStore();
|
|
|
|
import {
|
|
addassetTaskadd,
|
|
getassetTask,
|
|
getassetTaskid,
|
|
} from "@/api/renwuApi/index";
|
|
|
|
const router = useRouter();
|
|
|
|
// 数据定义
|
|
const formInline = ref({
|
|
name: "",
|
|
type: "",
|
|
time: [],
|
|
number: "",
|
|
status: "",
|
|
});
|
|
const pagination = ref({
|
|
current: 1,
|
|
size: 10,
|
|
});
|
|
const tableData = ref([]);
|
|
const loading = ref(false);
|
|
const tabHeader = ref(undefined);
|
|
const total = ref(0);
|
|
|
|
// 表单相关
|
|
const ruleForm = ref({
|
|
taskName: "",
|
|
dwmc: [],
|
|
taskDeadline: "",
|
|
});
|
|
const rules = {
|
|
taskName: [{ required: true, message: "请输入", trigger: "blur" }],
|
|
dwmc: [{ required: true, message: "请选择", trigger: "change" }],
|
|
taskDeadline: [{ required: true, message: "请选择日期", trigger: "change" }],
|
|
};
|
|
const tabclicklist = ref([]);
|
|
|
|
// 方法定义
|
|
|
|
// 获取列表
|
|
function getInfo() {
|
|
loading.value = true;
|
|
|
|
if (localStorage.getItem("ismypagination")) {
|
|
const stored = JSON.parse(localStorage.getItem("ismypagination"));
|
|
if (stored.isfanhui) {
|
|
formInline.value = stored;
|
|
}
|
|
}
|
|
// 判断是否是单位角色
|
|
if (userStore.roles.length > 0 && userStore.roles.includes("unit")) {
|
|
pagination.value.dwmc = userStore.useer?.nickName || "";
|
|
}
|
|
|
|
getassetTask(pagination.value).then((res) => {
|
|
loading.value = false;
|
|
total.value = res.data.total;
|
|
tableData.value = res.data.records;
|
|
});
|
|
}
|
|
|
|
// 查询
|
|
function handleQuery() {
|
|
pagination.value = {
|
|
current: 1,
|
|
size: 10,
|
|
};
|
|
if (formInline.value.time?.length > 0) {
|
|
formInline.value.begainTime = formInline.value.time[0];
|
|
formInline.value.endTime = formInline.value.time[1];
|
|
}
|
|
Object.assign(pagination.value, formInline.value);
|
|
formInline.value.isfanhui = false;
|
|
localStorage.setItem("ismypagination", JSON.stringify(formInline.value));
|
|
getInfo();
|
|
}
|
|
|
|
// 页码获取
|
|
function getPagination(pages) {
|
|
pagination.value.current = pages.page;
|
|
pagination.value.size = pages.limit;
|
|
getInfo();
|
|
}
|
|
|
|
// 重置查询
|
|
function resetQuery() {
|
|
formInline.value = {
|
|
name: "",
|
|
type: "",
|
|
time: [],
|
|
number: "",
|
|
status: "",
|
|
};
|
|
pagination.value = {
|
|
current: 1,
|
|
size: 10,
|
|
};
|
|
localStorage.removeItem("ismypagination");
|
|
getInfo();
|
|
}
|
|
|
|
// 查看详情
|
|
function goInfo(row) {
|
|
getassetTaskid(row.id);
|
|
router.push({
|
|
name: "mytaskInfo",
|
|
query: {
|
|
pageType: "look",
|
|
id: row.id,
|
|
dwmc: row.dwmc,
|
|
},
|
|
});
|
|
}
|
|
|
|
// 开始核查
|
|
function delInfo(row) {
|
|
console.log(row);
|
|
router.push({
|
|
name: "mytaskInfo",
|
|
query: {
|
|
pageType: "info",
|
|
id: row.id,
|
|
dwmc: row.dwmc,
|
|
},
|
|
});
|
|
}
|
|
|
|
// 修改表格背景色
|
|
function tableRowClassName({ rowIndex }) {
|
|
return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
|
|
}
|
|
|
|
// 屏幕尺寸变化
|
|
function cancalDebounce() {
|
|
const element = document.getElementById("L-size-main");
|
|
const header = document.getElementById("L-header");
|
|
const paginationEl = document.getElementById("L-pagination");
|
|
if (!element || !header || !paginationEl) return;
|
|
|
|
const elementHeight = element.offsetHeight;
|
|
const headerHeight = header.offsetHeight;
|
|
const paginationtHeight = paginationEl.offsetHeight;
|
|
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110;
|
|
}
|
|
|
|
// 生命周期
|
|
onMounted(() => {
|
|
localStorage.removeItem("activeName");
|
|
if (localStorage.getItem("ismypagination")) {
|
|
if (JSON.parse(localStorage.getItem("ismypagination")).isfanhui) {
|
|
formInline.value = JSON.parse(localStorage.getItem("ismypagination"));
|
|
handleQuery();
|
|
} else {
|
|
localStorage.removeItem("ismypagination");
|
|
}
|
|
}
|
|
localStorage.removeItem("ismypaginationTow");
|
|
getInfo();
|
|
cancalDebounce();
|
|
window.addEventListener("resize", cancalDebounce);
|
|
});
|
|
|
|
onUnmounted(() => {
|
|
window.removeEventListener("resize", cancalDebounce);
|
|
});
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.el-icon-s-unfold {
|
|
font-size: 16px;
|
|
}
|
|
</style>
|