|
@@ -8,59 +8,90 @@
|
|
style="margin-bottom: 20px"
|
|
style="margin-bottom: 20px"
|
|
></el-alert>
|
|
></el-alert>
|
|
<el-form ref="form" :model="form" label-width="120px" size="small" :inline="true">
|
|
<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
|
|
<el-select
|
|
- v-model.trim="form.serveId"
|
|
|
|
|
|
+ v-model="form.serveId"
|
|
|
|
+ :disabled="isDisabled"
|
|
placeholder="请选择服务名称"
|
|
placeholder="请选择服务名称"
|
|
style="width: 238px !important"
|
|
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-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="付费模式" prop="serveDetailId">
|
|
|
|
|
|
+ <el-form-item label="付费模式" prop="serveMode"
|
|
|
|
+ :rules="[{ required: true, message: '请选择付费模式', trigger: 'change' }]">
|
|
<el-select
|
|
<el-select
|
|
- v-model.trim="form.serveDetailId"
|
|
|
|
|
|
+ v-model="form.serveMode"
|
|
|
|
+ :disabled="isDisabled"
|
|
placeholder="请选择付费模式"
|
|
placeholder="请选择付费模式"
|
|
style="width: 238px !important"
|
|
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-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="学员上限" prop="sn">
|
|
|
|
|
|
+ <el-form-item label="学员上限" prop="studentUpLimit"
|
|
|
|
+ :rules="[{ required: true, message: '请选择学员上限', trigger: 'change' }]">
|
|
<el-select
|
|
<el-select
|
|
placeholder="请选择学员上限"
|
|
placeholder="请选择学员上限"
|
|
|
|
+ :disabled="isDisabled"
|
|
|
|
+ @change="onStudentUpLimitChange"
|
|
style="width: 238px !important"
|
|
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-select>
|
|
</el-form-item>
|
|
</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
|
|
<el-input
|
|
- size="small"
|
|
|
|
|
|
+ :disabled="isDisabled"
|
|
placeholder="请输入合同价"
|
|
placeholder="请输入合同价"
|
|
|
|
+ v-model.number="form.contractPrice"
|
|
|
|
+ type="number"
|
|
style="width: 238px;"
|
|
style="width: 238px;"
|
|
>
|
|
>
|
|
- <div slot="append">元/年</div>
|
|
|
|
|
|
+ <div slot="append">元/{{ unitSuffix }}</div>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</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
|
|
<el-input
|
|
- size="small"
|
|
|
|
placeholder="请输入原价"
|
|
placeholder="请输入原价"
|
|
|
|
+ disabled
|
|
|
|
+ v-model.number="form.originalPrice"
|
|
style="width: 238px;"
|
|
style="width: 238px;"
|
|
>
|
|
>
|
|
- <div slot="append">元/年</div>
|
|
|
|
|
|
+ <div slot="append">元/{{ unitSuffix }}</div>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</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
|
|
<el-input
|
|
- size="small"
|
|
|
|
|
|
+ :disabled="isDisabled"
|
|
|
|
+ type="number"
|
|
|
|
+ v-model.number="form.expiryCount"
|
|
placeholder="请输入有效期"
|
|
placeholder="请输入有效期"
|
|
>
|
|
>
|
|
- <div slot="append">年</div>
|
|
|
|
|
|
+ <div slot="append">{{ unitSuffix }}</div>
|
|
</el-input>
|
|
</el-input>
|
|
</el-form-item>
|
|
</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
|
|
<el-input
|
|
- size="small"
|
|
|
|
- placeholder="请输入开能价格"
|
|
|
|
|
|
+ placeholder="请输入开通价格"
|
|
|
|
+ type="number"
|
|
|
|
+ v-model.number="form.payAmount"
|
|
|
|
+ :disabled="isDisabled"
|
|
>
|
|
>
|
|
<div slot="append">元</div>
|
|
<div slot="append">元</div>
|
|
</el-input>
|
|
</el-input>
|
|
@@ -70,18 +101,87 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import { platformServeQueryPage, platformServeQueryModeDetail } from '@/views/platformManager/serviceManager/api'
|
|
|
|
+import { paymentMode } from '@/constant'
|
|
export default {
|
|
export default {
|
|
- name: 'serviceManger',
|
|
|
|
|
|
+ props: ['type'],
|
|
data () {
|
|
data () {
|
|
- const query = this.$route.query
|
|
|
|
return {
|
|
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 () {
|
|
mounted () {
|
|
|
|
+ this.__init()
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ isDisabled() {
|
|
|
|
+ return this.type == 'setting' ? true : false
|
|
|
|
+ },
|
|
|
|
+ unitSuffix() {
|
|
|
|
+ // 后辍默认为年
|
|
|
|
+ return this.paymentMode[this.form.expiryUnit] || '年'
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
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>
|
|
</script>
|