提交 9fb20cbc authored 作者: huaxinzhu's avatar huaxinzhu

1

上级 500574a8
...@@ -5,6 +5,7 @@ ENV = 'development' ...@@ -5,6 +5,7 @@ ENV = 'development'
VUE_APP_BASE_API = 'http://sjapi.jxhh.com' VUE_APP_BASE_API = 'http://sjapi.jxhh.com'
# 开发环境 # 开发环境
#VUE_APP_BASE_API = 'http://192.168.111.36:8200' #VUE_APP_BASE_API = 'http://192.168.111.36:8200'
#VUE_APP_BASE_API = 'http://192.168.111.34:8200'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true
...@@ -28,18 +28,18 @@ service.interceptors.request.use(config => { ...@@ -28,18 +28,18 @@ service.interceptors.request.use(config => {
// 响应拦截器 // 响应拦截器
service.interceptors.response.use(res => { service.interceptors.response.use(res => {
// debugger //debugger
let code = res.data.code let code = res.data.code
if(res.data.code !== 0) { //if(res.data.code !== 0) {
code = res.data.code || 200; code = res.data.code || 200;
} else { // } else {
code = 0; // code = 0;
} // }
// 返回所有数据的统一处理 // 返回所有数据的统一处理
const data = res.data; const data = res.data;
// 获取错误信息 // 获取错误信息
const message = errorCode[code] || res.data.message || errorCode['default']; const message = errorCode[code] || res.data.message || res.data.msg || errorCode['default'];
if(code === 1 || code === 200) { if(code === 1 || code === 200) {
return res.data return res.data
......
<template>
<div class="app-container">
<!-- <div v-for="(item, index) in speData" :key="index">-->
<!-- <p>-->
<!-- <span>规格名称:</span>-->
<!-- <el-select v-model="fuck" placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in cities"-->
<!-- :key="item.value"-->
<!-- :label="item.label"-->
<!-- :value="item.value">-->
<!-- <span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </p>-->
<!-- </div>-->
<p>
<span>规格名称:</span>
<el-select v-model="input3" placeholder="请选择">
<el-option
v-for="(item,index) in cities"
:key="item.value"
:label="item.label"
:value="item.value">
<el-button style="float: bottom; color: #8492a6; font-size: 13px; padding: 10px 20px;"
v-if="index === cities.length-1" @click="fuck">新增</el-button>
</el-option>
</el-select>
</p>
</div>
</template>
<script>
import descartes from "@/utils/dikaerjs.js";
import { UploadImg } from '@/api/module/goods'
export default {
name: "GoodsSpecifications",
props: {
specificationsdata: {
type: Object,
required: true
}
},
data() {
return {
speData: [], // 商品规格总数据
input3: '',
cities: [{
value: 'Beijing',
label: '北京'
}, {
value: 'Shanghai',
label: '上海'
},{
value: '',
label: ''
}],
/**/
arrtdall:[],
nopeimg: require("@/assets/image/nopic100.jpg"),
checked: false,
type: "",
imgname: "",
indeximg: "",
indexsimg: "",
shopType: [],
shopTypes: [],
newList: [],
newData: [],
tableData7: [], // 规格列表表格
goodsNowStock: "",
jsPrice: "", //协议价
price: "", //指导价
scPrice: "", //市场价
weight: "",
spanArr: [],
pos: "",
spanArr1: [],
pos1: "",
tablearr: [],
spanArrS: {
spanArr0: [],
spanArr1: [],
},
posS: {
pos0: "",
pos1: "",
},
};
},
components: {},
mounted() {},
watch:{},
methods: {
fuck() {
this.cities.push({
label: '哈哈',
value: "hh"
});
}
},
};
</script>
<style scoped>
</style>
...@@ -24,16 +24,18 @@ ...@@ -24,16 +24,18 @@
</ul> </ul>
</div> </div>
<div class="floor-cont" ref="scrollview"> <div class="floor-cont" ref="scrollview">
<!-- 商品信息 -->
<div class="floor-item"> <div class="floor-item">
<div class="floor-item-box"> <div class="floor-item-box">
<p class="card-header-title floor-item-box-title"><span class="blue-block-goods blue-block-goods-title"></span>商品信息</p> <p class="card-header-title floor-item-box-title"><span class="blue-block-goods blue-block-goods-title"></span>商品信息</p>
<Goodsinfomation ref="goodsInfo" :goodsinfodata='goodsinfodata'/> <Goodsinfomation ref="goodsInfo" :goodsinfodata='goodsinfodata'/>
</div> </div>
</div> </div>
<!-- 商品规格 -->
<div class="floor-item"> <div class="floor-item">
<div class="floor-item-box"> <div class="floor-item-box">
<p class="card-header-title floor-item-box-title"><span class="blue-block-goods blue-block-goods-title"></span>商品规格</p> <p class="card-header-title floor-item-box-title"><span class="blue-block-goods blue-block-goods-title"></span>商品规格</p>
<GoodsSpecifications :specificationsdata="specificationsdata"/>
</div> </div>
</div> </div>
...@@ -73,10 +75,17 @@ ...@@ -73,10 +75,17 @@
<script> <script>
import { getAreaList } from '@/api/module/retreat/address'; import { getAreaList } from '@/api/module/retreat/address';
import Goodsinfomation from './components/goodsinfomation' import Goodsinfomation from './components/goodsinfomation';
import Goodsaftersale from './components/goodsaftersale' import GoodsSpecifications from './components/goodsspecifications';
// let TIMER = null; import Goodsaftersale from './components/goodsaftersale';
export default { export default {
name: 'Index',
components: {
Goodsinfomation,
GoodsSpecifications,
Goodsaftersale,
},
data() { data() {
return { return {
loading: false, loading: false,
...@@ -91,7 +100,7 @@ ...@@ -91,7 +100,7 @@
leaf: 'leaf' leaf: 'leaf'
}, },
isNextStep: true, isNextStep: true,
isShowGoodsDetails: false, isShowGoodsDetails: true,
isFIActive: 0, isFIActive: 0,
/**/ /**/
floorNav: [ floorNav: [
...@@ -105,6 +114,10 @@ ...@@ -105,6 +114,10 @@
goodsinfodata: { goodsinfodata: {
categoryList: [], categoryList: [],
categoryStr: '' categoryStr: ''
},
/* 商品规格 */
specificationsdata: {
}, },
/* 售后及服务 */ /* 售后及服务 */
goodsaftersale: { goodsaftersale: {
...@@ -116,10 +129,6 @@ ...@@ -116,10 +129,6 @@
TIMER: null, TIMER: null,
} // return end } // return end
}, },
components: {
Goodsinfomation,
Goodsaftersale
},
created() { created() {
...@@ -234,20 +243,47 @@ ...@@ -234,20 +243,47 @@
} }
}, },
/*-----------------------*/
/* 添加商品详细 */ /* 添加商品详细 */
/* 设置楼层导航事件驱动方法* @params Number index 楼层下标 */ /* 设置楼层导航事件驱动方法* @params Number index 楼层下标 */
setFloorNavMountClick(index) { setFloorNavMountClick(index) {
let _this = this let _this = this
_this.isFIActive = index; _this.isFIActive = index;
//debugger clearInterval(_this.TIMER);
clearInterval(_this.TIMER)
// 可以通过 floor-cont的父元素,高度减去上下两个div的高度,来准确计算出来了,需要wtach监听,暂时用初步高来计算,一般问题不大
let floor_cont = document.getElementsByClassName('floor-cont')[0];
let floor_item = document.getElementsByClassName('floor-item'), let floor_item = document.getElementsByClassName('floor-item'),
floor_offsetTop = floor_item[index].offsetTop - floor_item[0].offsetTop, // 电梯层数,即需要滚动的dom个数
window_scrollTop = _this.$refs.scrollview.scrollTop, fiLength = floor_item.length,
timer = { step: 45, times: 20, FLOOR_OFFSETTOP: floor_offsetTop }; // 每次点击,对应dom需要滚动的高度
floor_offsetTop = floor_item[index].offsetTop - floor_item[0].offsetTop,
window_scrollTop = _this.$refs.scrollview.scrollTop,
// 基本滚动动画配置
timer = { step: 45, times: 20, FLOOR_OFFSETTOP: 0 };
// floor_cont 可是窗口的 高
let hxz = 0;
let resList = [];
let list = [];
for(let i = 0; i < floor_item.length; i++) {
list.push(Number(floor_item[i].offsetHeight));
}
resList = list.slice(index)
for(let j = 0; j < resList.length; j++) {
hxz += resList[j]
}
if( hxz > floor_cont.offsetHeight) {
timer.FLOOR_OFFSETTOP = floor_offsetTop;
}else {
//let maxScrollTopDom = _this.comMaxScrollTop(0,floor_item,floor_cont.offsetHeight);
timer.FLOOR_OFFSETTOP = floor_cont.scrollHeight - floor_cont.offsetHeight
}
console.log(3333,floor_item[0].offsetTop,floor_item[1].offsetTop,floor_item[2].offsetTop,floor_item[3].offsetTop,floor_item[4].offsetTop,document.body.scrollTop,document.documentElement.scrollTop);
//debugger
if (window_scrollTop > floor_offsetTop) { if (window_scrollTop > floor_offsetTop) {
_this.setFloorScrollArrowUp(timer) _this.setFloorScrollArrowUp(timer)
} else if (window_scrollTop === floor_offsetTop) { } else if (window_scrollTop === floor_offsetTop) {
...@@ -256,9 +292,9 @@ ...@@ -256,9 +292,9 @@
_this.setFloorScrollArrowDown(timer) _this.setFloorScrollArrowDown(timer)
} }
}, },
/* 设置楼层向上滚动* @params Object timer 定时器配置 */ /* 设置楼层向上滚动* @params Object timer 定时器配置 */
setFloorScrollArrowUp(timer) { setFloorScrollArrowUp(timer) {
//debugger
let _this = this let _this = this
clearInterval(_this.TIMER) clearInterval(_this.TIMER)
_this.TIMER = setInterval(() => { _this.TIMER = setInterval(() => {
...@@ -271,23 +307,11 @@ ...@@ -271,23 +307,11 @@
} }
}, timer.times) }, timer.times)
}, },
/* 设置楼层向下滚动@params Object timer 定时器配置 */ /* 设置楼层向下滚动@params Object timer 定时器配置 */
setFloorScrollArrowDown(timer) { setFloorScrollArrowDown(timer) {
let floor_item = document.getElementsByClassName('floor-cont');
let fuck = 0;
let _this = this let _this = this
clearInterval(_this.TIMER) clearInterval(_this.TIMER)
fuck = timer.FLOOR_OFFSETTOP
/**/
// if(_this.isFIActive === 4) {
// console.log(280,_this.$refs.scrollview.scrollTop);
// timer.FLOOR_OFFSETTOP = timer.FLOOR_OFFSETTOP - 333;
// }
console.log(999,floor_item[0].offsetHeight); //offsetHeight
/**/
_this.TIMER = setInterval(() => { _this.TIMER = setInterval(() => {
const window_scrollTop = _this.$refs.scrollview.scrollTop const window_scrollTop = _this.$refs.scrollview.scrollTop
if (window_scrollTop >= timer.FLOOR_OFFSETTOP) { if (window_scrollTop >= timer.FLOOR_OFFSETTOP) {
...@@ -299,6 +323,37 @@ ...@@ -299,6 +323,37 @@
}, timer.times) }, timer.times)
}, },
/*-----------*/
//
comMaxScrollTop(jsq,listDom,floor_cont) {
let result = {
index: 0,
scrollTop: 0,
};
jsq++
let total = 0;
let orgIndex = 5 - jsq;
let List = [];
for(let i =0; i < listDom.length; i++) {
List.push( Number(listDom[i].offsetHeight) );
}
// 得到,所有dom的盒子高度
let resList = [];
resList = List.slice(orgIndex);
for(let j = 0; j < resList.length; j++) {
total += Number(resList[j])
}
if(total < floor_cont) {
return this.comMaxScrollTop(jsq,listDom,floor_cont);
}else if(total >= floor_cont) {
result.index = jsq;
result.scrollTop = total;
return result ;
}
},
} // methods end } // methods end
} }
</script> </script>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论