Blame view

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

          } else if ((newVal == '1' || newVal == '3')) {
            this.column = dataList
          } else {
            this.column = _.cloneDeep(dataList)
            this.column.splice(
              2, 0, {
              prop: "fs",
              label: "份数"
任超 committed
157 158
            })
          }
任超 committed
159
        },
160 161 162 163
        immediate: true
      }
    },
    methods: {
yuanbo committed
164 165 166 167 168
      /**
       * @description: handleupdateDetail
       * @param {*} value
       * @author: renchao
       */
169 170 171 172 173
      handleupdateDetail (value) {
        if (this.isaddupdate) {
          if (!_.isEqual(value, this.tableData)) {
            this.tableDataList[this.tableDataList.length] = _.cloneDeep(value);
            this.$emit('upDateQlrxxList', this.tableDataList)
任超 committed
174
          }
175 176 177 178
        } else {
          if (!_.isEqual(value, this.tableData)) {
            this.tableDataList[this.dataIndex] = _.cloneDeep(value);
            this.$emit('upDateQlrxxList', this.tableDataList)
任超 committed
179
          }
180 181
        }
        this.key++
liangyifan committed
182
      },
183
      // 新增
yuanbo committed
184 185 186 187
      /**
       * @description: 新增
       * @author: renchao
       */
188 189 190
      addClick () {
        if (this.gyfs == '0' && this.tableDataList.length > 0) {
          this.$message.warning("当前共有方式为单独所有,无法添加多个权利人")
任超 committed
191
        } else {
192 193
          this.dialog = true
          this.isaddupdate = true
任超 committed
194 195
        }
      },
196

197
      // 删除
yuanbo committed
198 199 200 201 202 203
      /**
       * @description: 删除
       * @param {*} index
       * @param {*} row
       * @author: renchao
       */
204 205 206 207 208 209 210 211 212 213
      deleClick (index, row) {
        this.$confirm('确定要删除吗, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.tableData.splice(index, 1)
        }).catch(() => {
        });
      },
214

215
      // 身份证读取
yuanbo committed
216 217 218 219 220
      /**
       * @description: 身份证读取
       * @param {*} row
       * @author: renchao
       */
221
      readClick (row) {
222
        getIdCardInfo().then(res => {
223
          if (res.data.code == 0) {
renchao@pashanhoo.com committed
224 225
            let data = res.data.IDCardInfo
            row.sqrmc = data.name
226
            row.zjzl = '1'
renchao@pashanhoo.com committed
227
            row.zjh = data.cardID
228 229 230
            row.xb = data.sexCode
            row.txdz = data.address
            row.fzjg = data.issueOrgan
231 232 233 234 235 236 237 238 239
            this.$message({
              message: '读取成功!',
              type: 'success'
            })
          } else {
            this.$message({
              message: res.data.message,
              type: 'warning'
            })
renchao@pashanhoo.com committed
240
          }
241 242
        })
      },
243
      // 修改
yuanbo committed
244 245 246 247 248 249
      /**
       * @description: 修改
       * @param {*} index
       * @param {*} row
       * @author: renchao
       */
250 251 252 253 254 255
      editClick (index, row) {
        this.dataIndex = index
        this.dialog = true
        this.details = row
        this.isaddupdate = false
      },
yuanbo committed
256 257 258 259 260 261
      /**
       * @description: queryViewClick
       * @param {*} index
       * @param {*} row
       * @author: renchao
       */
262 263 264 265
      queryViewClick (index, row) {
        this.dialog = true
        this.details = row
      }
任超 committed
266
    }
liangyifan committed
267
  }
liangyifan committed
268
</script>
269 270 271 272
<style scoped lang="scss">
  /deep/.el-table th {
    height: 30px !important;
  }
xiaomiao committed
273 274
    /deep/.el-table .cell {
    padding-right: 12px;
275 276
  }
</style>