|
@@ -1,367 +0,0 @@
|
|
|
-<template>
|
|
|
- <div>
|
|
|
- <div style='display:flex'>
|
|
|
- <!-- <el-table
|
|
|
- :data='tableData1'
|
|
|
- :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
|
|
|
- border
|
|
|
- style='width: 100%'
|
|
|
- >
|
|
|
- <el-table-column prop='type' label='type' width='180'></el-table-column>
|
|
|
- <el-table-column prop='professional' label='professional'></el-table-column>
|
|
|
- <el-table-column prop='unit' label='unit'></el-table-column>
|
|
|
- <el-table-column prop='seq0' label='seq0'></el-table-column>
|
|
|
- <el-table-column prop='seq1' label='seq1'></el-table-column>
|
|
|
- <el-table-column prop='seq2' label='seq2'></el-table-column>
|
|
|
- <el-table-column prop='seq3' label='seq3'></el-table-column>
|
|
|
- <el-table-column prop='seq4' label='seq4'></el-table-column>
|
|
|
- <el-table-column prop='seq5' label='seq5'></el-table-column>
|
|
|
- <el-table-column prop='seq6' label='seq6'></el-table-column>
|
|
|
- <el-table-column label='联系人' prop width='65'>
|
|
|
- <template slot-scope='{row}'>{{row.lxr}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop='phone' label='联系电话' width='110'>
|
|
|
- <template slot-scope='{row}'>{{row.lxdh}}</template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>-->
|
|
|
- <!-- <el-table
|
|
|
- :data='tableData2'
|
|
|
- :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
|
|
|
- border
|
|
|
- style='width: 100%'
|
|
|
- >
|
|
|
- <el-table-column prop='type' label='type' width='180'></el-table-column>
|
|
|
- <el-table-column prop='professional' label='professional'></el-table-column>
|
|
|
- <el-table-column prop='unit' label='unit'></el-table-column>
|
|
|
- <el-table-column prop='seq0' label='seq0'></el-table-column>
|
|
|
- <el-table-column prop='seq1' label='seq1'></el-table-column>
|
|
|
- <el-table-column prop='seq2' label='seq2'></el-table-column>
|
|
|
- <el-table-column prop='seq3' label='seq3'></el-table-column>
|
|
|
- <el-table-column prop='seq4' label='seq4'></el-table-column>
|
|
|
- <el-table-column prop='seq5' label='seq5'></el-table-column>
|
|
|
- <el-table-column prop='seq6' label='seq6'></el-table-column>
|
|
|
- <el-table-column label='联系人' prop width='65'>
|
|
|
- <template slot-scope='{row}'>{{row.lxr}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop='phone' label='联系电话' width='110'>
|
|
|
- <template slot-scope='{row}'>{{row.lxdh}}</template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>-->
|
|
|
- </div>
|
|
|
- <div style='display:flex'>
|
|
|
- <!-- <el-table
|
|
|
- :data='tableData2'
|
|
|
- :span-method='arraySpanMethod'
|
|
|
- :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
|
|
|
- border
|
|
|
- style='width: 100%'
|
|
|
- >
|
|
|
- <el-table-column prop='type' label='type' width='180'></el-table-column>
|
|
|
- <el-table-column prop='professional' label='professional'></el-table-column>
|
|
|
- <el-table-column prop='unit' label='unit'></el-table-column>
|
|
|
- <el-table-column prop='seq0' label='seq0'></el-table-column>
|
|
|
- <el-table-column prop='seq1' label='seq1'></el-table-column>
|
|
|
- <el-table-column prop='seq2' label='seq2'></el-table-column>
|
|
|
- <el-table-column prop='seq3' label='seq3'></el-table-column>
|
|
|
- <el-table-column prop='seq4' label='seq4'></el-table-column>
|
|
|
- <el-table-column prop='seq5' label='seq5'></el-table-column>
|
|
|
- <el-table-column prop='seq6' label='seq6'></el-table-column>
|
|
|
- <el-table-column label='联系人' prop width='65'>
|
|
|
- <template slot-scope='{row}'>{{row.lxr}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop='phone' label='联系电话' width='110'>
|
|
|
- <template slot-scope='{row}'>{{row.lxdh}}</template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>-->
|
|
|
- <el-table
|
|
|
- :data='tableData2'
|
|
|
- :height='350'
|
|
|
- :span-method='arraySpanMethod'
|
|
|
- style='font-size:12px;width:60%'
|
|
|
- border
|
|
|
- :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
|
|
|
- >
|
|
|
- <!-- <el-table-column label='序号' width='50' type='index' align='left'></el-table-column> -->
|
|
|
- <el-table-column label='总包/分包' width='100' prop='type'>
|
|
|
- <template slot-scope='{row}'>{{row.type||'--'}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label='专业' width='70' prop='professional'>
|
|
|
- <template slot-scope='{row}'>{{row.professional||'--'}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop='unit ' label='施工单位'>
|
|
|
- <template slot-scope='{row}'>{{row.unit ||'--'}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label='联系人' prop width='65' :show-overflow-tooltip='true'>
|
|
|
- <template slot-scope='{row}'>{{row.lxr}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop='phone' label='联系电话' width='110'>
|
|
|
- <template slot-scope='{row}'>{{row.lxdh}}</template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop='seq0' label='seq0'></el-table-column>
|
|
|
- <el-table-column prop='seq1' label='seq1'></el-table-column>
|
|
|
- <el-table-column prop='seq2' label='seq2'></el-table-column>
|
|
|
- <el-table-column prop='seq3' label='seq3'></el-table-column>
|
|
|
- <el-table-column prop='seq4' label='seq4'></el-table-column>
|
|
|
- <el-table-column prop='seq5' label='seq5'></el-table-column>
|
|
|
- <el-table-column prop='seq6' label='seq6'></el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-<script>
|
|
|
-export default {
|
|
|
- name: 'Table1',
|
|
|
- props: [],
|
|
|
- components: {},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- tableData1: [],
|
|
|
- tableData2: []
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {},
|
|
|
- methods: {
|
|
|
- arraySpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
- console.log('{ row, column, rowIndex, columnIndex }', { row, column, rowIndex, columnIndex })
|
|
|
- // console.log('span method rowIndex=', rowIndex, ', columnIndex=', columnIndex, JSON.stringify(row))
|
|
|
- if (columnIndex == 0) {
|
|
|
- if (row.type == '总包') {
|
|
|
- return [row.seq1, 1]
|
|
|
- } else if (row.type == '分包') {
|
|
|
- if (row.professional) {
|
|
|
- return [row.seq2, 1]
|
|
|
- }
|
|
|
- return [0, 1]
|
|
|
- } else {
|
|
|
- return [0, 1]
|
|
|
- }
|
|
|
- }
|
|
|
- if (columnIndex == 1) {
|
|
|
- if (row.professional) {
|
|
|
- return [row.seq2, 1]
|
|
|
- } else {
|
|
|
- return [0, 1]
|
|
|
- }
|
|
|
- }
|
|
|
- if (columnIndex == 2) {
|
|
|
- if (row.unit) {
|
|
|
- return [row.seq3, 1]
|
|
|
- } else {
|
|
|
- return [0, 1]
|
|
|
- }
|
|
|
- }
|
|
|
- if (columnIndex == 3) {
|
|
|
- if (row.lxr) {
|
|
|
- return [row.seq4, 1]
|
|
|
- } else {
|
|
|
- return [0, 1]
|
|
|
- }
|
|
|
- }
|
|
|
- if (columnIndex == 4) {
|
|
|
- if (row.lxdh) {
|
|
|
- return [row.seq5, 1]
|
|
|
- } else {
|
|
|
- return [0, 1]
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return [1, 1]
|
|
|
- },
|
|
|
- parseTableData(data) {
|
|
|
- let seq = {}
|
|
|
- data.forEach(item => {
|
|
|
- let flag = item.type
|
|
|
- if (!seq[flag]) {
|
|
|
- seq[flag] = 1
|
|
|
- } else {
|
|
|
- seq[flag] = seq[flag] + 1
|
|
|
- }
|
|
|
- flag = item.type + '-' + item.professional
|
|
|
- if (!seq[flag]) {
|
|
|
- seq[flag] = 1
|
|
|
- } else {
|
|
|
- seq[flag] = seq[flag] + 1
|
|
|
- }
|
|
|
- flag = item.type + '-' + item.unit
|
|
|
- if (!seq[flag]) {
|
|
|
- seq[flag] = 1
|
|
|
- } else {
|
|
|
- seq[flag] = seq[flag] + 1
|
|
|
- }
|
|
|
- flag = item.type + '-' + item.lxr
|
|
|
- if (!seq[flag]) {
|
|
|
- seq[flag] = 1
|
|
|
- } else {
|
|
|
- seq[flag] = seq[flag] + 1
|
|
|
- }
|
|
|
- flag = item.type + '-' + item.lxdh
|
|
|
- if (!seq[flag]) {
|
|
|
- seq[flag] = 1
|
|
|
- } else {
|
|
|
- seq[flag] = seq[flag] + 1
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- console.log(seq)
|
|
|
-
|
|
|
- data.forEach(item => {
|
|
|
- console.log(item.type)
|
|
|
- item.seq0 = item.type == '总包' ? 1 : 2
|
|
|
- item.seq1 = seq[item.type]
|
|
|
- item.seq2 = seq[item.type + '-' + item.professional]
|
|
|
- item.seq3 = seq[item.type + '-' + item.unit]
|
|
|
- item.seq4 = seq[item.type + '-' + item.lxr]
|
|
|
- console.log(seq[item.type + '-' + item.lxr])
|
|
|
- item.seq5 = seq[item.type + '-' + item.lxdh]
|
|
|
- item.seq6 = item.seq4 + item.seq5
|
|
|
- })
|
|
|
- // data.forEach(item => console.log(JSON.stringify(item)))
|
|
|
-
|
|
|
- data.sort((a, b) => {
|
|
|
- if (a.seq0 != b.seq0) {
|
|
|
- return a.seq0 - b.seq0
|
|
|
- }
|
|
|
- if (a.seq1 != b.seq1) {
|
|
|
- return a.seq1 - b.seq1
|
|
|
- }
|
|
|
- if (a.seq2 != b.seq2) {
|
|
|
- return a.seq2 - b.seq2
|
|
|
- }
|
|
|
- if (a.seq3 != b.seq3) {
|
|
|
- return a.seq3 - b.seq3
|
|
|
- }
|
|
|
- if (a.seq4 != b.seq4) {
|
|
|
- return a.seq4 - b.seq4
|
|
|
- }
|
|
|
- if (a.seq5 != b.seq5) {
|
|
|
- return a.seq5 - b.seq5
|
|
|
- }
|
|
|
- if (a.seq6 != b.seq6) {
|
|
|
- return a.seq6 - b.seq6
|
|
|
- }
|
|
|
-
|
|
|
- let result = a.professional.localeCompare(b.professional)
|
|
|
- if (result == 0) {
|
|
|
- return a.unit.localeCompare(b.unit)
|
|
|
- } else {
|
|
|
- return result
|
|
|
- }
|
|
|
-
|
|
|
- let result1 = a.unit.localeCompare(b.unit)
|
|
|
- if (result1 == 0) {
|
|
|
- return a.lxr.localeCompare(b.lxr)
|
|
|
- } else {
|
|
|
- return result1
|
|
|
- }
|
|
|
-
|
|
|
- let result2 = a.lxr.localeCompare(b.lxr)
|
|
|
- if (result2 == 0) {
|
|
|
- return a.lxdh.localeCompare(b.lxdh)
|
|
|
- } else {
|
|
|
- return result2
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- let result = []
|
|
|
- let temp = null
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
- let item = data[i]
|
|
|
- if (item.type != '总包') {
|
|
|
- continue
|
|
|
- }
|
|
|
- if (!temp) {
|
|
|
- result.push(item)
|
|
|
- } else {
|
|
|
- let content = {
|
|
|
- seq0: item.seq0,
|
|
|
- seq1: item.seq1,
|
|
|
- seq2: item.seq2,
|
|
|
- seq3: item.seq3,
|
|
|
- seq4: item.seq4,
|
|
|
- seq5: item.seq5,
|
|
|
- seq6: item.seq6
|
|
|
- }
|
|
|
- content.type = item.type == '分包' ? '分包' : null
|
|
|
- if (item.professional != temp.professional) {
|
|
|
- content.professional = item.professional
|
|
|
- }
|
|
|
- if (item.unit != temp.unit) {
|
|
|
- content.unit = item.unit
|
|
|
- }
|
|
|
- if (item.lxr != temp.lxr) {
|
|
|
- content.lxr = item.lxr
|
|
|
- }
|
|
|
- if (item.lxdh != temp.lxdh) {
|
|
|
- content.lxdh = item.lxdh
|
|
|
- }
|
|
|
- result.push(content)
|
|
|
- }
|
|
|
- temp = data[i]
|
|
|
- }
|
|
|
- temp = null
|
|
|
- for (let i = 0; i < data.length; i++) {
|
|
|
- let item = data[i]
|
|
|
- if (item.type != '分包') {
|
|
|
- continue
|
|
|
- }
|
|
|
- if (!temp) {
|
|
|
- result.push(item)
|
|
|
- } else {
|
|
|
- let item = data[i]
|
|
|
- let content = {
|
|
|
- seq0: item.seq0,
|
|
|
- seq1: item.seq1,
|
|
|
- seq2: item.seq2,
|
|
|
- seq3: item.seq3,
|
|
|
- seq4: item.seq4,
|
|
|
- seq5: item.seq5,
|
|
|
- seq6: item.seq6
|
|
|
- }
|
|
|
- content.type = item.type == '分包' ? '分包' : null
|
|
|
- if (item.professional != temp.professional) {
|
|
|
- content.professional = item.professional
|
|
|
- }
|
|
|
- if (item.unit != temp.unit) {
|
|
|
- content.unit = item.unit
|
|
|
- }
|
|
|
- if (item.lxr != temp.lxr) {
|
|
|
- content.lxr = item.lxr
|
|
|
- }
|
|
|
- if (item.lxdh != temp.lxdh) {
|
|
|
- content.lxdh = item.lxdh
|
|
|
- }
|
|
|
-
|
|
|
- result.push(content)
|
|
|
- }
|
|
|
- temp = data[i]
|
|
|
- }
|
|
|
- this.tableData1 = data
|
|
|
- this.tableData2 = result
|
|
|
- }
|
|
|
- },
|
|
|
- created() {
|
|
|
- console.log('--------------------- Table1 created')
|
|
|
- let tableData = [
|
|
|
- { siteid: '1000423', type: '总包', professional: '土建', unit: '中建二局', lxr: '张善国1', lxdh: '136234577521' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '电梯', unit: '上海三菱', lxr: '张善国2', lxdh: '136234577522' },
|
|
|
- { siteid: '1000423', type: '总包', professional: '消防电', unit: '中建二局', lxr: '张善国3', lxdh: '136234577523' },
|
|
|
- { siteid: '1000423', type: '总包', professional: '机电', unit: '中建二局', lxr: '张善国4', lxdh: '136234577524' },
|
|
|
- { siteid: '1000423', type: '总包', professional: '机电', unit: '中建二局', lxr: '张善国5', lxdh: '136234577525' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '精装', unit: '深圳嘉信', lxr: '张善国6', lxdh: '136234577526' },
|
|
|
- { siteid: '1000423', type: '总包', professional: '给排水', unit: '中建二局', lxr: '张善国7', lxdh: '136234577521' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '幕墙', unit: '中建二局', lxr: '张善国8', lxdh: '136234577522' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '精装', unit: '深圳艺涛', lxr: '张善国9', lxdh: '136234577523' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '采光顶', unit: '上海通用', lxr: '张善国10', lxdh: '136234577524' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '空调', unit: '武汉三重', lxr: '张善国11', lxdh: '136234577525' },
|
|
|
- { siteid: '1000423', type: '总包', professional: '弱电', unit: '中建二局', lxr: '张善国12', lxdh: '136234577526' },
|
|
|
- { siteid: '1000423', type: '分包', professional: '消防水', unit: '辽宁强盾', lxr: '张善国13', lxdh: '136234577527' }
|
|
|
- ]
|
|
|
- this.parseTableData(tableData)
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- console.log('--------------------- Table1 mounted')
|
|
|
- }
|
|
|
-}
|
|
|
-</script>
|
|
|
-<style lang='css' scoped>
|
|
|
-</style>
|