修改价格

This commit is contained in:
2024-05-31 09:32:07 +08:00
parent 1988fed055
commit 35aa7e3666
5 changed files with 730 additions and 150 deletions

View File

@@ -0,0 +1,399 @@
<template>
<el-dialog
:title="'修改关联商品价格'"
:close-on-click-modal="false"
:visible.sync="visible"
@close="handlereset"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
label-width="100px"
>
<el-form-item label="目录名称" prop="title">
{{ dataForm.title }}
<!-- <el-input
v-model=""
placeholder="目录名称"
disabled
></el-input> -->
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="类型" prop="type">
<div v-if="dataForm.type == 0">免费</div>
<div v-if="dataForm.type == 1">普通收费</div>
<div v-if="dataForm.type == 2">超v课程</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="目录价格" prop="type">
<span
>半年:
<span style="font-weight: bold;margin-right: 20px;">
¥{{ dataForm.halfFee }}</span
>
</span>
<span
>全年:
<span style="font-weight: bold;">
¥{{ dataForm.fee }}</span
></span
>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-col :span="6">
<el-form-item label="商品原价" prop="halfFee">
<span style="color: rgb(255, 91, 54);font-weight: bold;">
{{ dataForm.yearType == 0 ? dataForm.halfFee : dataForm.fee }}
</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="修改后价格" prop="halfFee">
<el-input
v-model="dataForm.currentFee"
placeholder="修改价格"
></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<div
style="height: 40px;display: flex;
align-items: center;justify-content: flex-end;"
>
<el-switch
v-model="dataForm.yearType"
active-color="#13ce66"
:active-value="1"
:inactive-value="0"
active-text="全年"
inactive-text="半年"
@change="handleChangeYearType"
>
</el-switch>
</div>
</el-col>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="关联商品" prop="splits">
<el-radio-group v-model="dataForm.productId">
<el-radio
:label="item.productId"
border
v-for="item in goodsList"
style="width: 100%;"
>{{ item.productName }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="handlereset">取消</el-button>
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
</span>
</el-dialog>
</template>
<script>
import global from "../../common/common.vue"; //引入共用组间
export default {
data() {
return {
linkList: [{ label: "半年", value: 0 }, { label: "一年", value: 1 }],
baseUrl: global.baseUrl,
goodsList: [],
currentGoodsList: [],
visible: false,
typeList: [
{
//类型0免费1普通收费2超v课程
dictType: 0,
dictValue: "免费"
},
{
dictType: 1,
dictValue: "普通收费"
},
{
dictType: 2,
dictValue: "超v课程"
}
],
needCreateList: [
{
////是否同步创建商品0否1是
dictType: 0,
dictValue: "否"
},
{
dictType: 1,
dictValue: "是"
}
],
medicaldesBookTypeList: [
{
dictType: 1,
dictValue: "中医基础"
},
{
dictType: 2,
dictValue: "中医经典"
},
{
dictType: 3,
dictValue: "各家学说"
},
{
dictType: 4,
dictValue: "中医临床"
},
{
dictType: 5,
dictValue: "文学"
},
{
dictType: 6,
dictValue: "哲学"
}
],
props: {
dictType: "",
dictValue: ""
},
gushuList: [],
authorList: [],
restaurants: [],
author: "",
publisherList: [],
fileList: [],
fileListNovel: [],
dialogImageUrl: "",
dialogVisible: false,
dataForm: {
oldFee: 0
},
splitsTypeList: [],
dataRule: {}
};
},
created() {
this.getBookList();
this.loadAll();
},
mounted() {
// this.restaurants = this.loadAll();
},
methods: {
handleChangeYearType(e) {
this.$forceUpdate()
// this.productId = "";
console.log("e at line 235:", e);
if (e == 0) {
// this.dataForm.oldFee = this.dataForm.halfFee;
this.dataForm.currentFee = this.dataForm.halfFee;
} else if (e == 1) {
// this.dataForm.oldFee = this.dataForm.fee;
this.dataForm.currentFee = this.dataForm.fee;
}
},
changeType(e) {
console.log("e at line 256:", e);
if (e == 0) {
this.dataForm.content = "";
} else {
this.dataForm.url = "";
}
},
init(row, courseid) {
console.log("row2", row);
this.dataForm = { ...row } || {};
this.dataForm.courseId = courseid || "";
this.visible = true;
this.dataForm.currentFee = this.dataForm.halfFee;
this.dataForm.old = this.dataForm.halfFee;
this.dataForm.yearType = 0;
this.$forceUpdate();
if (row.productList && row.productList.length > 0) {
this.goodsList = [...row.productList];
this.currentGoodsList = this.goodsList.filter(e =>
e.productName.includes("半年")
);
}
},
// 表单提交
dataFormSubmit() {
console.log("11111", this.dataForm.medicaldesBookType);
// if (this.dataForm.medicaldesBookType.length == 0) {
// this.$message.error("请选择图书类型");
// return
// }
this.$refs["dataForm"].validate(valid => {
if (valid) {
if (!this.dataForm.currentFee) {
this.$message.error("请输入价格");
return;
}
if (!this.dataForm.productId) {
this.$message.error("请选择关联的商品");
return;
}
this.$http({
url: this.$http.adornUrl("/master/course/changeCatalogueFee"),
method: "post",
data: this.$http.adornData({
catalogueId: this.dataForm.id,
type: this.dataForm.yearType, //0半年1全年
fee: this.dataForm.currentFee,
productId: this.dataForm.productId
// courseId: this.dataForm.courseId || undefined,
// id: this.dataForm.id || undefined,
// title: this.dataForm.title,
// type: this.dataForm.type, //类型0免费1普通收费2超v课程
// halfFee: this.dataForm.halfFee, //半年价格
// fee: this.dataForm.fee, //全年价格
// sort: this.dataForm.sort,
// needCreate: this.dataForm.needCreate //是否同步创建商品0否1是
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
}
});
} else {
this.$message.error(data.msg);
}
});
}
});
},
handlePicSuccess(res, file) {
if (res.msg == "success") {
this.dataForm.images = res.url;
this.$message.success("上传成功");
} else {
this.$message.error("上传失败");
}
},
//图书分类
getBookList() {
this.$http({
url: this.$http.adornUrl("/book/sysdictdata/selectByType/book_type"),
method: "get"
// params: this.$http.adornParams({
// 'type': 'book_type',
// })
}).then(({ data }) => {
console.log(data);
// this.bookList = data.dataList
});
// 获取图书拆分类型
this.$http({
url: this.$http.adornUrl("/book/sysdictdata/selectByType/splitsType"),
method: "get"
}).then(({ data }) => {
this.splitsTypeList = data.dataList;
});
// 获取古书
this.$http({
url: this.$http.adornUrl("/book/book/getAncientBooks"),
method: "post"
}).then(({ data }) => {
this.gushuList = data.books;
});
},
handleRemove(file) {
this.dataForm.images = "";
},
handlePictureCardPreview(file) {
this.dataForm.images = file.url;
this.dialogVisible = true;
},
handleDownload(file) {
console.log(file);
},
handlereset() {
(this.fileList = []), (this.fileListNovel = []), (this.visible = false);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 3 个文件,本次选择了 ${
files.length
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleRemoveNovel(file) {
this.dataForm.novel = "";
},
handleNovelSuccess(file) {
this.dataForm.novel = file.url;
},
// querySearch(queryString, cb) {
// var restaurants = this.restaurants;
// var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
// // 调用 callback 返回建议列表的数据
// console.log(results)
// cb(results);
// },
// createFilter(queryString) {
// return (restaurant) => {
// return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
// };
// },
loadAll() {
this.$http({
url: this.$http.adornUrl("/book/author/bookAuthorList"),
method: "get"
}).then(({ data }) => {
this.authorList = data.list;
});
this.$http({
url: this.$http.adornUrl("/book/publisher/publisherList"),
method: "get"
}).then(({ data }) => {
this.publisherList = data.list;
});
}
// handleSelect(item) {
// this.dataForm.authorId = item.id
// console.log(item);
// }
}
};
</script>
<style lang="less" scoped>
/deep/.el-radio.is-bordered + .el-radio.is-bordered {
margin-left: 0 !important;
margin-top: 10px !important;
}
</style>