add.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div>
  3. <el-button size="mini" type="primary" :disabled="disabled" @click="onShow" style="margin-bottom:16px">新 建</el-button>
  4. <el-drawer
  5. title="新建线索"
  6. :visible.sync="drawer"
  7. size="800px"
  8. direction="rtl"
  9. append-to-body>
  10. <div class="drawer__panel">
  11. <el-form :model="form" :rules="rule" ref="form" label-position="right" label-width="80px" size="small">
  12. <el-form-item label="企业名称" prop="enterprisename">
  13. <el-input v-model="form.enterprisename" autocomplete="off" placeholder="输入企业名称"></el-input>
  14. </el-form-item>
  15. <el-form-item label="联系人">
  16. <el-input v-model="form.name" autocomplete="off" placeholder="请输入联系人"></el-input>
  17. </el-form-item>
  18. <el-form-item label="手机号" prop="phonenumber">
  19. <el-input v-model="form.phonenumber" autocomplete="off" placeholder="输入手机号"></el-input>
  20. </el-form-item>
  21. <el-form-item label="省市县" prop="province">
  22. <el-cascader
  23. style="width:100%"
  24. class="width-240"
  25. v-model="form.province"
  26. :options="basicData.data().areaData"
  27. @change="cascaderChange">
  28. </el-cascader>
  29. </el-form-item>
  30. <el-form-item label="地址" prop="address">
  31. <el-input v-model="form.address" autocomplete="off" placeholder="输入地址"></el-input>
  32. </el-form-item>
  33. <el-form-item label="市场活动" prop="campaignName">
  34. <el-input v-model="form.campaignName" autocomplete="off" placeholder="输入地址"></el-input>
  35. </el-form-item>
  36. <el-form-item label="来源" prop="cluesource">
  37. <el-input v-model="form.cluesource" autocomplete="off" placeholder="输入来源"></el-input>
  38. </el-form-item>
  39. <el-form-item label="备注">
  40. <el-input v-model="form.notes" type="textarea" :rows="4" autocomplete="off" placeholder="输入备注"></el-input>
  41. </el-form-item>
  42. </el-form>
  43. </div>
  44. <div class="fixed__btn__panel">
  45. <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
  46. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
  47. </div>
  48. </el-drawer>
  49. </div>
  50. </template>
  51. <script>
  52. export default {
  53. props:['data','type','disabled'],
  54. data () {
  55. return {
  56. drawer:false,
  57. rule:{
  58. phonenumber:[
  59. { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' },
  60. { required: true, message: '请输入手机号', trigger: 'blur' }
  61. ],
  62. province:[{ required: true, message: '请选择', trigger: 'blur' }],
  63. },
  64. form:{
  65. "sat_orderclueuploadbillmxid": 0,
  66. "sat_orderclueuploadbillid": this.$route.query.id,
  67. "name":'',
  68. "enterprisename":'',
  69. "notes":'',
  70. "phonenumber":'',
  71. "address":'',
  72. "cluesource":'',
  73. "province":''
  74. },
  75. arealist:[],
  76. options:[]
  77. }
  78. },
  79. methods:{
  80. onShow () {
  81. this.drawer = true
  82. },
  83. onSubmit () {
  84. this.$refs['form'].validate(async (valid) => {
  85. if (!valid) return false;
  86. this.form.city = this.form.province[1]
  87. this.form.county = this.form.province[2]
  88. this.form.province = this.form.province[0]
  89. const res = await this.$api.requested({
  90. "classname":"webmanage.saletool.orderclue.orderclue",
  91. "method": "insertormodify_Orderclueuploadbillmx",
  92. "content":this.form
  93. })
  94. this.tool.showMessage(res,()=>{
  95. this.drawer = false
  96. this.$refs.form.resetFields()
  97. this.$emit('onSuccess')
  98. })
  99. });
  100. },
  101. cascaderChange (val) {
  102. this.form.province = val
  103. }
  104. }
  105. }
  106. </script>
  107. <style scoped>
  108. .dialog-footer{
  109. margin-top:32px;
  110. text-align: center;
  111. }
  112. </style>