edit.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. <template>
  2. <div>
  3. <el-button size="mini" :type="btnType?btnType:'text'" type="text" @click="show">编 辑</el-button>
  4. <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="900px">
  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="120px" label-position="left" size="mini">
  10. <el-col :span="20">
  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="20">
  16. <el-form-item label="客户类型" >
  17. <el-select v-model="form.type" placeholder="请选择客户类型">
  18. <el-option
  19. v-for="item in options.type"
  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="20">
  28. <el-form-item label="客户来源" >
  29. <el-input v-model="form.source" placeholder="请输入客户来源"></el-input>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="20">
  33. <el-form-item label="上级客户" >
  34. <el-select v-model="form.parentid" placeholder="请选择上级客户">
  35. <el-option
  36. v-for="item in options.parentCustomers"
  37. :key="item.sa_customersid"
  38. :label="item.enterprisename"
  39. :value="item.sa_customersid">
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="15">
  45. <el-form-item label="省市县" >
  46. <el-cascader
  47. style="width:100%"
  48. v-model="form.value"
  49. :options="basicData.data().areaData"
  50. @change="cascaderChange" clearable>
  51. </el-cascader>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="20">
  55. <el-form-item label="企业地址" >
  56. <el-input v-model="form.address" placeholder="请输入企业简称"></el-input>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :span="20">
  60. <el-form-item label="企业简称" >
  61. <el-input v-model="form.abbreviation" placeholder="请输入企业简称"></el-input>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="20">
  65. <el-form-item label="企业税号" >
  66. <el-input v-model="form.taxno" placeholder="请输入企业税号"></el-input>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="20">
  70. <el-form-item label="客户等级" >
  71. <el-select v-model="form.grade" placeholder="请选择客户等级">
  72. <el-option
  73. v-for="item in options.gradeData"
  74. :key="item.rowindex"
  75. :label="item.value"
  76. :value="item.rowindex">
  77. </el-option>
  78. </el-select>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="20">
  82. <el-form-item label="所属行业" >
  83. <el-select v-model="form.industry" placeholder="请选择所属行业">
  84. <el-option
  85. v-for="item in options.industryData"
  86. :key="item.value"
  87. :label="item.value"
  88. :value="item.value">
  89. </el-option>
  90. </el-select>
  91. </el-form-item>
  92. </el-col>
  93. <el-col :span="20">
  94. <el-form-item label="联系方式" >
  95. <el-input v-model="form.phonenumber" placeholder="请输入联系方式"></el-input>
  96. </el-form-item>
  97. </el-col>
  98. </el-form>
  99. </el-row>
  100. <div class="dialog-footer">
  101. <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
  102. <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
  103. </div>
  104. </el-dialog>
  105. </div>
  106. </template>
  107. <script>
  108. import {mapGetters} from 'vuex'
  109. export default {
  110. name: "edit",
  111. props:['data','btnType'],
  112. data(){
  113. return {
  114. dialogFormVisible:false,
  115. form:{
  116. value:[],
  117. sa_customersid:0,
  118. sys_enterpriseid:0,
  119. enterprisename:'',
  120. type:'',
  121. source:'',
  122. parentid:'',
  123. abbreviation:'',
  124. taxno:'',
  125. grade:'',
  126. industry:'',
  127. phonenumber:'',
  128. province:'',
  129. city:'',
  130. county:'',
  131. address:'',
  132. },
  133. value:'',
  134. options:{
  135. type:[],
  136. parentCustomers:[],
  137. gradeData:[],
  138. industryData:[]
  139. },
  140. rules:{
  141. enterprisename: [
  142. { required: true, message: '输入客户', trigger: 'blur' },
  143. ],
  144. }
  145. }
  146. },
  147. computed:{
  148. ...mapGetters ({
  149. arealist:'arealist'
  150. })
  151. },
  152. methods:{
  153. show(){
  154. this.dialogFormVisible = true
  155. this.typeList()
  156. this.parentCustomer()
  157. this.gradeList()
  158. this.industryList()
  159. this.$store.dispatch('queryArealist')
  160. console.log("输出")
  161. console.log(this.data)
  162. let arr = ['province','city','county']
  163. arr.forEach(e=>{
  164. this.data[e] !== '' ?this.form.value.push(this.data[e]):''
  165. })
  166. this.form = Object.assign({},this.form,this.data)
  167. console.log("------------------")
  168. console.log(this.form)
  169. if (this.form.parentid === 0){
  170. this.form.parentid = '未选择'
  171. }
  172. },
  173. onSubmit(){
  174. if (this.form.parentid === '未选择'){
  175. this.form.parentid = 0
  176. }
  177. console.log(this.form)
  178. this.$refs['form'].validate(async (valid) => {
  179. if (!valid) return false
  180. const res = await this.$api.requested({
  181. "id": 20221012163902,
  182. "content": this.form
  183. })
  184. this.tool.showMessage(res, ()=>{
  185. this.$emit('onSuccess')
  186. this.$refs['form'].resetFields();
  187. this.dialogFormVisible = false
  188. })
  189. })
  190. },
  191. /*客户类型列表*/
  192. async typeList(){
  193. const res = await this.$api.requested({
  194. "classname": "sysmanage.develop.optiontype.optiontype",
  195. "method": "optiontypeselect",
  196. "content": {
  197. "pageNumber": 1,
  198. "pageSize": 20,
  199. "typename": "customertypemx",
  200. "parameter": {
  201. "siteid": "YOSTEST2"
  202. }
  203. }
  204. })
  205. this.options.type = res.data
  206. },
  207. /*上级客户*/
  208. async parentCustomer(){
  209. const res = await this.$api.requested({
  210. "id": 20221014101002,
  211. "content": {
  212. "pageNumber": 1,
  213. "pageSize": 20,
  214. "where": {
  215. "condition": ""
  216. }
  217. }
  218. })
  219. console.log(res)
  220. this.options.parentCustomers = res.data
  221. },
  222. /*省市县*/
  223. cascaderChange (val) {
  224. if (val.length === 1)
  225. return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
  226. this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
  227. },
  228. /*客户等级*/
  229. async gradeList(){
  230. const res = await this.$api.requested({
  231. "classname": "sysmanage.develop.optiontype.optiontype",
  232. "method": "optiontypeselect",
  233. "content": {
  234. "pageNumber": 1,
  235. "pageSize": 20,
  236. "typename": "customergrade",
  237. "parameter": {
  238. "siteid": "YOSTEST2"
  239. }
  240. }
  241. })
  242. this.options.gradeData = res.data
  243. },
  244. /*行业列表*/
  245. async industryList(){
  246. const res = await this.$api.requested({
  247. "classname": "sysmanage.develop.optiontype.optiontype",
  248. "method": "optiontypeselect",
  249. "content": {
  250. "pageNumber": 1,
  251. "pageSize": 20,
  252. "typename": "industry",
  253. "parameter": {
  254. "siteid": "YOSTEST2"
  255. }
  256. }
  257. })
  258. this.options.industryData = res.data
  259. }
  260. }
  261. }
  262. </script>
  263. <style scoped>
  264. </style>