main
严飞永 3 weeks ago
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,319 +0,0 @@
<!-- 任务审核页面 -->
<template>
<div class="audit-pages-box" id="L-size-main">
<div class="content-info" id="L-header">
<div class="info-title">任务审核</div>
<div class="top-info">
<el-row class="top-row">
<el-col :span="8">
任务编号<span>20240101001</span>
</el-col>
<el-col :span="8">
任务名称<span>XXXXX资产核查任务</span>
</el-col>
<el-col :span="8">
任务状态<span>待审核</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
任务期限<span>2024-11-11 09:00:00</span>
</el-col>
<el-col :span="8">
任务下发时间<span>2024-11-11 09:00:00</span>
</el-col>
</el-row>
</div>
</div>
<div class="info-cut-off-rule" id="L-tab">
<div class="left-tab" :class="index == 1 ? 'active-tab':''" @click="activeTab(1)"></div>
<div :class="index == 2 ? 'active-tab':''" @click="activeTab(2)"></div>
</div>
<div class="info-bottom-box">
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline" v-if="index == 1">
<el-row>
<el-col :span="7">
<el-form-item label="核查单位:">
<el-select v-model="formInline.unit" 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="7">
<el-form-item label="审核状态:">
<el-select v-model="formInline.status" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"></el-button>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="true" :model="formInlineTwo" size="small" class="demo-form-inline" v-if="index == 2">
<el-row>
<el-col :span="7">
<el-form-item label="单位名称:">
<el-input v-model="formInlineTwo.unitName" placeholder="请输入"></el-input>
<!-- <el-select v-model="formInline.unit" placeholder="请选择"> -->
<!-- <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">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"></el-button>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<section v-if="index == 1">
<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="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="status" width="200px" prop="status" class-name="table-status" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status === 0" style="color: #67C23A;">
审核通过
</span>
<span v-if="scope.row.status === 1" style="color: #F56C6C;">
审核不通过
</span>
<span v-if="scope.row.status === 2" style="color: #E6A23C;">
待审核
</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;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;">查看</span>
</div>
<div v-if="scope.row.status == 1" style="display: flex;align-items: center;cursor: pointer;margin-left: 5px;" @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;">审核</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<section v-if="index == 2">
<el-table v-loading="loading" :data="tableDataTwo" :height="tabHeader" :max-height="tabHeader" :row-class-name="tableRowClassName">
<el-table-column type="index" width="60" label="序号" align="center"/>
<el-table-column label="单位名称" key="unitName" width="200px" prop="unitName" align="center" />
<el-table-column label="核查资产数量" key="hczcsl" prop="hczcsl" align="center" />
<el-table-column label="完成数量" key="wcsl" prop="wcsl" 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="wwcsl" prop="wwcsl" align="center" />
<el-table-column label="未完成比例" key="wwcbl" width="200px" prop="wwcbl" align="center">
<template slot-scope="scope">
<span style="color: #192A92;">{{ scope.row.wwcbl }}</span>
</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>
</div>
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
export default {
components:{myPagination},
data() {
return {
index:1,
formInline:{
unit:"",
type:"",
status:"",
},
formInlineTwo:{
unitName:"",
},
total:0,
pagination:{
current:1,
size:10,
},
tableData:[
{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:0,
},{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:1,
},{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:2,
},
],
tableDataTwo:[
{
unitName:"太仓市XXX局",
hczcsl:"100",
wcsl:"80",
wwcsl:"20",
wwcbl:"20%"
},{
unitName:"太仓市XXX局",
hczcsl:"100",
wcsl:"80",
wwcsl:"20",
wwcbl:"20%"
},{
unitName:"太仓市XXX局",
hczcsl:"100",
wcsl:"80",
wwcsl:"20",
wwcbl:"20%"
},
],
loading:false,
tabHeader: undefined,
}
},
mounted(){
this.getList();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods:{
//
resetQuery(){
this.pagination = {
current: 1,
size: 10,
}
if(this.index == 1) {
this.formInline = {
unit:"",
type:"",
status:"",
}
this.getList();
} else if(this.index == 2) {
this.formInlineTwo = {
unitName:"",
}
this.getListTwo();
}
},
//
handleQuery(){
this.pagination = {
current: 1,
size: 10,
}
if(this.index == 1) {
this.pagination = { ...this.pagination,...this.formInline };
this.getList();
} else if(this.index == 2) {
this.getListTwo();
}
},
//
getPagination(){
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
if(this.index == 1) {
this.getList();
} else if(this.index == 2) {
this.getListTwo();
}
},
// tab
activeTab(id){
this.index = id
if(id == 1) {
this.formInline = {
unit:"",
type:"",
status:"",
}
this.getList();
} else {
this.formInlineTwo = {
unitName:"",
}
this.getList();
}
},
getList(){},
getListTwo(){},
goAudit(){
this.$router.push({name: 'taskAuditInfo',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 tab = document.getElementById('L-tab'); // ID
const pagination = document.getElementById('L-pagination'); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const tabHeight = tab.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - tabHeight - 140;
}
},
}
</script>

@ -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

@ -8,13 +8,27 @@
@close="resetCancel" @close="resetCancel"
:width="width" :width="width"
append-to-body append-to-body
align-center
> >
<slot></slot> <slot></slot>
<div v-if="footer" slot="footer" class="dialog-footer"> <div
v-if="footer"
slot="footer"
class="dialog-footer"
>
<el-form size="small"> <el-form size="small">
<el-form-item class="dialog-from-item"> <el-form-item class="dialog-from-item">
<el-button size="default" @click="resetCancel">{{ closeText }}</el-button> <el-button
<el-button type="primary" size="default" @click="resetConfirm"></el-button> size="default"
@click="resetCancel"
>{{ closeText }}</el-button
>
<el-button
type="primary"
size="default"
@click="resetConfirm"
>确定</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -22,59 +36,59 @@
</template> </template>
<script setup> <script setup>
import { ref } from 'vue' import { ref } from "vue";
// Props // Props
const props = defineProps({ const props = defineProps({
title: { title: {
type: String, type: String,
default: '' default: "",
}, },
myclass: { myclass: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
closeText: { closeText: {
type: String, type: String,
default: '取消' default: "取消",
}, },
width: { width: {
type: String, type: String,
default: '50%' default: "50%",
}, },
footer: { footer: {
type: Boolean, type: Boolean,
default: false default: false,
} },
}) });
// Emits // Emits
const emit = defineEmits(['close', 'confirm']) const emit = defineEmits(["close", "confirm"]);
// Dialog visible state () // Dialog visible state ()
const dialogFormVisible = ref(false) const dialogFormVisible = ref(false);
// Methods // Methods
const open = () => { const open = () => {
dialogFormVisible.value = true dialogFormVisible.value = true;
} };
const close = () => { const close = () => {
dialogFormVisible.value = false dialogFormVisible.value = false;
} };
// //
const resetCancel = () => { const resetCancel = () => {
emit('close') emit("close");
} };
// //
const resetConfirm = () => { const resetConfirm = () => {
emit('confirm') emit("confirm");
} };
// 使 // 使
defineExpose({ open, close }) defineExpose({ open, close });
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -82,13 +96,12 @@ defineExpose({ open, close })
border-radius: 10px; border-radius: 10px;
.el-dialog__header { .el-dialog__header {
border-bottom: 1px solid #DDDDDD; border-bottom: 1px solid #dddddd;
padding: 10px 20px; padding: 10px 20px;
background: #F2F4F6; background: #f2f4f6;
border-top-left-radius: 10px; /* 上左角圆角 */ border-top-left-radius: 10px; /* 上左角圆角 */
border-top-right-radius: 10px; /* 上右角圆角 */ border-top-right-radius: 10px; /* 上右角圆角 */
span { span {
// font-family: PingFang-SC, PingFang-SC; // font-family: PingFang-SC, PingFang-SC;
font-weight: 800; font-weight: 800;
@ -104,7 +117,7 @@ defineExpose({ open, close })
width: 5px; width: 5px;
border-radius: 5px; border-radius: 5px;
height: 100%; height: 100%;
background-color: #1485EF; background-color: #1485ef;
} }
} }
} }
@ -114,7 +127,7 @@ defineExpose({ open, close })
} }
.el-dialog__footer { .el-dialog__footer {
border-top: 1px solid #DDDDDD; border-top: 1px solid #dddddd;
.dialog-footer { .dialog-footer {
.el-form { .el-form {
@ -135,7 +148,7 @@ defineExpose({ open, close })
:deep(.custom-my-class) { :deep(.custom-my-class) {
margin-top: 15vh !important; margin-top: 15vh !important;
} }
:deep(.el-dialog__body){ :deep(.el-dialog__body) {
padding-top: 10px !important; padding-top: 10px !important;
} }
</style> </style>

@ -1,34 +1,82 @@
<template> <template>
<div
class="L-main L-mainTow"
<div class="L-main L-mainTow" id="L-size-main"> id="L-size-main"
<div class="content-search" id="L-header"> >
<div
class="content-search"
id="L-header"
>
<div class="search-title">查询条件</div> <div class="search-title">查询条件</div>
<el-form :inline="true" :model="queryParams" ref="queryForm" size="small" > <el-form
:inline="true"
:model="queryParams"
ref="queryForm"
size="default"
>
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="单位名称:" prop="nickName"> <el-form-item
<el-input v-model="queryParams.nickName" placeholder="请输入单位名称" clearable label="单位名称:"
@keyup.enter.native="handleQuery" /> prop="nickName"
>
<el-input
v-model="queryParams.nickName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="单位类型:" prop="dwlx"> <el-form-item
<el-select v-model="queryParams.dwlx" placeholder="请选择单位类型" clearable> label="单位类型:"
<el-option v-for="dict in dict.type.dwlx" :key="dict.value" :label="dict.label" :value="dict.value" /> prop="dwlx"
>
<el-select
v-model="queryParams.dwlx"
placeholder="请选择单位类型"
clearable
>
<el-option
v-for="dict in dict.type.dwlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="统一社会信用代码:" class="tyshxydm-class" prop="userName"> <el-form-item
<el-input v-model="queryParams.userName" placeholder="请输入统一社会信用代码" clearable label="统一社会信用代码:"
@keyup.enter.native="handleQuery" /> class="tyshxydm-class"
prop="userName"
>
<el-input
v-model="queryParams.userName"
placeholder="请输入统一社会信用代码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3" style="text-align: right;padding-right: 20px;"> <el-col
:span="3"
style="text-align: right; padding-right: 20px"
>
<el-form-item class="unit-form"> <el-form-item class="unit-form">
<el-button size="default" @click="resetQuery"></el-button> <el-button
<el-button size="default" type="primary" @click="handleQuery"></el-button> size="default"
@click="resetQuery"
>重置</el-button
>
<el-button
size="default"
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -37,271 +85,270 @@
<main> <main>
<div class="search-title"> <div class="search-title">
<span class="search-title-span">单位列表</span> <span class="search-title-span">单位列表</span>
</div> </div>
<section> <section>
<el-table ref="multipleTable" v-loading="loading" :data="userList" :height="tabHeader" :max-height="tabHeader" <el-table
:row-class-name="tableRowClassName" @selection-change="handleSelectionChange" row-key="userName"> ref="multipleTable"
<el-table-column type="selection" width="55" :reserve-selection="true"> v-loading="loading"
</el-table-column> :data="userList"
<el-table-column type="index" label="序号" width="50" align="center" /> :height="tabHeader"
<el-table-column label="单位名称" align="center" key="nickName" prop="nickName"> :max-height="tabHeader"
<template slot-scope="scope">{{ scope.row.nickName }}</template> :row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
row-key="userName"
>
<el-table-column
type="selection"
width="55"
:reserve-selection="true"
/>
<el-table-column
type="index"
label="序号"
width="70"
align="center"
/>
<el-table-column
label="单位名称"
align="center"
key="nickName"
prop="nickName"
>
<template #default="scope">{{ scope.row.nickName }}</template>
</el-table-column> </el-table-column>
<el-table-column label="单位类型" align="center" key="dwlx" prop="dwlx"> <el-table-column
<template slot-scope="scope"> label="单位类型"
<dict-tag :options="dict.type.dwlx" :value="scope.row.dwlx" /> align="center"
key="dwlx"
prop="dwlx"
>
<template #default="scope">
<dict-tag
:options="dict.type.dwlx"
:value="scope.row.dwlx"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="统一社会信用代码" align="center" key="userName" prop="userName"> <el-table-column
<template slot-scope="scope">{{ scope.row.userName }}</template> label="统一社会信用代码"
align="center"
key="userName"
prop="userName"
>
<template #default="scope">{{ scope.row.userName }}</template>
</el-table-column> </el-table-column>
<el-table-column label="所属区域" align="center" key="ssqycounty" prop="ssqycounty"> <el-table-column
<template slot-scope="scope">{{ getSsqu(scope.row) }}</template> label="所属区域"
align="center"
key="ssqycounty"
prop="ssqycounty"
>
<template #default="scope">{{ getSsqu(scope.row) }}</template>
</el-table-column> </el-table-column>
<el-table-column label="所属行业" align="center" key="sshy" prop="sshy"> <el-table-column
<template slot-scope="scope"> label="所属行业"
<dict-tag :options="dict.type.sshy" :value="scope.row.sshy" /> align="center"
<!-- {{ scope.row.sshy }} --> key="sshy"
prop="sshy"
>
<template #default="scope">
<dict-tag
:options="dict.type.sshy"
:value="scope.row.sshy"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="单位地址" align="center" key="dwxxdz" prop="dwxxdz"> <el-table-column
<template slot-scope="scope">{{ scope.row.dwxxdz }}</template> label="单位地址"
align="center"
key="dwxxdz"
prop="dwxxdz"
>
<template #default="scope">{{ scope.row.dwxxdz }}</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</section> </section>
<my-pagination id="L-pagination" :total="total" :page="queryParams.current" :limit="queryParams.size" <my-pagination
@pagination="getPagination" :current-page.sync="queryParams.current"></my-pagination> id="L-pagination"
:total="total"
:page="queryParams.current"
:limit="queryParams.size"
@pagination="getPagination"
:current-page.sync="queryParams.current"
></my-pagination>
</main> </main>
<div class="bottomclass"> <div class="bottomclass">
<el-button size="default" @click="resetCancel"></el-button> <el-button
<el-button type="primary" size="default" @click="resetConfirm"></el-button> size="default"
@click="resetCancel"
>取消</el-button
>
<el-button
type="primary"
size="default"
@click="resetConfirm"
>确定</el-button
>
</div> </div>
</div> </div>
</template> </template>
<script> <script setup>
// import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"; import { ref, onMounted, onUnmounted } from "vue";
import { listUnitdw, delUnit } from "@/api/auditPagesApi/index"; import { listUnitdw } from "@/api/auditPagesApi/index";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import myPagination from "@/views/components/Pagination/index.vue"
export default { // propsemits
name: "User", const emit = defineEmits(["liebiaoClose", "adddanweilist"]);
dicts: ['dwlx', 'sshy'],
components: { Treeselect, myPagination }, //
data() { const loading = ref(true);
return { const userList = ref([]);
// const total = ref(0);
loading: true, const tabHeader = ref(undefined);
// const tabclicklist = ref([]);
ids: [], const queryForm = ref(null);
// const multipleTable = ref(null);
single: true,
// const queryParams = ref({
multiple: true,
//
showSearch: true,
//
total: 0,
//
userList: [],
//
title: "",
//
deptOptions: undefined,
//
open: false,
//
deptName: undefined,
//
initPassword: undefined,
//
postOptions: [],
//
roleOptions: [],
//
form: {},
defaultProps: {
children: "children",
label: "label"
},
//
upload: {
//
open: false,
//
title: "",
//
isUploading: false,
//
updateSupport: 0,
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/tc/unit/importData"
},
//
queryParams: {
current: 1, current: 1,
size: 10, size: 10,
userName: undefined, userName: undefined,
nickName: undefined, nickName: undefined,
dwlx: undefined, dwlx: undefined,
type:"0", type: "0",
}, });
//
tabHeader: undefined, //
tabclicklist: [] const dict = {
}; type: {
dwlx: [],
sshy: [],
}, },
watch: { };
//
deptName(val) {
this.$refs.tree.filter(val);
//
const getSsqu = (row) => {
if (row.ssqyprovince && row.ssqycity && row.ssqycounty) {
return row.ssqyprovince + "/" + row.ssqycity + "/" + row.ssqycounty;
} else if (row.ssqyprovince && row.ssqycity) {
return row.ssqyprovince + "/" + row.ssqycity;
} else if (row.ssqyprovince) {
return row.ssqyprovince;
} }
}, return "";
created() { };
// this.getType();
// this.getConfigKey("sys.user.initPassword").then(response => {
// this.initPassword = response.msg;
// });
},
mounted() {
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods: {
getSsqu(row) {
if(row.ssqyprovince && row.ssqycity && row.ssqycounty) {
return row.ssqyprovince + "/" + row.ssqycity + '/' + row.ssqycounty
} else if(row.ssqyprovince && row.ssqycity) {
return row.ssqyprovince + "/" + row.ssqycity
} else if(row.ssqyprovince) {
return row.ssqyprovince
} else {
return
}
},
dakai(val) {
console.log(val);
this.toggleSelection(val) const resetCancel = () => {
}, emit("liebiaoClose");
resetCancel() { toggleSelection();
this.$emit('liebiaoClose') emit("adddanweilist", []);
this.toggleSelection() };
this.$emit('adddanweilist', [])
}, const resetConfirm = () => {
resetConfirm() { emit("adddanweilist", tabclicklist.value);
this.$emit('adddanweilist', this.tabclicklist) emit("liebiaoClose");
this.$emit('liebiaoClose') toggleSelection();
this.toggleSelection() };
}, const toggleSelection = (rows) => {
// /table
toggleSelection(rows) {
if (rows) { if (rows) {
rows.forEach(row => { rows.forEach((row) => {
this.$refs.multipleTable.toggleRowSelection(row); multipleTable.value.toggleRowSelection(row);
}); });
} else { } else {
this.$refs.multipleTable.clearSelection(); multipleTable.value.clearSelection();
}
},
handleSelectionChange(val) {
if (val) {
this.tabclicklist = val
} }
};
const handleSelectionChange = (val) => {
tabclicklist.value = val || [];
};
}, const tableRowClassName = ({ rowIndex }) => {
return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
};
// table const getType = (type) => {
tableRowClassName({ row, rowIndex }) { queryParams.value.type = type.join(",");
if (rowIndex % 2 !== 0) { getList();
return 'evenNumber-row'; };
}
return '';
},
getType(type){
this.queryParams.type = type.join(",")
this.getList()
},
/** 查询用户列表 */
getList(type) {
if(this.queryParams.type){
this.queryParams.type = this.queryParams.type
}
this.loading = true;
this.queryParams.isSearch = 1
listUnitdw(this.queryParams).then(response => {
this.userList = response.data.records;
this.total = response.data.total;
this.loading = false;
}
);
},
//
getPagination(pages) {
this.queryParams.current = pages.page;
this.queryParams.size = pages.limit;
this.getList();
},
//
/** 搜索按钮操作 */ const dakai = (val) => {
handleQuery() { console.log(val);
this.queryParams.current = 1; toggleSelection(val);
this.getList(); };
}, // getType
/** 重置按钮操作 */ defineExpose({
resetQuery() { getType,
if(this.queryParams.type){ dakai,
this.queryParams.type = this.queryParams.type });
const getList = async () => {
loading.value = true;
queryParams.value.isSearch = 1;
try {
const response = await listUnitdw(queryParams.value);
userList.value = response.data.records;
total.value = response.data.total;
} finally {
loading.value = false;
} }
this.resetForm("queryForm"); };
this.toggleSelection()
this.handleQuery(); const getPagination = (pages) => {
}, queryParams.value.current = pages.page;
queryParams.value.size = pages.limit;
getList();
};
const handleQuery = () => {
queryParams.value.current = 1;
getList();
};
const resetQuery = () => {
queryForm.value.resetFields();
toggleSelection();
handleQuery();
};
// const cancalDebounce = () => {
cancalDebounce() { const element = document.getElementById("L-size-main");
const element = document.getElementById('L-size-main'); // ID const header = document.getElementById("L-header");
const header = document.getElementById('L-header'); // ID const pagination = document.getElementById("L-pagination");
const pagination = document.getElementById('L-pagination'); // ID
const elementHeight = element.offsetHeight; const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight; const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight; const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 120; tabHeader.value = elementHeight - headerHeight - paginationtHeight - 120;
}
}
}; };
//
onMounted(() => {
getList();
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
});
onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce);
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
:deep(.danweiList){ :deep(.danweiList) {
padding: 0 20px; padding: 0 20px;
} }
:deep(.content-search){ :deep(.content-search) {
padding-top: 10px; padding-top: 10px;
} }
.L-mainTow { .L-mainTow {
background-color: #ffffff !important; background-color: #ffffff !important;
} }
:deep(.search-title){
:deep(.search-title) {
border: none !important; border: none !important;
} }
</style> </style>

@ -307,7 +307,7 @@
prop="dwmc" prop="dwmc"
class="select-box" class="select-box"
> >
<el-col> <div style="display: flex; width: 100%;gap: 10px;">
<el-select <el-select
v-model="ruleForm.dwmc" v-model="ruleForm.dwmc"
placeholder="请选择核查单位" placeholder="请选择核查单位"
@ -316,14 +316,12 @@
@remove-tag="isclear" @remove-tag="isclear"
> >
</el-select> </el-select>
</el-col>
<el-col class="btn-box">
<el-button <el-button
type="primary" type="primary"
@click="addliebiao" @click="addliebiao"
><i class="el-icon-s-unfold"></i :icon="Expand"
></el-button> ></el-button>
</el-col> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="任务期限" label="任务期限"
@ -364,7 +362,7 @@
width="80%" width="80%"
> >
<danweiList <danweiList
ref="danweiList" ref="danweiListRef"
@adddanweilist="adddanweilist" @adddanweilist="adddanweilist"
@liebiaoClose="liebiaoClose" @liebiaoClose="liebiaoClose"
></danweiList> ></danweiList>
@ -373,34 +371,31 @@
</div> </div>
</template> </template>
<script> <script setup>
import { ref, onMounted, onUnmounted, getCurrentInstance } from "vue"; import { ref, onMounted, onUnmounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import myPagination from "@/views/components/Pagination/index.vue"; import myPagination from "@/views/components/Pagination/index.vue";
import myDialog from "@/views/components/myDialog/index.vue"; import myDialog from "@/views/components/myDialog/index.vue";
import danweiList from "@/views/system/user/danweiList.vue"; import danweiList from "@/views/system/user/danweiList.vue";
import { Plus,Expand } from "@element-plus/icons-vue";
import { import {
addassetTaskadd, addassetTaskadd,
getassetTask, getassetTask,
getassetTaskid, getassetTaskid,
assetTaskclose, assetTaskclose,
} from "@/api/renwuApi/index.js"; } from "@/api/renwuApi/index.js";
import { Plus } from "@element-plus/icons-vue";
const router = useRouter();
export default {
// components: { myPagination, myDialog, danweiList }, // Refs
setup() { const taskDialog = ref(null);
const router = useRouter(); const liebiaoDialog = ref(null);
const { proxy } = getCurrentInstance(); const danweiListRef = ref(null);
// Refs const ruleFormRef = ref(null);
const taskDialog = ref(null); const { proxy } = getCurrentInstance();
const liebiaoDialog = ref(null);
const danweiList = ref(null); const pickerOptions = {
const ruleFormRef = ref(null);
const pickerOptions = {
disabledDate(time) { disabledDate(time) {
const date = new Date(); const date = new Date();
const oneday = date.getTime(); const oneday = date.getTime();
@ -413,64 +408,62 @@ export default {
let second = data.getSeconds(); let second = data.getSeconds();
return [`${hour}:${minute}:${second} - 23:59:59`]; return [`${hour}:${minute}:${second} - 23:59:59`];
})(), })(),
}; };
const btnloading = ref(false); const btnloading = ref(false);
const formInline = ref({ const formInline = ref({
name: "", name: "",
type: "", type: "",
time: [], time: [],
number: "", number: "",
status: "", status: "",
}); });
const total = ref(0); const total = ref(0);
const pagination = ref({ const pagination = ref({
current: 1, current: 1,
size: 10, size: 10,
}); });
const tableData = ref([]); const tableData = ref([]);
const loading = ref(false); const loading = ref(false);
const tabHeader = ref(undefined); const tabHeader = ref(undefined);
const ruleForm = ref({ const ruleForm = ref({
taskName: "", taskName: "",
dwmc: [], dwmc: [],
taskDeadline: "", taskDeadline: "",
type: [], type: [],
}); });
const rules = ref({ const rules = ref({
taskName: [{ required: true, message: "请输入", trigger: "change" }], taskName: [{ required: true, message: "请输入", trigger: "change" }],
dwmc: [{ required: true, message: "请选择", trigger: "change" }], dwmc: [{ required: true, message: "请选择", trigger: "change" }],
taskDeadline: [ taskDeadline: [{ required: true, message: "请选择日期", trigger: "change" }],
{ required: true, message: "请选择日期", trigger: "change" },
],
type: [{ required: true, message: "请选择", trigger: "change" }], type: [{ required: true, message: "请选择", trigger: "change" }],
}); });
const tabclicklist = ref([]); const tabclicklist = ref([]);
const chanckList = ref([ const chanckList = ref([
{ lable: "0", conent: "web资产" }, { lable: "0", conent: "web资产" },
{ lable: "1", conent: "小程序资产" }, { lable: "1", conent: "小程序资产" },
{ lable: "2", conent: "公众号资产" }, { lable: "2", conent: "公众号资产" },
{ lable: "3", conent: "电子邮件资产" }, { lable: "3", conent: "电子邮件资产" },
{ lable: "4", conent: "移动应用程序资产" }, { lable: "4", conent: "移动应用程序资产" },
]); ]);
// Methods // Methods
const isclear = (value) => { const isclear = (value) => {
tabclicklist.value = tabclicklist.value.filter( tabclicklist.value = tabclicklist.value.filter(
(user) => user.nickName != value (user) => user.nickName != value
); );
}; };
const checkboxChange = () => { const checkboxChange = () => {
ruleForm.value.dwmc = []; ruleForm.value.dwmc = [];
tabclicklist.value = []; tabclicklist.value = [];
setTimeout(() => { setTimeout(() => {
ruleFormRef.value.clearValidate(); ruleFormRef.value.clearValidate();
}, 0); }, 0);
}; };
const resetForm = () => { const resetForm = () => {
ruleForm.value = { ruleForm.value = {
dwmc: [], dwmc: [],
taskName: "", taskName: "",
@ -480,15 +473,15 @@ export default {
taskDialog.value.close(); taskDialog.value.close();
tabclicklist.value = []; tabclicklist.value = [];
btnloading.value = false; btnloading.value = false;
}; };
const fonsisis = (data) => { const fonsisis = (data) => {
const specificTime = new Date(data); const specificTime = new Date(data);
const currentTime = new Date(); const currentTime = new Date();
return currentTime <= specificTime; return currentTime <= specificTime;
}; };
const submitForm = async () => { const submitForm = async () => {
if (!fonsisis(ruleForm.value.taskDeadline)) { if (!fonsisis(ruleForm.value.taskDeadline)) {
ElMessage.error("选择时间不能小于当前时间"); ElMessage.error("选择时间不能小于当前时间");
return false; return false;
@ -513,18 +506,18 @@ export default {
} finally { } finally {
btnloading.value = false; btnloading.value = false;
} }
}; };
const adddanweilist = (val) => { const adddanweilist = (val) => {
if (val) { if (val) {
ruleForm.value.dwmc = val.map((element) => element.nickName); ruleForm.value.dwmc = val.map((element) => element.nickName);
} else { } else {
ruleForm.value.dwmc = []; ruleForm.value.dwmc = [];
} }
tabclicklist.value = val || []; tabclicklist.value = val || [];
}; };
const getInfo = async () => { const getInfo = async () => {
loading.value = true; loading.value = true;
try { try {
const res = await getassetTask(pagination.value); const res = await getassetTask(pagination.value);
@ -533,9 +526,9 @@ export default {
} finally { } finally {
loading.value = false; loading.value = false;
} }
}; };
const resetQuery = () => { const resetQuery = () => {
formInline.value = { formInline.value = {
name: "", name: "",
type: "", type: "",
@ -549,26 +542,26 @@ export default {
}; };
localStorage.removeItem("ismypagination"); localStorage.removeItem("ismypagination");
getInfo(); getInfo();
}; };
const addliebiao = () => { const addliebiao = () => {
if (ruleForm.value.type.length > 0) { if (ruleForm.value.type.length > 0) {
liebiaoDialog.value.open(); liebiaoDialog.value.open();
setTimeout(() => { setTimeout(() => {
danweiList.value.getType(ruleForm.value.type); danweiListRef.value.getType(ruleForm.value.type);
if (tabclicklist.value) { if (tabclicklist.value) {
setTimeout(() => { setTimeout(() => {
danweiList.value.dakai(tabclicklist.value); danweiListRef.value.dakai(tabclicklist.value);
}, 100); }, 100);
} }
}, 10); }, 10);
} else { } else {
ElMessage("请先选择核查资产类型"); ElMessage("请先选择核查资产类型");
} }
}; };
const liebiaoClose = () => { const liebiaoClose = () => {
danweiList.value.queryParams = { danweiListRef.value.queryParams = {
current: 1, current: 1,
size: 10, size: 10,
userName: undefined, userName: undefined,
@ -576,9 +569,9 @@ export default {
dwlx: undefined, dwlx: undefined,
}; };
liebiaoDialog.value.close(); liebiaoDialog.value.close();
}; };
const handleQuery = () => { const handleQuery = () => {
pagination.value = { pagination.value = {
current: 1, current: 1,
size: 10, size: 10,
@ -593,26 +586,26 @@ export default {
formInline.value.isfanhui = false; formInline.value.isfanhui = false;
localStorage.setItem("ismypagination", JSON.stringify(formInline.value)); localStorage.setItem("ismypagination", JSON.stringify(formInline.value));
getInfo(); getInfo();
}; };
const getPagination = (pages) => { const getPagination = (pages) => {
pagination.value.current = pages.page; pagination.value.current = pages.page;
pagination.value.size = pages.limit; pagination.value.size = pages.limit;
getInfo(); getInfo();
}; };
const handleAdd = () => { const handleAdd = () => {
taskDialog.value.open(); taskDialog.value.open();
setTimeout(() => { setTimeout(() => {
ruleFormRef.value.clearValidate(); ruleFormRef.value.clearValidate();
}, 100); }, 100);
}; };
const importClose = () => { const importClose = () => {
resetForm(); resetForm();
}; };
const goInfo = (row) => { const goInfo = (row) => {
getassetTaskid(row.id); getassetTaskid(row.id);
proxy.setActiveMenu("/taskManagement"); proxy.setActiveMenu("/taskManagement");
router.push({ router.push({
@ -622,9 +615,9 @@ export default {
id: row.id, id: row.id,
}, },
}); });
}; };
const delInfo = (row) => { const delInfo = (row) => {
router.push({ router.push({
name: "TaskInfo", name: "TaskInfo",
query: { query: {
@ -632,9 +625,9 @@ export default {
id: row.id, id: row.id,
}, },
}); });
}; };
const guanbijiekou = (row) => { const guanbijiekou = (row) => {
ElMessageBox.confirm("此操作将关闭任务, 是否继续?", "提示", { ElMessageBox.confirm("此操作将关闭任务, 是否继续?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
@ -652,13 +645,13 @@ export default {
.catch(() => { .catch(() => {
ElMessage.info("已取消关闭"); ElMessage.info("已取消关闭");
}); });
}; };
const tableRowClassName = ({ rowIndex }) => { const tableRowClassName = ({ rowIndex }) => {
return rowIndex % 2 !== 0 ? "evenNumber-row" : ""; return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
}; };
const cancalDebounce = () => { const cancalDebounce = () => {
const element = document.getElementById("L-size-main"); const element = document.getElementById("L-size-main");
const header = document.getElementById("L-header"); const header = document.getElementById("L-header");
const pagination = document.getElementById("L-pagination"); const pagination = document.getElementById("L-pagination");
@ -666,10 +659,10 @@ export default {
const headerHeight = header.offsetHeight; const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight; const paginationtHeight = pagination.offsetHeight;
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110; tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110;
}; };
// Lifecycle hooks // Lifecycle hooks
onMounted(() => { onMounted(() => {
if (localStorage.getItem("ismypagination")) { if (localStorage.getItem("ismypagination")) {
const storedData = JSON.parse(localStorage.getItem("ismypagination")); const storedData = JSON.parse(localStorage.getItem("ismypagination"));
if (storedData.isfanhui) { if (storedData.isfanhui) {
@ -684,20 +677,18 @@ export default {
getInfo(); getInfo();
cancalDebounce(); cancalDebounce();
window.addEventListener("resize", cancalDebounce); window.addEventListener("resize", cancalDebounce);
}); });
onUnmounted(() => { onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce); window.removeEventListener("resize", cancalDebounce);
}); });
return { // Expose to template
// Refs defineExpose({
taskDialog, taskDialog,
liebiaoDialog, liebiaoDialog,
danweiList, danweiList,
ruleFormRef, ruleFormRef,
// Data
pickerOptions, pickerOptions,
btnloading, btnloading,
formInline, formInline,
@ -710,8 +701,7 @@ export default {
rules, rules,
tabclicklist, tabclicklist,
chanckList, chanckList,
Plus,
// Methods
isclear, isclear,
checkboxChange, checkboxChange,
resetForm, resetForm,
@ -731,9 +721,7 @@ export default {
guanbijiekou, guanbijiekou,
tableRowClassName, tableRowClassName,
cancalDebounce, cancalDebounce,
}; });
},
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -748,3 +736,16 @@ export default {
margin-right: 5px; margin-right: 5px;
} }
</style> </style>
<style lang="scss" scoped>
.el-icon-s-unfold {
font-size: 16px;
}
.el-icon-delete {
color: #409eff;
font-size: 16px;
font-weight: 600;
margin-right: 5px;
}
</style>

Loading…
Cancel
Save