|
@@ -0,0 +1,541 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-form ref="form" :model="form" style="width: 100%;padding: 5px" :rules="rules">
|
|
|
+ <el-row>
|
|
|
+ <el-col style="padding-bottom: 10px">
|
|
|
+ <span class="card_title">新增退款</span>
|
|
|
+ <el-card shadow="always" style="padding: 15px 5px 5px 15px">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*关联审批单号</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="approvalNumber">
|
|
|
+ <el-input v-model="form.approvalNumber" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*申请人</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="applicant">
|
|
|
+ <el-input v-model="form.applicant" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*身份证号</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="identityCard">
|
|
|
+ <el-select
|
|
|
+ v-model="form.identityCard"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ placeholder=""
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ @change="identityCardChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in idNumberOption"
|
|
|
+ :key="item.value"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*退房原因</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="reason">
|
|
|
+ <el-select
|
|
|
+ v-model="form.reason"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ placeholder=""
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dc_data.CHECK_OUT_REASON"
|
|
|
+ :key="item.value"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*所退房屋</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="houseId">
|
|
|
+ <el-select
|
|
|
+ v-model="form.houseId"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ placeholder=""
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ @change="houseChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in houseOption"
|
|
|
+ :key="item.value"
|
|
|
+ popper-class="statistic_base"
|
|
|
+ :popper-append-to-body="false"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*买受人</span></el-col>
|
|
|
+ <el-col :span="21" class="col-input">
|
|
|
+ <el-form-item prop="buyerName">
|
|
|
+ <el-input v-model="form.buyerName" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="handle-box">
|
|
|
+ <el-col :span="24">
|
|
|
+ <span>
|
|
|
+ 该房屋及买受人关联的款项如下,请选择需要退款的款项:
|
|
|
+ </span>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="handle-box">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-table
|
|
|
+ ref="eltable"
|
|
|
+ v-loading="loading"
|
|
|
+ :data="AllData"
|
|
|
+ row-class-name="g_table_row"
|
|
|
+ stripe
|
|
|
+ border
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55" :selectable="selectEnable" />
|
|
|
+ <el-table-column type="index" width="60" label="序号" />
|
|
|
+ <el-table-column label="款项" prop="type" />
|
|
|
+ <el-table-column label="已收(元)" prop="receivedAmount" width="200" />
|
|
|
+ <el-table-column label="扣除" prop="deductible">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item :prop="`${scope.$index}.deductible`">
|
|
|
+ <el-input
|
|
|
+ v-model="scope.row.deductible"
|
|
|
+ type="number"
|
|
|
+ :disabled="!scope.row.isSelected"
|
|
|
+ @input="bigorsmall($event,scope.$index)"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="实退(元)" prop="actualRefundAmount" />
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="handle-box" style="margin-top: 10px">
|
|
|
+ <el-col :span="3" class="col-txt"><span>*应退金额(元)</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="refundAmount">
|
|
|
+ <el-input v-model="form.refundAmount" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*扣除金额(元)</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="deductible">
|
|
|
+ <el-input v-model="form.deductible" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row class="handle-box">
|
|
|
+ <el-col :span="3" class="col-txt"><span>*实退金额(元)</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="actualRefundAmount">
|
|
|
+ <el-input v-model="form.actualRefundAmount" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3" class="col-txt"><span>*收款账号</span></el-col>
|
|
|
+ <el-col :span="9" class="col-input">
|
|
|
+ <el-form-item prop="bankNumber">
|
|
|
+ <el-input v-model="form.bankNumber" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>备注</span></el-col>
|
|
|
+ <el-col :span="21" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input v-model="form.remark" type="textarea" :autosize="{ minRows: 2, maxRows: 100}" placeholder="请输入内容" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>缴费凭证</span></el-col>
|
|
|
+ <el-col :span="15" class="col-input">
|
|
|
+ <el-form-item>
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ action="/server/wx/fileController/uploadImage"
|
|
|
+ :http-request="uploadPhoto"
|
|
|
+ :before-remove="beforeRemove"
|
|
|
+ multiple
|
|
|
+ :file-list="fileList"
|
|
|
+ >
|
|
|
+ <el-button v-if="!isView" size="small" type="primary">点击上传</el-button>
|
|
|
+ <div slot="file" slot-scope="{file}" style="overflow:hidden;white-space: nowrap;text-overflow:ellipsis">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="file.name" placement="top-start">
|
|
|
+ <a :href="file.url">{{ file.name }}</a>
|
|
|
+ </el-tooltip>
|
|
|
+ <span class="el-upload-list__item-actions">
|
|
|
+ <i class="el-icon-delete" @click="handlePictureRemove(file,fileList)" />
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>经办时间</span></el-col>
|
|
|
+ <el-col :span="3" class="col-input"><span>{{ dateStr }}</span></el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3" class="col-txt"><span>经办人</span></el-col>
|
|
|
+ <el-col :span="3" class="col-input"><span>{{ username }}</span></el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div style="text-align: right">
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ <el-button v-if="!isView" type="primary" @click="confirmSubmit">确 定</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import Base from '@/views/base/base'
|
|
|
+import BaseData from '@/views/base/baseData'
|
|
|
+import { upload } from '@/static/utils/channel'
|
|
|
+const form = {
|
|
|
+ houseId: null,
|
|
|
+ buyerName: null,
|
|
|
+ refundAmount: null,
|
|
|
+ deductible: null,
|
|
|
+ actualRefundAmount: null
|
|
|
+}
|
|
|
+export default {
|
|
|
+ name: 'PaymentRegistration',
|
|
|
+ components: { },
|
|
|
+ mixins: [Base, BaseData],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ dc_key: ['CHECK_OUT_REASON'],
|
|
|
+ form: { ...form },
|
|
|
+ rules: {
|
|
|
+ approvalNumber: [{ required: true, message: '请输入关联审批单号', trigger: 'blur' }],
|
|
|
+ applicant: [{ required: true, message: '请输入申请人', trigger: 'blur' }],
|
|
|
+ identityCard: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
|
|
|
+ reason: [{ required: true, message: '请选择退房原因', trigger: 'change' }],
|
|
|
+ houseId: [{ required: true, message: '请选择所退房屋', trigger: 'change' }],
|
|
|
+ buyerName: [{ required: true, message: '请输入买受人', trigger: 'blur' }],
|
|
|
+ refundAmount: [{ required: true, message: '请输入应退金额', trigger: 'blur' }],
|
|
|
+ deductible: [{ required: true, message: '请输入扣除金额', trigger: 'blur' }],
|
|
|
+ actualRefundAmount: [{ required: true, message: '请输入实退金额', trigger: 'blur' }],
|
|
|
+ bankNumber: [{ required: true, message: '请输入收款账号', trigger: 'blur' }]
|
|
|
+ },
|
|
|
+ AllData: [],
|
|
|
+ loading: false,
|
|
|
+ dialogVisible: false,
|
|
|
+ contractId: '',
|
|
|
+ isView: false,
|
|
|
+ houseOption: [],
|
|
|
+ idNumberOption: [],
|
|
|
+ fileList: [],
|
|
|
+ dateStr: '',
|
|
|
+ username: '',
|
|
|
+ paymentOptions: [],
|
|
|
+ url: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ const myDate = new Date()
|
|
|
+ const dateStr = myDate.getFullYear() + '-' + (myDate.getMonth() + 1) + '-' + myDate.getDate()
|
|
|
+ const username = this.$common.currUser().username
|
|
|
+ this.dateStr = dateStr
|
|
|
+ this.username = username
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initData(data) {
|
|
|
+ this.url = 'add'
|
|
|
+ this.isView = data.isView
|
|
|
+ // this.contractId = data.contractId
|
|
|
+ this.initDict(this.dc_key).then(res => {
|
|
|
+ this.getIdentityCardList()
|
|
|
+ if (data.id) {
|
|
|
+ this.url = 'edit'
|
|
|
+ this.getById(data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getById(data) {
|
|
|
+ const postData = {
|
|
|
+ id: data.id
|
|
|
+ }
|
|
|
+ this.baseRequest('getById', postData).then((res) => {
|
|
|
+ if (res.data) {
|
|
|
+ this.form = res.data
|
|
|
+ if (this.form.fileList) {
|
|
|
+ this.fileList = JSON.parse(this.form.fileList)
|
|
|
+ }
|
|
|
+ if (this.form.reason) {
|
|
|
+ this.form.reason = this.form.reason + ''
|
|
|
+ }
|
|
|
+ this.dateStr = this.form.createdAt
|
|
|
+ this.username = this.form.createdName
|
|
|
+ this.getHouseList()
|
|
|
+ this.getPaymentListById()
|
|
|
+ }
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getIdentityCardList() {
|
|
|
+ const _this = this
|
|
|
+ _this.idNumberOption = []
|
|
|
+ this.baseBuyerRequest('numberList').then((res) => {
|
|
|
+ if (res.data) {
|
|
|
+ res.data.forEach(item => {
|
|
|
+ const obj = {
|
|
|
+ label: item,
|
|
|
+ value: item
|
|
|
+ }
|
|
|
+ _this.idNumberOption.push(obj)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ identityCardChange() {
|
|
|
+ const _this = this
|
|
|
+ _this.houseOption = []
|
|
|
+ _this.form.houseId = ''
|
|
|
+ _this.form.contractId = ''
|
|
|
+ _this.form.customerManagementId = ''
|
|
|
+ _this.form.buyerName = ''
|
|
|
+ _this.getHouseList()
|
|
|
+ },
|
|
|
+ getHouseList() {
|
|
|
+ const _this = this
|
|
|
+ const postData = {
|
|
|
+ identityCard: this.form.identityCard
|
|
|
+ }
|
|
|
+ this.baseRequest('getHouseListByIdCard', postData).then((res) => {
|
|
|
+ if (res.data) {
|
|
|
+ res.data.forEach(item => {
|
|
|
+ const obj = {
|
|
|
+ label: item.groupName + '-' + item.discName + '-' + item.buildName + '-' + item.roomNo,
|
|
|
+ value: item.id,
|
|
|
+ customerManagementId: item.customerManagementId,
|
|
|
+ contractId: item.contractId
|
|
|
+ }
|
|
|
+ _this.houseOption.push(obj)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ _this.loading = false
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ houseChange(val) {
|
|
|
+ const obj = this.houseOption.find(x => x.value === val)
|
|
|
+ if (obj) {
|
|
|
+ this.form.customerManagementId = obj.customerManagementId
|
|
|
+ this.form.contractId = obj.contractId
|
|
|
+ } else {
|
|
|
+ this.form.customerManagementId = ''
|
|
|
+ this.form.contractId = ''
|
|
|
+ }
|
|
|
+ this.getBuyerName()
|
|
|
+ this.getPaymentList()
|
|
|
+ },
|
|
|
+ getBuyerName() {
|
|
|
+ const postData = {
|
|
|
+ id: this.form.customerManagementId
|
|
|
+ }
|
|
|
+ this.baseCustomerManagementRequest('getById', postData).then((res) => {
|
|
|
+ if (res.data) {
|
|
|
+ this.form.buyerName = res.data.buyerName
|
|
|
+ }
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getPaymentList() {
|
|
|
+ const _this = this
|
|
|
+ _this.AllData = []
|
|
|
+ _this.loading = true
|
|
|
+ const postData = {
|
|
|
+ customerManagementId: this.form.customerManagementId,
|
|
|
+ houseId: this.form.houseId
|
|
|
+ }
|
|
|
+ this.baseDetailRequest('getByCustomerManagementId', postData).then((res) => {
|
|
|
+ if (res.data) {
|
|
|
+ res.data.forEach(item => {
|
|
|
+ const json = _this.getItemJson(item)
|
|
|
+ _this.AllData.push(json)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ _this.loading = false
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 回显
|
|
|
+ getPaymentListById() {
|
|
|
+ const _this = this
|
|
|
+ _this.AllData = []
|
|
|
+ _this.loading = true
|
|
|
+ const postData = {
|
|
|
+ refundManageId: this.form.id
|
|
|
+ }
|
|
|
+ this.baseDetailRequest('listAll', postData).then((res) => {
|
|
|
+ if (res.data) {
|
|
|
+ res.data.forEach(item => {
|
|
|
+ const json = _this.getItemJson(item)
|
|
|
+ _this.AllData.push(json)
|
|
|
+ })
|
|
|
+ // 回显
|
|
|
+ _this.paymentOptions = res.data
|
|
|
+ _this.paymentOptions.forEach(element => {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.eltable.toggleRowSelection(element, true)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ _this.loading = false
|
|
|
+ }).catch((e) => {
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getItemJson: function(item) {
|
|
|
+ item.isSelected = false
|
|
|
+ return item
|
|
|
+ },
|
|
|
+ selectEnable() {
|
|
|
+ if (!this.isView) {
|
|
|
+ // 启用选择
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ // 禁用选择
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ confirmSubmit() {
|
|
|
+ const _this = this
|
|
|
+ this.$refs.form.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ const extraData = {
|
|
|
+ // 退款详情
|
|
|
+ refundDetailInfoStr: JSON.stringify(_this.paymentOptions),
|
|
|
+ fileList: JSON.stringify(_this.fileList)
|
|
|
+ }
|
|
|
+ const postData = Object.assign({}, _this.form, extraData)
|
|
|
+ this.baseRequest(this.url, postData).then(res => {
|
|
|
+ const data = res.data
|
|
|
+ if (data.code == 200) {
|
|
|
+ this.$notify({
|
|
|
+ title: '处理成功',
|
|
|
+ type: 'info'
|
|
|
+ })
|
|
|
+ this.cancel()
|
|
|
+ } else {
|
|
|
+ this.$notify({
|
|
|
+ title: res.data.msg,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }).catch((err) => {
|
|
|
+ this.$message({
|
|
|
+ message: err,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ cancel() {
|
|
|
+ this.$emit('cancel')
|
|
|
+ },
|
|
|
+ uploadPhoto: function(param) {
|
|
|
+ upload(param, true).then((res) => {
|
|
|
+ this.fileList.push(res)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ bigorsmall(event, index) {
|
|
|
+ const _this = this
|
|
|
+ if (event.length === 0) {
|
|
|
+ _this.AllData[index].deductible = 0
|
|
|
+ }
|
|
|
+ // 扣除大于收款
|
|
|
+ if (event > this.AllData[index].receivedAmount) {
|
|
|
+ _this.AllData[index].deductible = 0
|
|
|
+ _this.AllData[index].actualRefundAmount = 0
|
|
|
+ } else {
|
|
|
+ const receivedAmount = this.AllData[index].receivedAmount
|
|
|
+ const actualRefundAmount = receivedAmount - event
|
|
|
+ _this.AllData[index].actualRefundAmount = actualRefundAmount
|
|
|
+ }
|
|
|
+ this.$refs.eltable.doLayout()
|
|
|
+ // 计算总扣除金额 总实退金额
|
|
|
+ let totalDeductible = 0
|
|
|
+ let totalActualRefundAmount = 0
|
|
|
+ _this.AllData.forEach((item) => {
|
|
|
+ totalDeductible += Number(item.deductible)
|
|
|
+ totalActualRefundAmount += Number(item.actualRefundAmount)
|
|
|
+ })
|
|
|
+ _this.form.deductible = totalDeductible
|
|
|
+ _this.form.actualRefundAmount = totalActualRefundAmount
|
|
|
+ },
|
|
|
+ handleSelectionChange(val) {
|
|
|
+ const _this = this
|
|
|
+ _this.paymentOptions = []
|
|
|
+ _this.multipleSelection = val
|
|
|
+ _this.paymentOptions = this.multipleSelection
|
|
|
+ const selectedID = val.map((e) => {
|
|
|
+ return e.uuid
|
|
|
+ })
|
|
|
+ // 应退金额
|
|
|
+ let totalReceivedAmount = 0
|
|
|
+ _this.AllData.forEach((item) => {
|
|
|
+ const index = selectedID.findIndex(e => e === item.uuid)
|
|
|
+ item.isSelected = index !== -1
|
|
|
+ if (index !== -1) {
|
|
|
+ totalReceivedAmount += Number(item.receivedAmount)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ _this.form.refundAmount = totalReceivedAmount
|
|
|
+ },
|
|
|
+ baseRequest(opUrl, postData) {
|
|
|
+ return this.$channel.globeRequest('RefundManageController', opUrl, postData, 'project')
|
|
|
+ },
|
|
|
+ baseCustomerManagementRequest(opUrl, postData) {
|
|
|
+ return this.$channel.globeRequest('CustomerManagementController', opUrl, postData, 'project')
|
|
|
+ },
|
|
|
+ baseBuyerRequest(opUrl, postData) {
|
|
|
+ return this.$channel.globeRequest('BuyerController', opUrl, postData, 'project')
|
|
|
+ },
|
|
|
+ baseDetailRequest(opUrl, postData) {
|
|
|
+ return this.$channel.globeRequest('RefundDetailController', opUrl, postData, 'project')
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|