add.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <template>
  2. <div>
  3. <el-button size="mini" type="primary" @click="onShow">新 建</el-button>
  4. <el-drawer title="新建档案" direction="rtl" append-to-body :visible.sync="dialogFormVisible">
  5. <div class="drawer__panel">
  6. <el-row :gutter="20">
  7. <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="right" size="mini">
  8. <el-col :span="24">
  9. <el-form-item label="企业名称" prop="enterprisename">
  10. <el-input v-model="form.enterprisename" placeholder="输入企业名称"></el-input>
  11. </el-form-item>
  12. </el-col>
  13. <el-col :span="12">
  14. <el-form-item label="联系人" prop="contact">
  15. <el-input v-model="form.contact" placeholder="输入企业联系人"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :span="12">
  19. <el-form-item label="联系电话" prop="phonenumber">
  20. <el-input v-model="form.phonenumber" placeholder="输入联系电话"></el-input>
  21. </el-form-item>
  22. </el-col>
  23. <el-col :span="12">
  24. <el-form-item label="省市县" prop="value">
  25. <el-cascader
  26. style="width:100%"
  27. v-model="form.value"
  28. :options="basicData.data().areaData"
  29. @change="cascaderChange" clearable>
  30. </el-cascader>
  31. </el-form-item>
  32. </el-col>
  33. <el-col :span="12">
  34. <el-form-item label="税号" prop="taxno">
  35. <el-input v-model="form.taxno" placeholder="输入税号"></el-input>
  36. </el-form-item>
  37. </el-col>
  38. <el-col :span="12">
  39. <el-form-item label="企业等级">
  40. <el-select style="width:100%" v-model="form.grade" placeholder="请选择">
  41. <el-option
  42. v-for="item in agent_level"
  43. :key="item.value"
  44. :label="item.remarks"
  45. :value="item.value">
  46. </el-option>
  47. </el-select>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="24">
  51. <el-form-item label="详细地址" prop="address">
  52. <el-input v-model="form.address" type="textarea" :rows="3" placeholder="输入详细地址"></el-input>
  53. </el-form-item>
  54. </el-col>
  55. </el-form>
  56. </el-row>
  57. </div>
  58. <div class="fixed__btn__panel">
  59. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  60. <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
  61. </div>
  62. </el-drawer>
  63. </div>
  64. </template>
  65. <script>
  66. import {mapGetters} from 'vuex'
  67. export default {
  68. data () {
  69. return {
  70. dialogFormVisible:false,
  71. form:{
  72. enterprisename:'',
  73. value:[],
  74. sys_enterpriseid:0
  75. },
  76. agent_level:[],
  77. rules:{
  78. enterprisename: [
  79. { required: true, message: '输入企业名称', trigger: 'blur' },
  80. ],
  81. contact: [
  82. { required: true, message: '输入企业联系人', trigger: 'blur' },
  83. ],
  84. phonenumber: [
  85. { required: true, message: '输入联系电话', trigger: 'blur' },
  86. { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
  87. ],
  88. taxno: [
  89. { required: true, message: '输入税号', trigger: 'blur' },
  90. ],
  91. value: [
  92. { required: true, message: '选择省市县', trigger: 'change' },
  93. ],
  94. address:[
  95. { required: true, message: '输入详细地址', trigger: 'blur' },
  96. ],
  97. }
  98. }
  99. },
  100. computed:{
  101. ...mapGetters ({
  102. arealist:'arealist'
  103. })
  104. },
  105. methods:{
  106. onShow () {
  107. this.dialogFormVisible = true
  108. this.query_sysoptions()
  109. },
  110. async query_sysoptions () {
  111. const res = await this.$store.dispatch('optiontypeselect','agentgrade')
  112. this.agent_level = res.data
  113. },
  114. cascaderChange (val) {
  115. if (val.length === 1)
  116. return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
  117. this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
  118. },
  119. onSubmit () {
  120. this.$refs['form'].validate(async (valid) => {
  121. if (!valid) return false
  122. const res = await this.$api.requested({
  123. "id": 20220920084101,
  124. "content":this.form
  125. })
  126. this.tool.showMessage(res,()=>{
  127. this.$emit('onSuccess')
  128. this.$refs['form'].resetFields();
  129. this.dialogFormVisible = false
  130. })
  131. })
  132. }
  133. },
  134. mounted () {
  135. }
  136. }
  137. </script>
  138. <style>
  139. </style>