Browse Source
			
			
			
			
				
		# Conflicts: # src/views/modules/shequzhili/xiangmu/cpts/project-info.vuefeature/dev_worklog2
				 9 changed files with 1545 additions and 253 deletions
			
			
		| @ -0,0 +1,466 @@ | |||
| <template> | |||
|   <div class="mode-block resi-container"> | |||
|     <el-card ref="searchCard" class="search-card"> | |||
|       <el-form ref="searchForm" :inline="true" :model="dataForm" size="small"> | |||
|         <el-form-item label="所属组织" label-width="100px" | |||
|                       prop="agencyId"> | |||
|           <el-cascader ref="cascaderUnit" v-model="dataForm.agencyId" :options="optionsA" :props="{ checkStrictly: true, emitPath: false,children:'subAgencyList',label:'agencyName',value:'agencyId'}" clearable /> | |||
|             <!-- <template slot-scope="{ node, data }"> | |||
|               <div @click="cascaderClick(data)"> | |||
|                 <span>{{ data.objectName }}</span> | |||
|                 <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> | |||
|               </div> | |||
|             </template> --> | |||
|         </el-form-item> | |||
|         <el-form-item label="统计类型" | |||
|                       prop="endTime"  label-width="100px"> | |||
|           <el-radio v-model="dataForm.type" label="end" @change="handleRadioCHange">截止累计值</el-radio> | |||
|           <el-radio v-model="dataForm.type" label="Interval" @change="handleRadioCHange">区间新增值</el-radio>      | |||
|           <el-date-picker v-show="dataForm.type == 'end'"  | |||
|             v-model="dataForm.endTime" | |||
|             type="datetime" | |||
|             :clearable="false" | |||
|             size="small" | |||
|             :picker-options="pickerOptions" | |||
|             value-format="yyyy-MM-dd HH:mm:ss"  | |||
|           />      | |||
|           <el-date-picker v-show="dataForm.type == 'Interval'" v-model="timeRange" | |||
|             type="datetimerange" | |||
|             clearable | |||
|             size="small" | |||
|             :picker-options="pickerOptions" | |||
|             range-separator="至" | |||
|             start-placeholder="选择日期" | |||
|             end-placeholder="选择日期" | |||
|             value-format="yyyy-MM-dd HH:mm:ss"  | |||
|           /> | |||
|         </el-form-item> | |||
|         <el-form-item> | |||
|           <el-button type="primary" size="small" class="diy-button--search" @click="handleSearch">查询</el-button> | |||
|           <el-button | |||
|             class="diy-button--reset" | |||
|             size="small" | |||
|             @click="resetForm('searchForm')" | |||
|             >重置</el-button> | |||
|         </el-form-item> | |||
|       </el-form> | |||
|     </el-card> | |||
|     <el-card class="resi-card-table"> | |||
|       <div class="resi-row-btn"> | |||
|         <el-button @click="totalHandle" | |||
|                     class="diy-button--add" | |||
|                     size="small">总计</el-button> | |||
|         <el-button @click="exportHandle" | |||
|                     class="diy-button--reset" | |||
|                     size="small" :loading="exportLoading">导出</el-button> | |||
|       </div> | |||
|       <el-table class="resi-table" v-loading="dataListLoading" :data="dataList" border  style="width: 100%" | |||
|       :height="tableHeight"> | |||
|         <!-- <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> --> | |||
|         <el-table-column type="index" label="序号" header-align="center" align="center" width="50"></el-table-column> | |||
|         <el-table-column min-width="100" prop="orgName" label="所属组织" header-align="center" align="center" > | |||
|           <template slot-scope="scope"> | |||
|             <a class="name-a" style="color: #2195fe;" @click="handleClick(scope.row)">{{scope.row.orgName}}</a> | |||
|           </template> | |||
|         </el-table-column> | |||
|         <el-table-column min-width="100" prop="resiUserCount" label="注册居民数" header-align="center" align="center" > | |||
|           <!-- <template slot-scope="scope"> | |||
|             <span v-if="scope.row.orgType==='agency'"><a class="name-a" style="color: #2195fe;" @click="handleClick(scope.row)">{{scope.row.orgName}}</a></span> | |||
|             <span v-else>{{scope.row.orgName}}</span> | |||
|           </template> --> | |||
|         </el-table-column> | |||
|         <el-table-column min-width="100" prop="partyMemberCount" label="注册党员数" header-align="center" align="center" /> | |||
|          | |||
|         <el-table-column min-width="100" prop="icEventCount" label="事件总数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="resiEventCount" label="居民上报事件数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="pcEventCount" label="平台录入事件数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="projectCount" label="项目总数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="issueProjectCount" label="议题转项目数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="icEventProjectCount" label="事件立项数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="agencyProjectCount" label="立项数" header-align="center" align="center" /> | |||
|       </el-table> | |||
|       <!-- <div> | |||
|         <el-pagination | |||
|           @size-change="handleSizeChange" | |||
|           @current-change="handleCurrentChange" | |||
|           :current-page="pageNo" | |||
|           :page-sizes="[20, 50, 100, 200]" | |||
|           :page-size="pageSize" | |||
|           layout="sizes, prev, pager, next, total" | |||
|           :total="total" | |||
|         > | |||
|         </el-pagination> | |||
|       </div> --> | |||
|     </el-card> | |||
|     <el-dialog | |||
|             title="总计" | |||
|             :visible.sync="totalVisible" | |||
|             width="60%"> | |||
|       <template> | |||
|         <el-table | |||
|                 :data="tableData" | |||
|                 style="width: 100%" | |||
|                 height="200"> | |||
|           <!-- <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> --> | |||
|         <el-table-column min-width="100" prop="orgName" label="组织名称" header-align="center" align="center" /> | |||
|         <el-table-column min-width="100" prop="resiUserCount" label="注册居民数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="100" prop="partyMemberCount" label="注册党员数" header-align="center" align="center" /> | |||
|          | |||
|         <el-table-column min-width="100" prop="icEventCount" label="事件总数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="resiEventCount" label="居民上报事件数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="pcEventCount" label="平台录入事件数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="projectCount" label="项目总数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="issueProjectCount" label="议题转项目数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="icEventProjectCount" label="事件立项数" header-align="center" align="center" /> | |||
|         <el-table-column min-width="110" prop="agencyProjectCount" label="立项数" header-align="center" align="center" /> | |||
|         </el-table> | |||
|       </template> | |||
|     </el-dialog> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import { mapGetters } from "vuex"; | |||
| // import AddOrUpdate from './factagencyuserhousedaily-add-or-update' | |||
| import { dateFormats } from '@/utils/index' | |||
| export default { | |||
|   data () { | |||
|     return { | |||
|       exportLoading: false, | |||
|       dataListLoading: false, | |||
|       optionsA: [], | |||
|       totalVisible: false, | |||
|       pickerOptions: { | |||
|         disabledDate(time) { | |||
|             return time.getTime() > Date.now(); | |||
|           }, | |||
|       }, | |||
|       dataList: [], | |||
|       timeRange: '', | |||
|       dataForm: { | |||
|         customerId: this.$store.state.user.customerId, | |||
|         agencyId: this.$store.state.user.agencyId, | |||
|         startTime: '', | |||
|         endTime: dateFormats('YYYY-mm-dd HH:MM:SS', new Date()), | |||
|         type: 'end' | |||
|       }, | |||
|       total: 0, | |||
|       tableData: [], | |||
|       pageNo: 1, | |||
|       pageSize: 20 | |||
|     } | |||
|   }, | |||
|   components: { | |||
|     // AddOrUpdate | |||
|   }, | |||
|   created () { | |||
|     this.getGridList() | |||
|     this.getTableList() | |||
|     // this.getValiheList() | |||
|   }, | |||
|   watch: { | |||
|     timeRange (val) { | |||
|       if (Array.isArray(val) && val.length == 2) { | |||
|         this.dataForm.startTime = val[0]; | |||
|         this.dataForm.endTime = val[1]; | |||
|       } else { | |||
|         this.dataForm.startTime = ""; | |||
|         this.dataForm.endTime = ""; | |||
|       } | |||
|       console.log('startTime----w', this.dataForm.startTime) | |||
|     } | |||
|   }, | |||
|   computed: { | |||
|     ...mapGetters(["clientHeight", "iframeHeight"]), | |||
|     tableHeight() { | |||
|       const h = this.clientHeight - 330 + this.iframeHeigh; | |||
|       const _h = this.clientHeight - 330; | |||
|       return this.$store.state.inIframe ? h : _h; | |||
|     }, | |||
|   }, | |||
|   methods: { | |||
|     handleClick(row) { | |||
|       this.dataForm.agencyId = row.orgId | |||
|       this.handleSearch() | |||
|     }, | |||
|     resetForm(formName) { | |||
|       this.$refs[formName].resetFields(); | |||
|       this.timeRange = ""; | |||
|       this.dataForm.startTime = ""; | |||
|       this.dataForm.endTime = dateFormats('YYYY-mm-dd HH:MM:SS', new Date()) | |||
|       this.dataForm.type = 'end'; | |||
|       this.pageNo = 1 | |||
|       this.getTableList() | |||
|     }, | |||
|     handleSearch() { | |||
|       // this.dataForm.type = 1 | |||
|       this.pageNo = 1 | |||
|       this.getTableList() | |||
|     }, | |||
|     handleSizeChange(val) { | |||
|       console.log(`每页 ${val} 条`); | |||
|       this.pageSize = val; | |||
|       this.getTableList(); | |||
|     }, | |||
|     handleCurrentChange(val) { | |||
|       console.log(`当前页: ${val}`); | |||
|       this.pageNo = val; | |||
|       this.getTableList(); | |||
|     }, | |||
|     handleRadioCHange(val) { | |||
|       console.log('val----', val) | |||
|       this.timeRange = '' | |||
|       this.dataForm.startTime = '' | |||
|       this.dataForm.endTime = '' | |||
|       if (val == 'end') { | |||
|         this.$nextTick(() => { | |||
|           this.dataForm.endTime = dateFormats('YYYY-mm-dd HH:MM:SS', new Date()) | |||
|         }) | |||
|         console.log('endTime----', this.dataForm.endTime) | |||
|       } | |||
|     }, | |||
|     exportHandle () { | |||
|       const url = '/data/aggregator/datastats/nowstatsdataexport' | |||
|       // this.dataForm.type = 1 | |||
|       this.exportLoading = true | |||
|       this.$http({ | |||
|         method: 'Post', | |||
|         url, | |||
|         responseType: 'blob', | |||
|         data: this.dataForm | |||
|       }).then(res => { | |||
|         // this.download(res.data, title + '.xls') | |||
|         if (res.headers["content-disposition"]) { | |||
|           let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) | |||
|           console.log('filename', fileName) | |||
|           let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) | |||
|           var url = window.URL.createObjectURL(blob) | |||
|           var aLink = document.createElement('a') | |||
|           aLink.style.display = 'none' | |||
|           aLink.href = url | |||
|           aLink.setAttribute('download', fileName) | |||
|           document.body.appendChild(aLink) | |||
|           aLink.click() | |||
|           document.body.removeChild(aLink) //下载完成移除元素 | |||
|           window.URL.revokeObjectURL(url) //释放掉blob对象 | |||
|           // this.exportLoading = false | |||
|         } else this.$message.error('下载失败') | |||
|         this.exportLoading = false | |||
|       }).catch(err => { | |||
|         console.log('err', err) | |||
|         this.exportLoading = false | |||
|         return this.$message.error('网络错误') | |||
|       }) | |||
|     }, | |||
|     cascaderClick (nodeData) { | |||
|       this.dataForm.agencyId = nodeData.objectId; | |||
|       this.dataForm.level = nodeData.objectType | |||
|       this.$refs.cascaderUnit.checkedValue = nodeData.objectId; | |||
|       this.$refs.cascaderUnit.computePresentText(); | |||
|       this.$refs.cascaderUnit.toggleDropDownVisible(false); | |||
| 
 | |||
|     }, | |||
|     totalHandle () { | |||
|       this.tableData = [] | |||
|       let resiUserCount = 0,  | |||
|       partyMemberCount = 0,  | |||
|       icEventCount = 0,  | |||
|       resiEventCount = 0,  | |||
|       pcEventCount = 0,  | |||
|       projectCount = 0,  | |||
|       issueProjectCount = 0,  | |||
|       icEventProjectCount = 0,  | |||
|       agencyProjectCount = 0 | |||
|       if (this.dataList.length > 0) { | |||
|         this.dataList.forEach(item => { | |||
|           resiUserCount += item.resiUserCount | |||
|           partyMemberCount += item.partyMemberCount | |||
|           icEventCount += item.icEventCount | |||
|           resiEventCount += item.resiEventCount | |||
|           pcEventCount += item.pcEventCount | |||
|           projectCount += item.projectCount | |||
|           issueProjectCount += item.issueProjectCount | |||
|           icEventProjectCount += item.icEventProjectCount | |||
|           agencyProjectCount += item.agencyProjectCount | |||
|         }) | |||
|       } | |||
|        | |||
|       this.tableData.push({ | |||
|         orgName: this.$store.state.user.agencyName, | |||
|         resiUserCount,  | |||
|         partyMemberCount,  | |||
|         icEventCount,  | |||
|         resiEventCount,  | |||
|         pcEventCount,  | |||
|         projectCount,  | |||
|         issueProjectCount,  | |||
|         icEventProjectCount,  | |||
|         agencyProjectCount | |||
|       }) | |||
|       // this.$http | |||
|       //         .post('/data/aggregator/org/orgProjectDetailList', this.dataForm) | |||
|       //         .then(({ data: res }) => { | |||
|       //           if (res.code !== 0) { | |||
|       //             return this.$message.error(res.msg) | |||
|       //           } else { | |||
|       //             console.log('获取查询详情成功', res.data.list) | |||
|       //             this.tableData = res.data.list | |||
|       //           } | |||
|       //         }) | |||
|       //         .catch(() => { | |||
|       //           return this.$message.error('网络错误') | |||
|       //         }) | |||
| 
 | |||
|       this.totalVisible = true | |||
|     }, | |||
|     getTableList() { | |||
|       const { user } = this.$store.state | |||
|       const _data = { | |||
|         ...this.dataForm, | |||
|         // pageNo: this.pageNo, | |||
|         // pageSize: this.pageSize | |||
|       } | |||
|       this.$http | |||
|         .post('/data/aggregator/datastats/nowstatsdata', _data) | |||
|         .then(({ data: res }) => { | |||
|           if (res.code !== 0) { | |||
|             return this.$message.error(res.msg) | |||
|           } else { | |||
|             this.dataList = res.data | |||
|             // this.total = res.data.total | |||
|           } | |||
|         }) | |||
|         .catch(() => { | |||
|           return this.$message.error('网络错误') | |||
|         }) | |||
|     }, | |||
|     getGridList() { | |||
|       const { user } = this.$store.state | |||
|       this.dataListLoading = true | |||
|       const params = { | |||
|         agencyId: user.agencyId, | |||
|         client: 'gov' | |||
|       } | |||
|       this.$http | |||
|         // .post('/gov/org/userhouse/service/serviceScopeTree') | |||
|         // .post('/data/aggregator/org/agencytree', params) | |||
|         .post('/gov/org/customeragency/staffinagencylist') | |||
|         .then(({ data: res }) => { | |||
|           if (res.code !== 0) { | |||
|             return this.$message.error(res.msg) | |||
|           } else { | |||
|             console.log('获取查询详情成功', res.data) | |||
|             let { agencyList, subAgencyList } = res.data | |||
|             // this.optionsA = res.data | |||
|             // console.log(this.optionsA); | |||
|             // this.dataForm.agencyId = agencyList.agencyId | |||
|             const _arr = [{...agencyList, subAgencyList: [...subAgencyList] }] | |||
|             this.optionsA = this.deepTree(_arr) | |||
|             console.log('optionsA----', this.optionsA) | |||
|           } | |||
|         }) | |||
|         .catch(() => { | |||
|           this.dataListLoading = false | |||
|           return this.$message.error('网络错误') | |||
|         }) | |||
|         this.dataListLoading = false | |||
|     }, | |||
|     deepTree(arr) { | |||
|       if (Array.isArray(arr)) { | |||
|         return arr.map(item => { | |||
|           return { | |||
|             ...item, | |||
|             subAgencyList: item.subAgencyList.length > 0 && this.deepTree(item.subAgencyList) || null | |||
|           } | |||
|         }) | |||
|       } | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| <style> | |||
| .block{ | |||
|   position: absolute; | |||
|   left: 0px; | |||
|   display: inline-block; | |||
|   width: 35px; | |||
|   height: 50px; | |||
|   background: #fff; | |||
| } | |||
| .cascader-block .el-cascader-node>.el-radio{ | |||
|   display: none; | |||
| } | |||
| </style> | |||
| <style lang="scss" scoped> | |||
|   .blacklist-reason { | |||
|     width: 100%; | |||
|     height: 80px; | |||
|     border: 1px solid #e4e4e4; | |||
|     border-radius: 4px; | |||
|     resize: none; | |||
|     padding: 8px; | |||
|     box-sizing: border-box; | |||
|   } | |||
| </style> | |||
| <style lang="scss" scoped> | |||
|   @import "@/assets/scss/buttonstyle.scss"; | |||
| 
 | |||
|   .resi-container .resi-card-table { | |||
|     ::v-deep .el-table th { | |||
|       color: #fff; | |||
|       background-color: rgba(33, 149, 254, 1); | |||
|       // border-right: 1px solid rgba(33, 149, 254, 1); | |||
|     } | |||
|   } | |||
|   .resi-table { | |||
|     ::v-deep .el-button--text { | |||
|       text-decoration: underline; | |||
|     } | |||
|     ::v-deep .btn-color-del { | |||
|       margin-left: 10px; | |||
|       color: rgba(213, 16, 16, 1); | |||
|     } | |||
|     ::v-deep .btn-color-edit { | |||
|       color: rgba(0, 167, 169, 1); | |||
|     } | |||
|   } | |||
|   .form-wr { | |||
|     .input-width { | |||
|       width: 260px; | |||
| 
 | |||
|     } | |||
|     .input-width-textarea { | |||
|       width: 500px; | |||
|     } | |||
|     .imsg-list { | |||
|       display: flex; | |||
|       align-items: center; | |||
|       .imgs-item { | |||
|         position: relative; | |||
|         margin-right: 10px; | |||
|         .el-icon-delete { | |||
|           position: absolute; | |||
|           top: 0; | |||
|           right: 0; | |||
|           font-size: 18px; | |||
|           color: red; | |||
|           z-index: 3; | |||
|           cursor: pointer; | |||
|         } | |||
|       } | |||
|     } | |||
|   } | |||
|   .div-content { | |||
|     width: 100%; | |||
|     overflow: hidden; | |||
|     text-overflow: ellipsis; | |||
|     white-space: nowrap; | |||
|   } | |||
|   .resi-row-btn { | |||
|     margin-bottom: 13px; | |||
|     .upload-btn { | |||
|       display: inline-block; | |||
|       margin: 0 10px; | |||
|     } | |||
|   } | |||
| </style> | |||
| @ -0,0 +1,389 @@ | |||
| <template> | |||
|   <el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> | |||
|     <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> | |||
|         <el-form-item label="所属网格" | |||
|                       prop="gridId"> | |||
|             <el-select | |||
|                     v-model.trim="dataForm.gridId" | |||
|                     placeholder="请选择" | |||
|                     clearable | |||
|             > | |||
|                 <el-option | |||
|                         v-for="item in optionsG" | |||
|                         :key="item.value" | |||
|                         :label="item.label" | |||
|                         :value="item.value" | |||
|                 > | |||
|                 </el-option> | |||
|             </el-select> | |||
|         </el-form-item> | |||
|           <el-form-item label="标题" prop="title"> | |||
|           <el-input v-model="dataForm.title" placeholder="标题"></el-input> | |||
|       </el-form-item> | |||
|           <el-form-item label="日志类型" prop="logType"> | |||
|               <el-select v-model="dataForm.logType" | |||
|                          placeholder="请选择" | |||
|                          size="small" | |||
|                          clearable> | |||
|                   <el-option v-for="item in logTypeArr" | |||
|                              :key="item.value" | |||
|                              :label="item.label" | |||
|                              :value="item.value"> | |||
|                   </el-option> | |||
|               </el-select> | |||
|       </el-form-item> | |||
|           <el-form-item label="日志时间" prop="logDate"> | |||
|               <el-date-picker | |||
|                       v-model="dataForm.logDate" | |||
|                       format="yyyy-MM-dd" | |||
|                       value-format="yyyy-MM-dd" | |||
|                       type="date" | |||
|                       placeholder="选择日期"> | |||
|               </el-date-picker> | |||
|       </el-form-item> | |||
|           <el-form-item label="内容" prop="content"> | |||
|           <el-input type="textarea" :autosize="{ minRows: 3, maxRows: 5 }" v-model="dataForm.content" placeholder="内容"></el-input> | |||
|       </el-form-item> | |||
|           <el-form-item label="备注" prop="remark"> | |||
|           <el-input type="textarea" v-model="dataForm.remark" placeholder="备注"></el-input> | |||
|       </el-form-item> | |||
|         <!-- <el-form-item class="block" | |||
|                       label="照片" | |||
|                       label-width="150px" | |||
|                       prop="attach"> | |||
|             <el-upload class="upload-demo" | |||
|                        :action="uploadUlr" | |||
|                        accept=".jpg,.png,.jpeg,.bmp" | |||
|                        :on-success="handleFileSuccess" | |||
|                        :on-remov·e="handleFileRemove" | |||
|                        :on-preview="handleFileDownload" | |||
|                        :limit="3" | |||
|                        :before-upload="beforeUpload" | |||
|                        :file-list="dataForm.fileList"> | |||
|                 <el-button size="small" | |||
|                            :disabled="dataForm.fileList.length===3" | |||
|                            type="primary">点击上传</el-button> | |||
|                 <div slot="tip" | |||
|                      class="el-upload__tip">支持jpg、png、bmp</div> | |||
|             </el-upload> | |||
|         </el-form-item> --> | |||
| 
 | |||
|         <el-form-item label="照片" | |||
|                         label-width="150px" | |||
|                         style="display:block"> | |||
|             <el-upload :class="['avatar-uploader', {'hide': hideUploadBtn}] " | |||
|                        ref="uploadPic" | |||
|                        :action="uploadUlr" | |||
|                        list-type="picture-card" | |||
|                        :on-exceed="exceedPic" | |||
|                        :on-remove="removePic" | |||
|                        :file-list="dataForm.fileList" | |||
|                        :on-change="handleEditChange" | |||
|                        :on-success="handleSuccess" | |||
|                        :limit="3"> | |||
|               <span class="font-14">选择图片</span> | |||
|               <div slot="tip" | |||
|                    class="upload_tip">最多上传3张图片,图片支持jpg、jpeg、bmp、git或png格式</div> | |||
|             </el-upload> | |||
|           </el-form-item> | |||
|       </el-form> | |||
|     <template slot="footer"> | |||
|       <el-button @click="visible = false">{{ $t('cancel') }}</el-button> | |||
|       <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> | |||
|     </template> | |||
|   </el-dialog> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import debounce from 'lodash/debounce' | |||
| import { requestPost } from "@/js/dai/request" | |||
| export default { | |||
|   data () { | |||
|     return { | |||
|       visible: false, | |||
|       uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', | |||
|       logTypeArr: [], | |||
|       optionsG: [], | |||
|       dataForm: { | |||
|         id: '', | |||
|         agencyId: '', | |||
|         pids: '', | |||
|         gridId: '', | |||
|         title: '', | |||
|         logType: '', | |||
|         logDate: '', | |||
|         content: '', | |||
|         remark: '', | |||
|         mobile: '', | |||
|         fileList: [], | |||
|         // imageList: [],//	图片集合	 | |||
|       }, | |||
|       hideUploadBtn: false | |||
|     } | |||
|   }, | |||
|   created () { | |||
|     this.getGridList() | |||
|     this.getCategrayList() | |||
|   }, | |||
|   computed: { | |||
|     dataRule () { | |||
|       return { | |||
|         agencyId: [ | |||
|           { required: true, message: this.$t('validate.required'), trigger: 'blur' } | |||
|         ], | |||
|         gridId: [ | |||
|           { required: true, message: this.$t('validate.required'), trigger: 'blur' } | |||
|         ], | |||
|         title: [ | |||
|           { required: true, message: this.$t('validate.required'), trigger: 'blur' } | |||
|         ], | |||
|         logType: [ | |||
|           { required: true, message: this.$t('validate.required'), trigger: 'blur' } | |||
|         ], | |||
|         logDate: [ | |||
|           { required: true, message: this.$t('validate.required'), trigger: 'blur' } | |||
|         ], | |||
|         content: [ | |||
|           { required: true, message: this.$t('validate.required'), trigger: 'blur' } | |||
|         ] | |||
|       } | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     init () { | |||
|       this.visible = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs['dataForm'].resetFields() | |||
|         this.dataForm.fileList = [] | |||
|         if (this.dataForm.id) { | |||
|           this.getInfo() | |||
|         } | |||
|       }) | |||
|     }, | |||
|     // 获取信息 | |||
|     getInfo () { | |||
|       this.$http.get(`/gov/org/icWorkLog/${this.dataForm.id}`).then(({ data: res }) => { | |||
|         if (res.code !== 0) { | |||
|           return this.$message.error(res.msg) | |||
|         } | |||
|         this.dataForm = { | |||
|           ...this.dataForm, | |||
|           ...res.data | |||
|         } | |||
|       }).catch(() => {}) | |||
|     }, | |||
|     // 字典 | |||
|     async getCategrayList () { | |||
|       console.log(localStorage.getItem('token')) | |||
|       const url = "/sys/dict/data/dictlist" | |||
| 
 | |||
|       let params = { | |||
|         dictType: 'log_type' | |||
|       } | |||
| 
 | |||
|       const { data, code, msg } = await requestPost(url, params) | |||
| 
 | |||
|       if (code === 0) { | |||
|         this.logTypeArr = data | |||
|       } else { | |||
|         this.$message.error(msg) | |||
|       } | |||
|     }, | |||
|     getGridList() { | |||
|       const { user } = this.$store.state | |||
|       this.$http | |||
|         .post('/gov/org/customergrid/gridoption', { agencyId: user.agencyId, purpose: 'query' }) | |||
|         .then(({ data: res }) => { | |||
|           if (res.code !== 0) { | |||
|             return this.$message.error(res.msg) | |||
|           } else { | |||
|             console.log('获取查询详情成功', res.data) | |||
|             this.optionsG = res.data | |||
|           } | |||
|         }) | |||
|         .catch(() => { | |||
|           return this.$message.error('网络错误') | |||
|         }) | |||
|     }, | |||
|     // beforeUpload (file) { | |||
|     //   const array = file.name.split('.') | |||
|     //   const extension = array[array.length - 1] | |||
| 
 | |||
|     //   const formatarray = ['jpg', 'png', 'jpeg', 'bmp'] | |||
| 
 | |||
|     //   if (formatarray.indexOf(extension) === -1) { | |||
|     //     this.$message.error('只支持图片、word、pdf') | |||
|     //     return false | |||
|     //   } | |||
| 
 | |||
|     // }, | |||
| 
 | |||
|     // handleFileRemove (file) { | |||
| 
 | |||
|     //   if (file && file.status === "success") { | |||
|     //     this.dataForm.fileList.splice(this.dataForm.fileList.findIndex(item => item.uid === file.uid), 1) | |||
|     //   } | |||
|     // }, | |||
| 
 | |||
|     // handleFileSuccess (res, file) { | |||
| 
 | |||
|     //   if (res.code === 0 && res.msg === 'success') { | |||
|     //     const array = file.name.split('.') | |||
|     //     const fileType = array[array.length - 1] | |||
| 
 | |||
|     //     const picArray = ['jpg', 'png', 'jpeg', 'bmp'] | |||
|     //     const videoarray = ['mp4', 'wma', 'm4a'] | |||
|     //     const docArray = ['doc', 'docx', 'xls', 'xlsx', 'pdf'] | |||
|     //     const mp3Array = ['mp3'] | |||
| 
 | |||
|     //     if (picArray.indexOf(fileType) > -1) { | |||
|     //       file.attachmentFormat = 'image' | |||
|     //     } else if (videoarray.indexOf(fileType) > -1) { | |||
|     //       file.attachmentFormat = 'video' | |||
|     //     } else if (docArray.indexOf(fileType) > -1) { | |||
|     //       file.attachmentFormat = 'doc' | |||
|     //     } else if (mp3Array.indexOf(fileType) > -1) { | |||
|     //       file.attachmentFormat = 'voice' | |||
|     //     } | |||
| 
 | |||
|     //     file.url = res.data.url | |||
|     //     file.type = fileType | |||
| 
 | |||
|     //     file.fileName = file.name | |||
|     //     file.fileType = file.type | |||
| 
 | |||
|     //     this.dataForm.fileList.push(file) | |||
|     //     console.log(this.dataForm.fileList) | |||
|     //   } else this.$message.error(res.msg) | |||
|     // }, | |||
|     //下载 | |||
|     // handleFileDownload (file) { | |||
| 
 | |||
|     //   var a = document.createElement('a'); | |||
|     //   var event = new MouseEvent('click'); | |||
|     //   a.download = file.name; | |||
|     //   console.log(a) | |||
|     //   a.href = file.url; | |||
|     //   a.dispatchEvent(event); | |||
| 
 | |||
| 
 | |||
|     // }, | |||
| 
 | |||
|     exceedPic () { | |||
|       this.$message.warning("最多上传3张预览图片") | |||
| 
 | |||
|     }, | |||
|     removePic (file, fileList) { | |||
| 
 | |||
|       // this.formData.imageList.splice(this.formData.imageList.findIndex(item => item === file.url), 1) | |||
|       if (file && file.status === "success") { | |||
|         this.dataForm.fileList.splice(this.dataForm.fileList.findIndex(item => item.uid === file.uid), 1) | |||
|       } | |||
|       this.hideUploadBtn = fileList.length >= 3; | |||
| 
 | |||
|     }, | |||
|     handleSuccess (res, file) { | |||
|       if (res.code === 0 && res.msg === 'success') { | |||
|           const array = file.name.split('.') | |||
|           const fileType = array[array.length - 1] | |||
| 
 | |||
|           const picArray = ['jpg', 'png', 'jpeg', 'bmp'] | |||
|           const videoarray = ['mp4', 'wma', 'm4a'] | |||
|           const docArray = ['doc', 'docx', 'xls', 'xlsx', 'pdf'] | |||
|           const mp3Array = ['mp3'] | |||
| 
 | |||
|           if (picArray.indexOf(fileType) > -1) { | |||
|             file.attachmentFormat = 'image' | |||
|           } else if (videoarray.indexOf(fileType) > -1) { | |||
|             file.attachmentFormat = 'video' | |||
|           } else if (docArray.indexOf(fileType) > -1) { | |||
|             file.attachmentFormat = 'doc' | |||
|           } else if (mp3Array.indexOf(fileType) > -1) { | |||
|             file.attachmentFormat = 'voice' | |||
|           } | |||
| 
 | |||
|           file.url = res.data.url | |||
|           file.type = fileType | |||
| 
 | |||
|           file.fileName = file.name | |||
|           file.fileType = file.type | |||
| 
 | |||
|           this.dataForm.fileList.push(file) | |||
|           console.log(this.dataForm.fileList) | |||
|         } else this.$message.error(res.msg) | |||
| 
 | |||
|     }, | |||
|     // 最多上传3张图,超过时隐藏上传按钮 | |||
|     handleEditChange (file, fileList) { | |||
| 
 | |||
|       this.hideUploadBtn = fileList.length >= 3; | |||
|     }, | |||
|     // 表单提交 | |||
|     dataFormSubmitHandle: debounce(function () { | |||
|       if (this.dataForm.content.length < 70) { | |||
|         return this.$message.error("内容不能少于70字") | |||
|       } | |||
|       if (this.dataForm.fileList.length < 1) { | |||
|         return this.$message.error("照片不能为空") | |||
|       } | |||
|       this.$refs['dataForm'].validate((valid) => { | |||
|         if (!valid) { | |||
|           return false | |||
|         } | |||
|         this.$http[!this.dataForm.id ? 'post' : 'put']('/gov/org/icWorkLog/', this.dataForm).then(({ data: res }) => { | |||
|           if (res.code !== 0) { | |||
|             return this.$message.error(res.msg) | |||
|           } | |||
|           this.$message({ | |||
|             message: this.$t('prompt.success'), | |||
|             type: 'success', | |||
|             duration: 500, | |||
|             onClose: () => { | |||
|               this.visible = false | |||
|               this.$emit('refreshDataList') | |||
|             } | |||
|           }) | |||
|         }).catch(() => {}) | |||
|       }) | |||
|     }, 1000, { 'leading': true, 'trailing': false }) | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
|     .item_width_1 { | |||
|         width: 500px; | |||
|     } | |||
|     .item_width_2 { | |||
|         width: 400px; | |||
|     } | |||
|     .item_width_3 { | |||
|         margin-left: 10px; | |||
|         width: 200px; | |||
|     } | |||
|     .item_width_4 { | |||
|         width: 200px; | |||
|     } | |||
| 
 | |||
|     .div_map { | |||
|         margin-top: 10px; | |||
|     } | |||
| 
 | |||
|     .div_btn { | |||
|         // display: flex; | |||
|         // justify-content: flex-end; | |||
|     } | |||
|     .el-tabs { | |||
|         margin: 0 20px; | |||
|     } | |||
|     .el-upload__tip { | |||
|         color: rgb(155, 155, 155); | |||
|         margin: 0; | |||
|     } | |||
|     .form { | |||
|         margin-top: 30px; | |||
|     } | |||
| 
 | |||
|     .attachement-list { | |||
|     } | |||
| </style> | |||
| @ -0,0 +1,354 @@ | |||
| <template> | |||
|   <el-card shadow="never" class="aui-card--fill"> | |||
|     <div class="mod-__icWorkLog} resi-container"> | |||
|       <el-card ref="searchCard" class="search-card"> | |||
|       <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> | |||
|         <el-form-item prop="gridId" label="所属组织"> | |||
|           <div class="resi-cell-value"> | |||
|             <el-cascader class="customer_cascader" | |||
|                          ref="myCascader" | |||
|                          clearable | |||
|                          v-model="agencyIdArray" | |||
|                          :options="orgOptions" | |||
|                          :props="orgOptionProps" | |||
|                          :show-all-levels="false" | |||
|                          @change="handleChangeAgency"></el-cascader> | |||
|           </div> | |||
|         </el-form-item> | |||
|         <el-form-item label="日志类型" | |||
|                       prop="logType"> | |||
|           <el-select v-model="dataForm.logType" | |||
|                      placeholder="请选择" | |||
|                      size="small" | |||
|                      clearable> | |||
|             <el-option v-for="item in logTypeArr" | |||
|                        :key="item.value" | |||
|                        :label="item.label" | |||
|                        :value="item.value"> | |||
|             </el-option> | |||
|           </el-select> | |||
|         </el-form-item> | |||
|         <el-form-item label="网格员" | |||
|                       prop="createdUser"> | |||
|           <el-input v-model="dataForm.createdUser" | |||
|                     size="small" | |||
|                     clearable | |||
|                     placeholder="请输入网格员姓名"> | |||
|           </el-input> | |||
|         </el-form-item> | |||
|         <br/> | |||
|         <el-form-item label="联系电话" | |||
|                                      prop="createdUser"> | |||
|         <el-input v-model="dataForm.mobile" | |||
|                   size="small" | |||
|                   clearable | |||
|                   placeholder="请输入联系电话"> | |||
|         </el-input> | |||
|       </el-form-item> | |||
|         <el-form-item label="日志时间" prop="startTime" label-width="100px"> | |||
|           <el-date-picker v-model="dataForm.startTime" | |||
|                           type="date" | |||
|                           :picker-options="pickerBeginDateBefore" | |||
|                           value-format="yyyy-MM-dd" | |||
|                           format="yyyy-MM-dd" | |||
|                           placeholder="选择日期" | |||
|                           style="width:200px"> | |||
|           </el-date-picker> | |||
|         </el-form-item> | |||
|         <el-form-item label="至" prop="endTime"> | |||
|           <el-date-picker v-model="dataForm.endTime" | |||
|                           type="date" | |||
|                           :picker-options="pickerBeginDateAfter" | |||
|                           value-format="yyyy-MM-dd" | |||
|                           format="yyyy-MM-dd" | |||
|                           placeholder="选择日期" | |||
|                           style="width:200px"> | |||
|           </el-date-picker> | |||
|         </el-form-item> | |||
|         <el-form-item> | |||
|           <el-button type="primary" size="small"  @click="getDataList()">{{ $t('query') }}</el-button> | |||
|         </el-form-item> | |||
|         <el-button style="margin-left:10px" | |||
|                    size="small" | |||
|                    class="diy-button--reset" | |||
|                    @click="resetSearch">重置</el-button> | |||
| <!--        <el-form-item>--> | |||
| <!--          <el-button type="primary" size="small"  @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>--> | |||
| <!--        </el-form-item>--> | |||
| <!--        <el-form-item>--> | |||
| <!--          <el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>--> | |||
| <!--        </el-form-item>--> | |||
|       </el-form> | |||
|       </el-card> | |||
|       <el-card class="resi-card-table"> | |||
|         <div class="resi-row-btn"> | |||
|           <el-button | |||
|                   class="diy-button--add" | |||
|                   size="small" | |||
|                   @click="addOrUpdateHandle()" | |||
|           >{{ $t('add') }}</el-button | |||
|           > | |||
|           <el-button @click="exportHandle()" class="diy-button--reset" size="small" | |||
|           >导出</el-button | |||
|           > | |||
|         </div> | |||
|       <el-table class="resi-table" v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%"> | |||
|         <el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> | |||
|         <el-table-column prop="title" label="标题" header-align="center" align="center"></el-table-column> | |||
|         <el-table-column prop="logType" label="日志类型" :formatter="categoryCodeFormatter" header-align="center" align="center"></el-table-column> | |||
|         <el-table-column prop="logDate" label="日志时间" header-align="center" align="center"></el-table-column> | |||
|         <el-table-column prop="createdUser" label="网格员" header-align="center" align="center"></el-table-column> | |||
|         <el-table-column prop="mobile" label="联系电话" header-align="center" align="center"></el-table-column> | |||
|         <el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> | |||
|           <template slot-scope="scope"> | |||
|             <el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> | |||
|             <el-button type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> | |||
|           </template> | |||
|         </el-table-column> | |||
|       </el-table> | |||
|       <el-pagination | |||
|         :current-page="page" | |||
|         :page-sizes="[10, 20, 50, 100]" | |||
|         :page-size="limit" | |||
|         :total="total" | |||
|         layout="total, sizes, prev, pager, next, jumper" | |||
|         @size-change="pageSizeChangeHandle" | |||
|         @current-change="pageCurrentChangeHandle"> | |||
|       </el-pagination> | |||
|       </el-card> | |||
|       <!-- 弹窗, 新增 / 修改 --> | |||
|       <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> | |||
|     </div> | |||
|   </el-card> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import mixinViewModule from '@/mixins/view-module' | |||
| import AddOrUpdate from './icworklog-add-or-update' | |||
| import { requestPost } from "@/js/dai/request"; | |||
| export default { | |||
|   mixins: [mixinViewModule], | |||
|   data () { | |||
|     return { | |||
|       mixinViewModuleOptions: { | |||
|         getDataListURL: '/gov/org/icWorkLog/page', | |||
|         getDataListIsPage: true, | |||
|         deleteURL: '/gov/org/icWorkLog/delete', | |||
|         deleteIsBatch: true, | |||
|         exportURL: '/gov/org/icWorkLog/export' | |||
|       }, | |||
|       agencyIdArray:[], | |||
|       orgOptions: [], | |||
|       logTypeArr: [], | |||
|       orgOptionProps:{ | |||
|         multiple: false, | |||
|         value: 'agencyId', | |||
|         label: 'agencyName', | |||
|         children: 'subAgencyList', | |||
|         checkStrictly: true | |||
|       }, | |||
|       dataForm: { | |||
|         id: '' | |||
|       } | |||
|     } | |||
|   }, | |||
|   components: { | |||
|     AddOrUpdate | |||
|   }, | |||
|   created () { | |||
|     this.getGridList() | |||
|     this.getCategrayList() | |||
|   }, | |||
|   methods: { | |||
|     getGridList() { | |||
|       const { user } = this.$store.state | |||
|       this.$http | |||
|               .post('/gov/org/customeragency/agencygridtree', {}) | |||
|               .then(({ data: res }) => { | |||
|                 if (res.code !== 0) { | |||
|                   return this.$message.error(res.msg) | |||
|                 } else { | |||
|                   console.log('获取组织树成功', res.data) | |||
|                   this.orgOptions=[] | |||
|                   this.orgOptions .push( res.data) | |||
|                 } | |||
|               }) | |||
|               .catch(() => { | |||
|                 return this.$message.error('网络错误') | |||
|               }) | |||
|     }, | |||
|     exportHandle () { | |||
|       const url = this.mixinViewModuleOptions.exportURL | |||
|       this.$http({ | |||
|         method: 'GET', | |||
|         url, | |||
|         responseType: 'blob', | |||
|         params: this.dataForm | |||
|       }).then(res => { | |||
|         // this.download(res.data, title + '.xls') | |||
|         if (res.headers["content-disposition"]) { | |||
|           let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) | |||
|           console.log('filename', fileName) | |||
|           let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) | |||
|           var url = window.URL.createObjectURL(blob) | |||
|           var aLink = document.createElement('a') | |||
|           aLink.style.display = 'none' | |||
|           aLink.href = url | |||
|           aLink.setAttribute('download', fileName) | |||
|           document.body.appendChild(aLink) | |||
|           aLink.click() | |||
|           document.body.removeChild(aLink) //下载完成移除元素 | |||
|           window.URL.revokeObjectURL(url) //释放掉blob对象 | |||
|         } else this.$message.error('下载失败') | |||
|       }).catch(err => { | |||
|         console.log('err', err) | |||
|         return this.$message.error('网络错误') | |||
|       }) | |||
|     }, | |||
|     //重置搜索条件 | |||
|     resetSearch () { | |||
|       this.agencyIdArray = [] | |||
|       this.dataForm = { | |||
|         agencyId: '', | |||
|         gridId: '', | |||
|         logType: '', | |||
|         createdUser: '', | |||
|         startTime: '', | |||
|         endTime: '', | |||
|         mobile: '' | |||
|       } | |||
| 
 | |||
|       this.getDataList() | |||
|     }, | |||
|     // 字典 | |||
|     async getCategrayList () { | |||
|       console.log(localStorage.getItem('token')) | |||
|       const url = "/sys/dict/data/dictlist" | |||
| 
 | |||
|       let params = { | |||
|         dictType: 'log_type' | |||
|       } | |||
| 
 | |||
|       const { data, code, msg } = await requestPost(url, params) | |||
| 
 | |||
|       if (code === 0) { | |||
|         this.logTypeArr = data | |||
|       } else { | |||
|         this.$message.error(msg) | |||
|       } | |||
|     }, | |||
|     categoryCodeFormatter (row) { | |||
|       let ca = '' | |||
|       this.logTypeArr.forEach((tagCategory) => { | |||
|         if (tagCategory.value === row.logType) { | |||
|           ca = tagCategory.label | |||
|         } | |||
|       }) | |||
|       return ca | |||
|     }, | |||
|     handleChangeAgency(val) { | |||
|       let obj = this.$refs["myCascader"].getCheckedNodes()[0].data | |||
| 
 | |||
|       if (obj) { | |||
|         if(obj.level === 'grid'){ | |||
|           this.dataForm.gridId =  this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : ''; | |||
|           this.dataForm.agencyId='' | |||
|         }else{ | |||
|           this.dataForm.agencyId = this.agencyIdArray.length > 0 ? this.agencyIdArray[this.agencyIdArray.length - 1] : ''; | |||
|           this.dataForm.gridId = '' | |||
|         } | |||
| 
 | |||
|       }else{ | |||
|         this.dataForm.agencyId='' | |||
|         this.dataForm.gridId = '' | |||
|       } | |||
|     }, | |||
|     pickerBeginDateBefore: { | |||
|       disabledDate: (time) => { | |||
|         let beginDateVal = this.dataForm.endTime | |||
|         if (beginDateVal) { | |||
|           return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime() | |||
|         } | |||
|       } | |||
|     }, | |||
|     pickerBeginDateAfter: { | |||
|       disabledDate: (time) => { | |||
|         let EndDateVal = this.dataForm.startTime | |||
|         if (EndDateVal) { | |||
|           return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime() | |||
|         } | |||
|       } | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| <style lang="scss" scoped> | |||
|   @import "@/assets/scss/buttonstyle.scss"; | |||
| 
 | |||
|   .resi-container .resi-card-table { | |||
|     ::v-deep .el-table th { | |||
|       color: #fff; | |||
|       background-color: rgba(33, 149, 254, 1); | |||
|       // border-right: 1px solid rgba(33, 149, 254, 1); | |||
|     } | |||
|   } | |||
|   .resi-table { | |||
|     ::v-deep .el-button--text { | |||
|       text-decoration: underline; | |||
|     } | |||
|     ::v-deep .btn-color-del { | |||
|       margin-left: 10px; | |||
|       color: rgba(213, 16, 16, 1); | |||
|     } | |||
|     ::v-deep .btn-color-edit { | |||
|       color: rgba(0, 167, 169, 1); | |||
|     } | |||
|   } | |||
| 
 | |||
|   .resi-row-btn { | |||
|     margin-bottom: 13px; | |||
|     .upload-btn { | |||
|       display: inline-block; | |||
|       margin: 0 10px; | |||
|     } | |||
|   } | |||
| 
 | |||
|   .form-wr { | |||
|     .input-width { | |||
|       width: 260px; | |||
| 
 | |||
|     } | |||
|     .input-width-textarea { | |||
|       width: 500px; | |||
|     } | |||
|     .imsg-list { | |||
|       display: flex; | |||
|       align-items: center; | |||
|       .imgs-item { | |||
|         position: relative; | |||
|         margin-right: 10px; | |||
|         .el-icon-delete { | |||
|           position: absolute; | |||
|           top: 0; | |||
|           right: 0; | |||
|           font-size: 18px; | |||
|           color: red; | |||
|           z-index: 3; | |||
|           cursor: pointer; | |||
|         } | |||
|       } | |||
|     } | |||
|   } | |||
|   .div-content { | |||
|     width: 100%; | |||
|     overflow: hidden; | |||
|     text-overflow: ellipsis; | |||
|     white-space: nowrap; | |||
|   } | |||
| </style> | |||
| 
 | |||
| <style> | |||
|   .el-table .warning-row { | |||
|     background: #ffe168; | |||
|   } | |||
| </style> | |||
					Loading…
					
					
				
		Reference in new issue