{"remainingRequest":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/ryousaku/Desktop/ming/mingpay/src/components/pages/PaymentManagement/RecordsOfConsumption.vue?vue&type=style&index=0&id=f79195fa&lang=less&scoped=true&","dependencies":[{"path":"/Users/ryousaku/Desktop/ming/mingpay/src/components/pages/PaymentManagement/RecordsOfConsumption.vue","mtime":1560931369991},{"path":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/css-loader/index.js","mtime":1557826125722},{"path":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/vue-loader/lib/loaders/stylePostLoader.js","mtime":1557826125950},{"path":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/postcss-loader/src/index.js","mtime":1557826125898},{"path":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/less-loader/dist/cjs.js","mtime":1557889176706},{"path":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/cache-loader/dist/cjs.js","mtime":1557826125621},{"path":"/Users/ryousaku/Desktop/ming/mingpay/node_modules/vue-loader/lib/index.js","mtime":1557826125950}],"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\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\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\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\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\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\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\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\n\n\n.searchBox{\n  display: flex;\n  margin-bottom: 20px;\n}\n.searchBox > input {\n  margin-right: 20px;\n  max-width: 180px;\n}\n.operationTable a{\n  margin-right: 8px;\n}\n.searchUserMessage{\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  font-size: 12px;\n  padding: 8px 8px;\n  border: 1px solid #cccccc;\n  margin-bottom: 15px;\n  border-radius: 8px;\n  position: relative;\n}\n.searchUserMessage img{\n  width: 32px;\n  height: 32px;\n  border-radius: 50%;\n  margin-bottom: 8px;\n}\n.positionDiv{\n  height: 12px;\n  width: 12px;\n  transform:rotate(45deg);\n  border-left: 1px solid #cccccc;\n  border-top: 1px solid #cccccc;\n  position: absolute;\n  top: -7px;\n  left: 30px;\n  background: white;\n  z-index: 99;\n}\n.clearUserMessage{\n  position: absolute;\n  right: 10px;\n}\n",{"version":3,"sources":["RecordsOfConsumption.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"RecordsOfConsumption.vue","sourceRoot":"src/components/pages/PaymentManagement","sourcesContent":["<template>\n  <div class=\"RecordsOfConsumption\">\n    <div class=\"searchBox\">\n      <a-input placeholder=\"消费人\" @click=\"choosePeople\" style=\"width: 120px\"/>\n      <a-select defaultValue=\"状态\" style=\"width: 120px;margin-right: 20px;\" @change=\"selectHandRecords\">\n        <a-select-option value=\"SUCCESS\">已消费</a-select-option>\n        <a-select-option value=\"WAITING_PERMIT\">退款审核中</a-select-option>\n        <a-select-option value=\"REFUND_SUCCESS\">已退款</a-select-option>\n      </a-select>\n      <a-button type=\"primary\" @click=\"queryRecordList()\">查询</a-button>\n    </div>\n    <div class=\"searchUserMessage\" v-if=\"searchSource.UserMessage.emplId\">\n      <div class=\"positionDiv\"></div>\n      <div class=\"clearUserMessage\"><a href=\"javascript:;\" @click=\"clearUserMessage\">清除</a></div>\n      <img v-if=\"searchSource.UserMessage.avatar\" :src=\"searchSource.UserMessage.avatar\" :alt=\"searchSource.UserMessage.name\"/>\n      <img v-else :src=\"this.avatarCanvasFn(searchSource.UserMessage.name)\" :alt=\"searchSource.UserMessage.name\">\n      <span>{{ searchSource.UserMessage.name }}</span>\n    </div>\n     <a-table :columns=\"columns\" :dataSource=\"recordsList\" size=\"default\" rowKey=\"orderNo\" :pagination=\"pagination\" @change=\"handleTableChange\">\n        <span slot=\"userName\">消费人</span>\n        <span slot=\"departmentNameList\" slot-scope=\"departmentNameList\">\n          {{ departmentNameListToStr(departmentNameList) }}\n        </span>\n        <span slot=\"chargeAmount\">消费金额</span>\n        <span slot=\"orderNo\">单号</span>\n        <span slot=\"status\" slot-scope=\"status\">\n          {{ status === MINGPAY_RECORDS_STATUS.SUCCESS ? '已消费' : status === MINGPAY_RECORDS_STATUS.WAITING_PERMIT ? 'WAITING_PERMIT' : '退款成功'}}\n        </span>\n        <span slot=\"remark\">备注</span>\n        <span slot=\"createTime\" slot-scope=\"createTime\">\n          {{ createTimeToStr(createTime) }}\n        </span>\n        <span slot=\"action\" slot-scope=\"text, record, index\" class=\"operationTable\">\n          <a href=\"javascript:;\" @click=\"refundModal(record, text, index)\">退款</a>\n        </span>\n      </a-table>\n      <a-modal title=\"发起退款\" v-model=\"visible\" @ok=\"refund()\">\n        <a-form :form=\"form\">\n          <a-form-item label=\"退款金额\" :label-col=\"{ span: 5 }\" :wrapper-col=\"{ span: 12 }\" >\n            <a href=\"javascript:;\">{{ refundSelect.chargeAmount }}</a>\n          </a-form-item>\n          <a-form-item label=\"备注\" :label-col=\"{ span: 5 }\" :wrapper-col=\"{ span: 12 }\" >\n            <a-textarea v-decorator=\"['remark', {rules: [{ required: true, message: '备注不能为空' }]}]\"/>\n          </a-form-item>\n        </a-form>\n      </a-modal>\n  </div>\n</template>\n\n<script>\nimport { config } from './../../../api/config.js'\nimport { $http } from './../../../api/axios.js'\nimport { MINGPAY_RECORDS_STATUS } from './../../../api/constant'\nexport default {\n  name: 'recordsOfConsumption',\n  data () {\n    return {\n      visible: false,\n      columns: [{\n        title: '消费人',\n        dataIndex: 'userName'\n      }, {\n        title: '部门',\n        dataIndex: 'departmentNameList',\n        scopedSlots: { customRender: 'departmentNameList' }\n      }, {\n        title: '消费金额',\n        dataIndex: 'chargeAmount'\n      },\n      // {\n      //   title: '消费类型',\n      //   dataIndex: 'cardNo',\n      //   scopedSlots: { customRender: 'cardNo' }\n      // },\n      {\n        title: '单号',\n        dataIndex: 'orderNo'\n      }, {\n        title: '状态',\n        dataIndex: 'orderStatus',\n        scopedSlots: { customRender: 'orderStatus' }\n      }, {\n        title: '备注',\n        dataIndex: 'remark'\n      }, {\n        title: '时间',\n        dataIndex: 'createTime',\n        scopedSlots: { customRender: 'createTime' }\n      }, {\n        title: '操作',\n        dataIndex: 'action',\n        scopedSlots: { customRender: 'action' }\n      }],\n      searchSource: {\n        UserMessage: {\n          avatar: '',\n          emplId: '',\n          name: ''\n        },\n        status: '',\n        agentId: ''\n      },\n      recordsList: [],\n      pagination: {\n        current: 1,\n        defaultCurrent: 10,\n        defaultPageSize: 2,\n        hideOnSinglePage: true,\n        total: 0\n      },\n      refundSelect: '',\n      form: this.$form.createForm(this)\n    }\n  },\n  created: function () {\n    this.queryRecordList()\n  },\n  methods: {\n    refundModal (record, text, index) {\n      this.visible = !this.visible\n      this.refundSelect = record\n    },\n    // 退款\n    refund () {\n      let refundData = this.$qs.stringify({\n        orderNo: this.refundSelect.orderNo,\n        sum: this.refundSelect.chargeAmount,\n        remark: this.form.getFieldsValue().remark,\n        orgId: sessionStorage.getItem('corpId')\n      })\n      $http.get(`/v1/consume/refund?${refundData}`).then((res) => {\n        if (res.data.message === 'SUCCESS') {\n          this.$message.success('退款成功')\n        } else {\n          this.$message.success(res.data.message)\n        }\n        console.log(res)\n      }).catch(() => {\n        this.$message.error('退款失败')\n      })\n    },\n    // table部门表格字符串处理\n    departmentNameListToStr (str) {\n      let departmentNameListStr = ''\n      if (str.length !== 0) {\n        str.map((data) => {\n          departmentNameListStr = `${departmentNameListStr}${data},`\n        })\n      }\n      departmentNameListStr = departmentNameListStr.substring(0, departmentNameListStr.length - 1)\n      return departmentNameListStr\n    },\n    // 获取消费列表\n    queryRecordList () {\n      let RecordListData = this.$qs.stringify({\n        currentPage: this.pagination.current,\n        pageNumber: this.pagination.defaultPageSize,\n        status: this.searchSource.status,\n        userId: this.searchSource.UserMessage.emplId,\n        agentId: this.searchSource.agentId,\n        orgId: sessionStorage.getItem('corpId')\n      })\n      $http.get(`/v1/charge/list_expense_record?${RecordListData}`).then((res) => {\n        let data = res.data.data\n        this.recordsList = data.recordList\n        this.pagination.total = parseInt(data.totalCount)\n        console.log(res.data.data)\n      })\n    },\n    // 选人组件调用\n    choosePeople () {\n      config.ddready('ddchooseOne').then((res) => {\n        this.searchSource.UserMessage = res[0]\n      })\n    },\n    // 表格时间处理\n    createTimeToStr (time) {\n      let timeData = new Date(parseInt(time))\n      let year = timeData.getFullYear()\n      let month = timeData.getMonth() + 1\n      let date = timeData.getDate()\n      let hour = timeData.getHours()\n      let minute = timeData.getMinutes()\n      return `${year}年${month}月${date}日 ${hour}:${minute}`\n    },\n    // 清理选择帅选人list\n    clearUserMessage () {\n      this.searchSource.UserMessage = {\n        avatar: '',\n        emplId: '',\n        name: ''\n      }\n    },\n    // 用户头像处理\n    avatarCanvasFn (name) {\n      let canvas = document.createElement('canvas')\n      let con = canvas.getContext('2d')\n      let ratio = this.getPixelRatio(con)\n      canvas.style.width = 40 + 'px'\n      canvas.style.height = 40 + 'px'\n      canvas.width = 40 * ratio\n      canvas.height = 40 * ratio\n      con.scale(ratio, ratio)\n      con.fillStyle = '#1890ff'\n      con.fillRect(0, 0, 40, 40)\n      con.fillStyle = '#ffffff'\n      con.font = '12px Arial'\n      con.textAlign = 'center'\n      con.fillText(name, 20, 25)\n      return canvas.toDataURL()\n    },\n    // 头像模糊处理\n    getPixelRatio (context) {\n      var backingStore = context.backingStorePixelRatio ||\n        context.webkitBackingStorePixelRatio ||\n        context.mozBackingStorePixelRatio ||\n        context.msBackingStorePixelRatio ||\n        context.oBackingStorePixelRatio ||\n        context.backingStorePixelRatio || 1\n      return (window.devicePixelRatio || 1) / backingStore\n    },\n    handleTableChange (pagination, filters, sorter) {\n      this.pagination.current = pagination.current\n      this.queryRecordList()\n    },\n    // 搜索条件消费单状态\n    selectHandRecords (value) {\n      console.log(value)\n      this.searchSource.cardStatus = value\n    }\n  }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.searchBox{\n  display: flex;\n  margin-bottom: 20px;\n}\n.searchBox > input {\n  margin-right: 20px;\n  max-width: 180px;\n}\n.operationTable a{\n  margin-right: 8px;\n}\n.searchUserMessage{\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  font-size: 12px;\n  padding: 8px 8px;\n  border: 1px solid #cccccc;\n  margin-bottom: 15px;\n  border-radius: 8px;\n  position: relative;\n}\n.searchUserMessage img{\n  width: 32px;\n  height: 32px;\n  border-radius: 50%;\n  margin-bottom: 8px;\n}\n.positionDiv{\n  height: 12px;\n  width: 12px;\n  transform:rotate(45deg);\n  border-left: 1px solid #cccccc;\n  border-top: 1px solid #cccccc;\n  position: absolute;\n  top: -7px;\n  left: 30px;\n  background: white;\n  z-index: 99;\n}\n.clearUserMessage{\n  position: absolute;\n  right: 10px;\n}\n</style>\n"]}]}