<template> <div class="app-container"> <el-page-header content="查看详情" @back="goBack"/> <div class="level-title mt-20"/> <el-form label-width="100px"> <!-- <el-row>--> <!-- <el-col :span="5">--> <!-- <el-form-item label="关键字搜索">--> <!-- <el-input v-model="KEYWORDS" placeholder="搜索关键字" />--> <!-- </el-form-item>--> <!-- </el-col>--> <!-- <el-col :span="6">--> <!-- <el-form-item label-width="10px">--> <!-- <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">--> <!-- 搜索--> <!-- </el-button>--> <!-- <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">--> <!-- 重置--> <!-- </el-button>--> <!-- </el-form-item>--> <!-- </el-col>--> <!-- </el-row>--> <el-row> <el-col :span="8"> <el-form-item label="关键字搜索"> <el-input v-model="KEYWORDS" placeholder="搜索关键字" style="width: 100%;" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="集团单位"> <el-select v-model="GROUP_UNIT" placeholder="请选择集团单位" style="width: 100%;"> <el-option v-for="item in groupCorpList" :key="item.CORPINFO_ID" :label="item.CORP_NAME" :value="item.CORPINFO_ID" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="主管部门"> <SelectTree ref="deptTree" :clearable="false" :options="treeDataInspectDept" :props="defaultProps" v-model="COMPETENT_DEPT_ID" placeholder="请选择企业主管部门" style="width: 100%"/> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="8"> <el-form-item label="施工相关方"> <el-select v-model="UNITS_ID" placeholder="请选择施工相关方" style="width: 100%"> <el-option v-for="item in unitsList" :key="item.UNITS_ID" :label="item.UNITS_NAME" :value="item.UNITS_ID" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="监管部门"> <SelectTree ref="deptTree1" :clearable="false" :options="treeDataInspectDept" :props="defaultProps" v-model="DEPARTMENT_ID" placeholder="请选择股份监管部门" style="width: 100%" /> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="合同起止时间"> <el-date-picker v-model="CONTRACTTIME" type="daterange" unlink-panels value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" style="width: 100%;" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="8"> <el-form-item label="状态"> <el-select ref="SELECT_STATE" v-model="STATE" style="width: 100%;"> <el-option v-for="item in stateList" :key="item.ID" :label="item.NAME" :value="item.ID" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label-width="10px"> <el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"> 搜索 </el-button> <el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset"> 重置 </el-button> </el-form-item> </el-col> </el-row> </el-form> <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{ 'font-weight': 'bold', 'color': '#000' }" tooltip-effect="dark" border fit highlight-current-row > <el-table-column :reserve-selection="true" type="selection" width="55" align="center"/> <el-table-column type="index" label="序号" width="50" align="center" /> <el-table-column prop="OUTSOURCED_NAME" label="重点工程名称" show-overflow-tooltip /> <el-table-column prop="STARTTIME" label="工期" show-overflow-tooltip> <template slot-scope="{row}"> {{ row.STARTTIME }} -- {{ row.ENDTIME }} </template> </el-table-column> <el-table-column prop="DEPARTMENT_NAME" label="监管部门" show-overflow-tooltip > <template slot-scope="{row}"> <span v-if="row.Q_DEPARTMENT_NAME"> {{ row.Q_DEPARTMENT_NAME }} </span> <span v-else>{{ row.DEPARTMENT_NAME }}</span> </template> </el-table-column> <el-table-column label="主管部门" show-overflow-tooltip > <template slot-scope="{row}"> <span v-if="row.Q_COMPETENT_DEPT_NAME"> {{ row.Q_COMPETENT_DEPT_NAME }} </span> <span v-else>{{ row.MANAGER_DEPARTMENT_NAME }}</span> </template> </el-table-column> <el-table-column prop="UNITS_NAME" label="施工相关方" width="250" show-overflow-tooltip /> <el-table-column prop="VIDEO_COUNT" label="视频个数" /> <el-table-column prop="STATE" label="状态"> <template slot-scope="{row}"> <span v-if="row.STATE == 1">进行中</span> <span v-if="row.STATE == 2">已结束</span> </template> </el-table-column> <el-table-column label="操作" align="center" width="100"> <template slot-scope="{row}"> <el-button type="success" icon="el-icon-view" size="mini" @click="goDetail(row)">查看</el-button> </template> </el-table-column> </el-table> <div class="page-btn-group"> <div/> <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> </div> </div></template> <script> import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 import { requestFN } from '@/utils/request' import SelectTree from '@/components/SelectTree' import waves from '@/directive/waves' // waves directive export default { components: { Pagination, SelectTree }, directives: { waves }, data() { return { listLoading: true, listQuery: { page: 1, limit: 20 }, total: 0, form: {}, KEYWORDS: '', GROUP_UNIT: '', DEPARTMENT_ID: '', COMPETENT_DEPT_ID: '', STATE: '', CONTRACTTIME: ['', ''], // 区间条件 stateList: [ { ID: '1', NAME: '进行中' }, { ID: '2', NAME: '已结束' } ], UNITS_ID: '', groupCorpList: [], unitsList: [], treeDataInspectDept: [], defaultProps: { value: 'id', children: 'nodes', label: 'name' }, varList: [] } }, watch: { CONTRACTTIME: function(newData, oldData) { if (!newData) { this.CONTRACTTIME = ['', ''] this.getQuery() } } }, created() { this.getList() this.getUnitsList() this.getCorpList() this.selectDeptOption() }, methods: { getCorpList() { requestFN( '/corpinfo/listAll', {} ).then((data) => { this.corpList = data.varList this.mangeList = data.varList if (!this.$parent.OUTSOURCED_ID) { this.form.MANAGE_NAME = ['133a982a3e93464a9b1de25fe6dd4948'] } for (let i = 0; i < data.varList.length; i++) { const corpId = data.varList[i].CORPINFO_ID if (corpId === '1e6dbbe16004402f8d2c0e52afd9a676' || corpId === '3a854eefa7894e06aaa1a2611bca80f6' || corpId === '020578a4c1f04bc692ee25145c2efbe5' || corpId === '90966974de3c4b83aca6f8fd6432d5c2') { this.groupCorpList.push(data.varList[i]) } } }).catch((e) => { }) }, selectDeptOption() { // 合并 return new Promise((resolve) => { requestFN( '/corpDepartment/listTreeManageAndCorp1', ).then((data) => { this.treeDeptOptions = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes') this.treeDataInspectDept = this.listTransTree(JSON.parse(data.zTreeNodes), 'id', 'pId', 'nodes') resolve() }).catch((e) => { }) }) }, getUnitsList() { requestFN( '/units/listAll', { UNITS_ID: this.form.UNITS_ID } ).then((data) => { this.unitsList = data.varList }).catch((e) => { }) }, getRowKey(row) { return row.OUTSOURCED_ID }, goBack() { this.$parent.activeName = 'OutSourced' this.$parent.OUTSOURCED_ID = '' }, // 搜索 getQuery() { this.$refs.multipleTable.clearSelection() this.getList() }, goKeyReset() { this.KEYWORDS = '' this.UNITS_ID = '' this.STATE = '' this.CONTRACT_STIME = '' this.CONTRACT_ETIME = '' this.CONTRACTTIME = ['', ''] this.$refs.deptTree.clearHandle() this.$refs.deptTree1.clearHandle() this.INVOLVING_CORP = '' this.DEPARTMENT_ID = '' this.COMPETENT_DEPT_ID = '' this.GROUP_UNIT = '' this.CORP_NAME = '' this.getQuery() }, // 获取列表 getList() { this.listLoading = true requestFN( '/outsourced/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, { KEYWORDS: this.KEYWORDS, UNITS_ID: this.UNITS_ID, CONTRACT_STIME: this.CONTRACTTIME[0], CONTRACT_ETIME: this.CONTRACTTIME[1], STATE: this.STATE, INVOLVING_CORP: this.INVOLVING_CORP, DEPARTMENT_ID: this.DEPARTMENT_ID, COMPETENT_DEPT_ID: this.COMPETENT_DEPT_ID, GROUP_UNIT: this.GROUP_UNIT, CORP_NAME: this.CORP_NAME, CORPINFO_ID: this.$parent.CORPINFO_ID } ).then((data) => { this.listLoading = false this.varList = data.varList this.total = data.page.totalResult }).catch((e) => { this.listLoading = false }) }, // 查看 goDetail(row) { this.$parent.OUTSOURCED_ID = row.OUTSOURCED_ID this.$parent.UNITS_ID = row.UNITS_ID this.$parent.STATE = row.STATE this.$parent.activeName = 'videoList' } } } </script> <style lang="sass" scoped> .table-qrcode text-align: center padding-top: 20px width: 100% .filter-container position: relative .filter-flot position: absolute right: 0 top: 0 .uploader width: 570px display: flex align-items: center .el-form-item__content line-height: 1 </style>