|
|
@@ -0,0 +1,180 @@
|
|
|
+<template>
|
|
|
+ <el-dialog append-to-body :title="title" :visible.sync="dialogFormVisible" @close="close('form')">
|
|
|
+ <el-form ref="form" label-width="120px" :model="form" :rules="rules">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="渠道名称" prop="distributorName">
|
|
|
+ <el-input
|
|
|
+ v-model="form.distributorName"
|
|
|
+ readonly
|
|
|
+ suffix-icon="el-icon-search"
|
|
|
+ @focus="handleSelectDistributor" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="主营产品" prop="mainProduct">
|
|
|
+ <el-input v-model="form.mainProduct" :rows="2" type="textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="主要客户" prop="mainCustomer">
|
|
|
+ <el-input v-model="form.mainCustomer" :rows="2" type="textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="参训人员" prop="trainees">
|
|
|
+ <el-input v-model="form.trainees" :rows="2" type="textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="培训日期" prop="trainingDate">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.trainingDate"
|
|
|
+ placeholder="选择培训日期"
|
|
|
+ style="width: 100%"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="具体时间" prop="specificTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.specificStartTime"
|
|
|
+ placeholder="开始时间"
|
|
|
+ style="width: 45%"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-dd HH:ss:mm" />
|
|
|
+ -
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.specificEndTime"
|
|
|
+ placeholder="结束时间"
|
|
|
+ style="width: 45%"
|
|
|
+ type="datetime"
|
|
|
+ value-format="yyyy-MM-dd HH:ss:mm" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="培训主题" prop="trainTitle">
|
|
|
+ <el-input v-model="form.trainTitle" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="讲师要求" prop="instructorRequire">
|
|
|
+ <el-input v-model="form.instructorRequire" :rows="2" type="textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="渠道关注要点" prop="focusPoint">
|
|
|
+ <el-input v-model="form.focusPoint" :rows="2" type="textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <el-button @click="close('form')">取 消</el-button>
|
|
|
+ <el-button :loading="loading" type="primary" @click="save">确 定</el-button>
|
|
|
+ </template>
|
|
|
+ <!-- 选择经销商弹窗 -->
|
|
|
+ <select-distributor ref="selectDistributor" @save="selectDistributor" />
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import Api from '@/api/work/trainSale'
|
|
|
+ import SelectDistributor from '@/components/select/SelectDistributor'
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: 'WorkOrderEdit',
|
|
|
+ components: { SelectDistributor },
|
|
|
+ props: {
|
|
|
+ businessInfo: {
|
|
|
+ type: Object,
|
|
|
+ default: () => {},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: false,
|
|
|
+ form: {
|
|
|
+ distributorName: undefined,
|
|
|
+ mainProduct: undefined,
|
|
|
+ mainCustomer: undefined,
|
|
|
+ trainees: undefined,
|
|
|
+ trainingDate: undefined,
|
|
|
+ specificStartTime: undefined,
|
|
|
+ specificEndTime: undefined,
|
|
|
+ trainTitle: undefined,
|
|
|
+ instructorRequire: undefined,
|
|
|
+ focusPoint: undefined,
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ distributorName: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ mainProduct: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ mainCustomer: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ trainees: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ trainingDate: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ trainTitle: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ instructorRequire: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ focusPoint: [{ required: true, message: '不能为空', trigger: ['blur', 'change'] }],
|
|
|
+ },
|
|
|
+ title: '',
|
|
|
+ dialogTyte: '',
|
|
|
+ dialogFormVisible: false,
|
|
|
+ dingtalkForm: undefined,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {},
|
|
|
+ methods: {
|
|
|
+ showEdit(row) {
|
|
|
+ this.loading = false
|
|
|
+ if (!row) {
|
|
|
+ this.title = '添加'
|
|
|
+ this.dialogTyte = 'add'
|
|
|
+ } else {
|
|
|
+ this.title = '编辑'
|
|
|
+ this.dialogTyte = 'edit'
|
|
|
+ this.form = Object.assign({}, row)
|
|
|
+ }
|
|
|
+ this.dialogFormVisible = true
|
|
|
+ },
|
|
|
+ close(formName) {
|
|
|
+ this.$refs[formName].resetFields()
|
|
|
+ this.form = this.$options.data().form
|
|
|
+ if (this.dingtalkForm && this.dingtalkForm.items) {
|
|
|
+ this.dingtalkForm.items.splice(0, this.dingtalkForm.items.length)
|
|
|
+ }
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ },
|
|
|
+ handleSelectDistributor() {
|
|
|
+ this.$refs.selectDistributor.open()
|
|
|
+ },
|
|
|
+ selectDistributor(val) {
|
|
|
+ if (val && val.length > 0) {
|
|
|
+ this.form.distributorId = val[0].id
|
|
|
+ this.form.distributorName = val.map((item) => item.distName).join()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ save() {
|
|
|
+ this.$refs['form'].validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ if (this.dialogTyte === 'add') {
|
|
|
+ const { msg } = await Api.doAdd(this.form)
|
|
|
+ this.loading = false
|
|
|
+ this.$baseMessage(msg, 'success', 'vab-hey-message-success')
|
|
|
+ this.$emit('fetch-data')
|
|
|
+ this.close('form')
|
|
|
+ } else if (this.dialogTyte === 'edit') {
|
|
|
+ const { msg } = await Api.doEdit(this.form)
|
|
|
+ this.loading = false
|
|
|
+ this.$baseMessage(msg, 'success', 'vab-hey-message-success')
|
|
|
+ this.$emit('fetch-data')
|
|
|
+ this.close('form')
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }
|
|
|
+</script>
|