<!-- 任务管理 --> <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.taskName" placeholder="请输入"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="任务编号:"> <el-input v-model="formInline.taskId" placeholder="请输入"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="任务状态:"> <el-select v-model="formInline.taskStatus" placeholder="请选择"> <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-row> <el-row> <el-col :span="8"> <el-form-item > <!-- <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-col :span="16" style="text-align: right;padding-right: 20px;"> <el-form-item> <el-button size="mini" @click="resetQuery('queryFrom')">重置</el-button> <el-button size="mini" 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="50" 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 slot-scope="scope"> <span v-if="scope.row.taskStatus == 1" style="color: #F58A0C;"> 进行中 </span> <span v-if="scope.row.taskStatus == 2" style="color: #F50C0C;"> 正常完成 </span> <span v-if="scope.row.taskStatus == 3" style="color: #16B771;"> 超期完成 </span> <span v-if="scope.row.taskStatus == 4" style="color: #1485EF;"> 正常完成 </span> <span v-if="scope.row.taskStatus == 5" 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;cursor: pointer;"> <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;margin-right: 15px;cursor: pointer;">查看</span> </div> <!-- v-if="scope.row.taskStatus == 1" --> <div style="display: flex;align-items: center;cursor: pointer;"> <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;margin-right: 15px;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> 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 } from "@/api/renwuApi/index.js" export default { // dicts: ['jjh_project_type', 'bms_approval_status', "project_middle_type", "project_small_type", "project_categories"], components: { myPagination, myDialog, danweiList }, data() { return { formInline: { name: "", type: "", time: [], number: "", status: "", }, total: 0, pagination: { current: 1, size: 10, }, tableData: [ ], loading: false, tabHeader: undefined, ruleForm: { taskName: "", dwmc: [], taskDeadline: "", }, rules: { taskName: [ { required: true, message: '请输入', trigger: 'blur' }, ], dwmc: [ { required: true, message: '请选择', trigger: 'change' } ], taskDeadline: [ { required: true, message: '请选择日期', trigger: 'change' } ], }, tabclicklist: [] } }, mounted() { console.log(this.$store.state.user); if(this.$store.state.user.roles[0] == "admin"){ // this.pagination: { // current: 1, // size: 10, // }, } this.getInfo(); this.cancalDebounce(); window.addEventListener('resize', this.cancalDebounce); }, destroyed() { window.removeEventListener('resize', this.cancalDebounce); }, methods: { // 关闭新增弹窗 resetForm() { this.ruleForm = { dwmc: [], taskName: "", taskDeadline: "", } this.$refs.taskDialog.close() this.tabclicklist = [] }, submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { this.ruleForm.dwmc = this.ruleForm.dwmc.join(",") addassetTaskadd(this.ruleForm).then(res => { this.resetForm() this.getInfo(); }) setTimeout(() => { this.ruleForm.dwmc = this.ruleForm.dwmc.split(",") }, 0); } else { console.log('error submit!!'); return false; } }); }, adddanweilist(val) { if (val) { let list = val this.ruleForm.dwmc = [] list.forEach(element => { this.ruleForm.dwmc.push(element.nickName) }); } else { this.ruleForm.dwmc = [] } this.tabclicklist = val }, // 获取列表 getInfo() { this.loading = true; getassetTask(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.getInfo(); }, //打开列表 addliebiao() { this.$refs.liebiaoDialog.open() if (this.tabclicklist) { setTimeout(() => { this.$refs.danweiList.dakai(this.tabclicklist) }, 100); } }, liebiaoClose() { this.$refs.liebiaoDialog.close() }, // 查询 handleQuery() { this.pagination = { current: 1, size: 10 } if (this.formInline.time.length > 0) { this.formInline.begainTime = this.formInline.time[0] this.formInline.endTime = this.formInline.time[1] } this.pagination = { ...this.pagination, ...this.formInline }; this.getInfo(); }, // 页码获取 getPagination(pages) { this.pagination.current = pages.page; this.pagination.size = pages.limit; this.getInfo(); }, // 导入 handleImport() { }, // 导出 handleExport() { }, // 任务创建 handleAdd() { this.$refs.taskDialog.open() }, // 关闭弹框 importClose() { }, // 查看详情 goInfo(row) { getassetTaskid(row.id) this.$router.push({ name: 'mytaskInfo', query: { pageType: "look", id:row.id } }) }, delInfo(row) { //taskAudit this.$router.push({ name: 'mytaskInfo', query: { pageType: "info", id:row.id } }) }, // 编辑 edit() { }, // 审核 // 修改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> <style lang="scss" scoped> .el-icon-s-unfold { font-size: 16px; } </style>