齐采药WEB端项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

754 lines
19 KiB

<!-- 页脚 -->
<template>
<div class="footer">
<div class="box">
<div class="top">
<ul>
<li v-for="(item, index) in sverList" :key="index">
<!-- <div class="none"></div>
<div class="left">
<div class="img">
<img :src="item.img" alt />
</div>
<div class="text">
<p class="title">{{ item.title }}</p>
<p class="name">{{ item.name }}</p>
</div>
</div>
<div class="right">
<span></span>
</div> -->
</li>
</ul>
</div>
<div class="cont">
<div class="left">
<!-- <ul>
<li v-for="(item, index) in contList" :key="index">
<div class="title">{{ item.title }}</div>
<p
class="text"
v-for="(item2, index2) in item.list"
:key="index2"
@click="clickItem(item2)"
>
{{ item2 }}
</p>
</li>
</ul> -->
</div>
<div class="right">
<!-- <div class="title">合作伙伴</div>
<div class="hzhb">
<div
v-for="(item, index) in 5"
:key="index"
@click="clickItem('中国工商银行')"
>
<div class="img">
<img src="../assets/index/bank.png" alt />
</div>
<p>中国工商银行</p>
</div>
</div> -->
</div>
</div>
<div class="certificate">
Copyright 安国市菁彤网络科技有限公司 All Rights Reserved | 冀ICP备2023010208号
</div>
</div>
<div class="floatWindow">
<div class="list">
<!-- <div class="item" @click="goCustomer">
<div class="iconfont">
<img src="../assets/index/yh.png" alt />
</div>
<div>客服消息</div>
</div> -->
<!-- <div>
<el-tooltip effect="light" placement="left" manual :value="dhflag">
<div slot="content" style="line-height: 20px">
<div>
<p>
<b>专属业务员</b>
</p>
<p>张三 13456754567</p>
</div>
<div style="margin-top: 5px">
<p>
<b>其他联系方式</b>
</p>
<p>张三 13456754567</p>
<p>张三 13456754567</p>
</div>
</div>
<div class="item" @click="replyContentdh">
<div class="iconfont">
<img src="../assets/index/dh.png" alt />
</div>
<div>联系电话</div>
</div>
</el-tooltip>
</div> -->
<!-- <div class="item" @mouseleave="wxCodeHide">
<div @mouseenter="wxCode">
<div class="iconfont icon-weixin4"></div>
<div>关注微信</div>
</div>
<div class="itemCon" v-if="iScode">
<div class="ewm">
<div class="pictrue">
<div class="arrow"></div>
<img :src="codeUrl" class="bicode" />
</div>
<div class="tip">扫码关注公众号</div>
</div>
</div>
</div>-->
<div class="item" @click="goCart">
<div class="iconfont">
<img src="../assets/index/card.png" alt />
</div>
<div>购物车</div>
</div>
<div>
<!-- <el-tooltip effect="light" manual :value="xzflag" placement="left"> -->
<!-- <div slot="content">
<div>
<img style="width: 100px; height: 100px; padding: 5px" src alt />
</div>
</div> -->
<a :href="appDownloadUrl">
<div class="item">
<div class="iconfont">
<img src="../assets/index/xz.png" alt />
</div>
<div>下载APP</div>
</div>
</a>
<!-- </el-tooltip> -->
</div>
<div>
<el-tooltip effect="light" manual :value="fkflag" placement="left">
<div slot="content" class="opinion_tooltip">
<!-- 意见反馈form表单 -->
<div class="opinion_form">
<el-form
ref="opinionForm"
:model="opinionForm"
refs="opinionForm"
:rules="rules"
>
<el-form-item prop="content">
<el-input
type="textarea"
v-model="opinionForm.content"
placeholder="请输入您要反馈的内容"
></el-input>
</el-form-item>
<el-form-item prop="phone">
<el-input
v-model="opinionForm.phone"
placeholder="请留下您的联系方式"
size="small"
></el-input>
</el-form-item>
<el-form-item prop="image">
<UploadImage1
UploadImage1Url="/upload/otherImage"
@input="uploadSccess($event, 'image')"
:value="opinionForm.image"
:limit="1"
>
<template v-slot:upload>
<div class="upload_BOX">
<div class="upload">
<img src="~assets/images/downloadIMG.png" alt />
<span>上传图片</span>
</div>
</div>
</template>
</UploadImage1>
<!-- <div class="tipt">最多上传6张相关的这图片</div> -->
</el-form-item>
</el-form>
<el-button
style="float: right"
size="small"
type="primary"
@click="opinionClose('opinionForm')"
>确定</el-button
>
</div>
</div>
<div class="item" @click="replyContentfk">
<div class="iconfont">
<img src="../assets/index/fk.png" alt />
</div>
<div>意见反馈</div>
</div>
</el-tooltip>
</div>
</div>
</div>
<chat-room
v-show="chatOptions.show"
:chat-options="chatOptions"
@chat-close="chatClose"
@socket-open="socketOpen"
@socket-error="socketError"
></chat-room>
</div>
</template>
<script>
import Setting from "@/setting";
import ChatRoom from "@/components/ChatRoom";
import appChat from "@/mixins/appChat";
export default {
name: "footers",
components: {
ChatRoom,
},
mixins: [appChat],
data() {
return {
appDownloadUrl: Setting.app_download,
copyrightInfo: {},
userInfo: JSON.parse(localStorage.getItem("userInfo")),
// 是否登录
isSignin: localStorage.getItem("token") ? true : false,
companyInfo: {},
codeUrl: "",
iScode: false,
webInfo: {},
sverList: [
{
img: require("../assets/index/d.png"),
title: "品类齐全",
name: "轻松购物",
},
{
img: require("../assets/index/k.png"),
title: "多仓直发",
name: "极速配送",
},
{
img: require("../assets/index/h.png"),
title: "正品行货",
name: "精致服务",
},
{
img: require("../assets/index/s.png"),
title: "天天低价",
name: "畅选无忧",
},
],
contList: [
{
title: "关于我们",
list: ["公司简介", "企业文化", "加入我们"],
},
{
title: "联系方式",
list: [
"电话:13458978657",
"邮箱:293747@qq.com",
"地址:山西省忻州市五台县长寿大道254号",
],
},
],
// 下载app是否显示二维码
xzflag: false,
// 是否显示联系电话
dhflag: false,
// 是否显示意见反馈
fkflag: false,
opinion_success: false,
// 意见反馈表单
opinionForm: {
content: "",
phone: "",
image: "",
},
rules: {
content: {
required: true,
message: "请输入您要反馈的内容",
trigger: "blur",
},
phone: {
required: true,
message: "请留下您的联系方式",
trigger: "blur",
},
image: {
required: true,
message: "请上传图片",
trigger: "change",
},
},
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//生命周期 - 创建完成(可以访问当前this实例)
head() {
return {
meta: [
{
hid: "keywords",
name: "keywords",
content: this.companyInfo.site_keywords,
},
{
hid: "description",
name: "description",
content: this.companyInfo.site_description,
},
],
};
},
created() {
// this.getCompanyInfo();
// this.wechatCode();
this.getCopyright();
},
//方法集合
methods: {
getCopyright() {
this.$axios
.post(`/config/copyright`)
.then((res) => {
// console.log(res.data, `copyright`);
})
.catch((err) => {
this.$message.error(err);
});
},
clickItem(v) {
this.$router.push({ path: "/about", query: { title: v } });
},
goTop() {
(function n() {
var t = document.documentElement.scrollTop || document.body.scrollTop;
if (t > 0) {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
})();
},
wxCode() {
this.iScode = true;
},
wxCodeHide() {
this.iScode = false;
},
goCart() {
// 已登录跳转
if (this.isSignin) {
this.$router.push({
path: "/shopping_cart",
});
}
//未登录跳转,登录页
else {
this.$message.error("请先登录!");
this.$router.push({ path: "/login" });
}
},
wechatCode() {
this.$axios
.get("/pc/get_wechat_qrcode")
.then((res) => {
this.codeUrl = res.data.wechat_qrcode;
console.log(this.codeUrl, "数据");
})
.catch((err) => {
this.$message.error(err);
});
},
getCompanyInfo() {
this.$axios
.get("/pc/get_company_info")
.then((res) => {
this.companyInfo = res.data;
this.$store.commit("logo", res.data.logoUrl);
this.$cookies.set("logo", res.data.logoUrl);
// this.$store.commit("titles", res.data.site_name);
// this.$cookies.set("titles", res.data.site_name);
this.$store.commit("titles", "药厂");
this.$cookies.set("titles", "药厂");
})
.catch((err) => {
this.$message.error(err);
});
},
openLink(url) {
window.open(url);
},
goCustomer() {
// 已登录跳转
if (this.isSignin) {
this.$router.push({ path: "/customer_news" });
}
//未登录跳转,登录页
else {
this.$message.error("请先登录!");
this.$router.push({ path: "/login" });
}
},
// 下载app是否显示二维码
replyContentxz() {
this.xzflag = !this.xzflag;
},
// 是否显示联系电话
replyContentdh() {
this.dhflag = !this.dhflag;
},
// 是否显示意见反馈
replyContentfk() {
this.fkflag = !this.fkflag;
},
opinionClose(formname) {
this.$refs[formname].validate((valid) => {
if (valid) {
let { content, phone, image } = { ...this.opinionForm };
let obj = {
name: this.userInfo.nickname,
content,
phone,
image,
};
this.$axios
.post(`/config/findServiceContent`, obj)
.then((res) => {
this.$message.success(res.message);
this.opinionForm = {};
this.fkflag = false;
})
.catch((err) => {
this.$message.error(err);
});
}
});
},
uploadSccess(e, key) {
this.opinionForm[key] = e;
this.$refs.opinionForm.validateField(key);
},
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted() {},
};
</script>
<style lang="scss" scoped>
.floatWindow {
position: fixed;
right: 1%;
bottom: 15%;
width: 80px;
z-index: 99;
cursor: pointer;
background-color: #fff;
box-shadow: 0 3px 20px rgba(0, 0, 0, 0.06);
.list {
padding: 5px 14px;
width: 80px;
border: 1px solid #d8d8d8;
.item:last-child {
border: 0;
}
.item {
width: 100%;
height: 90px;
text-align: center;
font-size: 12px;
color: #5c5c5c;
border-bottom: 1px solid #f5f5f5;
display: flex;
flex-direction: column;
justify-content: center;
&:hover {
color: #e93323;
}
div {
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
}
.iconfont {
margin-bottom: 5px;
img {
width: 30px;
height: 30px;
margin: auto;
}
}
.itemCon {
right: 100%;
position: absolute;
top: 0;
padding-right: 20px;
.ewm {
width: 140px;
border: 1px solid #eeeeee;
background-color: #fff;
padding: 8px 6px;
.tip {
font-size: 14px;
color: #666;
margin-top: 6px;
}
.pictrue {
width: 126px;
height: 126px;
vertical-align: middle;
position: relative;
img {
width: 100%;
height: 100%;
}
.arrow {
position: absolute;
right: -16px;
top: 10px;
width: 0px;
height: 0px;
border: 8px solid transparent;
border-left-color: #eee;
&:before {
position: absolute;
left: -8px;
top: -7px;
content: "";
width: 0px;
height: 0px;
border: 7px solid transparent;
border-left-color: #fff;
}
}
}
}
}
}
}
}
.footer {
width: 100%;
background: #323232;
// background:var(--themeColor);
.box {
// width: 1200px;
// margin: 0 auto;
}
.top {
width: 1200px;
margin: 0 auto;
border-bottom: 1px solid #4a4a4a;
ul {
height: 110px;
padding: 0;
display: flex;
justify-content: space-between;
box-sizing: border-box;
li:nth-child(1) {
flex: 5;
justify-content: space-between;
.none {
display: none;
}
}
li:last-child {
flex: 5;
justify-content: flex-end;
.right {
display: none;
}
}
li {
flex: 8;
display: flex;
align-items: center;
justify-content: space-between;
.left {
display: flex;
.img {
width: 47px;
height: 47px;
margin-right: 10px;
img {
width: 100%;
height: 100%;
}
}
.text {
.title,
.name {
height: 25px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #927356;
line-height: 25px;
}
}
}
.right {
span {
display: inline-block;
width: 1px;
height: 25px;
background: #525252;
border-radius: 2px;
}
}
}
}
}
.cont {
display: flex;
justify-content: space-between;
padding: 20px 0;
width: 1200px;
margin: 0 auto;
.left {
ul {
padding: 0;
display: flex;
li {
margin-right: 118px;
.title {
height: 22px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #e3e3e3;
line-height: 22px;
text-align: left;
}
.text {
text-align: left;
height: 20px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #878787;
line-height: 20px;
margin-top: 10px;
cursor: pointer;
}
}
}
}
.right {
width: 50%;
.title {
height: 22px;
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #e3e3e3;
line-height: 22px;
text-align: left;
}
.hzhb {
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 10px;
.img {
width: 60px;
height: 60px;
border-radius: 15px;
overflow: hidden;
margin: auto;
img {
width: 100%;
height: 100%;
}
}
p {
font-size: 13px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #e3e3e3;
line-height: 20px;
text-align: center;
margin-top: 10px;
}
}
}
}
.certificate {
padding: 16px 0;
height: 50px;
font-size: 12px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #e3e3e3;
text-align: center;
line-height: 17px;
background-color: #2c2c2c;
}
}
.opinion_tooltip {
.opinion_form {
/deep/.el-form-item {
.el-form-item__content {
display: flex;
.upload_BOX {
width: 70px;
height: 70px;
border-radius: 4px;
border: 1px solid #dddddd;
text-align: center;
.upload {
margin: 10px auto;
color: #ccc;
img {
margin: auto;
width: 22px;
height: 20px;
}
}
}
.tipt {
width: 90px;
width: 92px;
height: 40px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #c0c4cc;
line-height: 20px;
margin: 15px auto;
}
}
}
}
}
</style>