|
|
@@ -5,16 +5,17 @@
|
|
|
<el-row>
|
|
|
<el-col :span="6" style="padding-right: 20px;">
|
|
|
<el-form-item label="商品类型">
|
|
|
- <el-select style="width: 100%" v-model="queryParams.xxx" placeholder="请选择商品类型" filterable clearable>
|
|
|
-
|
|
|
+ <el-select style="width: 100%" v-model="queryParams.type" placeholder="请选择商品类型" filterable clearable>
|
|
|
+ <el-option label="基础版" :value="1"/>
|
|
|
+ <el-option label="专业版" :value="2"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="6" style="padding-right: 20px;">
|
|
|
<el-form-item label="商品状态">
|
|
|
- <el-select style="width: 100%" v-model="queryParams.yyy" placeholder="请选择商品状态" filterable clearable>
|
|
|
- <el-option label="上架" :value="1"/>
|
|
|
- <el-option label="下架" :value="2"/>
|
|
|
+ <el-select style="width: 100%" v-model="queryParams.status" placeholder="请选择商品状态" filterable clearable>
|
|
|
+ <el-option label="未上架" :value="0"/>
|
|
|
+ <el-option label="已上架" :value="1"/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
@@ -36,20 +37,22 @@
|
|
|
{{ scope.$index + 1 }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="商品ID" prop="xx"></el-table-column>
|
|
|
+ <el-table-column label="商品ID" prop="id"></el-table-column>
|
|
|
<el-table-column label="商品类型" prop="xx">
|
|
|
- <template #default="{ row }"></template>
|
|
|
+ <template #default="{ row }">{{ typeCfg[row.type] }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="问卷次数" prop="xx">
|
|
|
- <template #default="{ row }"></template>
|
|
|
+ <el-table-column label="问卷次数" prop="frequency">
|
|
|
+ <template #default="{ row }">{{ row.frequency==11?'10次以上':(row.frequency+'次') }}</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="价格(元)" prop="xx"></el-table-column>
|
|
|
- <el-table-column label="有效期" prop="xx">
|
|
|
- <template #default="{ row }"></template>
|
|
|
+ <el-table-column label="价格(元)" prop="price">
|
|
|
+ <template #default="{ row }">{{ row.frequency==11?(row.price+'/次'):row.price }}</template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="有效期" prop="valid">
|
|
|
+ <template #default="{ row }">{{ row.valid }}年</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="创建时间" prop="createDate"></el-table-column>
|
|
|
- <el-table-column label="销量" prop="xx"></el-table-column>
|
|
|
- <el-table-column label="上架状态" prop="xx">
|
|
|
+ <el-table-column label="销量" prop="sales"></el-table-column>
|
|
|
+ <el-table-column label="上架状态" prop="status">
|
|
|
<template #default="{ row }">
|
|
|
<el-switch v-model="row.status" active-color="#33A7A7" inactive-color="#B9C0C8" @change="e=>statusChange(e,row)"></el-switch>
|
|
|
</template>
|
|
|
@@ -87,28 +90,28 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="问卷次数" prop="bbb">
|
|
|
- <el-select v-model="goodForm.bbb" placeholder="请选择问卷次数" style="width:100%">
|
|
|
+ <el-form-item label="问卷次数" prop="frequency">
|
|
|
+ <el-select v-model="goodForm.frequency" placeholder="请选择问卷次数" style="width:100%">
|
|
|
<el-option label="1次" value="1"></el-option>
|
|
|
<el-option label="5次" value="5"></el-option>
|
|
|
<el-option label="10次" value="10"></el-option>
|
|
|
<el-option label="10次以上" value="11"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="价格" prop="ccc">
|
|
|
- <el-input type="number" v-model="goodForm.ccc" placeholder="请输入次数价格"></el-input>
|
|
|
+ <el-form-item label="价格" prop="price">
|
|
|
+ <el-input type="number" v-model="goodForm.price" placeholder="请输入次数价格"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="有效期" prop="ddd">
|
|
|
- <el-select v-model="goodForm.ddd" placeholder="请选择有效期" style="width:100%">
|
|
|
- <el-option label="购买成功后,6个月内有效" value="1"></el-option>
|
|
|
- <el-option label="购买成功后,1年内有效" value="2"></el-option>
|
|
|
- <el-option label="购买成功后,2年内有效" value="3"></el-option>
|
|
|
+ <el-form-item label="有效期" prop="valid">
|
|
|
+ <el-select v-model="goodForm.valid" placeholder="请选择有效期" style="width:100%">
|
|
|
+ <el-option label="购买成功后,1年内有效" value="1"></el-option>
|
|
|
+ <el-option label="购买成功后,2年内有效" value="2"></el-option>
|
|
|
+ <el-option label="购买成功后,3年内有效" value="3"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="商品状态" prop="eee">
|
|
|
- <el-radio-group v-model="goodForm.eee">
|
|
|
+ <el-form-item label="商品状态" prop="status">
|
|
|
+ <el-radio-group v-model="goodForm.status">
|
|
|
<el-radio :label="1">上架</el-radio>
|
|
|
- <el-radio :label="2">下架</el-radio>
|
|
|
+ <el-radio :label="0">下架</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
@@ -122,13 +125,25 @@
|
|
|
|
|
|
<script setup name="">
|
|
|
import { ref, getCurrentInstance, onMounted } from 'vue'
|
|
|
+ import {
|
|
|
+ getCommodityList,
|
|
|
+ addCommodity,
|
|
|
+ updateCommodity,
|
|
|
+ getCommodityInfo,
|
|
|
+ deleteCommodity
|
|
|
+ } from '@/api/agent/indexTwo.js'
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
const title = proxy.$route.meta.title;
|
|
|
const queryParams = ref({
|
|
|
page: 1,
|
|
|
limit: 10,
|
|
|
- xxx: '',
|
|
|
- yyy: ''
|
|
|
+ type: '',
|
|
|
+ status: ''
|
|
|
+ })
|
|
|
+ const typeCfg = ref({
|
|
|
+ 1:'基础版',
|
|
|
+ 2:'专业版',
|
|
|
+ 3:'专家版'
|
|
|
})
|
|
|
const queryRef = ref(null)
|
|
|
const dataList = ref([])
|
|
|
@@ -140,46 +155,51 @@
|
|
|
const dialogTitle = ref('新增商品')
|
|
|
const goodForm = ref({
|
|
|
id:'',
|
|
|
+ type:1,
|
|
|
+ frequency:'',
|
|
|
+ price:'',
|
|
|
+ valid:'',
|
|
|
+ status:1
|
|
|
})
|
|
|
const goodRef = ref(null)
|
|
|
const goodRules = ref({
|
|
|
- bbb: [
|
|
|
+ frequency: [
|
|
|
{ required: true, message: '请选择问卷次数', trigger: 'change' },
|
|
|
],
|
|
|
- ccc: [
|
|
|
+ price: [
|
|
|
{ required: true, message: '请输入价格', trigger: 'blur' },
|
|
|
],
|
|
|
- ddd: [
|
|
|
+ valid: [
|
|
|
{ required: true, message: '请选择有效期', trigger: 'change' },
|
|
|
],
|
|
|
- eee: [
|
|
|
+ status: [
|
|
|
{ required: true, message: '请选择商品状态', trigger: 'change' },
|
|
|
],
|
|
|
})
|
|
|
|
|
|
- onMounted(()=>{
|
|
|
- getList();
|
|
|
- })
|
|
|
-
|
|
|
const resetQuery = () => {
|
|
|
proxy.$refs.queryRef.resetFields();
|
|
|
queryParams.value = {
|
|
|
- xxx: '',
|
|
|
- yyy: ''
|
|
|
+ type: '',
|
|
|
+ status: ''
|
|
|
}
|
|
|
getList();
|
|
|
}
|
|
|
|
|
|
const changeType = (idx) => {
|
|
|
tidx.value = idx;
|
|
|
+ goodForm.value.type = idx;
|
|
|
}
|
|
|
|
|
|
const getList = async () => {
|
|
|
let query = {...queryParams.value};
|
|
|
loading.value = true;
|
|
|
- // const res = await getCoachList(query);
|
|
|
- // dataList.value = res.data.list;
|
|
|
- // total.value = res.data.total;
|
|
|
+ const res = await getCommodityList(query);
|
|
|
+ dataList.value = res.data.list;
|
|
|
+ dataList.value.forEach(item=>{
|
|
|
+ item.status = item.status==1?true:false;
|
|
|
+ })
|
|
|
+ total.value = res.data.total;
|
|
|
loading.value = false;
|
|
|
}
|
|
|
const handleSizeChange = (e)=>{
|
|
|
@@ -194,6 +214,11 @@
|
|
|
const reset = () => {
|
|
|
goodForm.value = {
|
|
|
id:'',
|
|
|
+ type:1,
|
|
|
+ frequency:'',
|
|
|
+ price:'',
|
|
|
+ valid:'',
|
|
|
+ status:1
|
|
|
};
|
|
|
proxy.resetForm("goodRef");
|
|
|
}
|
|
|
@@ -204,32 +229,35 @@
|
|
|
}
|
|
|
const handleEdit = (row) => {
|
|
|
reset();
|
|
|
- // getCoachInfo(row.id).then(response => {
|
|
|
+ getCommodityInfo(row.id).then(response => {
|
|
|
goodForm.value = response.data;
|
|
|
+ goodForm.value.frequency+='';
|
|
|
+ goodForm.value.valid+='';
|
|
|
+ tidx.value = +goodForm.value.type??1;
|
|
|
dialogTitle.value = "编辑商品";
|
|
|
show.value = true;
|
|
|
- // });
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
const submitForm = () => {
|
|
|
proxy.$refs.goodRef.validate((valid) => {
|
|
|
if (valid) {
|
|
|
buttonLoading.value = true;
|
|
|
- // if(advertForm.value.id){
|
|
|
- // updateCoach(advertForm.value).then((res)=>{
|
|
|
- // if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
- // buttonLoading.value = false;
|
|
|
- // userShow.value = false;
|
|
|
- // getList();
|
|
|
- // })
|
|
|
- // }else{
|
|
|
- // addCoach(advertForm.value).then((res)=>{
|
|
|
- // if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
- // buttonLoading.value = false;
|
|
|
- // userShow.value = false;
|
|
|
- // getList();
|
|
|
- // })
|
|
|
- // }
|
|
|
+ if(goodForm.value.id){
|
|
|
+ updateCommodity(goodForm.value).then((res)=>{
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
+ buttonLoading.value = false;
|
|
|
+ show.value = false;
|
|
|
+ getList();
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ addCommodity(goodForm.value).then((res)=>{
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
+ buttonLoading.value = false;
|
|
|
+ show.value = false;
|
|
|
+ getList();
|
|
|
+ })
|
|
|
+ }
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
@@ -239,13 +267,27 @@
|
|
|
show.value = false;
|
|
|
reset();
|
|
|
}
|
|
|
+
|
|
|
async function handleDelete(row) {
|
|
|
- // await proxy?.$modal.confirm('确认删除教练【' + row.realName + '】吗?').finally(() => loading.value = false);
|
|
|
- // let res = await deleteCoach([row.id]);
|
|
|
- // if (res.code === 0) proxy?.$modal.msgSuccess("删除成功");
|
|
|
- // else return proxy?.$modal.msgError(res.msg);
|
|
|
- // await getList();
|
|
|
+ await proxy?.$modal.confirm('确认删除该商品吗?').finally(() => loading.value = false);
|
|
|
+ let res = await deleteCommodity([row.id]);
|
|
|
+ if (res.code === 0) proxy?.$modal.msgSuccess("删除成功");
|
|
|
+ else return proxy?.$modal.msgError(res.msg);
|
|
|
+ await getList();
|
|
|
+ }
|
|
|
+
|
|
|
+ function statusChange(e,row) {
|
|
|
+ let data = JSON.parse(JSON.stringify(row));
|
|
|
+ data.status = data.status?1:0;
|
|
|
+ updateCommodity(data).then((res)=>{
|
|
|
+ if(res.code!==0) return proxy.$message.error(res.msg);
|
|
|
+ getList();
|
|
|
+ })
|
|
|
}
|
|
|
+
|
|
|
+ onMounted(()=>{
|
|
|
+ getList();
|
|
|
+ })
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|