From 618dec29866fdae7d602fc1c14c881d7295a6f1e Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Thu, 16 Nov 2023 14:25:40 +0800 Subject: [PATCH] Merge branch 'feature_1.0' --- src/views/toCarryOutLegislativeReforms/reform/index.vue | 267 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 164 insertions(+), 103 deletions(-) diff --git a/src/views/toCarryOutLegislativeReforms/reform/index.vue b/src/views/toCarryOutLegislativeReforms/reform/index.vue index ec3b62b..f87d627 100644 --- a/src/views/toCarryOutLegislativeReforms/reform/index.vue +++ b/src/views/toCarryOutLegislativeReforms/reform/index.vue @@ -12,115 +12,129 @@ <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="{ + + <div style="position: relative;"> + <div> + <div v-if="sealList.length>0"> + <div v-for="(item,index) in sealList" :key="index" :style="{'height':item.styleHeight}"> + <div class="yingzhang" v-if="item.isInvalid===1"> + <div class="seal-red"> ��������� </div> + </div> + </div> + </div> + </div> + <div style="position: absolute;top:0;width: 100%;"> + <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>������</div> - <div>������������</div> - </template> - <template slot-scope="scope"> - <div>{{ scope.row.allocationNum }}</div> - <div>{{ scope.row.escalationTime }}</div> - </template> - </el-table-column> - <el-table-column align="center" prop="unitId" label="������������" width="150px" :formatter="unitIdFormatter" /> - <el-table-column align="center" prop="polluteType" label="������������" width="120px" :formatter="polluteTypeFormatter" /> - <el-table-column align="center"> - <template slot="header"> - <div>������������</div> - <div>������������</div> - </template> - <template slot-scope="scope"> - <div>{{ dictObj.changeEnum[scope.row.changeType] }}</div> - <div v-show="scope.row.changeType && scope.row.changeType === 2" :class="[Number(scope.row.residueDay) < 0 ? errorClass : '']"> - <span v-if="Number(scope.row.residueDay) < 0"> - ������ {{ Math.abs(scope.row.residueDay) }}��� - </span> - <span v-else> {{ scope.row.residueDay }}��� </span> - </div> - </template> - </el-table-column> - <el-table-column align="center" prop="investigationType" label="������������" width="100px" :formatter="investigationTypeFormatter" /> - <el-table-column align="center" prop="state" width="100px" label="������������"> - <template slot-scope="scope"> - <el-tag v-if="scope.row.state === 40" type="success"> - {{ stateFormatter(scope.row) }} - </el-tag> - <el-tag v-if="scope.row.state === 50" type="danger"> - {{ stateFormatter(scope.row) }} - </el-tag> - <el-tag v-if="scope.row.state === 9" type="info"> - {{ stateFormatter(scope.row) }} - </el-tag> - <el-tag v-if="scope.row.state === 20" type="warning"> - {{ stateFormatter(scope.row) }} - </el-tag> - <el-tag v-if="scope.row.state === 10" type="warning"> - {{ stateFormatter(scope.row) }} - </el-tag> - <el-tag v-if="scope.row.state === 30" type="warning"> - {{ stateFormatter(scope.row) }} - </el-tag> - </template> - </el-table-column> - <el-table-column align="center" prop="isInvalid" label="������������" width="60px" :formatter="isInvalidFormatter" /> - <el-table-column align="center" width="150px"> - <template slot="header"> - <div>������������</div> - <div>���������</div> - </template> - <template slot-scope="scope"> - <div>{{ scope.row.escalationName }}</div> - <div>{{ updatUnitIdFormatter(scope.row) }}</div> - </template> - </el-table-column> - <el-table-column align="center" width="150px"> - <template slot="header"> - <div>���������</div> - <div>������������</div> - </template> - <template slot-scope="scope"> - <div>{{ scope.row.updateName }}</div> - <div>{{ scope.row.updateTime }}</div> - </template> - </el-table-column> - <el-table-column align="center" prop="createTime" min-width="100px" label="������"> - <template slot-scope="scope"> + <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>������</div> + <div>������������</div> + </template> + <template slot-scope="scope"> + <div>{{ scope.row.allocationNum }}</div> + <div>{{ scope.row.escalationTime }}</div> + </template> + </el-table-column> + <el-table-column align="center" prop="unitId" label="������������" width="150px" :formatter="unitIdFormatter" /> + <el-table-column align="center" prop="polluteType" label="������������" width="120px" :formatter="polluteTypeFormatter" /> + <el-table-column align="center"> + <template slot="header"> + <div>������������</div> + <div>������������</div> + </template> + <template slot-scope="scope"> + <div>{{ dictObj.changeEnum[scope.row.changeType] }}</div> + <div v-show="scope.row.changeType && scope.row.changeType === 2" :class="[Number(scope.row.residueDay) < 0 ? errorClass : '']"> + <span v-if="Number(scope.row.residueDay) < 0"> + ������ {{ Math.abs(scope.row.residueDay) }}��� + </span> + <span v-else> {{ scope.row.residueDay }}��� </span> + </div> + </template> + </el-table-column> + <el-table-column align="center" prop="investigationType" label="������������" width="100px" :formatter="investigationTypeFormatter" /> + <el-table-column align="center" prop="state" width="100px" label="������������"> + <template slot-scope="scope"> + <el-tag v-if="scope.row.state === 40" type="success"> + {{ stateFormatter(scope.row) }} + </el-tag> + <el-tag v-if="scope.row.state === 50" type="danger"> + {{ stateFormatter(scope.row) }} + </el-tag> + <el-tag v-if="scope.row.state === 9" type="info"> + {{ stateFormatter(scope.row) }} + </el-tag> + <el-tag v-if="scope.row.state === 20" type="warning"> + {{ stateFormatter(scope.row) }} + </el-tag> + <el-tag v-if="scope.row.state === 10" type="warning"> + {{ stateFormatter(scope.row) }} + </el-tag> + <el-tag v-if="scope.row.state === 30" type="warning"> + {{ stateFormatter(scope.row) }} + </el-tag> + </template> + </el-table-column> + <!-- <el-table-column align="center" prop="isInvalid" label="������������" width="60px" :formatter="isInvalidFormatter" /> --> + <el-table-column align="center" width="150px"> + <template slot="header"> + <div>������������</div> + <div>���������</div> + </template> + <template slot-scope="scope"> + <div>{{ scope.row.escalationName }}</div> + <div>{{ updatUnitIdFormatter(scope.row) }}</div> + </template> + </el-table-column> + <el-table-column align="center"> + <template slot="header"> + <div>���������</div> + <div>������������</div> + </template> + <template slot-scope="scope"> + <div>{{ scope.row.updateName }}</div> + <div>{{ scope.row.updateTime }}</div> + </template> + </el-table-column> + <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')"> - ������ - </el-button> - <el-button type="text" v-if="scope.row.isCode==='1'" size="medium" @click="openEditDialog(scope.row)"> - ������������ - </el-button> - <el-button v-if="scope.row.state === 9" type="text" size="medium" @click="handleOpenDialog(scope.row, 'edit')"> - ������ - </el-button> - <el-button v-if="scope.row.state > 30 && scope.row.isInvalid === 0" type="text" size="medium" @click="handleCancel(scope.row)"> - ������ - </el-button> - <el-button v-if="scope.row.state === 20" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'work')"> - ������ - </el-button> - <el-button v-if="scope.row.state === 30 && scope.row.isApprove === 1" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'approve')"> - ������ - </el-button> - <el-button v-if=" + <el-button type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'detail')"> + ������ + </el-button> + <el-button type="text" v-if="scope.row.isCode==='1'" size="medium" @click="openEditDialog(scope.row)"> + ������������ + </el-button> + <el-button v-if="scope.row.state === 9" type="text" size="medium" @click="handleOpenDialog(scope.row, 'edit')"> + ������ + </el-button> + <el-button v-if="scope.row.state > 30 && scope.row.isInvalid === 0" type="text" size="medium" @click="handleCancel(scope.row)"> + ������ + </el-button> + <el-button v-if="scope.row.state === 20" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'work')"> + ������ + </el-button> + <el-button v-if="scope.row.state === 30 && scope.row.isApprove === 1" type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'approve')"> + ������ + </el-button> + <el-button v-if=" scope.row.state === 20 && scope.row.changeType === 2 && scope.row.applyState === 0 " type="text" size="medium" @click="openWorkOrdinDialog(scope.row, 'delay')"> - ������������ - </el-button> - </template> - </el-table-column> - </el-table> + ������������ + </el-button> + </template> + </el-table-column> + </el-table> + </div> + </div> </div> <div class="pagina"> <el-pagination background :current-page="pagination.currentPage" :page-sizes="pagination.pageSizes" :page-size="pagination.pageSize" :total="pagination.totalCount" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> @@ -196,6 +210,7 @@ <script> import axios from 'axios' +import _ from 'lodash' import qs from 'qs' import searchBar from '@/views/toCarryOutLegislativeReforms/components/queryForm' import newWorkOrder from '@/views/toCarryOutLegislativeReforms/components/newWorkOrder' @@ -250,7 +265,8 @@ polluteType: '', unitId: '' }, - operatingLog: [] + operatingLog: [], + sealList: [] } }, computed: { @@ -558,7 +574,21 @@ }).then(res => { if (res.code === 0) { this.tableData = res.data.list + this.sealList = _.cloneDeep(res.data.list) || [] + this.sealList.unshift({ isInvalid: 0 }) + this.sealList.forEach(item => { + item.styleHeight = null + }) this.pagination.totalCount = res.data.page.totalNum + this.$nextTick(() => { + var rows = this.$el.querySelectorAll('table tr') + for (var i = 0; i < rows.length; i++) { + var row = rows[i] + var height = row.getBoundingClientRect().height + this.sealList[i]['styleHeight'] = height + 'px' + } + this.$forceUpdate() + }) } else { this.$message.error(res.message) } @@ -610,7 +640,7 @@ } } else if (type === 'detail') { this.dialogData = { - title: '���������', + title: '���������������', parentFormData: res.data, pageType: 'detail' } @@ -637,6 +667,7 @@ overflow: overlay; } .tab { + min-height: 160px; margin-top: 0px; /deep/ .el-tag { font-size: 16px; @@ -683,4 +714,34 @@ align-items: center; margin-bottom: 10px; } +.yingzhang { + position: relative; + + .seal-red { + position: absolute; + left: 85px; + top: 18px; + z-index: 999; + // top: -85px; + display: inline-block; + border: solid 2px #e93e00; + border-radius: 0.2em; + color: #e24c06; + font-size: 19px; + line-height: 1; + opacity: 0; + padding: 0.1em 0.5em; + text-transform: uppercase; + opacity: 0; + transform: rotate(-2deg) scale(5); + animation: seal 0.3s cubic-bezier(0.6, 0.04, 0.98, 0.335) forwards; + } + + @keyframes seal { + 100% { + opacity: 0.75; + transform: rotate(-15deg) scale(1); + } + } +} </style> -- Gitblit v1.8.0