|  | @@ -8,59 +8,90 @@
 | 
	
		
			
				|  |  |          style="margin-bottom: 20px"
 | 
	
		
			
				|  |  |        ></el-alert>
 | 
	
		
			
				|  |  |        <el-form ref="form" :model="form" label-width="120px" size="small" :inline="true">
 | 
	
		
			
				|  |  | -        <el-form-item label="服务名称" prop="serveId">
 | 
	
		
			
				|  |  | +        <el-form-item label="服务名称" prop="serveId"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请选择服务名称', trigger: 'change' }]">
 | 
	
		
			
				|  |  |            <el-select
 | 
	
		
			
				|  |  | -            v-model.trim="form.serveId"
 | 
	
		
			
				|  |  | +            v-model="form.serveId"
 | 
	
		
			
				|  |  | +            :disabled="isDisabled"
 | 
	
		
			
				|  |  |              placeholder="请选择服务名称"
 | 
	
		
			
				|  |  |              style="width: 238px !important"
 | 
	
		
			
				|  |  | +            @change="onProductChange"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | +            <el-option v-for="item in productList" :key="item.id"
 | 
	
		
			
				|  |  | +              :label="item.serveName" :value="item.id"></el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="付费模式" prop="serveDetailId">
 | 
	
		
			
				|  |  | +        <el-form-item label="付费模式" prop="serveMode"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请选择付费模式', trigger: 'change' }]">
 | 
	
		
			
				|  |  |            <el-select
 | 
	
		
			
				|  |  | -            v-model.trim="form.serveDetailId"
 | 
	
		
			
				|  |  | +            v-model="form.serveMode"
 | 
	
		
			
				|  |  | +            :disabled="isDisabled"
 | 
	
		
			
				|  |  |              placeholder="请选择付费模式"
 | 
	
		
			
				|  |  |              style="width: 238px !important"
 | 
	
		
			
				|  |  | +            @change="onModeChange"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | +            <el-option v-for="(item, index) in modeList" :key="index"
 | 
	
		
			
				|  |  | +              :label="paymentMode[item.mode]" :value="item.mode"></el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="学员上限" prop="sn">
 | 
	
		
			
				|  |  | +        <el-form-item label="学员上限" prop="studentUpLimit"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请选择学员上限', trigger: 'change' }]">
 | 
	
		
			
				|  |  |            <el-select
 | 
	
		
			
				|  |  |              placeholder="请选择学员上限"
 | 
	
		
			
				|  |  | +            :disabled="isDisabled"
 | 
	
		
			
				|  |  | +            @change="onStudentUpLimitChange"
 | 
	
		
			
				|  |  |              style="width: 238px !important"
 | 
	
		
			
				|  |  | +            v-model="form.studentUpLimit"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | +            <el-option v-for="(item, index) in studentUpList" :key="index"
 | 
	
		
			
				|  |  | +              :label="item.studentUpLimit" :value="item.id"></el-option>
 | 
	
		
			
				|  |  |            </el-select>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="合同价" prop="sn">
 | 
	
		
			
				|  |  | +        <el-form-item label="合同价" prop="contractPrice"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请输入合同价', trigger: 'blur' },
 | 
	
		
			
				|  |  | +            { type: 'number', message: '合同价必须为数字值' }]">
 | 
	
		
			
				|  |  |            <el-input
 | 
	
		
			
				|  |  | -            size="small"
 | 
	
		
			
				|  |  | +            :disabled="isDisabled"
 | 
	
		
			
				|  |  |              placeholder="请输入合同价"
 | 
	
		
			
				|  |  | +            v-model.number="form.contractPrice"
 | 
	
		
			
				|  |  | +            type="number"
 | 
	
		
			
				|  |  |              style="width: 238px;"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | -            <div slot="append">元/年</div>
 | 
	
		
			
				|  |  | +            <div slot="append">元/{{ unitSuffix }}</div>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="原价" prop="sn">
 | 
	
		
			
				|  |  | +        <el-form-item label="原价" prop="originalPrice"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请输入原价', trigger: 'blur' },
 | 
	
		
			
				|  |  | +            { type: 'number', message: '原价必须为数字值' }]">
 | 
	
		
			
				|  |  |            <el-input
 | 
	
		
			
				|  |  | -            size="small"
 | 
	
		
			
				|  |  |              placeholder="请输入原价"
 | 
	
		
			
				|  |  | +            disabled
 | 
	
		
			
				|  |  | +            v-model.number="form.originalPrice"
 | 
	
		
			
				|  |  |              style="width: 238px;"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | -            <div slot="append">元/年</div>
 | 
	
		
			
				|  |  | +            <div slot="append">元/{{ unitSuffix }}</div>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="有效期" prop="sn">
 | 
	
		
			
				|  |  | +        <el-form-item label="有效期" prop="expiryCount"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请输入有效期', trigger: 'blur' },
 | 
	
		
			
				|  |  | +            { type: 'number', message: '有效期必须为数字值' }]">
 | 
	
		
			
				|  |  |            <el-input
 | 
	
		
			
				|  |  | -            size="small"
 | 
	
		
			
				|  |  | +            :disabled="isDisabled"
 | 
	
		
			
				|  |  | +            type="number"
 | 
	
		
			
				|  |  | +            v-model.number="form.expiryCount"
 | 
	
		
			
				|  |  |              placeholder="请输入有效期"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  | -            <div slot="append">年</div>
 | 
	
		
			
				|  |  | +            <div slot="append">{{ unitSuffix }}</div>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  | -        <el-form-item label="开能价格" prop="sn">
 | 
	
		
			
				|  |  | +        <el-form-item label="开通价格" prop="payAmount"
 | 
	
		
			
				|  |  | +          :rules="[{ required: true, message: '请输入开通价格', trigger: 'blur' },
 | 
	
		
			
				|  |  | +            { type: 'number', message: '开通价格必须为数字值' }]">
 | 
	
		
			
				|  |  |            <el-input
 | 
	
		
			
				|  |  | -            size="small"
 | 
	
		
			
				|  |  | -            placeholder="请输入开能价格"
 | 
	
		
			
				|  |  | +            placeholder="请输入开通价格"
 | 
	
		
			
				|  |  | +            type="number"
 | 
	
		
			
				|  |  | +            v-model.number="form.payAmount"
 | 
	
		
			
				|  |  | +            :disabled="isDisabled"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  |              <div slot="append">元</div>
 | 
	
		
			
				|  |  |            </el-input>
 | 
	
	
		
			
				|  | @@ -70,18 +101,87 @@
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | +import { platformServeQueryPage, platformServeQueryModeDetail } from '@/views/platformManager/serviceManager/api'
 | 
	
		
			
				|  |  | +import { paymentMode } from '@/constant'
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  | -  name: 'serviceManger',
 | 
	
		
			
				|  |  | +  props: ['type'],
 | 
	
		
			
				|  |  |    data () {
 | 
	
		
			
				|  |  | -    const query = this.$route.query
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  | -      payType: query.type,
 | 
	
		
			
				|  |  | -      form: {}
 | 
	
		
			
				|  |  | +      paymentMode,
 | 
	
		
			
				|  |  | +      form: {
 | 
	
		
			
				|  |  | +        serveId: null,
 | 
	
		
			
				|  |  | +        serveMode: null,
 | 
	
		
			
				|  |  | +        serveDetailId: null,
 | 
	
		
			
				|  |  | +        studentUpLimit: null,
 | 
	
		
			
				|  |  | +        expiryUnit: null,
 | 
	
		
			
				|  |  | +        contractPrice: null,
 | 
	
		
			
				|  |  | +        originalPrice: null,
 | 
	
		
			
				|  |  | +        expiryCount: null,
 | 
	
		
			
				|  |  | +        payAmount: null
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      productList: [],
 | 
	
		
			
				|  |  | +      modeList: [],
 | 
	
		
			
				|  |  | +      studentUpList: [], // 学员上限列表
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    mounted () {
 | 
	
		
			
				|  |  | +    this.__init()
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    isDisabled() {
 | 
	
		
			
				|  |  | +      return this.type == 'setting' ? true : false
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    unitSuffix() {
 | 
	
		
			
				|  |  | +      // 后辍默认为年
 | 
	
		
			
				|  |  | +      return this.paymentMode[this.form.expiryUnit] || '年'
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | +    async __init() {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const res = await platformServeQueryPage({ page: 1, rows: 999 })
 | 
	
		
			
				|  |  | +        this.productList = res.data?.rows || []
 | 
	
		
			
				|  |  | +      } catch(e) {}
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    async onProductChange(val) {
 | 
	
		
			
				|  |  | +      const form = this.form
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const res = await platformServeQueryModeDetail({ id: val })
 | 
	
		
			
				|  |  | +        this.modeList = res.data || []
 | 
	
		
			
				|  |  | +      } catch(e) { console.log(e) }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onSubmit() {
 | 
	
		
			
				|  |  | +      let status = false
 | 
	
		
			
				|  |  | +      this.$refs.form.validate(_ => {
 | 
	
		
			
				|  |  | +        status = _
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      return status
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    getValues() {
 | 
	
		
			
				|  |  | +      return this.form
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onModeChange(val) { // 付费模式改变时
 | 
	
		
			
				|  |  | +      const form = this.form
 | 
	
		
			
				|  |  | +      for(let item of (this.modeList || [])) {
 | 
	
		
			
				|  |  | +        if(val == item.mode) {
 | 
	
		
			
				|  |  | +          this.studentUpList = item.list || []
 | 
	
		
			
				|  |  | +          form.expiryUnit = item.mode
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          // ...
 | 
	
		
			
				|  |  | +          form.studentUpLimit = null // 学员上限
 | 
	
		
			
				|  |  | +          form.originalPrice = null // 重置原价
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onStudentUpLimitChange(val) {
 | 
	
		
			
				|  |  | +      const form = this.form
 | 
	
		
			
				|  |  | +      for(let item of (this.studentUpList || [])) {
 | 
	
		
			
				|  |  | +        if(val == item.id) {
 | 
	
		
			
				|  |  | +          form.serveDetailId = item.id
 | 
	
		
			
				|  |  | +          form.originalPrice = item.originalPrice
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  </script>
 |