文件
mashangyoujiu/Application/Retail/View/Xcx/set_navigation.html

378 行
16 KiB
HTML
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<!doctype html>
<html>
<!--[1.8.20]-->
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" type="text/css" href="__PUBLIC__/Retail/css/myscroll.css"/>
<link rel="stylesheet" type="text/css" href="__PUBLIC__/vue/element-ui.css">
<link rel="stylesheet" href="__PUBLIC__/css/system-gallery.css?v=1.0.3">
<script src="__PUBLIC__/jquery/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" charset="utf-8" src="__PUBLIC__/vue/js/vue2.5.16.js"></script>
<script type="text/javascript" charset="utf-8" src="__PUBLIC__/vue/element-ui.js"></script>
<script charset="utf-8" src="__PUBLIC__/js/common.js?v=1.0.3"></script>
<script src="/Public/Retail/common/js/select-goods-category.js?v=1.0.2"></script>
<script charset="utf-8" src="__PUBLIC__/js/system-gallery.js?v=1.0.3"></script>
<title>设置导航栏</title>
<style>
[v-cloak] {
display: none;
}
html, body {
background-color: rgb(246, 248, 249);
font-size: 0;
margin: 0;
padding: 0;
}
.backgroup_set {
padding: 50px 0px 50px 100px;
background-color: white;
}
.suggest {
font-size: 12px;
color: #666;
padding-top: 5px;
margin: 10px;
}
</style>
</head>
<body class="backgroup_set">
<div id="app" v-cloak>
<el-form :model="data" label-width="120px" size="medium" id="form">
<el-form-item label="导航栏标题:">
<el-input v-model="data.title" placeholder="请输入导航栏标题" clearable style="width:300px;"></el-input>
</el-form-item>
<el-form-item label="导航栏图片:">
<choose-one-file :file-url.sync="data.icon" :file-id.sync="data.icon_id"></choose-one-file>
<span class="suggest">建议尺寸:60 x 60,或等比例图片</span>
</el-form-item>
<el-form-item label="导航栏类型:">
<el-select name="navigation_type" v-model="data.navigation_type" clearable placeholder="请选择"
@change="closeType" style="width:300px;">
<el-option label="其他链接" value="1"></el-option>
<el-option label="商品分类" value="2"></el-option>
<el-option label="功能入口" value="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="其他链接地址:" v-if="data.navigation_type == 1">
<el-input v-model="data.other_url" placeholder="请输入其他网页链接地址" clearable style="width:300px;"></el-input>
<span class="suggest">需要到小程序后台添加域名白名单</span>
</el-form-item>
<el-form-item label="商品分类:" v-if="data.navigation_type == 2">
<select-goods-category :user-type="2"
:store-id="store_id"
:get-child="false"
:unit-data="data.unitClassData"
@change="chooseGoodsClass"></select-goods-category>
</el-form-item>
<el-form-item label="功能入口:" v-if="data.navigation_type == 3">
<el-select v-model="data.magic_cube_id" clearable placeholder="请选择" @change="closeMagicCube"
style="width:300px;">
<el-option v-for="(val,index) in magic_cube" :label="val.name" :value="val.id" :key="index"></el-option>
</el-select>
</el-form-item>
<el-form-item label="关联商品:" v-if="data.navigation_type == 3 && show_close_goods">
<el-input v-model="data.goods_name" placeholder="请选择商品" readonly style="width:200px;"></el-input>
<el-button type="primary" size="medium" @click="getGoodsList">选择商品</el-button>
</el-form-item>
<el-form-item label="排序:">
<el-input v-model="data.rank" clearable style="width:300px;"></el-input>
<span class="suggest">用于导航列排序,按正序排列,默认为1</span>
</el-form-item>
<el-form-item label="是否启用:">
<el-switch v-model="data.status" active-value="1" inactive-value="2"></el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="saveSet">保存设置</el-button>
</el-form-item>
</el-form>
<!-- 选择商品 -->
<el-dialog title="选择商品" :append-to-body="true" :visible.sync="show_goods_list"
custom-class="select-image-el-dialog" :top="'10px'">
<div style="border: 1px solid #e6e6e6;margin: 0 30px;height: calc(100vh - 180px);">
<el-table border :data="goods_list" style="width: 100%;border: none;" height="calc(100vh - 180px)">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column prop="goods_name" label="商品名称" show-overflow-tooltip></el-table-column>
<el-table-column prop="good_image" label="轮播图" show-overflow-tooltip>
<template slot-scope="scope">
<img style="max-height: 70px" :src="scope.row.good_image">
</template>
</el-table-column>
<el-table-column prop="goods_num" label="库存" show-overflow-tooltip></el-table-column>
<el-table-column fixed="right" label="操作" width="130" style="border-right: none;">
<template slot-scope="scope">
<el-button @click="close_goods(scope.row)" plain>选择</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="page"
:page-sizes="[10, 15, 20, 25, 30, 35, 40, 45, 50]"
:page-size="limit"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</el-dialog>
</div>
</body>
<script src="__PUBLIC__/js/tips.js"></script>
<script>
var app = new Vue({
el: '#app',
data: function () {
return {
store_id: localStorage.store_id,
data: {
id: '',
title: '', // 标题
icon: '', // 图片路径
icon_id: '', // 云储存对应id
navigation_type: '', // 导航栏类型
other_url: '', // 其他链接地址
goods_class_id: '', // 分类id
magic_cube_id: '', // 功能id
goods_id: '', // 商品id
goods_name: '', // 商品名称
rank: '1', // 排序
status: '1', // 状态 1. 开启 2. 关闭
unitClassData: [],
},
magic_cube: [], // 功能
show_close_goods: false, // 显示商品详情
show_goods_list: false, // 商品列表
goods_list: [], // 商品列表
page: 1, // 分页
limit: 10, // 每页数量
total: 0, // 数量
}
},
methods: {
/* 选择导航栏类型 */
closeType(type) {
if (type == 3) { // 获取功能
this.getMagicCube();
}
},
//选择商品分类
chooseGoodsClass(data) {
this.data.goods_class_id = data.category_id ? data.category_id : (data.category[2] ? data.category[2] : (data.category[1] ? data.category[1] : (data.category[0] ? data.category[0] : '')))
},
/* 获取功能 */
getMagicCube() {
var that = this;
$.ajax({
url: "{:U('get_magic_cube')}",
type: "post",
success: function (res) {
if (res.status == 1) {
that.magic_cube = res.magic_cube;
}
}
});
},
/* 选择功能 */
closeMagicCube() {
var magic_cube = this.magic_cube;
var item = this.data.magic_cube_id;
for (var i = 0; i < magic_cube.length; i++) {
if (magic_cube[i].id == item) {
this.show_close_goods = magic_cube[i].url == '/pages/details/details' ? true : false;
}
}
},
/* 选择商品 */
getGoodsList() {
var that = this;
$.post("{:U('getOnlineGoods')}", {
page: that.page,
limit: that.limit,
}, function (res) {
if (res.status == 1) {
that.total = res.count;
that.goods_list = res.data;
that.show_goods_list = true;
} else {
that.$message({
type: 'error',
message: res.msg,
duration: 1000
});
}
})
},
/* 切换每页数量 */
handleSizeChange(val) {
this.limit = val;
this.page = 1;
this.getGoodsList();
},
/* 切换页数 */
handleCurrentChange(val) {
this.page = val;
this.getGoodsList();
},
/* 选择商品 */
close_goods(data) {
this.data.goods_id = data.id;
this.data.goods_name = data.goods_name;
this.show_goods_list = false;
},
/* 保存设置 */
saveSet() {
var that = this;
var data = that.data;
if (!data.title) {
this.$message({
message: '请输入导航栏标题',
type: 'warning'
});
return;
}
if (!data.icon) {
this.$message({
message: '请选择图片',
type: 'warning'
});
return;
}
if (!data.navigation_type) {
this.$message({
message: '请选择导航栏类型',
type: 'warning'
});
return;
}
if (data.navigation_type == 1) {
if (!data.other_url) {
this.$message({
message: '请输入其他链接地址',
type: 'warning'
});
return;
}
} else if (data.navigation_type == 2) {
if (!data.goods_class_id) {
this.$message({
message: '请选择商品分类',
type: 'warning'
});
return;
}
} else if (data.navigation_type == 3) {
if (!data.magic_cube_id) {
this.$message({
message: '请选择功能入口',
type: 'warning'
});
return;
}
var magic_cube = that.magic_cube;
var item = data.magic_cube_id;
for (var i = 0; i < magic_cube.length; i++) {
if (magic_cube[i].id == item) {
if (magic_cube[i].url == '/pages/details/details' && !data.goods_id) {
this.$message({
message: '请选择关联的商品',
type: 'warning'
});
return;
}
}
}
}
that.$loading({
lock: true,
text: '保存中......',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
});
var form_data = new FormData(document.getElementById('form'));
form_data.append("data", JSON.stringify(data)); // 压入data数据
$.ajax({
url: "{:U('save_set_navigation')}",
type: "post",
data: form_data,
dataType: 'JSON',
cache: false, // 不缓存
processData: false, // jQuery不要去处理发送的数据
contentType: false, // jQuery不要去设置Content-Type请求头
success: function (res) {
that.$loading().close();
if (res.status == 1) {
that.$message({
type: 'success',
message: res.msg,
duration: 1000,
onClose: function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
});
} else {
that.$message({
type: 'error',
message: res.msg,
duration: 1000
});
}
},
error: function () {
that.$loading().close();
}
})
},
},
created: function () {
var that = this;
var id = {$id};
if (id && id != '') {
that.$loading({
lock: true,
text: '拼命加载中......',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
});
$.ajax({
url: "{:U('get_navigation')}",
type: "post",
data: {id: id},
success: function (res) {
that.$loading().close();
if (res.status == 1) {
that.data = res.data;
that.closeType(res.data.navigation_type);
if (res.mark == 1) {
that.show_close_goods = true;
}
} else {
that.$message({
type: 'error',
message: res.msg,
duration: 1000
});
}
}
})
}
},
});
</script>
</html>