zhaoxiaoqiang1
2026-01-04 f1d30d03186c79ca2cbcfe60d6d2ce7d73fba97b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<template>
  <div class="refund" v-loading="loading" element-loading-background="transparent">
    <el-form :model="form" :rules="rules" ref="form" label-width="110px" inline size="small">
      <el-form-item label="申请编号">
        <el-input v-model="form.applyserialno" disabled></el-input>
      </el-form-item>
      <el-form-item label="产品名称">
        <el-input v-model="refunds.productName" disabled></el-input>
      </el-form-item>
      <el-form-item label="客户名称">
        <el-input v-model="refunds.customerName" disabled></el-input>
      </el-form-item>
      <el-form-item label="仍需结算支付差额">
        <el-input v-model="form.stillpaybalance" disabled></el-input>
      </el-form-item>
      <el-form-item label="退款金额">
        <el-input v-model="form.refundamt" disabled></el-input>
      </el-form-item>
      <el-form-item label="退款日期" prop="refunddate">
        <el-date-picker
          v-model="form.refunddate"
          type="date"
          format="yyyy/MM/dd"
          value-format="yyyy/MM/dd"
          size="small"
          placeholder="选择日期"
        ></el-date-picker>
      </el-form-item>
      <el-form-item label="线下退款账户类型" prop="settlebank">
        <el-select
          v-model="form.settlebank"
          value-key="itemno"
          clearable
          filterable
          placeholder="请选择"
          @change="selOfflinePutoutBank"
        >
          <el-option
            v-for="item in offlinePutoutBankList"
            :key="item.itemno"
            :label="item.itemname"
            :value="item"
          ></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="线下退款账号">
        <el-input v-model="form.settleacctno" disabled></el-input>
      </el-form-item>
      <el-form-item label="线下退款账户名称">
        <el-input v-model="form.settleacctsname" disabled></el-input>
      </el-form-item>
    </el-form>
    <div class="btn">
      <el-button size="medium" plain @click="cancel">取消</el-button>
      <el-button size="medium" type="primary" @click="confirm('form')">确认</el-button>
    </div>
  </div>
</template>
<script>
import {
  getDictionaryList,
  refundConfirm
} from '@comprehensive/serve/public'
export default {
  props: ['refunds'],
  data () {
    return {
      form:{},
      rules:{
        refunddate:[
          { required: true, message: '请输入退款日期', trigger: 'change' }
        ],
        settlebank:[
          { required: true, message: '请输入线下退款账户类型', trigger: 'blur' }
        ]
      },
      offlinePutoutBankList:[],
      loading:false,
    }
  },
  async created () {
    this.form.applyserialno = this.refunds.serialNo
    this.form.stillpaybalance = this.refunds.stillpaybalance
    this.form.refundamt = this.refunds.stillpaybalance
    this.offlinePutoutBankList = await this.qryDictionaryList('PutOutAccountType')
  },
  methods: {
    selOfflinePutoutBank(val){
      this.form.settlebankno = val.itemno
      this.form.settlebankname = val.itemname
      this.form.settleacctno = val.attribute1
      this.form.settleacctsname = val.attribute3
    },
    // 字典
    qryDictionaryList(code) {
      return new Promise(resolve => {
        getDictionaryList({
          codeNo: code
        }).then(res => {
          resolve(res.result);
        });
      });
    },
    cancel(){
      this.$emit('close',false)
    },
    confirm(formName){
      this.$refs[formName].validate( async valid=>{
        if(valid){
          this.loading = true
          const res = await refundConfirm(this.form)
          if(res.code == '00'){
            this.$message.success('退款确认成功')
            this.$emit('close',false)
          }
          this.loading = false
        }
      })
    }
  }
}
</script>
<style lang="stylus">
.refund
  .el-form
    display: flex
    justify-content: flex-start
    flex-wrap: wrap
    .el-form-item
      display: table
      width:50%
      box-sizing border-box
      padding-right 30px
      margin: 0 0 24px 0
      .el-form-item__label
        display: table-cell
        color: #888
        line-height 16px
      .el-form-item__content
        width 220px
        .el-date-editor
          width: auto
        .el-select
          display: block
  .btn
    margin-top 20px
    text-align center
    .el-button 
      width: 120px;
      font-size: 14px;
      line-height: 20px;
      padding: 5px 0;
</style>