|
@@ -2,27 +2,101 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div>
|
|
<div>
|
|
|
<!-- 模板内容 -->
|
|
<!-- 模板内容 -->
|
|
|
- <div class="g-card">
|
|
|
|
|
- <span class="g-card-title">商品详情页</span>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
|
|
+ <el-form :model="form" disabled label-width="120px" label-position="right">
|
|
|
|
|
+ <div class="g-card">
|
|
|
|
|
+ <span class="g-card-title">商品详情页</span>
|
|
|
|
|
+ <el-form-item label="商品名称">
|
|
|
|
|
+ <el-input v-model="form.productName"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="商品类目">
|
|
|
|
|
+ <el-input v-model="form.categoryName"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="商品封面图">
|
|
|
|
|
+ <img class="formImage" :src="form.productImage">
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="上传视频">
|
|
|
|
|
+ <video
|
|
|
|
|
+ ref="videoPlayer"
|
|
|
|
|
+ id="video"
|
|
|
|
|
+ class="video-js vjs-default-skin vjs-big-play-centered"
|
|
|
|
|
+ controls
|
|
|
|
|
+ webkit-playsinline="true"
|
|
|
|
|
+ playsinline="true"
|
|
|
|
|
+ :autoplay="false"
|
|
|
|
|
+ preload="auto"
|
|
|
|
|
+ ></video>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="商品详情描述">
|
|
|
|
|
+ <el-input type="textarea" v-model="form.instructions"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="组合套餐">
|
|
|
|
|
+ <div v-for="(item, index) in form.groupList">
|
|
|
|
|
+ <div class="topName">{{ item.productGroupTopName }}</div>
|
|
|
|
|
+ <div v-for="(sub, subIndex) in item.list">
|
|
|
|
|
+ <div class="listItem">
|
|
|
|
|
+ <span>{{ sub.productName }}</span>
|
|
|
|
|
+ <span>{{ sub.quantity }}{{ sub.unit }}</span>
|
|
|
|
|
+ <span>{{ `${sub.price}元` }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="g-card">
|
|
|
|
|
+ <span class="g-card-title">价格设定</span>
|
|
|
|
|
+ <el-form-item label="原价">
|
|
|
|
|
+ <el-input v-model="form.price"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="参考售价">
|
|
|
|
|
+ <el-input v-model="form.soldPrice"></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-form>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<!-- 行为区域 -->
|
|
<!-- 行为区域 -->
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+import videojs from 'video.js'
|
|
|
|
|
+import 'video.js/dist/video-js.css';
|
|
|
|
|
+import axios from "axios";
|
|
|
|
|
+
|
|
|
export default {
|
|
export default {
|
|
|
// 数据存放区域
|
|
// 数据存放区域
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ form: {},
|
|
|
|
|
+ player: null
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
// 生命周期函数
|
|
// 生命周期函数
|
|
|
created() {
|
|
created() {
|
|
|
- console.log(this.$route.query.info)
|
|
|
|
|
|
|
+ if(this.$route.query.id) {
|
|
|
|
|
+ this.initData();
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
// 方法函数
|
|
// 方法函数
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ playerMedia() {
|
|
|
|
|
+ this.player = videojs(this.$refs.videoPlayer, function onPlayerReady() {
|
|
|
|
|
+ console.log('Your player is ready!');
|
|
|
|
|
+ });
|
|
|
|
|
+ this.player.src({
|
|
|
|
|
+ src: this.form.video, // 替换为你的MP4视频URL
|
|
|
|
|
+ type: 'video/mp4'
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ async initData() {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await axios.get(`https://test.baoxianzhanggui.com/locallive-java/customer/product/getProductDetail?productId=${this.$route.query.id}` );
|
|
|
|
|
+ this.form = res.data.result
|
|
|
|
|
+ if(this.form.video) {
|
|
|
|
|
+ this.playerMedia()
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('获取产品详情失败:', error);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
// 计算属性
|
|
// 计算属性
|
|
|
computed: {
|
|
computed: {
|
|
@@ -30,4 +104,26 @@ export default {
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
<!-- 样式区域 -->
|
|
<!-- 样式区域 -->
|
|
|
-<style lang='scss' scoped></style>
|
|
|
|
|
|
|
+<style lang='scss' scoped>
|
|
|
|
|
+.formImage{
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ width: 320px;
|
|
|
|
|
+ height: 180px;
|
|
|
|
|
+ border-radius: 5px;
|
|
|
|
|
+}
|
|
|
|
|
+#video{
|
|
|
|
|
+ width: 320px;
|
|
|
|
|
+ height: 180px;
|
|
|
|
|
+}
|
|
|
|
|
+.topName{
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+.listItem{
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
|
+ span{
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|