{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\common\\HtDeleteButton.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\common\\HtDeleteButton.vue","mtime":1667327529075},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport req from '@/request.js'\r\nexport default {\r\n  name: 'ht-delete-button',\r\n  props: {\r\n    type: {\r\n      type: String,\r\n      default: 'danger',\r\n    },\r\n    requestMethod: {\r\n      type: String,\r\n      default: 'DELETE',\r\n    },\r\n    url: {\r\n      type: String,\r\n      required: true,\r\n    },\r\n    pk: {\r\n      type: String,\r\n      default: 'id',\r\n    },\r\n    parameter: {\r\n      type: String,\r\n      default: 'ids',\r\n    },\r\n    pureData: {\r\n      type: Boolean,\r\n      default: false,\r\n    },\r\n    htTable: {\r\n      type: Object,\r\n    },\r\n    row: {\r\n      type: Object,\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n      fullscreenLoading: false,\r\n      elTable: null,\r\n    }\r\n  },\r\n  methods: {\r\n    async handleDelete() {\r\n      this.elTable = this.htTable\r\n      if (this.htTable.$refs && this.htTable.$refs.htTable) {\r\n        this.elTable = this.htTable.$refs.htTable\r\n      }\r\n      console.log(this.elTable, this.elTable.selection, this.row)\r\n      if (\r\n        this.elTable &&\r\n        this.elTable.selection &&\r\n        this.elTable.selection.length == 0 &&\r\n        !this.row\r\n      ) {\r\n        this.$message.error('请至少选择一条数据')\r\n        return\r\n      }\r\n\r\n      let ids = []\r\n\r\n      if (this.row) {\r\n        ids.push(this.row[this.pk])\r\n      } else {\r\n        for (let item of this.elTable.selection) {\r\n          //判断是否是合同管理传递的参数，因为合同管理的对象数据格式需要特殊处理\r\n          if (item.contract) {\r\n            ids.push(item.contract[this.pk])\r\n          } else {\r\n            ids.push(item[this.pk])\r\n          }\r\n        }\r\n      }\r\n\r\n      let params = {},\r\n        data = null\r\n      params[this.parameter] = ids.join(',')\r\n      // 如果是纯文本作为参数，则直接传递文本作为参数\r\n      if (this.pureData) {\r\n        params = null\r\n        data = ids.join(',')\r\n      }\r\n\r\n      this.fullscreenLoading = true\r\n      let response = await req\r\n        .request({\r\n          params: params,\r\n          data: data,\r\n          url: this.url,\r\n          method: this.requestMethod,\r\n        })\r\n        .finally(() => {\r\n          this.fullscreenLoading = false\r\n        })\r\n\r\n      if (response.data && response.data.state) {\r\n        this.$emit('after-delete')\r\n        this.htTable.load()\r\n        this.$message({\r\n          message: response.data.message || '操作成功',\r\n          showClose: true,\r\n          type: 'success',\r\n        })\r\n      }\r\n    },\r\n  },\r\n}\r\n  \r\n",null]}