payment.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <el-row>
  2. <el-col :span="24">
  3. <div class="form-body">
  4. <el-form :model="paymentForm" ref="paymentForm" label-width="172px" style="position: relative" size="small" :rules="paymentRules">
  5. <div class="title">
  6. <span>门店支付设置</span>
  7. </div>
  8. <el-form-item label="支付方式" prop="payment_is_enable">
  9. <template>
  10. <el-radio v-model="paymentForm.payment_is_enable" :label="0">关闭</el-radio>
  11. <el-radio v-model="paymentForm.payment_is_enable" :label="1">开启</el-radio><br />
  12. <p class="tips-text" style="width:600px;">开启后,可基于系统已开启的支付方式中独立设置门店可使用的支付方式</p>
  13. </template>
  14. <template v-if="paymentForm.payment_is_enable == 1">
  15. <el-col :span="24">
  16. <el-checkbox-group v-model="paymentForm.payment_type">
  17. <template v-for="(value, key) in paymentForm.payment_way" >
  18. <el-checkbox v-if="value.pay_type==12" :disabled="paymentForm.score_deduction.is_score_deduction==1" :key="key"
  19. :label="value.pay_type">{{value.name}}</el-checkbox>
  20. <el-checkbox v-else :key="key"
  21. :label="value.pay_type">{{value.name}}</el-checkbox>
  22. </template>
  23. </el-checkbox-group>
  24. </el-col>
  25. </template>
  26. </el-form-item>
  27. <el-form-item label="设置开启:" style="margin-top: 10px;">
  28. <template>
  29. <el-radio v-model="paymentForm.score_open_type" :label="2" @input="changeScoreOpenType">积分抵扣</el-radio>
  30. <el-radio v-model="paymentForm.score_open_type" :label="1" @input="changeScoreOpenType">积分支付</el-radio>
  31. </template>
  32. </el-form-item>
  33. <!-- 积分支付设置 -->
  34. <template v-if="paymentForm.score_open_type==1">
  35. <div class="title">
  36. <span>积分支付设置</span>
  37. </div>
  38. <el-form-item label="独立设置">
  39. <el-switch v-model="paymentForm.score_pay_setting" :active-value="1" :inactive-value="0" @change="changeScorePaySetting"></el-switch>
  40. <p class="tips-text" style="width:600px;">开启后,可独立设置门店是否开启积分支付</p>
  41. </el-form-item>
  42. <el-form-item label="积分支付">
  43. <el-switch v-model="paymentForm.score_pay" :active-value="1" :inactive-value="0" @change="changeScorePay"></el-switch>
  44. <p class="tips-text" style="width:600px;">注意:开启积分支付需要继续与人民币兑换比例为1:1</p>
  45. </el-form-item>
  46. <el-form-item label="启用支付密码">
  47. <el-switch v-model="paymentForm.score_pay_password_status" :active-value="1" :inactive-value="0"></el-switch>
  48. </el-form-item>
  49. </template>
  50. <!-- 积分抵扣设置 -->
  51. <template v-if="paymentForm.score_open_type==2">
  52. <div class="title">
  53. <span>积分抵扣设置</span>
  54. </div>
  55. <el-form-item label="积分抵扣:" style="margin-top: 10px;">
  56. <el-switch v-model="paymentForm.score_deduction.is_score_deduction" :active-value="1"
  57. :inactive-value="0" @change="changeScoreDeductionStatus"></el-switch>
  58. </el-form-item>
  59. <template v-if="paymentForm.score_deduction.is_score_deduction==1">
  60. <el-form-item label="积分抵扣生效对象:" style="margin-top: 10px;">
  61. <template>
  62. <el-radio v-model="paymentForm.score_deduction.effective" :label="1">全部</el-radio>
  63. <el-radio v-model="paymentForm.score_deduction.effective" :label="2">收银台订单</el-radio>
  64. <el-radio v-model="paymentForm.score_deduction.effective" :label="3">非收银台订单</el-radio>
  65. </template>
  66. </el-form-item>
  67. <el-form-item label="积分获得对象" v-if="paymentForm.score_deduction.is_score_deduction==1">
  68. <el-radio-group v-model="paymentForm.score_deduction.bear">
  69. <el-radio :label="0">平台</el-radio>
  70. <el-radio :label="1">门店</el-radio>
  71. </el-radio-group>
  72. </el-form-item>
  73. <el-form-item label="积分转换比例" prop="score_deduction.score_balance_ratio">
  74. <el-input v-model="paymentForm.score_deduction.score_balance_ratio" oninput="value=value.replace(/[^\d]/g,'')" ></el-input>
  75. <div class="tips-text">N积分抵1元</div>
  76. </el-form-item>
  77. <el-form-item label="积分抵扣类型" required>
  78. <el-radio-group v-model="paymentForm.score_deduction.deduction_type">
  79. <el-radio :label="0">默认</el-radio>
  80. <el-radio :label="1">最高抵扣比例</el-radio>
  81. </el-radio-group>
  82. </el-form-item>
  83. <el-form-item label="积分抵扣比例:" v-if="paymentForm.score_deduction.deduction_type == 0">
  84. <div style="display:flex;align-items: flex-end;">
  85. <div>
  86. <div v-for="(item,index) in paymentForm.score_deduction.deduction_proportion" :key='index' class="deduction-list" >
  87. <div class="deduction-list">
  88. 消费在
  89. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.min'" :rules="paymentRules.deduction_min">
  90. <el-input :min="0" class="member-money" v-model="item.min" placeholder="" onInput="value=toNumber(value,2)"
  91. style="width: 150px">
  92. <template slot="append">元</template>
  93. </el-input>
  94. </el-form-item>
  95. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.max'" :rules="paymentRules.deduction_max">
  96. <el-input :min="0" :max="100" class="member-money" v-model="item.max" placeholder="" onInput="value=toNumber(value,2)"
  97. style="width: 150px;">
  98. <template slot="append">元</template>
  99. </el-input>
  100. </el-form-item>
  101. 之间,可以用积分抵扣
  102. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.deduction_ratio'" :rules="paymentRules.deduction_ratio">
  103. <el-input type="number" :min="0" :max="100" class="member-money" v-model="item.deduction_ratio" onInput="value=toNumber(value,2)"
  104. placeholder="" style="width: 150px;">
  105. <template slot="append">%</template>
  106. </el-input>
  107. </el-form-item>
  108. </div>
  109. </div>
  110. </div>
  111. <div style="display:flex;" :class="(paymentForm.score_deduction.deduction_proportion && paymentForm.score_deduction.deduction_proportion.length) && 'form-bottom' ">
  112. <el-button
  113. style="margin-left: 10px;height:32px;" type="danger" size="small" @click="deleteItem" v-if="paymentForm.score_deduction.deduction_proportion && paymentForm.score_deduction.deduction_proportion.length">删除区间
  114. </el-button>
  115. <el-button
  116. :disabled="isAddDeduction"
  117. v-if="paymentForm.score_deduction.deduction_proportion && paymentForm.score_deduction.deduction_proportion.length<3"
  118. style="margin-left: 10px;height:32px;" type="primary" size="small" @click="addItem">添加区间
  119. </el-button>
  120. </div>
  121. </div>
  122. <div class="tips-text">例如:实际支付在200-300区间,则可以用积分抵扣10%(不考虑运费)</div>
  123. </el-form-item>
  124. <el-form-item label="最高抵扣比例" v-if="paymentForm.score_deduction.deduction_type == 1" required>
  125. <el-input size="small" v-model="paymentForm.score_deduction.max_deduction_percent"><template slot="append">%</template></el-input>
  126. <div class="tips-text">最高抵扣金额:订单金额*N% (订单金额:优惠后价格,不包含运费),收银台:输入金额*N%</div>
  127. </el-form-item>
  128. <el-form-item label="门店限制">
  129. <el-col :span="24">
  130. <el-radio-group v-model="paymentForm.score_deduction.store_limit_type">
  131. <el-radio :label="0">全部门店</el-radio>
  132. <el-radio :label="1">指定门店</el-radio>
  133. </el-radio-group>
  134. <div class="tips-text" v-if="paymentForm.score_deduction.store_limit_type == 1">指定门店可享有积分抵扣权限</div>
  135. <store-list-view ref="storeListRef" v-model="paymentForm.score_deduction.store_limit_stores" :search-store="true" @change="handleStoreLimitChange" style="max-width: 750px;" v-if="paymentForm.score_deduction.store_limit_type == 1" key="payment">
  136. <template slot="addon-field" v-if="paymentForm.score_deduction.deduction_type == 1">
  137. <el-table-column label="最高抵扣比例" width="200" align="center">
  138. <template slot-scope="scope">
  139. <el-input size="small" type="number" min="0" v-model="paymentForm.score_deduction.store_limit_stores_deduction[scope.row.id]" placeholder="留空使用默认"><template slot="append">%</template></el-input>
  140. </template>
  141. </el-table-column>
  142. </template>
  143. <template slot="header-button" v-if="paymentForm.score_deduction.deduction_type == 1">
  144. <store-score-apply :score-method="2" @close="handleScoreDeductionApplyClose"><el-button size="mini" type="primary" class="header-button">审核</el-button></store-score-apply>
  145. <store-score-protocol v-model="paymentForm.store_limit_protocol"><el-button size="mini" type="primary" class="header-button">协议</el-button></store-score-protocol>
  146. <el-input v-model="batch_deduction" type="number" min="0" class="batch-deduction" placeholder="最高抵扣比例"><template slot="append">%</template></el-input>
  147. <el-button size="small" type="primary" @click="batchSetMaxDeduction">批量设置</el-button>
  148. </template>
  149. </store-list-view>
  150. </el-col>
  151. </el-form-item>
  152. </template>
  153. </template>
  154. <div class="title">
  155. <span>订单支付成功后跳转</span>
  156. </div>
  157. <el-form-item label-width="180px" label="订单支付成功后跳转">
  158. <el-col :span="24">
  159. <el-col :span="16">
  160. <el-input v-model="pay_after_link_show" :disabled="true"></el-input>
  161. <!-- <el-input style="display: none;" v-model="paymentForm.pay_after_link"></el-input> -->
  162. </el-col>
  163. <el-col :span="8">
  164. <com-pick-link @selected="selectUrl"
  165. :default-tabs="defaultTabs"><el-button>选择链接</el-button></com-pick-link>
  166. </el-col>
  167. </el-col>
  168. <div class="tips-text">订单支付成功后跳转的页面</div>
  169. </el-form-item>
  170. </el-form>
  171. </div>
  172. </el-col>
  173. </el-row>
  174. <el-button :loading="submitLoading" class="button-item" size="small" type="primary"
  175. @click="submit('paymentForm')">保存</el-button>