This commit is contained in:
chc
2022-10-21 11:22:56 +08:00
138 changed files with 14354 additions and 2038 deletions

View File

@@ -4,19 +4,60 @@
<div class="query-wrapper">
<div class="query-item">
<div>搜索范围</div>
<Input placeholder="商品名称" @on-clear="goodsData=[]; goodsParams.goodsName=''; goodsParams.pageNumber = 1; getQueryGoodsList()" @on-enter="()=>{goodsData=[];goodsParams.pageNumber =1; getQueryGoodsList();}" icon="ios-search" clearable
style="width: 150px" v-model="goodsParams.goodsName" />
<Input
placeholder="商品名称"
@on-clear="
goodsData = [];
goodsParams.goodsName = '';
goodsParams.pageNumber = 1;
getQueryGoodsList();
"
@on-enter="
() => {
goodsData = [];
goodsParams.pageNumber = 1;
getQueryGoodsList();
}
"
icon="ios-search"
clearable
style="width: 150px"
v-model="goodsParams.goodsName"
/>
</div>
<div class="query-item">
<Cascader v-model="category" placeholder="请选择商品分类" style="width: 250px" :data="skuList"></Cascader>
<Cascader
v-model="category"
placeholder="请选择商品分类"
style="width: 250px"
:data="skuList"
></Cascader>
</div>
<div class="query-item">
<Button type="primary" @click="goodsData=[]; getQueryGoodsList();" icon="ios-search">搜索</Button>
<Button
type="primary"
@click="
goodsData = [];
getQueryGoodsList();
"
icon="ios-search"
>搜索</Button
>
</div>
</div>
<div style="positon:retavle;">
<Scroll class="wap-content-list" :on-reach-bottom="handleReachBottom" :distance-to-edge="[3,3]">
<div class="wap-content-item" :class="{ active: item.selected }" @click="checkedGoods(item, index)" v-for="(item, index) in goodsData" :key="index">
<div>
<Scroll
class="wap-content-list"
:on-reach-bottom="handleReachBottom"
:distance-to-edge="[3, 3]"
>
<div
class="wap-content-item"
:class="{ active: item.selected }"
@click="checkedGoods(item, index)"
v-for="(item, index) in goodsData"
:key="index"
>
<div>
<img :src="item.thumbnail" alt="" />
</div>
@@ -33,7 +74,6 @@
<div v-if="empty" class="empty">暂无商品信息</div>
</Scroll>
</div>
</div>
</div>
@@ -45,8 +85,9 @@ export default {
return {
type: "multiple", //单选或者多选 single multiple
skuList: [], // 商品sku列表
total: 0, // 商品总数
goodsParams: { // 商品请求参数
total: 0, // 商品总数
goodsParams: {
// 商品请求参数
pageNumber: 1,
pageSize: 18,
order: "desc",
@@ -66,10 +107,10 @@ export default {
props: {
selectedWay: {
type: Array,
default: function(){
return new Array()
}
}
default: function () {
return new Array();
},
},
},
watch: {
category(val) {
@@ -80,7 +121,7 @@ export default {
this.$emit("selected", this.selectedWay);
},
deep: true,
immediate: true
immediate: true,
},
"goodsParams.categoryPath": {
handler: function () {
@@ -114,22 +155,21 @@ export default {
},
// 获取列表方法
initGoods(res) {
if (res.result.records.length !=0) {
if (res.result.records.length != 0) {
res.result.records.forEach((item) => {
item.selected = false;
item.___type = "goods"; //设置为goods让pc wap知道标识
this.selectedWay.forEach(e => {
this.selectedWay.forEach((e) => {
if (e.id && e.id === item.id) {
item.selected = true
item.selected = true;
}
})
});
});
/**
* 解决数据请求中,滚动栏会一直上下跳动
*/
this.total = res.result.total;
this.goodsData.push(...res.result.records);
} else {
this.empty = true;
}
@@ -140,12 +180,12 @@ export default {
// 商品
this.initGoods(res);
});
if (localStorage.getItem('category')) {
this.deepGroup(JSON.parse(localStorage.getItem('category')))
if (localStorage.getItem("category")) {
this.deepGroup(JSON.parse(localStorage.getItem("category")));
} else {
setTimeout(() => {
this.deepGroup(JSON.parse(localStorage.getItem('category')))
},3000)
this.deepGroup(JSON.parse(localStorage.getItem("category")));
}, 3000);
}
},
@@ -205,9 +245,9 @@ export default {
this.selectedWay.push(val);
} else {
val.selected = false;
for (let i = 0; i<this.selectedWay.length; i++ ) {
if (this.selectedWay[i].id===val.id) {
this.selectedWay.splice(i,1)
for (let i = 0; i < this.selectedWay.length; i++) {
if (this.selectedWay[i].id === val.id) {
this.selectedWay.splice(i, 1);
break;
}
}

View File

@@ -1,9 +1,25 @@
<template>
<Modal :styles="{ top: '120px' }" width="1160" :z-index="10000" @on-cancel="clickClose" @on-ok="clickOK" v-model="flag" :mask-closable="false" scrollable>
<template v-if="flag">
<goodsDialog @selected="(val) => {goodsData = val;}"
v-if="goodsFlag" ref="goodsDialog" :selectedWay='goodsData'/>
<linkDialog @selectedLink="(val) => { linkData = val; }" v-else class="linkDialog" />
<goodsDialog
@selected="
(val) => {
goodsData = val;
}
"
v-if="goodsFlag"
ref="goodsDialog"
:selectedWay="goodsData"
/>
<linkDialog
@selectedLink="
(val) => {
linkData = val;
}
"
v-else
class="linkDialog"
/>
</template>
</Modal>
</template>
@@ -13,7 +29,7 @@ import linkDialog from "./link-dialog";
export default {
components: {
goodsDialog,
linkDialog
linkDialog,
},
data() {
return {
@@ -56,12 +72,11 @@ export default {
if (type == "goods") {
this.goodsFlag = true;
if (mutiple) {
this.singleGoods()
this.singleGoods();
}
} else {
this.goodsFlag = false;
}
},
// 关闭组件
close() {

View File

@@ -18,6 +18,7 @@
"
/>
</TabPane>
<!-- </template> -->
</Tabs>
</div>
</template>
@@ -27,7 +28,7 @@ import goodsDialog from "./goods-dialog";
import templateWay from "./template/index";
export default {
components: {
goodsDialog,
goodsDialog
},
data() {
return {
@@ -43,8 +44,8 @@ export default {
handler(val) {
this.$emit("selectedLink", val[0]); //因为是单选,所以直接返回第一个
},
deep: true,
},
deep: true
}
},
mounted() {
this.$nextTick(() => {
@@ -57,7 +58,18 @@ export default {
}
});
},
methods: {},
methods: {
// isVisible(item) {
// const type = this.$route.query.pagetype;
// if (type == "INDEX" && [ "discover"].includes(item.name)) {
// return false;
// }else if(type == "DISCOVER" && item.name == 'special'){
// return false;
// }else{
// return true
// }
// },
}
};
</script>
<style scoped lang="scss">

View File

@@ -36,7 +36,6 @@ import { getHomeList } from "@/api/other.js";
export default {
data() {
return {
loading: true, //表格请求数据为true
promotionList: "", // 活动列表
selectedIndex: 0, //左侧菜单选择

View File

@@ -34,5 +34,10 @@ export default [
title: "其他",
url: "3",
name: "other"
}
},
{
title: "专题",
url: "4",
name: "special"
},
];

View File

@@ -108,10 +108,10 @@ export default {
type: "INDEX",
title: "首页",
},
// {
// type: "SPECIAL",
// title: "专题",
// },
{
type: "SPECIAL",
title: "专题",
}
],
list: [], // 模板列表
};
@@ -127,7 +127,8 @@ export default {
const data = this.formData;
data.status ? (data.pageShow = "OPEN") : (data.pageShow = "CLOSE");
delete data.status;
(data.pageType = "INDEX"), (data.pageClientType = "PC");
// (data.pageType = "INDEX"), (data.pageClientType = "PC");
(data.pageType = this.searchForm.pageType), (data.pageClientType = "PC");
if (data.id) {
API_floor.updateHome(data.id, data).then((res) => {
this.$Message.success("编辑模板成功");
@@ -146,6 +147,13 @@ export default {
}
});
},
clickType(type,index){
this.searchForm.pageNumber = 1
this.searchForm.pageType = type;
this.selectedIndex = index;
this.getTemplateList();
},
createTemp() {
// 新建表单

View File

@@ -288,4 +288,4 @@ export default {
}
}
}
</style>
</style>

View File

@@ -11,7 +11,10 @@ import layout from "./index";
import navbar from "./navbar";
export default {
components: {
navbar,
navbar
},
mounted() {
this.pagetype = this.$route.query.pagetype;
},
data() {
return {
@@ -30,7 +33,8 @@ export default {
this.pagetype = this.$route.query.pagetype;
},
methods: {
selected(val) { // 顶部栏点击切换
selected(val) {
// 顶部栏点击切换
this.name = val;
}
}

View File

@@ -9,9 +9,7 @@
v-for="(item, index) in way"
:key="index"
:type="item.selected ? 'primary' : ''"
>
{{ item.title }}
</Button>
>{{ item.title }}</Button>
</div>
<div class="model-title-view-btn">
<!-- TODO 后期会补全 目前版本暂无 -->
@@ -21,7 +19,7 @@
<div>临时预览</div>
<div ref="qrCodeUrl"></div>
</div>
</Poptip> -->
</Poptip>-->
<Button size="default" type="primary" @click="handleSpinShow">保存模板</Button>
<Modal
@@ -33,7 +31,8 @@
>
<div v-if="progress">
<div class="model-item">
模板名称 <Input style="width: 200px" v-model="submitWay.name" />
模板名称
<Input style="width: 200px" v-model="submitWay.name"/>
</div>
<div class="model-item">
是否立即发布
@@ -45,7 +44,7 @@
<Button type="primary" @click="save()">保存</Button>
</div>
<Progress v-else :percent="num" status="active" />
<Progress v-else :percent="num" status="active"/>
</Modal>
</div>
</div>
@@ -54,6 +53,7 @@
import * as API_Other from "@/api/other.js";
export default {
props: ["pagetype"],
data() {
return {
progress: true, // 展示进度
@@ -82,8 +82,8 @@ export default {
// 表单信息
pageShow: this.$route.query.type || false,
name: this.$route.query.name || "模板名称",
pageClientType: "H5",
},
pageClientType: "H5"
}
};
},
watch: {
@@ -158,7 +158,7 @@ export default {
pageType: this.submitWay.pageType,
pageClientType: "H5",
})
.then((res) => {
.then(res => {
this.num = 50;
if (res.success) {
this.num = 80;
@@ -174,7 +174,7 @@ export default {
}
console.log(res);
})
.catch((error) => {});
.catch(error => {});
},
@@ -237,7 +237,7 @@ export default {
submit(submitWay) {
this.progress = false;
API_Other.setHomeSetup(submitWay)
.then((res) => {
.then(res => {
this.num = 50;
if (res.success) {
this.num = 80;
@@ -254,9 +254,9 @@ export default {
}
console.log(res);
})
.catch((error) => {});
},
},
.catch(error => {});
}
}
};
</script>
<style scoped lang="scss">

View File

@@ -14,7 +14,7 @@
<Button type="primary" @click="handleAdd()">添加页面</Button>
<div class="list">
<Spin size="large" fix v-if="loading"></Spin>
<div class="item item-title" >
<div class="item item-title">
<div>页面名称</div>
<div class="item-config">
<div>状态</div>
@@ -30,19 +30,25 @@
<span slot="close"></span>
</i-switch>
<Button type="info" placement="right" @click="handleEdit(item)" size="small">修改</Button>
<Poptip confirm title="删除此模板?" @on-ok="handleDel(item)" >
<Poptip confirm title="删除此模板?" @on-ok="handleDel(item)">
<Button type="error" size="small">删除</Button>
</Poptip>
</div>
</div>
<div class="no-more" v-if="list.length ==0">暂无更多模板</div>
</div>
<Page :total="total" size="small" @on-change="(val) => {params.pageNumber = val; } " :current="params.pageNumber" :page-size="params.pageSize" show-sizer :page-size-opts="[10, 20, 50]" @on-page-size-change="changePageSize"/>
<Page
:total="total"
size="small"
@on-change="(val) => {params.pageNumber = val; } "
:current="params.pageNumber"
:page-size="params.pageSize"
show-sizer
:page-size-opts="[10, 20, 50]"
@on-page-size-change="changePageSize"
/>
</Card>
</div>
</template>
<script>
import * as API_Other from "@/api/other.js";
@@ -51,25 +57,27 @@ export default {
data() {
return {
selectedIndex: 0, // 装修那个页面的下标
columns: [ // 表头
columns: [
// 表头
{
title: "页面名称",
key: "name",
key: "name"
},
{
title: "状态",
title: "状态"
},
{
title: "操作",
key: "action",
},
key: "action"
}
],
loading: false, // 加载状态
pageTypes: [ // 装修类型
pageTypes: [
// 装修类型
{
type: "INDEX",
title: "首页",
title: "首页"
},
{
type: "SPECIAL",
@@ -84,26 +92,27 @@ export default {
// title: "app开屏页面",
// },
],
params: { // 请求参数
params: {
// 请求参数
pageNumber: 1,
pageSize: 10,
sort: "createTime",
order: "desc",
pageType: "INDEX",
pageClientType: "H5",
pageClientType: "H5"
},
total: 0, // 页面数量
list: [], // 总数据
list: [] // 总数据
};
},
watch: {
params: {
handler(val) {
// this.pageNumber++;
this.init();
},
deep: true,
},
// params: {
// handler(val) {
// // this.pageNumber++;
// this.init();
// },
// deep: true,
// },
},
mounted() {
this.init();
@@ -133,7 +142,7 @@ export default {
// 是否发布
changeSwitch(item) {
this.loading = true;
API_Other.releasePageHome(item.id).then((res) => {
API_Other.releasePageHome(item.id).then(res => {
if (res.result) {
this.loading = false;
this.$Message.success("发布成功");
@@ -148,10 +157,10 @@ export default {
// 初始化数据
init() {
this.loading = true;
API_Other.getHomeList(this.params).then((res) => {
API_Other.getHomeList(this.params).then(res => {
if (!res.result) return false;
this.loading = false;
res.result.records.forEach((item) => {
res.result.records.forEach(item => {
if (item.pageShow == "OPEN") {
item.pageShow = true;
} else {
@@ -181,8 +190,8 @@ export default {
query: { pagetype: this.params.pageType },
});
},
// 分页 改变页数
changePageSize(v) {
// 分页 改变页数
changePageSize(v) {
this.params.pageNumber = 1;
this.params.pageSize = v;
this.init();
@@ -190,7 +199,7 @@ export default {
// 删除模板
handleDel(val) {
this.loading = true;
API_Other.removePageHome(val.id).then((res) => {
API_Other.removePageHome(val.id).then(res => {
if (res.result) {
this.loading = false;
this.init();
@@ -199,8 +208,8 @@ export default {
this.loading = false;
});
},
},
}
}
};
</script>
<style scoped lang="scss">
@@ -212,7 +221,7 @@ export default {
background: #ededed;
}
.item-title {
background: #d7e7f5!important;
background: #d7e7f5 !important;
height: 54px;
}
.no-more {
@@ -256,7 +265,7 @@ export default {
align-items: center;
}
}
.item:nth-of-type(2n+1) {
.item:nth-of-type(2n + 1) {
background: #f5f7fa;
}
</style>

View File

@@ -10,6 +10,9 @@
<FormItem label="reqURL" prop="reqURL">
<Input v-model="formValidate.reqURL" />
</FormItem>
<FormItem label="电子面单URL" prop="sheetReqURL">
<Input v-model="formValidate.sheetReqURL" />
</FormItem>
<div class="label-btns">
<Button type="primary" @click="submit('formValidate')">保存</Button>
@@ -24,7 +27,7 @@ export default {
data() {
return {
ruleValidate: {}, // 验证规则
formValidate: { ebusinessID: "", reqURL: "", appKey: "" }, // 表单数据
formValidate: { ebusinessID: "", reqURL: "", appKey: "" ,sheetReqURL: "" ,}, // 表单数据
};
},
props: ["res",'type'],

View File

@@ -12,7 +12,7 @@
/>
</Form-item>
<Form-item label="联系方式">
<Input
<Inputuser-manage
type="text"
v-model="searchForm.mobile"
placeholder="请输入联系方式"