Blame view

src/views/workflow/components/JtcyTable.vue 5.09 KB
1
<!--
xiaomiao committed
2
 * @Description:
3
 * @Autor: renchao
4
 * @LastEditTime: 2023-07-17 13:51:03
5
-->
蔡俊立 committed
6 7 8 9
<template>
  <div>
    <lb-table :column="column" border :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableDataList">
    </lb-table>
蔡俊立 committed
10
    <addJtcy v-model="dialog" :details="details" @updateDetail="updateDetail" />
蔡俊立 committed
11 12 13
  </div>
</template>
<script>
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
  import addJtcy from './addJtcy.vue'
  import { mapGetters } from 'vuex'
  export default {
    components: {
      addJtcy
    },
    computed: {
      ...mapGetters(["dictData"]),
    },
    props: {
      tableData: {
        type: Array,
        default: function () {
          return []
        }
      },
      gyfs: {
        type: String,
        default: '1'
33 34 35 36
      },
      disabled: {
        type: Boolean,
        default: false
蔡俊立 committed
37 38
      }
    },
39 40
    data () {
      return {
xiaomiao committed
41
        isDisabled: this.disabled,
42 43 44 45 46 47 48 49 50 51
        key: 0,
        dataIndex: 0,
        dialog: false,
        details: {},
        tableDataList: [],
        qlrCommonTable: [
          {
            width: '50',
            renderHeader: (h, scope) => {
              return <div> {
xiaomiao committed
52
                this.isDisabled? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.addClick() }}></i>
53 54 55 56 57 58 59
              }
              </div>
            },
            render: (h, scope) => {
              return (
                <div>
                  {
xiaomiao committed
60
                    this.isDisabled? <span>{scope.$index + 1}</span> :
61 62 63 64
                      <i class="el-icon-minus pointer" onClick={() => { this.deleClick(scope.$index, scope.row) }}></i>
                  }
                </div>
              )
蔡俊立 committed
65 66
            }
          },
67 68 69 70
          {
            label: '身份证读卡器',
            align: 'center',
            render: (h, scope) => {
71
              return <el-button type="text" icon="el-icon-tickets" disabled={this.isDisabled} onClick={() => { this.readClick(scope) }}>读取</el-button>
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
            }
          },
          {
            prop: "cyxm",
            label: "成员姓名"
          },
          {
            prop: "sfzhm",
            label: "身份证号码"
          },
          {
            prop: "dh",
            label: "联系电话"
          },
          {
            label: '修改',
            render: (h, scope) => {
              return (
                <div>
                  {
xiaomiao committed
92
                    this.isDisabled? <el-button
93 94
                      icon="el-icon-view"
                      type="text"
95
                      onClick={() => { this.queryViewClick(scope.$index, scope.row) }} disabled={this.isDisabled}>查看</el-button> : <el-button
96 97
                        icon="el-icon-edit-outline"
                        type="text"
98
                        onClick={() => { this.editClick(scope.$index, scope.row) }} disabled={this.isDisabled}>编辑</el-button>
99 100 101 102
                  }
                </div>
              )
            }
蔡俊立 committed
103
          }
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
        ],
        column: this.qlrCommonTable
      }
    },
    watch: {
      tableData: {
        handler: function (val, oldVal) {
          let that = this
          if (val.length == 0 || !val) {
            that.tableDataList = _.cloneDeep([{
              sqrmc: '',
              dlrzjlx: '',
              dlrzjh: '',
              fr: ''
            }])
          } else {
            that.tableDataList = _.cloneDeep(val)
蔡俊立 committed
121 122
          }
        },
123 124
        immediate: true,
        deep: true
蔡俊立 committed
125
      },
126 127 128 129 130 131 132 133 134 135 136
      gyfs: {
        handler (newVal, oldValue) {
          let dataList = _.cloneDeep(this.qlrCommonTable)
          if (newVal == '1') {
            this.column = _.cloneDeep(dataList).slice(1, dataList.length)
          } else {
            this.column = dataList
          }
        },
        immediate: true
      }
蔡俊立 committed
137
    },
138
    methods: {
yuanbo committed
139 140 141 142 143
      /**
       * @description: updateDetail
       * @param {*} value
       * @author: renchao
       */
144 145 146 147
      updateDetail (value) {
        this.tableDataList[this.dataIndex] = value
        this.key++
        this.$emit('upDateJtcyList', this.tableDataList)
蔡俊立 committed
148 149
      },

150
      // 新增
yuanbo committed
151 152 153 154
      /**
       * @description: 新增
       * @author: renchao
       */
155 156 157 158 159
      addClick () {
        this.dialog = true
      },

      // 删除
yuanbo committed
160 161 162 163 164 165
      /**
       * @description: 删除
       * @param {*} index
       * @param {*} row
       * @author: renchao
       */
166 167 168
      deleClick (index, row) {
        this.tableData.splice(index, 1)
      },
蔡俊立 committed
169

170
      // 身份证读取
yuanbo committed
171 172 173 174
      /**
       * @description: 身份证读取
       * @author: renchao
       */
175
      readClick () { },
蔡俊立 committed
176

177
      // 修改
yuanbo committed
178 179 180 181 182 183
      /**
       * @description: 修改
       * @param {*} index
       * @param {*} row
       * @author: renchao
       */
184 185 186 187 188 189
      editClick (index, row) {
        console.log(row, 'rowrowrowrowrow');
        this.dataIndex = index
        this.dialog = true
        this.details = row
      },
蔡俊立 committed
190

yuanbo committed
191 192 193 194
      /**
       * @description: queryViewClick
       * @author: renchao
       */
195 196 197
      queryViewClick () {
        this.dialog = true
      }
蔡俊立 committed
198 199 200
    }
  }
</script>
201 202 203 204 205 206 207 208
<style scoped lang="scss">
  /deep/.el-table th {
    height: 30px !important;
  }
  /deep/.el-table--small .el-table__cell {
    padding: 5px;
  }
</style>