edit.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <template>
  2. <div>
  3. <el-button size="mini" :type="btnType?btnType:'text'" @click="editBtn">编 辑</el-button>
  4. <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="60%">
  5. <div slot="title" style="font-size: 15px">
  6. 新增私域客户
  7. </div>
  8. <el-row :gutter="20">
  9. <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="left" size="mini">
  10. <el-col :span="12">
  11. <el-form-item label="客户名称" prop="enterprisename">
  12. <el-input v-model="form.enterprisename" placeholder="客户名称"></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="12">
  16. <el-form-item label="客户类型" prop="type">
  17. <el-select v-model="form.type" placeholder="请选择客户类型" size="small">
  18. <el-option
  19. v-for="item in customerType()"
  20. :key="item.value"
  21. :label="item.value"
  22. :value="item.value">
  23. </el-option>
  24. </el-select>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="12">
  28. <el-form-item label="客户来源" prop="source">
  29. <el-input v-model="form.source" placeholder="客户来源"></el-input>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="12">
  33. <el-form-item label="客户等级" prop="grade">
  34. <el-select v-model="form.grade" placeholder="请选择客户等级" size="small">
  35. <el-option
  36. v-for="item in customerLead()"
  37. :key="item.rowindex"
  38. :label="item.value"
  39. :value="item.rowindex">
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="12">
  45. <el-form-item label="详细地址" prop="address">
  46. <el-input v-model="form.address" placeholder="详细地址"></el-input>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="12">
  50. <el-form-item label="企业简称" prop="abbreviation">
  51. <el-input v-model="form.abbreviation" placeholder="企业简称"></el-input>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="12">
  55. <el-form-item label="税号" prop="taxno">
  56. <el-input v-model="form.taxno" placeholder="税号"></el-input>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="12">
  60. <el-form-item label="所属行业" prop="industry">
  61. <el-input v-model="form.industry" placeholder="所属行业"></el-input>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="12">
  65. <el-form-item label="联系人" prop="contact">
  66. <el-input v-model="form.contact" placeholder="联系人"></el-input>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="12">
  70. <el-form-item label="联系电话" prop="phonenumber">
  71. <el-input v-model="form.phonenumber" placeholder="联系电话"></el-input>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="12">
  75. <el-form-item label="省市县" prop="province">
  76. <el-cascader
  77. size="small"
  78. v-model="form.province"
  79. :options="arealist()"
  80. @change="cascaderChange"
  81. ref="cascader">
  82. </el-cascader>
  83. </el-form-item>
  84. </el-col>
  85. <el-col :span="12">
  86. <el-form-item label="公海池" prop="sa_customerpoolid">
  87. <el-select v-model="form.sa_customerpoolid" placeholder="请选择公海池" size="small">
  88. <el-option
  89. v-for="item in publicList()"
  90. :key="item.sa_customerpoolid"
  91. :label="item.poolname"
  92. :value="item.sa_customerpoolid">
  93. </el-option>
  94. </el-select>
  95. </el-form-item>
  96. </el-col>
  97. </el-form>
  98. </el-row>
  99. <div class="dialog-footer">
  100. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  101. <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
  102. </div>
  103. </el-dialog>
  104. </div>
  105. </template>
  106. <script>
  107. export default {
  108. name: "add",
  109. inject:['customerLead','customerType','arealist','publicList'],
  110. data(){
  111. return {
  112. dialogFormVisible:false,
  113. isordercheck:true,
  114. isusedcheck:false,
  115. form:{
  116. "sa_customersid": 0,//新增是传0
  117. "parentid": 0, //上级客户ID,默认或没有上级的时候传0
  118. "sys_enterpriseid": 0, //合作企业档案ID,新增是传0,更新
  119. "enterprisename":"",//客户名称(企业名称)
  120. "type": "", //客户类型
  121. "sa_customerpoolid": 0, //客户池(公海池)ID,默认或没有的时候传0
  122. "source": "", //客户来源
  123. "province":"",//非必填,可选
  124. "city":"",//非必填,可选
  125. "county":"",//非必填,可选
  126. "address":"",//非必填,可选
  127. "abbreviation":"",//非必填,可选
  128. "taxno":"",//税号,非必填,可选
  129. "grade":'',// 客户等级(商户等级)
  130. "industry":"",//非必填,可选,所属行业
  131. "contact":"",//非必填,可选
  132. "phonenumber":""//非必填,可选
  133. },
  134. rules:{
  135. enterprisename:[
  136. { required: true, message: '输入客户名称', trigger: 'blur'},
  137. ],
  138. type:[
  139. { required: true, message: '请选择客户类型', trigger: 'blur'}
  140. ],
  141. source:[
  142. { required: true, message: '请填写客户来源', trigger: 'blur'}
  143. ],
  144. grade:[
  145. { required: true, message: '请选择客户等级', trigger: 'blur'}
  146. ]
  147. }
  148. }
  149. },
  150. props:['data','btnType'],
  151. methods:{
  152. editBtn () {
  153. this.dialogFormVisible = true
  154. this.form = Object.assign({},this.form,this.data)
  155. },
  156. onSubmit(){
  157. this.$refs['form'].validate(async (valid) => {
  158. if (!valid) return false
  159. if (this.form.province) {
  160. this.form.city = this.form.province[1]
  161. this.form.county = this.form.province[2]
  162. this.form.province = this.form.province[0]
  163. }
  164. const res = await this.$api.requested({
  165. "id": "20221010164302",
  166. "version":1,
  167. "content": this.form
  168. })
  169. this.tool.showMessage(res,()=>{
  170. this.$emit('onSuccess')
  171. this.$refs['form'].resetFields();
  172. this.dialogFormVisible = false
  173. })
  174. })
  175. },
  176. cascaderChange() {
  177. }
  178. }
  179. }
  180. </script>
  181. <style scoped>
  182. /deep/.el-select,.el-cascader {
  183. width: 100%;
  184. }
  185. </style>