Files
soulspace/pages/component/commonComponents/sticky.vue
2025-03-05 15:16:45 +08:00

334 lines
7.8 KiB
Vue

<template>
<view style="background-color: #fff; width: 100%">
<u-tabs
lineWidth="30"
lineColor="#294a97"
:activeStyle="{
color: '#294a97',
transform: 'scale(1.05)',
}"
:inactiveStyle="{
color: '#606266',
transform: 'scale(1)',
}"
:itemStyle="itemStyle"
:keyName="label"
:list="dataList"
:is-scroll="false"
:current="currentCateIndex"
@change="handleselectCate"
>
<template slot="labelSlot" slot-scope="slotProps">
<slot name="labelSlot" :data="slotProps.data"></slot>
</template>
</u-tabs>
</view>
</template>
<script>
import $http from "@/config/requestConfig.js";
import { mapState } from "vuex";
export default {
props: ["list", "currentCateIndex", "label", "itemStyle"],
components: {},
data() {
return {
detailInfo: {},
playData: {},
searchValue: "",
twoCateList: [], // 二级分类标题
dataList: [{}, {}], // 方剂标题
// currentCateIndex: 0, // 当前选中的一级分类
curTwoCateIndex: 0, // 当前选中的二级分类
searchList: [], // 搜索结果数组
showSearchList: false,
userMes: {}, // 用户信息
searchDisable: false, // 搜索不可用
limitShow: false,
limitTitle: "提示",
limitContent: "",
scrollViewHeight: 0,
urlList: {
instructionsForUse: "app/phone.do?getMembershipGuide",
},
};
},
onLoad() {
this.getCourseDescriptionData();
},
onHide() {
},
computed: {
...mapState(["userInfo"]),
},
watch: {
list: {
immediate: true,
handler(newRoute) {
this.dataList=[...this.list]
},
},
},
methods: {
getData() {
this.$http
.post(this.urlList.instructionsForUse, {
customerOid: "94c043df9daa40278e86e79fbd149c8d",
customerType: "D",
token: uni.getStorageSync("token"),
oid: "b07e45f6a5f3491db9854b16f3fd8b19",
step: 0,
limit: 100,
})
.then((res) => {
this.detailInfo = res.obj;
});
},
getPriceData() {
var that = this;
setTimeout(() => {
that.$nextTick(() => {
that.$refs.priceDetail.getData();
});
}, 100);
},
// 检查是有权限使用搜索功能
checkDisable() {
console.log("点击了");
},
// 获取用户详情
getUserInfo() {
// 用户详情
if (this.userInfo.id != undefined) {
this.$http.post("book/user/info/" + this.userInfo.id).then((res) => {
this.userMes = res.user;
this.getCateList();
console.log(this.userMes, "呼呼");
});
}
},
// 详情
gotoDetail(item) {
if (this.currentCateIndex == 0) {
uni.navigateTo({
url: "./xueshugongxianDetail?id=" + item.id,
});
return;
}
if (this.currentCateIndex == 1) {
uni.navigateTo({
url: "./medicaldesDetail?id=" + item.id,
});
return;
}
if (this.currentCateIndex == 2) {
console.log("111", item);
uni.navigateTo({
url: "./video?title=" + item.name + "&src=" + item.url,
});
return;
}
if (this.currentCateIndex == 3) {
console.log("111", item);
uni.navigateTo({
url: "./recordDetail?id=" + item.id,
});
return;
}
},
// 获取名称
getTitles(dictType) {
if (this.currentCateIndex == 0) {
if (dictType == 2) {
uni.navigateTo({
url: "./zhuanzhuchuban",
});
return;
}
$http
.request({
url: "book/generalArticle/articleByPage",
method: "POST",
data: {
type: dictType == 1 ? "1" : "2",
limit: 1000,
current: 1,
},
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
if (res.code == 0 && res.result && res.result.records.length > 0) {
this.dataList = res.result.records;
} else {
this.dataList = [];
}
})
.catch((e) => {
this.dataList = [];
console.log(e);
});
}
if (this.currentCateIndex == 1) {
$http
.request({
url: "book/medicaldes/inheritListByPage",
method: "POST",
data: {
dictType: dictType,
limit: 1000,
current: 1,
},
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
if (res.code == 0 && res.result.records.length > 0) {
this.dataList = res.result.records;
for (let i = 0; i < this.dataList.length; i++) {
this.dataList[i].imageslist = [];
this.dataList[i].imageslist = this.dataList[i].img.split(";");
}
} else {
this.dataList = [];
}
})
.catch((e) => {
this.dataList = [];
});
}
if (this.currentCateIndex == 2) {
$http
.request({
url: "book/medicaldes/lightListByType?type=" + dictType,
method: "POST",
data: {
limit: 1000,
page: 1,
},
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
if (res.code == 0 && res.result.length > 0) {
this.dataList = res.result;
} else {
this.dataList = [];
}
})
.catch((e) => {
this.dataList = [];
console.log(e);
});
}
if (this.currentCateIndex == 3) {
$http
.request({
url: "book/medicaldes/recordByType?type=" + dictType,
method: "POST",
data: {
limit: 1000,
page: 1,
},
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
if (res.code == 0 && res.result.length > 0) {
this.dataList = res.result;
} else {
this.dataList = [];
}
})
.catch((e) => {
this.dataList = [];
console.log(e);
});
}
},
setTwoCateIndex(item, index) {
let dictType = item.dictType;
this.curTwoCateIndex = index;
this.getTitles(dictType);
},
async handleselectCate(e) {
this.$emit("handleselectCate", e, e.index);
var that = this;
},
transformData(inputData) {
const result = {};
inputData.forEach((item) => {
const { letter } = item;
if (!result[letter]) {
result[letter] = [];
}
result[letter].push(item);
});
return result;
},
getCateList(id) {
id ? "" : (id = 0);
this.twoCateList = [];
this.curTwoCateIndex = 0;
this.getTowCateList(this.cateList[0].type);
},
},
onBackPress() {
// #ifdef APP-PLUS
plus.key.hideSoftKeybord();
// #endif
},
};
</script>
<style lang="scss" scoped>
.headImage {
width: 100%;
height: 300rpx;
}
.scroll-Y {
height: 100%;
}
.scroll-view_H {
white-space: nowrap;
width: 100%;
}
.scroll-view-item_H {
display: inline-block;
width: 100%;
}
.dataList {
height: 100%;
}
.titleList2 {
height: calc(100% - 170rpx);
}
.instructionsForUse {
height: calc(100% - 380rpx);
padding: 30rpx 30rpx 0;
box-sizing: border-box;
}
.cateList {
width: 100%;
margin-top: 15rpx;
}
.instructionsForUseBox {
height: calc(100%);
}
</style>