main
parent
4e4fa7a24b
commit
8ab9afd553
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,386 +0,0 @@
|
||||
<!-- 任务管理 -->
|
||||
<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="small" class="demo-form-inline">
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务名称:">
|
||||
<el-input v-model="formInline.name" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务编号:">
|
||||
<el-input v-model="formInline.type" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务完成时间:">
|
||||
<el-date-picker v-model="formInline.time" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="请选择">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="任务状态:">
|
||||
<el-select v-model="formInline.status" placeholder="请选择">
|
||||
<el-option label="item.label" value="item.value">
|
||||
</el-option>
|
||||
<!-- <el-option
|
||||
v-for="dict in dict.type.bms_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value">
|
||||
</el-option> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16" style="text-align: right;padding-right: 20px;">
|
||||
<el-form-item>
|
||||
<el-button size="default" @click="resetQuery('queryFrom')">重置</el-button>
|
||||
<el-button size="default" type="primary" @click="handleQuery('queryFrom')">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<main>
|
||||
<div class="search-title">
|
||||
<span class="search-title-span">任务列表</span>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="default" @click="handleExport">导出</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="default" @click="handleAdd">任务创建</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<section>
|
||||
<el-table v-loading="loading" :data="tableData" :height="tabHeader" :max-height="tabHeader"
|
||||
:row-class-name="tableRowClassName">
|
||||
<el-table-column type="index" width="60" label="序号" align="center" />
|
||||
<el-table-column label="任务编号" key="number" width="200px" prop="number" align="center" />
|
||||
<el-table-column label="任务名称" key="name" prop="name" align="center" />
|
||||
<el-table-column label="任务下发时间" key="type" prop="type" 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="unit" prop="unit" align="center" />
|
||||
<el-table-column label="任务完成时间" key="time" prop="time" align="center" />
|
||||
<el-table-column label="任务状态" key="status" width="200px" prop="status" class-name="table-status"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.status === 0" style="color: #F58A0C;">
|
||||
待审核
|
||||
</span>
|
||||
<span v-if="scope.row.status === 1" style="color: #F50C0C;">
|
||||
审核驳回
|
||||
</span>
|
||||
<span v-if="scope.row.status === 3" style="color: #16B771;">
|
||||
正常完成
|
||||
</span>
|
||||
<span v-if="scope.row.status === 4" style="color: #1485EF;">
|
||||
超期完成
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" prop="userId" class-name="table-operation" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div style="display: flex;align-items: center;justify-content: center;">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<img src="@/assets/images/icon-ck@2x.png" alt="" style="width: 20px;margin-right: 5px;">
|
||||
<span class="look-info" @click="goInfo(scope.row)"
|
||||
style="color: #1485EF;cursor: pointer;">查看</span>
|
||||
</div>
|
||||
<div v-if="scope.row.status == 0" style="display: flex;align-items: center;margin-left: 5px;">
|
||||
<img src="@/assets/images/icon-shenhe@2x.png" alt="" style="width: 15px;margin-right: 5px;">
|
||||
<span class="del-info" @click="delInfo(scope.row)"
|
||||
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="renwuclose" ref="renwuclose" class="taskDialogBox" width="30%">
|
||||
<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="unit" class="select-box">
|
||||
<el-col :span="24">
|
||||
<el-select v-model="ruleForm.unit" placeholder="请选择活动区域">
|
||||
<el-option label="区域一" value="shanghai"></el-option>
|
||||
<el-option label="区域二" value="beijing"></el-option>
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col class="btn-box">
|
||||
<el-button type="primary" @click="addliebiao">单位列表</el-button>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务期限" prop="time">
|
||||
<el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.time"
|
||||
style="width: 100%;"></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>
|
||||
|
||||
<my-dialog title="单位列表" @close="importClose" ref="taskDialog" class="taskDialogBox" width="80%">
|
||||
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline">
|
||||
<el-row>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="任务编号:">
|
||||
<el-input v-model="formInline.type" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="任务名称:">
|
||||
<el-input v-model="formInline.name" placeholder="请输入"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="任务状态:">
|
||||
<el-select v-model="formInline.status" placeholder="请选择">
|
||||
<el-option label="item.label" value="item.value">
|
||||
</el-option>
|
||||
<!-- <el-option
|
||||
v-for="dict in dict.type.bms_approval_status"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value">
|
||||
</el-option> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="3" style="text-align: right;padding-right: 20px;">
|
||||
<el-form-item class="unit-form">
|
||||
<el-button size="default" @click="resetQuery('queryFrom')">重置</el-button>
|
||||
<el-button size="default" type="primary" @click="handleQuery('queryFrom')">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<section>
|
||||
|
||||
<el-table v-loading="liebiaoloading" :data="liebiaotableData" :height="tabHeader" :max-height="tabHeader"
|
||||
:row-class-name="tableRowClassName">
|
||||
<el-table-column type="index" width="60" label="序号" align="center" />
|
||||
<el-table-column label="任务编号" key="number" width="200px" prop="number" align="center" />
|
||||
<el-table-column label="任务名称" key="name" prop="name" align="center" />
|
||||
<el-table-column label="任务下发时间" key="type" prop="type" 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="unit" prop="unit" align="center" />
|
||||
</el-table>
|
||||
</section>
|
||||
<my-pagination id="L-pagination" :total="liebiaototal" :page="liebiaopagination.current" :limit="liebiaopagination.size"
|
||||
@pagination="getPagination" :current-page.sync="liebiaopagination.current"></my-pagination>
|
||||
</my-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import myPagination from "@/views/components/Pagination/index.vue"
|
||||
import myDialog from "@/views/components/myDialog/index.vue"
|
||||
|
||||
export default {
|
||||
// dicts: ['jjh_project_type', 'bms_approval_status', "project_middle_type", "project_small_type", "project_categories"],
|
||||
components: { myPagination, myDialog },
|
||||
data() {
|
||||
return {
|
||||
formInline: {
|
||||
name: "",
|
||||
type: "",
|
||||
time: [],
|
||||
number: "",
|
||||
status: "",
|
||||
},
|
||||
total: 0,
|
||||
pagination: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
},
|
||||
liebiaotableData:[],
|
||||
liebiaopagination: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
},
|
||||
liebiaototal:0,
|
||||
liebiaoloading:false,
|
||||
tableData: [
|
||||
{
|
||||
number: 20230001,
|
||||
name: "XXX任务",
|
||||
type: "2023-07-30 16:30:21",
|
||||
unit: "2023-07-30",
|
||||
time: "2023-07-30 16:30:21",
|
||||
status: 0,
|
||||
}, {
|
||||
number: 20230001,
|
||||
name: "XXX任务",
|
||||
type: "2023-07-30 16:30:21",
|
||||
unit: "2023-07-30",
|
||||
time: "2023-07-30 16:30:21",
|
||||
status: 1,
|
||||
}, {
|
||||
number: 20230001,
|
||||
name: "XXX任务",
|
||||
type: "2023-07-30 16:30:21",
|
||||
unit: "2023-07-30",
|
||||
time: "2023-07-30 16:30:21",
|
||||
status: 3,
|
||||
}, {
|
||||
number: 20230001,
|
||||
name: "XXX任务",
|
||||
type: "2023-07-30 16:30:21",
|
||||
unit: "2023-07-30",
|
||||
time: "2023-07-30 16:30:21",
|
||||
status: 4,
|
||||
},
|
||||
],
|
||||
loading: false,
|
||||
tabHeader: undefined,
|
||||
ruleForm: {
|
||||
taskName: "",
|
||||
unit: "",
|
||||
time: "",
|
||||
},
|
||||
rules: {
|
||||
name: [
|
||||
{ required: true, message: '请输入活动名称', trigger: 'blur' },
|
||||
],
|
||||
region: [
|
||||
{ required: true, message: '请选择活动区域', trigger: 'change' }
|
||||
],
|
||||
date1: [
|
||||
{ type: 'date', required: true, message: '请选择日期', trigger: 'change' }
|
||||
],
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getInfo();
|
||||
this.cancalDebounce();
|
||||
window.addEventListener('resize', this.cancalDebounce);
|
||||
},
|
||||
destroyed() {
|
||||
window.removeEventListener('resize', this.cancalDebounce);
|
||||
},
|
||||
methods: {
|
||||
// 获取列表
|
||||
getInfo() {
|
||||
// this.loading = true;
|
||||
// jProject(this.pagination).then(res=>{
|
||||
// this.loading = false;
|
||||
// this.total = res.data.total;
|
||||
// this.tableData = res.data.records;
|
||||
// })
|
||||
},
|
||||
// 重置
|
||||
resetQuery() {
|
||||
this.formInline = {
|
||||
name: "",
|
||||
type: "",
|
||||
time: [],
|
||||
number: "",
|
||||
status: "",
|
||||
}
|
||||
this.pagination = {
|
||||
current: 1,
|
||||
size: 10,
|
||||
}
|
||||
this.getList();
|
||||
},
|
||||
// 查询
|
||||
handleQuery() {
|
||||
this.pagination = {
|
||||
current: 1,
|
||||
size: 10
|
||||
}
|
||||
if (this.formInline.time.length > 0) {
|
||||
this.formInline.startTime = this.formInline.time[0]
|
||||
this.formInline.endTime = this.formInline.time[1]
|
||||
}
|
||||
this.pagination = { ...this.pagination, ...this.formInline };
|
||||
this.getList();
|
||||
},
|
||||
// 页码获取
|
||||
getPagination(pages) {
|
||||
this.pagination.current = pages.page;
|
||||
this.pagination.size = pages.limit;
|
||||
this.getList();
|
||||
},
|
||||
// 导入
|
||||
handleImport() { },
|
||||
// 导出
|
||||
handleExport() { },
|
||||
// 任务创建
|
||||
handleAdd() {
|
||||
this.$refs.taskDialog.open()
|
||||
},
|
||||
//打开列表
|
||||
addliebiao(){
|
||||
this.$refs.renwuclose.open()
|
||||
|
||||
},
|
||||
//关闭列表弹窗
|
||||
renwuclose(){},
|
||||
// 关闭弹框
|
||||
importClose() { },
|
||||
// 查看详情
|
||||
goInfo() {
|
||||
this.$router.push({
|
||||
name: 'TaskInfo', query: {
|
||||
pageType: "info",
|
||||
}
|
||||
})
|
||||
},
|
||||
// 编辑
|
||||
edit() {
|
||||
},
|
||||
// 删除
|
||||
delInfo() {
|
||||
this.$router.push({
|
||||
name: 'taskAudit', query: {
|
||||
pageType: "info",
|
||||
}
|
||||
})
|
||||
},
|
||||
// 修改table背景色
|
||||
tableRowClassName({ row, rowIndex }) {
|
||||
if (rowIndex % 2 !== 0) {
|
||||
return 'evenNumber-row';
|
||||
}
|
||||
return '';
|
||||
},
|
||||
// 屏幕尺寸变化
|
||||
cancalDebounce() {
|
||||
const element = document.getElementById('L-size-main'); // 通过元素的 ID 获取元素
|
||||
const header = document.getElementById('L-header'); // 通过元素的 ID 获取元素
|
||||
const pagination = document.getElementById('L-pagination'); // 通过元素的 ID 获取元素
|
||||
const elementHeight = element.offsetHeight;
|
||||
const headerHeight = header.offsetHeight;
|
||||
const paginationtHeight = pagination.offsetHeight;
|
||||
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 110;
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
@ -1,469 +0,0 @@
|
||||
<!-- 任务管理 -->
|
||||
<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="small" class="demo-form-inline">
|
||||
<el-row>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="任务名称:">
|
||||
<el-input v-model="formInline.taskName" 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 label="进行中" value="1" />
|
||||
<el-option label="正常完成" value="2" />
|
||||
<el-option label="超期完成" value="3" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="任务完成时间:">
|
||||
<el-date-picker v-model="formInline.time" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="请选择">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="16" style="text-align: right;padding-right: 20px;">
|
||||
<el-form-item>
|
||||
<el-button size="small" @click="resetQuery">重置</el-button>
|
||||
<el-button size="small" type="primary" @click="handleQuery">查询</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<main>
|
||||
<div class="search-title">
|
||||
<span class="search-title-span">任务列表</span>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" :icon="Plus" size="small" @click="handleAdd">任务创建</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<section>
|
||||
<el-table v-loading="loading" :data="tableData" :height="tabHeader" :max-height="tabHeader"
|
||||
:row-class-name="tableRowClassName">
|
||||
<el-table-column type="index" width="60" label="序号" align="center" />
|
||||
<el-table-column label="任务名称" key="taskName" prop="taskName" align="center" />
|
||||
<el-table-column label="任务下发时间" key="taskTime" prop="taskTime" align="center" />
|
||||
<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="{ row }">
|
||||
<span v-if="row.taskStatus == 0" style="color: #F56C6C;">已关闭</span>
|
||||
<span v-if="row.taskStatus == 1" style="color: #E6A23C;">进行中</span>
|
||||
<span v-if="row.taskStatus == 2" style="color: #67C23A;">正常完成</span>
|
||||
<span v-if="row.taskStatus == 3" style="color:#67C23A;">超期完成</span>
|
||||
<span v-if="row.taskStatus == 4" style="color: #F56C6C;">审核不通过</span>
|
||||
<span v-if="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="{ row }">
|
||||
<div style="display: flex;align-items: center;justify-content: center;">
|
||||
<div style="display: flex;align-items: center;cursor: pointer;" @click="goInfo(row)">
|
||||
<el-icon class="mr-1"><View /></el-icon>
|
||||
<span class="look-info" style="color: #1485EF;">查看</span>
|
||||
</div>
|
||||
<div style="display: flex;align-items: center;cursor: pointer;margin-left: 10px;"
|
||||
@click="delInfo(row)" v-if="row.taskStatus == 1 && row.taskStatus != 0">
|
||||
<el-icon class="mr-1"><Edit /></el-icon>
|
||||
<span class="del-info" style="color: #1485EF;">审核</span>
|
||||
</div>
|
||||
<div style="display: flex;align-items: center;cursor: pointer;margin-left: 10px;"
|
||||
@click="guanbijiekou(row)" v-if="row.taskStatus == 1 && row.taskStatus != 0">
|
||||
<el-icon class="mr-1"><Delete /></el-icon>
|
||||
<span class="del-info" style="color: #1485EF;">关闭</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="43%">
|
||||
<el-row>
|
||||
<el-col :span="21">
|
||||
<el-form :model="ruleForm" :rules="rules" ref="ruleFormRef" label-width="120px">
|
||||
<el-form-item label="任务名称" prop="taskName">
|
||||
<el-input v-model="ruleForm.taskName" placeholder="请输入任务名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="核查资产类型" prop="type">
|
||||
<el-checkbox-group v-model="ruleForm.type" @change="checkboxChange">
|
||||
<el-checkbox label="0">web资产</el-checkbox>
|
||||
<el-checkbox label="1">小程序资产</el-checkbox>
|
||||
<el-checkbox label="2">公众号资产</el-checkbox>
|
||||
<el-checkbox label="3">电子邮件资产</el-checkbox>
|
||||
<el-checkbox label="4">移动应用程序资产</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="核查单位" prop="dwmc" class="select-box">
|
||||
<el-col>
|
||||
<el-select v-model="ruleForm.dwmc" placeholder="请选择核查单位" multiple collapse-tags @remove-tag="isclear">
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col class="btn-box">
|
||||
<el-button type="primary" @click="addliebiao"><el-icon><Expand /></el-icon></el-button>
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务期限" prop="taskDeadline">
|
||||
<el-date-picker type="datetime" placeholder="选择日期" v-model="ruleForm.taskDeadline" style="width: 100%;"
|
||||
value-format="yyyy-MM-dd HH:mm:ss" default-time="23:59:59"
|
||||
:disabled-date="disabledDate"></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item class="newTask-form-item">
|
||||
<el-button @click="resetForm">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm" :loading="btnloading">发布</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</my-dialog>
|
||||
|
||||
<div class="newTask-liebiao">
|
||||
<my-dialog title="单位列表" ref="liebiaoDialog" @close="liebiaoClose" class="taskDialogBox" width="80%">
|
||||
<danweiList ref="danweiList" @adddanweilist="adddanweilist" @liebiaoClose="liebiaoClose"></danweiList>
|
||||
</my-dialog>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted, onUnmounted, nextTick } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { Plus, View, Edit, Delete, Expand } from '@element-plus/icons-vue'
|
||||
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 { addassetTaskadd, getassetTask, getassetTaskid, assetTaskclose } from "@/api/renwuApi/index.js"
|
||||
|
||||
const router = useRouter()
|
||||
const taskDialog = ref(null)
|
||||
const liebiaoDialog = ref(null)
|
||||
const danweiList = ref(null)
|
||||
const ruleFormRef = ref(null)
|
||||
|
||||
const loading = ref(false)
|
||||
const btnloading = ref(false)
|
||||
const total = ref(0)
|
||||
const tabHeader = ref(undefined)
|
||||
const tabclicklist = ref([])
|
||||
|
||||
const formInline = reactive({
|
||||
name: "",
|
||||
type: "",
|
||||
time: [],
|
||||
number: "",
|
||||
status: "",
|
||||
})
|
||||
|
||||
const pagination = reactive({
|
||||
current: 1,
|
||||
size: 10,
|
||||
})
|
||||
|
||||
const tableData = ref([])
|
||||
|
||||
const ruleForm = reactive({
|
||||
taskName: "",
|
||||
dwmc: [],
|
||||
taskDeadline: "",
|
||||
type: []
|
||||
})
|
||||
|
||||
const rules = {
|
||||
taskName: [{ required: true, message: '请输入', trigger: 'change' }],
|
||||
dwmc: [{ required: true, message: '请选择', trigger: 'change' }],
|
||||
taskDeadline: [{ required: true, message: '请选择日期', trigger: 'change' }],
|
||||
type: [{ required: true, message: '请选择', trigger: 'change' }]
|
||||
}
|
||||
|
||||
const chanckList = [
|
||||
{ lable: "0", conent: "web资产" },
|
||||
{ lable: "1", conent: "小程序资产" },
|
||||
{ lable: "2", conent: "公众号资产" },
|
||||
{ lable: "3", conent: "电子邮件资产" },
|
||||
{ lable: "4", conent: "移动应用程序资产" },
|
||||
]
|
||||
|
||||
// Methods
|
||||
const isclear = (value) => {
|
||||
tabclicklist.value = tabclicklist.value.filter(user => user.nickName != value)
|
||||
}
|
||||
|
||||
const disabledDate = (time) => {
|
||||
return time.getTime() < Date.now() - 8.64e7
|
||||
}
|
||||
|
||||
const checkboxChange = () => {
|
||||
ruleForm.dwmc = []
|
||||
tabclicklist.value = []
|
||||
nextTick(() => {
|
||||
ruleFormRef.value?.clearValidate()
|
||||
})
|
||||
}
|
||||
|
||||
const resetForm = () => {
|
||||
Object.assign(ruleForm, {
|
||||
dwmc: [],
|
||||
taskName: "",
|
||||
taskDeadline: "",
|
||||
type: []
|
||||
})
|
||||
taskDialog.value?.close()
|
||||
tabclicklist.value = []
|
||||
btnloading.value = false
|
||||
}
|
||||
|
||||
const fonsisis = (data) => {
|
||||
const specificTime = new Date(data)
|
||||
const currentTime = new Date()
|
||||
return currentTime <= specificTime
|
||||
}
|
||||
|
||||
const submitForm = async () => {
|
||||
if (!fonsisis(ruleForm.taskDeadline)) {
|
||||
ElMessage.error('选择时间不能小于当前时间')
|
||||
return
|
||||
}
|
||||
|
||||
if (!ruleFormRef.value) return
|
||||
|
||||
await ruleFormRef.value.validate(async (valid) => {
|
||||
if (valid) {
|
||||
btnloading.value = true
|
||||
try {
|
||||
const submitData = {
|
||||
...ruleForm,
|
||||
dwmc: ruleForm.dwmc.join(","),
|
||||
type: ruleForm.type.join(",")
|
||||
}
|
||||
|
||||
await addassetTaskadd(submitData)
|
||||
resetForm()
|
||||
await getInfo()
|
||||
ElMessage.success("新增成功")
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
} finally {
|
||||
btnloading.value = false
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const adddanweilist = (val) => {
|
||||
if (val) {
|
||||
ruleForm.dwmc = val.map(element => element.nickName)
|
||||
} else {
|
||||
ruleForm.dwmc = []
|
||||
}
|
||||
tabclicklist.value = val
|
||||
}
|
||||
|
||||
const getInfo = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const res = await getassetTask(pagination)
|
||||
total.value = res.data.total
|
||||
tableData.value = res.data.records
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
const resetQuery = () => {
|
||||
Object.assign(formInline, {
|
||||
name: "",
|
||||
type: "",
|
||||
time: [],
|
||||
number: "",
|
||||
status: "",
|
||||
})
|
||||
Object.assign(pagination, {
|
||||
current: 1,
|
||||
size: 10,
|
||||
})
|
||||
localStorage.removeItem("ismypagination")
|
||||
getInfo()
|
||||
}
|
||||
|
||||
const addliebiao = () => {
|
||||
if (ruleForm.type.length > 0) {
|
||||
liebiaoDialog.value?.open()
|
||||
nextTick(() => {
|
||||
danweiList.value?.getType(ruleForm.type)
|
||||
if (tabclicklist.value) {
|
||||
setTimeout(() => {
|
||||
danweiList.value?.dakai(tabclicklist.value)
|
||||
}, 100)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
ElMessage.warning('请先选择核查资产类型')
|
||||
}
|
||||
}
|
||||
|
||||
const liebiaoClose = () => {
|
||||
if (danweiList.value) {
|
||||
danweiList.value.queryParams = {
|
||||
current: 1,
|
||||
size: 10,
|
||||
userName: undefined,
|
||||
nickName: undefined,
|
||||
dwlx: undefined,
|
||||
}
|
||||
}
|
||||
liebiaoDialog.value?.close()
|
||||
}
|
||||
|
||||
const handleQuery = () => {
|
||||
Object.assign(pagination, {
|
||||
current: 1,
|
||||
size: 10
|
||||
})
|
||||
|
||||
if (formInline.time.length > 0) {
|
||||
formInline.begainTime = formInline.time[0]
|
||||
formInline.endTime = formInline.time[1]
|
||||
}
|
||||
|
||||
Object.assign(pagination, formInline)
|
||||
formInline.isfanhui = false
|
||||
localStorage.setItem("ismypagination", JSON.stringify(formInline))
|
||||
getInfo()
|
||||
}
|
||||
|
||||
const getPagination = (pages) => {
|
||||
pagination.current = pages.page
|
||||
pagination.size = pages.limit
|
||||
getInfo()
|
||||
}
|
||||
|
||||
const handleAdd = () => {
|
||||
taskDialog.value?.open()
|
||||
nextTick(() => {
|
||||
ruleFormRef.value?.clearValidate()
|
||||
})
|
||||
}
|
||||
|
||||
const importClose = () => {
|
||||
resetForm()
|
||||
}
|
||||
|
||||
const goInfo = (row) => {
|
||||
getassetTaskid(row.id)
|
||||
router.push({
|
||||
name: 'TaskInfo',
|
||||
query: {
|
||||
pageType: "look",
|
||||
id: row.id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const delInfo = (row) => {
|
||||
router.push({
|
||||
name: 'TaskInfo',
|
||||
query: {
|
||||
pageType: "info",
|
||||
id: row.id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const guanbijiekou = (row) => {
|
||||
ElMessageBox.confirm('此操作将关闭任务, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
try {
|
||||
const res = await assetTaskclose({ taskId: row.id, taskName: row.taskName })
|
||||
if (res.code == 200) {
|
||||
ElMessage.success('关闭成功!')
|
||||
await getInfo()
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
}).catch(() => {
|
||||
ElMessage.info('已取消关闭')
|
||||
})
|
||||
}
|
||||
|
||||
const tableRowClassName = ({ rowIndex }) => {
|
||||
return rowIndex % 2 !== 0 ? 'evenNumber-row' : ''
|
||||
}
|
||||
|
||||
const cancalDebounce = () => {
|
||||
const element = document.getElementById('L-size-main')
|
||||
const header = document.getElementById('L-header')
|
||||
const pagination = document.getElementById('L-pagination')
|
||||
if (element && header && pagination) {
|
||||
const elementHeight = element.offsetHeight
|
||||
const headerHeight = header.offsetHeight
|
||||
const paginationtHeight = pagination.offsetHeight
|
||||
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110
|
||||
}
|
||||
}
|
||||
|
||||
// Lifecycle hooks
|
||||
onMounted(() => {
|
||||
if (localStorage.getItem('ismypagination')) {
|
||||
const storedPagination = JSON.parse(localStorage.getItem('ismypagination'))
|
||||
if (storedPagination.isfanhui) {
|
||||
Object.assign(formInline, storedPagination)
|
||||
handleQuery()
|
||||
} else {
|
||||
localStorage.removeItem("ismypagination")
|
||||
}
|
||||
}
|
||||
|
||||
localStorage.removeItem("ismypaginationTow")
|
||||
localStorage.removeItem("activeName")
|
||||
|
||||
getInfo()
|
||||
cancalDebounce()
|
||||
window.addEventListener('resize', cancalDebounce)
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
window.removeEventListener('resize', cancalDebounce)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.mr-1 {
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.el-icon-s-unfold {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.el-icon-delete {
|
||||
color: #409EFF;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
margin-right: 5px;
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue