| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- <template>
- <el-dialog append-to-body :title="title" :visible.sync="dialogFormVisible" @close="close">
- <el-form ref="form" :model="form" :rules="dist">
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="名称" prop="distName">
- <el-input v-model="form.distName" placeholder="请输入名称" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="助记名" prop="abbrName">
- <el-input v-model="form.abbrName" placeholder="请输入助记名" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="选择省份" prop="provinceDesc">
- <el-select
- ref="optionRef"
- v-model="form.provinceDesc"
- placeholder="请选择"
- style="width: 100%"
- @change="selectDistrict">
- <el-option
- v-for="item in district"
- :key="item.regionCode"
- :label="item.regionDesc"
- :value="item.regionCode" />
- </el-select>
- </el-form-item>
- <el-form-item label="省份" prop="provinceId" style="display: none">
- <el-input v-model.trim="form.provinceId" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <select-user
- ref="selectUser"
- :query-params="{ roles: ['SalesEngineer', 'ProductLineManager', 'SalesDirector'] }"
- @save="selectUser" />
- <el-form-item label="销售人员" prop="belongSale">
- <el-input v-model="form.belongSale" readonly suffix-icon="el-icon-search" @focus="choose" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="注册资金/万元" prop="capital">
- <el-input v-model.number="form.capital" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="注册地" prop="registerDistrict">
- <el-input v-model.trim="form.registerDistrict" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="业务范围" prop="businessScope">
- <el-input v-model.trim="form.businessScope" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="现有销售人数" prop="saleNum">
- <el-input v-model.number="form.saleNum" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="20">
- <el-col :span="12">
- <el-form-item label="授权客户类型" prop="customerType">
- <el-select v-model="form.customerType" multiple placeholder="授权客户类型" style="width: 100%">
- <el-option v-for="item in customerOptions" :key="item.value" :label="item.value" :value="item.key" />
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-form-item label="已有代理品牌和产品" prop="existedProduct">
- <el-input
- v-model="form.existedProduct"
- maxlength="500"
- placeholder="请输入备注"
- resize="none"
- :rows="5"
- show-word-limit
- type="textarea" />
- </el-form-item>
- <el-form-item label="历史合作的终端客户名称" prop="historyCustomer">
- <el-input
- v-model="form.historyCustomer"
- maxlength="500"
- placeholder="请输入备注"
- resize="none"
- :rows="5"
- show-word-limit
- type="textarea" />
- </el-form-item>
- </el-form>
- <span slot="footer">
- <el-button @click="close">取 消</el-button>
- <el-button type="primary" @click="save">确 定</el-button>
- </span>
- </el-dialog>
- </template>
- <script>
- import distrApi from '@/api/base/distr'
- import '@riophae/vue-treeselect/dist/vue-treeselect.css'
- import regionAuthApi from '@/api/base/regionAuth'
- import SelectUser from '@/components/select/SelectUser'
- export default {
- name: 'UserEdit',
- components: {
- SelectUser,
- },
- data() {
- return {
- form: {
- distName: '',
- abbrName: '',
- provinceDesc: '',
- provinceId: 0,
- belongSale: '',
- belongSaleId: 0,
- capital: 0,
- registerDistrict: '',
- businessScope: '',
- saleNum: 0,
- customerType: '',
- existedProduct: '',
- historyCustomer: '',
- },
- dist: {
- distName: [{ required: true, trigger: 'blur', message: '请输入经销商名称' }],
- provinceDesc: [{ required: true, trigger: 'blur', message: '请输入省份' }],
- provinceId: [{ required: true, trigger: 'blur', message: '请输入省份' }],
- belongSale: [{ required: true, trigger: 'blur', message: '请输入销售人员' }],
- capital: [{ required: true, trigger: 'blur', message: '请输入注册资金' }],
- registerDistrict: [{ required: true, trigger: 'blur', message: '请输入注册地' }],
- businessScope: [{ required: true, trigger: 'blur', message: '请输入业务范围' }],
- saleNum: [{ required: true, trigger: 'blur', message: '请输入现有销售人数' }],
- customerType: [{ required: true, trigger: 'blur', message: '请输入授权客户类型' }],
- existedProduct: [{ required: true, trigger: 'blur', message: '请输入已有代理品牌和产品' }],
- historyCustomer: [{ required: true, trigger: 'blur', message: '请输入历史合作的终端客户名称' }],
- },
- //省份
- district: [],
- title: '',
- dialogFormVisible: false,
- customerOptions: [],
- }
- },
- created() {
- //省份
- // this.getProvinceInfo()
- this.getUserSalesProvince()
- },
- mounted() {
- this.getOptions()
- },
- methods: {
- getOptions() {
- Promise.all([this.getDicts('cust_idy')])
- .then(([data]) => {
- this.customerOptions = data.data.values || []
- })
- .catch((err) => console.log(err))
- },
- showEdit(row) {
- if (!row) {
- this.title = '新建'
- } else {
- this.title = '编辑'
- this.form = Object.assign({}, row)
- this.form.customerType = row.customerType ? row.customerType.split(',') : null
- // this.pid = this.form.provinceId
- // this.form.provinceId = this.form.provinceDesc
- }
- this.dialogFormVisible = true
- },
- close() {
- this.$refs['form'].resetFields()
- this.form = {
- distName: '',
- abbrName: '',
- provinceDesc: '',
- provinceId: 0,
- belongSale: '',
- belongSaleId: 0,
- capital: 0,
- registerDistrict: '',
- businessScope: '',
- saleNum: 0,
- customerType: '',
- existedProduct: '',
- historyCustomer: '',
- }
- this.dialogFormVisible = false
- },
- choose() {
- // this.$refs.transfer.innerVisible = true
- this.$refs.selectUser.open()
- },
- async getProvinceInfo() {
- const { data: data } = await distrApi.getProvinceInfo({})
- this.district = data.list
- },
- async getUserSalesProvince() {
- const { data: data } = await regionAuthApi.getUserSalesProvince({})
- if (data && data.list) {
- this.district = data.list.children
- }
- },
- selectDistrict(code) {
- let obj = {}
- obj = this.district.find((item) => {
- return item.regionCode === code //筛选出匹配数据
- })
- console.log('省份名称', obj)
- this.provinceDesc = obj.regionDesc
- this.form.provinceId = obj.regionCode
- this.form.provinceDesc = obj.regionDesc
- },
- save() {
- this.$refs['form'].validate(async (valid) => {
- if (valid) {
- console.log(this.form)
- let params = { ...this.form }
- params.distType = '10'
- params.provinceId = parseInt(params.provinceId)
- params.distType = '10'
- params.customerType = params.customerType.join(',')
- if (this.form.id) {
- const { msg } = await distrApi.doEdit(params)
- this.$baseMessage(msg, 'success', 'vab-hey-message-success')
- } else {
- const { msg } = await distrApi.doAdd(params)
- this.$baseMessage(msg, 'success', 'vab-hey-message-success')
- }
- this.$emit('fetch-data')
- this.close()
- }
- })
- },
- selectUser(userList) {
- this.userList = userList
- if (userList && userList.length > 0) {
- this.form.belongSaleId = userList[0].id
- }
- this.form.belongSale = userList.map((item) => item.nickName).join()
- },
- async handleSubmit() {
- this.form.belongSaleId = this.userList[0].id
- this.form.belongSale = this.userList[0].nickName
- },
- },
- }
- </script>
|