| | |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npm.taobao.org/call-bind/download/call-bind-1.0.2.tgz?cache=0&sync_timestamp=1610403007655&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcall-bind%2Fdownload%2Fcall-bind-1.0.2.tgz", |
| | | "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=", |
| | | "dev": true, |
| | | "requires": { |
| | | "function-bind": "^1.1.1", |
| | | "get-intrinsic": "^1.0.2" |
| | |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npm.taobao.org/get-intrinsic/download/get-intrinsic-1.1.1.tgz", |
| | | "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=", |
| | | "dev": true, |
| | | "requires": { |
| | | "function-bind": "^1.1.1", |
| | | "has": "^1.0.3", |
| | |
| | | "has-symbols": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.2.tgz?cache=0&sync_timestamp=1614443577352&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.2.tgz", |
| | | "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=", |
| | | "dev": true |
| | | "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=" |
| | | }, |
| | | "has-tostringtag": { |
| | | "version": "1.0.0", |
| | |
| | | "object-inspect": { |
| | | "version": "1.9.0", |
| | | "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.9.0.tgz?cache=0&sync_timestamp=1606804265193&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.9.0.tgz", |
| | | "integrity": "sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=", |
| | | "dev": true |
| | | "integrity": "sha1-yQUh104RJ7ZyZt7TOUrWEWmGUzo=" |
| | | }, |
| | | "object-is": { |
| | | "version": "1.1.5", |
| | |
| | | "dev": true |
| | | }, |
| | | "qs": { |
| | | "version": "6.5.2", |
| | | "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", |
| | | "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" |
| | | "version": "6.11.2", |
| | | "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", |
| | | "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", |
| | | "requires": { |
| | | "side-channel": "^1.0.4" |
| | | } |
| | | }, |
| | | "query-string": { |
| | | "version": "5.1.1", |
| | |
| | | "tough-cookie": "~2.5.0", |
| | | "tunnel-agent": "^0.6.0", |
| | | "uuid": "^3.3.2" |
| | | }, |
| | | "dependencies": { |
| | | "qs": { |
| | | "version": "6.5.3", |
| | | "resolved": "https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz", |
| | | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" |
| | | } |
| | | } |
| | | }, |
| | | "request-promise-core": { |
| | |
| | | "version": "1.0.4", |
| | | "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", |
| | | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", |
| | | "dev": true, |
| | | "requires": { |
| | | "call-bind": "^1.0.0", |
| | | "get-intrinsic": "^1.0.2", |
| | |
| | | "open-docxtemplater-image-module": "^1.0.3", |
| | | "path-to-regexp": "2.4.0", |
| | | "pizzip": "^3.1.3", |
| | | "qs": "^6.11.2", |
| | | "tasksfile": "^5.1.1", |
| | | "three": "^0.132.2", |
| | | "vue": "2.6.10", |
| | |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="small" @click="onSubmit">查询</el-button> |
| | | <el-button type="primary" size="small" @click="handleAdd">新建</el-button> |
| | | <!-- <el-button type="primary" size="small" @click="handleAdd">新建</el-button> --> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | <div style="display: flex;"> |
| | | <el-form-item label="是否整改:"> |
| | | <el-radio-group v-model="workForme.isChange"> |
| | | <el-radio :label="0">是</el-radio> |
| | | <el-radio :label="1">否</el-radio> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="整改人:"> |
| | |
| | | <el-col :span="12"> |
| | | <div class="grid-content bg-purple" /> |
| | | <el-descriptions title="整改信息" :column="parseInt('2')"> |
| | | <el-descriptions-item label="是否整改" label-class-name="itemSpan">{{ parentFormData.changeType }}</el-descriptions-item> |
| | | <el-descriptions-item label="是否整改" label-class-name="itemSpan">{{ dictObj.yesOrNo[parentFormData.isChange] }}</el-descriptions-item> |
| | | <el-descriptions-item label="整改人" label-class-name="itemSpan">{{ parentFormData.changeName }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | <el-descriptions :column="parseInt('1')"> |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <div class="main" v-loading="loading"> |
| | | <div> |
| | | <searchBar v-if="searchType" :search-type="'reform'" @handleSearch="handleSearchBut" @handleAdd="handleOpenDialog(null, 'add')" /> |
| | | <newWorkOrder v-if="centerDialogVisible" ref="newWorkOrder" :parent-form-data="parentFormData" :title="title" :page-state="pageState" :visible.sync="centerDialogVisible" @handleSubmit="newHandleSubmit" /> |
| | | <!-- <el-divider></el-divider> --> |
| | | <div class="tab"> |
| | | <el-table size="mini" :data="tableData" border max-height="680" style="width: 100%" :header-cell-style="{ |
| | | <div class="exportBox"> |
| | | <div>查询列表</div> |
| | | <div> |
| | | <el-button type="primary" size="mini" @click="handleOpenDialog(null, 'add')">新建</el-button> |
| | | <el-button :disabled="!(selectionRows.length>0)" type="info" size="mini" @click="exportData">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table size="mini" :data="tableData" border max-height="680" style="width: 100%" @selection-change="handleSelectionChange" :header-cell-style="{ |
| | | color: '#101111', |
| | | fontSize: '16px' |
| | | }"> |
| | | <el-table-column type="selection" width="40" align="center"> |
| | | </el-table-column> |
| | | <el-table-column type="index" label="序号" width="60px" align="center" /> |
| | | <el-table-column align="center"> |
| | | <template slot="header"> |
| | |
| | | <div>{{ scope.row.updateTime }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="createTime" width="100px" label="操作"> |
| | | <el-table-column align="center" prop="createTime" min-width="100px" label="操作"> |
| | | <template slot-scope="scope"> |
| | | |
| | | <el-button type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'detail')"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import axios from 'axios' |
| | | import qs from 'qs' |
| | | import searchBar from '@/views/toCarryOutLegislativeReforms/components/queryForm' |
| | | import newWorkOrder from '@/views/toCarryOutLegislativeReforms/components/newWorkOrder' |
| | | import workOrderInformation from '@/views/toCarryOutLegislativeReforms/components/workOrderInformation' |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | selectionRows: [], |
| | | errorClass: 'errorClass', |
| | | searchType: 'reform', |
| | | pagination: { |
| | |
| | | this.getContaminateList() |
| | | }, |
| | | methods: { |
| | | handleSelectionChange(rows) { |
| | | console.log(rows) |
| | | this.selectionRows = rows |
| | | }, |
| | | exportData() { |
| | | const CancelToken = axios.CancelToken |
| | | let cancel |
| | | let timer = setTimeout(() => { |
| | | cancel() |
| | | this.loading = false |
| | | this.$message.error('当前下载数据过多,请分批下载!') |
| | | }, 30000) |
| | | this.loading = true |
| | | this.$request({ |
| | | url: '/allocation/listExcel', |
| | | method: 'get', |
| | | params: { |
| | | id: this.selectionRows.map(item => item.allocationId) |
| | | }, |
| | | cancelToken: new CancelToken(function executor(c) { |
| | | cancel = c |
| | | }), |
| | | paramsSerializer: params => { |
| | | return qs.stringify(params, { |
| | | indices: false |
| | | }) |
| | | } |
| | | }) |
| | | .then(res => { |
| | | clearTimeout(timer) |
| | | console.log('导出成功', res) |
| | | if (res.code === -1) { |
| | | this.$message.error(res.message) |
| | | } else { |
| | | this.getOutExcel('交办单导出.xlsx', res) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | clearTimeout(timer) |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | getOutExcel(fileName, res) { |
| | | let blob = new Blob([res], { type: 'application/x-xls' }) |
| | | if (window.navigator.msSaveOrOpenBlob) { |
| | | //兼容 IE & EDGE |
| | | this.loading = false |
| | | navigator.msSaveBlob(blob, fileName) |
| | | } else { |
| | | var link = document.createElement('a') |
| | | // 兼容不同浏览器的URL对象 |
| | | const url = window.URL || window.webkitURL || window.moxURL |
| | | // 创建下载链接 |
| | | link.href = url.createObjectURL(blob) |
| | | //命名下载名称 |
| | | link.download = fileName |
| | | //点击触发下载 |
| | | link.click() |
| | | //下载完成进行释放 |
| | | url.revokeObjectURL(link.href) |
| | | this.loading = false |
| | | } |
| | | }, |
| | | openEditDialog(row) { |
| | | this.editEscalationUnitData = row |
| | | this.dialogEditVisible = true |
| | |
| | | this.handleSearch(obj) |
| | | }, |
| | | handleSearch(obj) { |
| | | this.selectionRows = [] |
| | | if (obj) { |
| | | this.searchData = obj |
| | | } |
| | |
| | | font-size: 16px; |
| | | font-weight: 700; |
| | | } |
| | | .exportBox { |
| | | font-weight: 700; |
| | | font-size: 18px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <div class="timeSelect"> |
| | | <el-radio-group |
| | | v-model="searchForm.number" |
| | | style="margin-left:20px" |
| | | @input="changeNumber" |
| | | > |
| | | <el-radio-group v-model="searchForm.number" style="margin-left:20px" @input="changeNumber"> |
| | | <el-radio-button label="1">近1个月</el-radio-button> |
| | | <el-radio-button label="2">近2个月</el-radio-button> |
| | | <el-radio-button label="3">近3个月</el-radio-button> |
| | | <el-radio-button label="6">近6个月</el-radio-button> |
| | | <el-radio-button label="12">近12个月</el-radio-button> |
| | | </el-radio-group> |
| | | <el-date-picker |
| | | v-model="timeInterval" |
| | | el-time-picker |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | @change="changeNumber" |
| | | /> |
| | | <el-date-picker v-model="timeInterval" el-time-picker type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="changeNumber" /> |
| | | </div> |
| | | <div class="agentSummary"> |
| | | <div class="circle"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="overviewAndDetails"> |
| | | <el-tabs |
| | | v-model="activeName" |
| | | @tab-click="handleClick" |
| | | > |
| | | <el-tab-pane |
| | | label="总览" |
| | | name="first" |
| | | > |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="总览" name="first"> |
| | | <div> |
| | | <div class="tit"> |
| | | <span> |
| | | 责任单位交办单总览 |
| | | </span> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | style="float: right;" |
| | | @click="ecxport" |
| | | > |
| | | <el-button type="primary" plain size="small" style="float: right;" @click="ecxport"> |
| | | 导出 |
| | | </el-button> |
| | | </div> |
| | | <div class="tab"> |
| | | <el-table |
| | | :data="tableData" |
| | | border |
| | | max-height="400" |
| | | style="width: 100%" |
| | | :header-cell-style="{ |
| | | <el-table :data="tableData" border max-height="400" style="width: 100%" :header-cell-style="{ |
| | | background: '#99D4FF', color: '#101111', fontSize: '16px' |
| | | }" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | prop="unitName" |
| | | label="责任单位" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="total" |
| | | label="总工单" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="number" |
| | | label="完成数" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="unNumber" |
| | | label="未成数" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="rate" |
| | | label="完成率" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="deduction" |
| | | label="扣分" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="marks" |
| | | label="加分" |
| | | /> |
| | | <el-table-column |
| | | align="center" |
| | | prop="totalPoints" |
| | | label="总得分" |
| | | /> |
| | | }"> |
| | | <el-table-column align="center" prop="unitName" label="责任单位" /> |
| | | <el-table-column align="center" prop="total" label="总工单" /> |
| | | <el-table-column align="center" prop="number" label="完成数" /> |
| | | <el-table-column align="center" prop="unNumber" label="未成数" /> |
| | | <el-table-column align="center" prop="rate" label="完成率" /> |
| | | <el-table-column align="center" prop="deduction" label="扣分" /> |
| | | <el-table-column align="center" prop="marks" label="加分" /> |
| | | <el-table-column align="center" prop="totalPoints" label="总得分" /> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane |
| | | label="明细" |
| | | name="second" |
| | | > |
| | | <el-tab-pane label="明细" name="second"> |
| | | <div> |
| | | <div> |
| | | <p style="text-align: center;"> |
| | | 责任单位: |
| | | <el-select v-model="unitId" size="small" placeholder="请选择" @change="changeUnitId"> |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.unitId" |
| | | :label="item.unitName" |
| | | :value="item.unitId" |
| | | /> |
| | | <el-option v-for="item in unitList" :key="item.unitId" :label="item.unitName" :value="item.unitId" /> |
| | | </el-select> |
| | | </p> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="caets"> |
| | | <div> |
| | | <pollutionClassificationEcharts |
| | | v-if="activeName === 'second'" |
| | | ref="leftEcharts" |
| | | :chart-data="chartData" |
| | | /> |
| | | <pollutionClassificationEcharts v-if="activeName === 'second'" ref="leftEcharts" :chart-data="chartData" /> |
| | | </div> |
| | | <div> |
| | | <reportTypeEcharts |
| | | v-if="activeName === 'second'" |
| | | ref="rightEcharts" |
| | | :cylindricality-data="cylindricalityData" |
| | | /> |
| | | <reportTypeEcharts v-if="activeName === 'second'" ref="rightEcharts" :cylindricality-data="cylindricalityData" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | endTime: this.timeInterval[1], |
| | | number: Number(this.searchForm.number) |
| | | } |
| | | }).then((res) => { |
| | | }).then(res => { |
| | | this.getOutExcel('列表数据导出.xlsx', res) |
| | | }) |
| | | }, |
| | |
| | | } |
| | | }, |
| | | unitIdFormatter(val) { |
| | | const data = this.unitList.find(item => item && item.unitId === val.unitId) |
| | | const data = this.unitList.find( |
| | | item => item && item.unitId === val.unitId |
| | | ) |
| | | return data ? data.unitName : '' |
| | | }, |
| | | changeNumber(val) { |
| | |
| | | number: Number(this.searchForm.number), |
| | | unitId: this.unitId |
| | | } |
| | | }).then((res) => { |
| | | }).then(res => { |
| | | if (res.code === 0) { |
| | | this.chartData = [] |
| | | this.chartData = this.cylindricalityData |
| | |
| | | endTime: this.timeInterval[1], |
| | | number: Number(this.searchForm.number) |
| | | } |
| | | }).then((res) => { |
| | | }).then(res => { |
| | | if (res.code === 0) { |
| | | this.responeForm = res.data |
| | | this.tableData = res.data.unitView |
| | |
| | | this.$request({ |
| | | url: '/allocation/unit', |
| | | method: 'get' |
| | | }).then((res) => { |
| | | }).then(res => { |
| | | this.unitList = res.data |
| | | console.log(' JSON.stringify(this.unitList)', this.unitList) |
| | | }) |
| | |
| | | this.$request({ |
| | | url: '/allocation/contaminate', |
| | | method: 'get' |
| | | }).then((res) => { |
| | | }).then(res => { |
| | | this.polluteList = res.data |
| | | }) |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | $red: url('~@/assets/images/1.jpg') ; |
| | | $orange:url('~@/assets/images/2.png'); |
| | | $yellow:url('~@/assets/images/3.jpg'); |
| | | $green:url('~@/assets/images/4.png'); |
| | | $red: url('~@/assets/images/1.jpg'); |
| | | $orange: url('~@/assets/images/2.png'); |
| | | $yellow: url('~@/assets/images/3.jpg'); |
| | | $green: url('~@/assets/images/4.png'); |
| | | $bgcolorlist: $red $orange $yellow $green; |
| | | |
| | | .main { |
| | | /deep/ .el-table__row{ |
| | | font-size: 18px; |
| | | } |
| | | /deep/ .el-table__row { |
| | | font-size: 18px; |
| | | } |
| | | background: #bbbbbb; |
| | | min-height: 800px; |
| | | padding: 15px 10px; |