|
|
@@ -13,7 +13,7 @@
|
|
|
<div class="flex1 over-auto">
|
|
|
<el-form ref="formRef" label-width="auto" label-position="top" :model="form" :rules="rules">
|
|
|
<div class="pd-16 border-bottom">
|
|
|
- <el-form-item>
|
|
|
+ <el-form-item prop="items">
|
|
|
<div class="flex1">
|
|
|
<template v-if="!form.items.length">
|
|
|
<add-btn @click="showSelectItems = true" content="选择检测项目"></add-btn>
|
|
|
@@ -81,7 +81,7 @@
|
|
|
<template v-if="form.permitType === '2'">
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="适用企业" prop="permitCpy">
|
|
|
- <SearchSelect v-model="form.permitCpy"></SearchSelect>
|
|
|
+ <SearchSelect v-model="form.permitCpy" :params="{ reviewStatus: '1' }" @changeItem="changeItemCpy"></SearchSelect>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</template>
|
|
|
@@ -128,7 +128,9 @@
|
|
|
<div class="info-title mb-10">套餐价格确认</div>
|
|
|
<vxe-table ref="tableRightRef" border :data="form.priceDetail" :column-config="{ resizable: true }">
|
|
|
<vxe-column type="seq" width="60" title="序号" align="center" />
|
|
|
- <vxe-column v-if="form.permitType === '2'" title="企业名称" align="center" field="name" min-width="100" :formatter="colNoData" />
|
|
|
+ <vxe-column v-if="form.permitType === '2'" title="企业名称" align="center" min-width="100" :formatter="colNoData">
|
|
|
+ <template #default>{{ form.permitCpyName }}</template>
|
|
|
+ </vxe-column>
|
|
|
<vxe-column title="适用类型" align="center" field="name" min-width="100" :formatter="colNoData" />
|
|
|
<vxe-column title="折扣标准" align="center" min-width="100">
|
|
|
<template #default="{ row }">{{ NP.times(row?.discount, 10) }}折</template>
|
|
|
@@ -149,9 +151,8 @@
|
|
|
</div>
|
|
|
<div class="d-flex a-c j-c pd-16">
|
|
|
<el-button @click="router.go(-1)">取消</el-button>
|
|
|
- <el-button @click="save" color="#0079fe">暂存</el-button>
|
|
|
- <el-button @click="save" type="primary">提交</el-button>
|
|
|
- <el-button @click="submitForm" type="warning">立即上架</el-button>
|
|
|
+ <el-button @click="save" color="#0079fe">保存</el-button>
|
|
|
+ <el-button @click="submitGround" type="warning">立即上架</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -164,6 +165,8 @@ import { TransferItems } from '../../models';
|
|
|
import NP from 'number-precision';
|
|
|
import { colNoData } from '@/utils/noData';
|
|
|
import { vipDiscountList } from '@/api/cdt/discount';
|
|
|
+import { debounce } from 'lodash';
|
|
|
+import { addTestPackage } from '@/api/cdt/menus';
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
const { dm_package_type, dm_permit_type, vip_level } = toRefs<any>(proxy?.useDict('dm_package_type', 'dm_permit_type', 'vip_level'));
|
|
|
// 字典
|
|
|
@@ -176,7 +179,7 @@ const form = ref<any>({
|
|
|
});
|
|
|
const rules = reactive({
|
|
|
items: [
|
|
|
- { required: true, message: '请选择检测项目', trigger: 'change' },
|
|
|
+ { required: true, type: 'array', message: '请选择检测项目', trigger: 'change' },
|
|
|
],
|
|
|
name: [
|
|
|
{ required: true, message: '请输入套餐名称', trigger: 'blur' }
|
|
|
@@ -215,11 +218,24 @@ const rules = reactive({
|
|
|
{ required: true, message: '请上传产品图', trigger: 'blur' }
|
|
|
]
|
|
|
});
|
|
|
-const save = () => {
|
|
|
- console.log('暂存');
|
|
|
-};
|
|
|
-const submitForm = () => {
|
|
|
- console.log('立即上架');
|
|
|
+const formRef = ref<any>();
|
|
|
+const save = debounce(() => {
|
|
|
+ submitSever()
|
|
|
+}, 500)
|
|
|
+const submitGround = debounce(async () => {
|
|
|
+ await formRef.value.validate()
|
|
|
+ submitSever()
|
|
|
+}, 500)
|
|
|
+const submitSever = async () => {
|
|
|
+ proxy.$modal.loading('提交中...');
|
|
|
+ const params = {
|
|
|
+ ...form.value
|
|
|
+ }
|
|
|
+ const res = await addTestPackage(params).finally(() => {
|
|
|
+ proxy.$modal.closeLoading();
|
|
|
+ });
|
|
|
+ if (!res || res.code !== 200) return;
|
|
|
+ proxy.$modal.msgSuccess('提交成功!')
|
|
|
};
|
|
|
// 合计价格
|
|
|
const totalCountPrice = computed(() => {
|
|
|
@@ -231,6 +247,13 @@ const changeItems = (val: any) => {
|
|
|
form.value.items = val;
|
|
|
changePermitType();
|
|
|
};
|
|
|
+const changeItemCpy = (val: any) => {
|
|
|
+ console.log(val);
|
|
|
+ const { vipLevel, cpyName } = val;
|
|
|
+ form.value.permit = [vipLevel || '0']
|
|
|
+ form.value.permitCpyName = cpyName;
|
|
|
+ changePermit([vipLevel || '0']);
|
|
|
+};
|
|
|
// 继续添加方法
|
|
|
const addItems = () => {
|
|
|
// 保留之前选中
|
|
|
@@ -255,7 +278,6 @@ const getDiscount = async () => {
|
|
|
discounts.value = res.rows;
|
|
|
};
|
|
|
const changePermit = (val: string[]) => {
|
|
|
- console.log(val);
|
|
|
form.value.priceDetail = discounts.value.filter(({ level }) => val.includes(level + '')).map(item => {
|
|
|
return {
|
|
|
...item,
|