add.vue 7.3 KB

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