subMerchantForm.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <template>
  2. <div>
  3. <div class="sty">
  4. <el-page-header :content="title" @back="goBack" />
  5. </div>
  6. <el-form ref="formData" :model="formData" label-width="120px" :inline="false" size="mini" label-position="left">
  7. <el-card>
  8. <div slot="header" class="clearfix">
  9. <strong>客户信息</strong>
  10. </div>
  11. <el-row :gutter="20">
  12. <el-col :span="8">
  13. <el-form-item label="上级商户编码" prop="higherPrantNumber">
  14. <el-input v-model="formData.higherPrantNumber" placeholder="请输入上级商户编码" />
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="8">
  18. <el-form-item label="上级商户信息" prop="higherPrantName">
  19. <el-input v-model="formData.higherPrantName" placeholder="请输入上级商户信息" />
  20. </el-form-item>
  21. </el-col>
  22. <el-col :span="8">
  23. <el-form-item label="商户编码">
  24. <el-input v-model="formData.number" disabled placeholder="创建自动生成(仅显示不能编辑)" />
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="8">
  28. <el-form-item label="商户名称" prop="name">
  29. <el-input v-model="formData.name" placeholder="请输入客户信息" />
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="8">
  33. <el-form-item label="负责人" prop="chargeName">
  34. <el-input v-model="formData.chargeName" placeholder="请输入负责人姓名" />
  35. </el-form-item>
  36. </el-col>
  37. <el-col :span="8">
  38. <el-form-item label="联系电话" prop="mobile">
  39. <el-input v-model="formData.mobile" placeholder="请输入联系电话" />
  40. </el-form-item>
  41. </el-col>
  42. <el-col :span="8">
  43. <el-form-item label="地址" prop="invoiceAddress">
  44. <el-input v-model="formData.invoiceAddress" placeholder="请输入地址" />
  45. </el-form-item>
  46. </el-col>
  47. </el-row>
  48. </el-card>
  49. <el-card>
  50. <div slot="header" class="clearfix">
  51. <strong>售后系统关联信息</strong>
  52. </div>
  53. <el-row :gutter="20" class="center">
  54. <el-col :span="4">售后系统销售编号</el-col>
  55. <el-col :span="4">
  56. <el-form-item label-width="0" prop="afterNumber" style="margin: 0">
  57. <el-input
  58. v-model="formData.afterNumber"
  59. placeholder="请输入售后系统销售编号"
  60. size="mini"
  61. :disabled="moduleType == 3"
  62. />
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="4">售后系统绑定状态</el-col>
  66. <el-col :span="4">{{ formData.binding === 'YES' ? '是' : '否' }}</el-col>
  67. <el-col v-if="moduleType !== 3 && moduleType !== 1" :span="4">
  68. <el-button type="primary" size="mini" @click="handleBinding">绑定</el-button>
  69. </el-col>
  70. </el-row>
  71. <el-row class="radio center">
  72. <el-col :span="8">
  73. <el-form-item label-width="0" prop="afterType" style="margin: 0">
  74. <el-radio-group v-model="formData.afterType" :disabled="moduleType == 3">
  75. <el-radio v-for="item in afterTypeList" :key="item.value" :label="item.value">{{
  76. item.label
  77. }}</el-radio>
  78. </el-radio-group>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="2">绑定时间</el-col>
  82. <el-col :span="4">{{ formData.bindingTime }}</el-col>
  83. <el-col :span="2">绑定人</el-col>
  84. <el-col :span="4">{{ formData.bindingName }}</el-col>
  85. </el-row>
  86. </el-card>
  87. <el-card>
  88. <div slot="header" class="clearfix">
  89. <strong>使用状态</strong>
  90. </div>
  91. <el-form-item label-width="0" prop="forbidStatus" style="margin: 0">
  92. <el-radio-group v-model="formData.forbidStatus" :disabled="moduleType == 3">
  93. <el-radio label="A">正常</el-radio>
  94. <el-radio label="B">禁用</el-radio>
  95. </el-radio-group>
  96. </el-form-item>
  97. <div v-if="moduleType !== 3" style="margin: 20px">
  98. <el-button type="primary" size="mini" @click="handleSubmit">提交</el-button>
  99. <el-button type="primary" size="mini" @click="handleReset">重置</el-button>
  100. </div>
  101. </el-card>
  102. <el-card v-if="moduleType == 3">
  103. <div slot="header" class="clearfix">
  104. <strong>审核信息</strong>
  105. </div>
  106. <el-row :gutter="20">
  107. <el-col :span="8">
  108. <el-form-item label="审核人"> <el-input v-model="formData.approvalName" placeholder="系统自动生成" disabled /> </el-form-item></el-col>
  109. <el-col :span="8">
  110. <el-form-item label="审核时间"> <el-input v-model="formData.approvalTime" placeholder="系统自动生成" disabled /> </el-form-item></el-col>
  111. <el-col :span="24">
  112. <el-form-item label="备注"> <el-input v-model="formData.approvalRemark" placeholder="请输入备注" /> </el-form-item></el-col>
  113. </el-row>
  114. <div style="margin: 20px">
  115. <el-button type="primary" size="mini" @click="handleExamine">提交</el-button>
  116. <el-button type="primary" size="mini" @click="handleReset">重置</el-button>
  117. </div>
  118. </el-card>
  119. </el-form>
  120. </div>
  121. </template>
  122. <script>
  123. import {
  124. addStagecustomer,
  125. examineStagecustomer,
  126. updateStagecustomer,
  127. updateSystem,
  128. getStageCustomerDetail
  129. } from '@/api/basic_data/dealer'
  130. export default {
  131. props: {
  132. moduleType: {
  133. type: Number,
  134. default: null
  135. },
  136. detailsId: {
  137. type: String,
  138. default: null
  139. }
  140. },
  141. data() {
  142. return {
  143. title: '新增',
  144. afterTypeList: [
  145. { label: '上级商户销售编号', value: 'CHARGE' },
  146. { label: '二级商户编号', value: 'STAGE' }
  147. ],
  148. formData: {
  149. higherPrantNumber: '',
  150. higherPrantName: '',
  151. number: '',
  152. name: '',
  153. chargeName: '',
  154. mobile: '',
  155. invoiceAddress: '',
  156. afterNumber: '',
  157. binding: '否',
  158. afterType: 'CHARGE',
  159. bindingTime: '',
  160. bindingName: '',
  161. forbidStatus: 'A',
  162. approvalName: '',
  163. approvalTime: '',
  164. approvalRemark: ''
  165. }
  166. }
  167. },
  168. mounted() {
  169. if ((this.moduleType === 3 || this.moduleType === 4) && this.detailsId) {
  170. this.title = this.moduleType === 3 ? '审核' : '编辑'
  171. this.getStageCustomerDetail()
  172. }
  173. },
  174. methods: {
  175. goBack() {
  176. this.$emit('close')
  177. },
  178. getStageCustomerDetail() {
  179. getStageCustomerDetail({ id: this.detailsId }).then(res => {
  180. this.formData = res.data
  181. })
  182. },
  183. handleSubmit() {
  184. if (this.moduleType !== 1) {
  185. updateStagecustomer({
  186. ...this.formData
  187. }).then(res => {
  188. this.$successMsg('编辑成功')
  189. })
  190. } else {
  191. addStagecustomer({
  192. ...this.formData
  193. }).then(res => {
  194. this.$successMsg('新增成功')
  195. })
  196. }
  197. this.$emit('close')
  198. },
  199. handleExamine() {
  200. examineStagecustomer({
  201. id: this.formData.id,
  202. examineStatus: 'OK',
  203. approvalRemark: this.formData.approvalRemark
  204. }).then(res => {
  205. console.log(res)
  206. this.$successMsg('审核成功')
  207. this.$emit('close')
  208. })
  209. },
  210. handleBinding() {
  211. updateSystem({
  212. id: this.detailsId,
  213. afterNumber: this.formData.afterNumber
  214. }).then(res => {
  215. getStageCustomerDetail({ id: this.detailsId }).then(res => {
  216. const { afterType, bindingTime, bindingName } = res.data
  217. this.formData.afterType = afterType
  218. this.formData.bindingTime = bindingTime
  219. this.formData.bindingName = bindingName
  220. this.$successMsg('绑定成功')
  221. })
  222. })
  223. },
  224. handleReset() {
  225. this.$refs.formData.resetFields()
  226. }
  227. }
  228. }
  229. </script>
  230. <style lang="scss" scoped>
  231. .sty {
  232. margin-bottom: 20px;
  233. }
  234. ::v-deep .el-card {
  235. margin-bottom: 20px;
  236. }
  237. .center {
  238. display: flex;
  239. align-items: center;
  240. }
  241. .radio {
  242. padding: 20px 0;
  243. }
  244. </style>