Browse Source

1Merge branch 'master' of http://8.140.253.224:3000/root/school-manage

# Conflicts:
#	vue.config.js
master
tianyi 4 weeks ago
parent
commit
44d2e13476
  1. 6
      src/api/app.js
  2. 12
      src/views/app/business/bus/addEdit.vue
  3. 2
      src/views/app/business/bus/bus.vue
  4. 212
      src/views/app/business/logiticsCompany/addEdit.vue
  5. 427
      src/views/app/business/logiticsCompany/dictManage.vue
  6. 237
      src/views/app/business/logiticsCompany/logiticsCompany.vue
  7. 1062
      src/views/app/business/logiticsCompany/transferStation.vue
  8. 2
      vue.config.js

6
src/api/app.js

@ -357,7 +357,7 @@ export const delSeckill = (params) => {
}
// 秒杀商品列表
export const seckillProductList = (params) => {
return getRequest('/mall/admin/seckillGroup/product/page', params)
return postBodyRequest('/mall/admin/seckillGroup/product/page', params)
}
// 新增秒杀商品
export const addSeckillProduct = (params) => {
@ -375,6 +375,10 @@ export const delSeckillProduct = (params) => {
export const upSeckillProduct = (params) => {
return postRequest('/mall/admin/seckillGroup/product/up', params)
}
// 秒杀商品下架
export const downSeckillProduct = (params) => {
return postRequest('/mall/admin/seckillGroup/product/down', params)
}
export const getShopData = (params) => {
return getRequest('/app/shop/getByCondition', params)

12
src/views/app/business/bus/addEdit.vue

@ -43,6 +43,16 @@
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="规则类型">
<RadioGroup v-model="form.ruleType">
<Radio label="1">其他</Radio>
<Radio label="0">邀新奖励</Radio>
</RadioGroup>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="优惠金额">
@ -133,7 +143,7 @@
validStartTime:'', //
validEndTime:'', //
validDays:'', //
ruleType:1,
issuerType:1, //1-2-
issuerId:0, //ID 0-
status:1, //0-/1-

2
src/views/app/business/bus/bus.vue

@ -267,7 +267,7 @@
}
},
{
title: "领取人次",
title: "总数量",
key: "totalCount",
width: 150,
},

212
src/views/app/business/logiticsCompany/addEdit.vue

@ -1,75 +1,26 @@
<template>
<div class="company-edit">
<!-- Drawer抽屉 -->
<Drawer :title="title" v-model="visible" width="500" draggable :mask-closable="type == '0'">
<div :style="{ maxHeight: maxHeight }" class="drawer-content">
<div class="drawer-header">
<div style="margin-right: 16px">优惠券配置</div>
</div>
<Form ref="form" :model="form" :rules="formValidate" label-position="top">
<Row :gutter="32">
<Col span="24">
<FormItem label="优惠券名称" prop="name">
<Input v-model="form.name" />
<FormItem label="分类名称" prop="categoryName">
<Input v-model="form.categoryName" placeholder="请输入分类名称" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="发券总数" prop="totalCount">
<Input v-model="form.totalCount" />
<FormItem label="分类图标">
<Input v-model="form.categoryIcon" placeholder="请输入图标地址" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="适用范围" prop="applyScene">
<RadioGroup v-model="form.applyScene">
<Radio label="0">全部</Radio>
<Radio label="1">外卖/买饭</Radio>
<Radio label="2">快递/跑腿</Radio>
<Radio label="3">二手物品交易</Radio>
</RadioGroup>
<FormItem label="排序">
<InputNumber v-model="form.sort" :min="0" style="width: 100%" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="使用门槛">
<RadioGroup v-model="form.type">
<Radio label="2">无门槛</Radio>
<Radio label="1"><Input v-model='form.minAmount' style="width: 50px;"></Input >使</Radio>
<FormItem label="状态">
<RadioGroup v-model="form.status">
<Radio :label="1">启用</Radio>
<Radio :label="0">禁用</Radio>
</RadioGroup>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="优惠金额">
<Input v-model='form.discountAmount'></Input>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="每人限领数量">
<Input v-model='form.limitPerUser'></Input>
<FormItem label="备注">
<Input v-model="form.remark" type="textarea" :rows="4" placeholder="请输入备注" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="有效期">
<RadioGroup v-model="form.validType" vertical>
<Radio label="1">固定日期</Radio>
<DatePicker @on-change="changeDate" v-if="form.validType == '1'" type="daterange" split-panels placeholder="选择起始时间" style="width: 200px"></DatePicker>
<Radio label="2">领券后<Input v-model='form.validDays' style="width: 50px;"></Input ></Radio>
</RadioGroup>
</FormItem>
</Col>
</Row>
</Form>
</div>
<div class="drawer-footer br" v-show="type != '0'">
@ -81,20 +32,10 @@
</template>
<script>
import {
addCoupon,
editCoupon
} from "@/api/app";
import dict from "@/views/my-components/hiver/dict";
import uploadPicInput from "@/views/my-components/hiver/upload-pic-input";
import regionTreeChoose from "@/views/my-components/hiver/region-tree-choose";
import { addSeckill, editSeckill } from "@/api/app";
export default {
name: "company",
components: {
dict,
uploadPicInput,
regionTreeChoose
},
name: "seckill-category-edit",
props: {
value: {
type: Boolean,
@ -102,6 +43,7 @@
},
data: {
type: Object,
default: () => ({}),
},
type: {
type: String,
@ -110,122 +52,61 @@
},
data() {
return {
menkan:'',
xianzhi:'',
youxiao:'',
roleList: [],
visible: this.value,
title: "",
data: [],
passColor: "",
submitLoading: false,
maxHeight: 510,
form: {
name: '', //
applyScene:'', //0-1-/2-/3-
type:'', //1-2-
minAmount:'', //使
discountAmount:'', //
totalCount:'', //
limitPerUser:1, //
validType:'', //1-2-
validStartTime:'', //
validEndTime:'', //
validDays:'', //
issuerType:1, //1-2-
issuerId:0, //ID 0-
status:1, //0-/1-
regionId:JSON.parse(this.getStore("user")).departmentId, //id
},
form: this.defaultForm(),
formValidate: {
//
name: [{
required: true,
message: "请输入优惠券名称",
trigger: "change"
}, ],
contacts: [{
categoryName: [
{
required: true,
message: "请输入联系人",
trigger: "change"
}, ],
mobile: [{
required: true,
message: "请输入手机号",
trigger: "change"
}, ],
message: "请输入分类名称",
trigger: "blur",
},
],
},
};
},
methods: {
init() {
},
changeDate(v){
console.log(v)
this.form.validStartTime = v[0]
this.form.validEndTime = v[1]
defaultForm() {
return {
categoryName: "",
categoryIcon: "",
regionId: JSON.parse(this.getStore("user")).departmentId,
sort: 0,
status: 1,
remark: "",
};
},
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.type == "1") {
//
if (!valid) return;
this.submitLoading = true;
editCoupon(this.form).then((res) => {
const request = this.type == "1" ? editSeckill : addSeckill;
request(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
} else {
// 1
this.submitLoading = true;
addCoupon(this.form).then((res) => {
}).catch(() => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
}
}
});
},
setCurrentValue(value) {
if (value === this.visible) {
return;
}
if (this.type == "1") {
this.title = "编辑优惠券信息";
this.maxHeight =
Number(document.documentElement.clientHeight - 121) + "px";
} else if (this.type == "2") {
this.title = "新增优惠券";
this.maxHeight =
Number(document.documentElement.clientHeight - 121) + "px";
} else {
this.title = "优惠券详情";
this.maxHeight = "100%";
}
//
this.$refs.form.resetFields();
if (this.type == "0" || this.type == "1") {
//
let data = this.data;
//
this.form = data;
this.form.applyScene = JSON.stringify(this.form.applyScene)
this.form.type = JSON.stringify(this.form.type)
this.form.validType = JSON.stringify(this.form.validType)
console.log('优惠券',this.form)
}
if (value === this.visible) return;
this.maxHeight = Number(document.documentElement.clientHeight - 121) + "px";
this.title = this.type == "1" ? "编辑秒杀团分类" : this.type == "2" ? "新增秒杀团分类" : "秒杀团分类详情";
this.form = this.type == "1" || this.type == "0"
? Object.assign(this.defaultForm(), JSON.parse(JSON.stringify(this.data || {})))
: this.defaultForm();
this.visible = value;
this.$nextTick(() => {
if (this.$refs.form) this.$refs.form.resetFields();
});
},
},
watch: {
@ -236,9 +117,6 @@
this.$emit("input", value);
},
},
mounted() {
this.init();
},
};
</script>

427
src/views/app/business/logiticsCompany/dictManage.vue

@ -1,75 +1,110 @@
<template>
<div class="search">
<Row align="middle" justify="space-between" class="operation">
<div>
<Button @click="findAllRecords" type="primary" icon="md-add">新增商品</Button>
</div>
</Row>
<Card>
<Table :loading="loading" border :columns="columns" :data="data" :size="tableSize" ref="table"
sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
<Row v-show="openSearch" @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="80">
<FormItem label="商品名称" prop="keywords">
<Input type="text" v-model="searchForm.keywords" clearable placeholder="请输入商品名称" style="width: 220px" />
</FormItem>
<FormItem class="br">
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
<Button @click="handleReset">重置</Button>
</FormItem>
</Form>
</Row>
<Table :loading="loading" border :columns="columns" :data="data" :size="tableSize" ref="table"></Table>
<Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNum" :total="total" :page-size="searchForm.pageSize"
@on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
size="small" show-total show-elevator show-sizer></Page>
</Row>
</Card>
<Modal :title="商品维护" v-model="tranVisiable" :mask-closable="false" :scrollabele="true" :width="1000">
<transfer-station v-if="tranVisiable" ref="dialog"></transfer-station>
<div slot="footer" v-show=tranVisiable>
<Button type="text" @click="tranVisiable = false">关闭</Button>
<Modal title="新增秒杀团商品" v-model="tranVisible" :mask-closable="false" :width="1100">
<transfer-station v-if="tranVisible" ref="dialog" @on-submit="handleProductAdded"></transfer-station>
<div slot="footer">
<Button type="text" @click="tranVisible = false">关闭</Button>
</div>
</Modal>
</div>
<Modal title="编辑秒杀团商品" v-model="editVisible" :mask-closable="false" :width="560">
<Form ref="editForm" :model="editForm" :label-width="110">
<FormItem label="商品名称">
<Input v-model="editForm.productName" disabled />
</FormItem>
<FormItem label="秒杀价格">
<InputNumber v-model="editForm.seckillPrice" :min="0.01" style="width: 100%" />
</FormItem>
<FormItem label="秒杀库存">
<InputNumber v-model="editForm.totalStock" :min="0" style="width: 100%" />
</FormItem>
<FormItem label="限购数量">
<InputNumber v-model="editForm.limitNum" :min="0" style="width: 100%" />
</FormItem>
<FormItem label="排序">
<InputNumber v-model="editForm.orderFiled" :min="0" style="width: 100%" />
</FormItem>
<FormItem label="状态">
<RadioGroup v-model="editForm.status">
<Radio :label="1">上架</Radio>
<Radio :label="0">下架</Radio>
</RadioGroup>
</FormItem>
<FormItem label="活动时间">
<DatePicker type="datetimerange" format="yyyy-MM-dd HH:mm:ss" transfer
:value="editDateRange" @on-change="changeEditDate" style="width: 100%" placeholder="不选表示长期有效" />
</FormItem>
<FormItem label="备注">
<Input v-model="editForm.remark" type="textarea" :rows="3" />
</FormItem>
</Form>
<div slot="footer">
<Button @click="editVisible = false">取消</Button>
<Button type="primary" :loading="submitLoading" @click="submitEdit">保存</Button>
</div>
</Modal>
</div>
</template>
<script>
import {
addLogisticsStation,
updateLogisticsStation,
deleteLogisticsStation,
getLogisticsStationPageList
seckillProductList,
editSeckillProduct,
delSeckillProduct,
upSeckillProduct,
downSeckillProduct,
} from "@/api/app";
import uploadPicInput from "@/views/my-components/hiver/upload-pic-input";
import transferStation from "@/views/app/business/lineManage/transferStation.vue";
import {
shortcuts
} from "@/libs/shortcuts";
import transferStation from "./transferStation.vue";
export default {
name: "logisticsAddress",
name: "seckill-product-manage",
components: {
uploadPicInput,
transferStation
transferStation,
},
data() {
return {
exportTitle: "商品",
category: {},
tableSize: "default",
showType: "0",
tranVisiable:false,
stationModalVisible: false,
openSearch: true, //
openTip: true, //
loading: true, //
modalType: 0, //
modalVisible: false, //
modalTitle: "", //
tranVisible: false,
editVisible: false,
openSearch: true,
loading: false,
submitLoading: false,
total: 0,
data: [],
searchForm: {
categoryId: "",
pageNum: 1,
pageSize: 10,
circuitId:"",
stationName:""
},
selectDate: null,
options: {
shortcuts: shortcuts,
},
form: {
circuitId:'',
stationName:'',
freightRules:'',
landingFeeRules:'',
deliveryFeeRules:''
},
submitLoading: false, //
selectList: [], //
keywords: "",
},
editForm: {},
editDateRange: [],
columns: [
{
type: "index",
@ -78,238 +113,188 @@
fixed: "left",
},
{
title: "线路id",
key: "circuitId",
minWidth: 125,
sortable: true,
fixed: "left",
title: "图片",
key: "productPicture",
width: 100,
render: (h, params) => {
return h("img", {
attrs: { src: params.row.productPicture },
style: {
width: "70px",
height: "55px",
objectFit: "contain",
},
});
},
},
{
title: "商品名称",
key: "stationName",
minWidth: 125,
sortable: true,
fixed: "left",
key: "productName",
minWidth: 180,
},
{
title: "运费规则",
key: "freightRules",
minWidth: 125,
sortable: true,
fixed: "left",
title: "商家",
key: "shopName",
minWidth: 150,
},
{
title: "落地费规则",
key: "landingFeeRules",
minWidth: 125,
sortable: true,
fixed: "left",
title: "原价",
key: "originalPrice",
width: 100,
},
{
title: "送货费规则",
key: "deliveryFeeRules",
minWidth: 125,
sortable: true,
fixed: "left",
title: "秒杀价",
key: "seckillPrice",
width: 100,
},
{
title: "库存",
minWidth: 150,
render: (h, params) => {
return h("span", `${params.row.soldStock || 0}/${params.row.totalStock || 0}`);
},
},
{
title: "状态",
width: 90,
render: (h, params) => h("span", params.row.status == 1 ? "上架" : "下架"),
},
{
title: "排序",
key: "orderFiled",
width: 90,
},
{
title: "操作",
key: "action",
width: 200,
width: 210,
align: "center",
fixed: "right",
render: (h, params) => {
return h("div", [
h(
"a", {
on: {
click: () => {
this.edit(params.row);
},
},
},
"编辑"
),
h("Divider", {
props: {
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.edit(params.row);
},
},
},
"下架"
),
h("Divider", {
props: {
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.remove(params.row);
},
},
},
"删除"
),
h("a", { on: { click: () => this.edit(params.row) } }, "编辑"),
h("Divider", { props: { type: "vertical" } }),
h("a", { on: { click: () => this.upDown(params.row) } }, params.row.status == 1 ? "下架" : "上架"),
h("Divider", { props: { type: "vertical" } }),
h("a", { on: { click: () => this.remove(params.row) } }, "删除"),
]);
},
},
],
data: [], //
total: 0, //
rechargeWorkerId: "",
};
},
methods: {
init() {
// this.getDataList();
},
initRecharge(data) {
//data
console.log(data);
this.searchForm.circuitId = data.id;
init(category) {
this.category = category || {};
this.searchForm.categoryId = this.category.id;
this.searchForm.pageNum = 1;
this.getDataList();
},
changePage(v) {
this.searchForm.pageNum = v;
this.getDataList();
this.clearSelectAll();
},
exportCustomData() {
this.loading = true;
if(this.showType == 1){ //
addLogisticsStation(this.form).then((res) => {
this.loading = false;
if (res.code == 200) {
this.$Message.success("保存成功");
changePageSize(v) {
this.searchForm.pageSize = v;
this.searchForm.pageNum = 1;
this.getDataList();
}
});
}else if(this.showType == 2){ //
updateLogisticsStation(this.form).then((res) => {
this.loading = false;
if (res.code == 200) {
this.$Message.success("保存成功");
},
handleSearch() {
this.searchForm.pageNum = 1;
this.getDataList();
}
});
}
},
changePageSize(v) {
this.searchForm.pageSize = v;
handleReset() {
this.searchForm.keywords = "";
this.searchForm.pageNum = 1;
this.getDataList();
},
remove(v) {
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除该商品吗?",
loading: true,
onOk: () => {
deleteLogisticsStation({
id: v.id
}).then((res) => {
this.$Modal.remove();
getDataList() {
this.loading = true;
seckillProductList(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.clearSelectAll();
this.$Message.success("删除成功");
this.getDataList();
this.data = res.result.records || [];
this.total = res.result.total || 0;
}
}).catch(() => {
this.loading = false;
});
},
findAllRecords() {
this.tranVisible = true;
this.$nextTick(() => {
this.$refs.dialog.init(this.category);
});
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
handleProductAdded() {
this.tranVisible = false;
this.getDataList();
},
findAllRecords(v) {
this.tranVisiable = true;
console.log(v)
this.$nextTick(() => {
this.$refs.dialog.initRecharges(v);
});
},
clearSelectAll() {
this.$refs.table.selectAll(false);
changeEditDate(v) {
this.editDateRange = v;
this.editForm.startTime = v && v[0] ? v[0] : null;
this.editForm.endTime = v && v[1] ? v[1] : null;
},
changeSelect(e) {
this.selectList = e;
edit(v) {
this.editForm = {
id: v.id,
productId: v.productId,
categoryId: v.categoryId,
productName: v.productName,
seckillPrice: Number(v.seckillPrice || 0),
totalStock: Number(v.totalStock || 0),
limitNum: v.limitNum == null ? 0 : Number(v.limitNum),
orderFiled: Number(v.orderFiled || 0),
status: v.status,
startTime: v.startTime,
endTime: v.endTime,
remark: v.remark || "",
};
this.editDateRange = v.startTime && v.endTime ? [v.startTime, v.endTime] : [];
this.editVisible = true;
},
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
submitEdit() {
if (!this.editForm.seckillPrice || this.editForm.seckillPrice <= 0) {
this.$Message.warning("秒杀价格必须大于0");
return;
}
},
addStation() {
this.form = {
circuitId:'',
stationName:'',
freightRules:'',
landingFeeRules:'',
deliveryFeeRules:''
this.submitLoading = true;
editSeckillProduct(this.editForm).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("保存成功");
this.editVisible = false;
this.getDataList();
}
this.showType = "1";
this.form.circuitId = this.searchForm.circuitId
this.stationModalVisible = true
}).catch(() => {
this.submitLoading = false;
});
},
edit(v) {
// null""
for (let attr in v) {
if (v[attr] == null) {
v[attr] = "";
}
upDown(v) {
const request = v.status == 1 ? downSeckillProduct : upSeckillProduct;
request({ id: v.id }).then((res) => {
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
}
let str = JSON.stringify(v);
let data = JSON.parse(str);
this.form = data;
this.showType = "2";
this.stationModalVisible = true;
},
changeTableSize(v) {
this.tableSize = v;
},
exportData() {
this.$refs.table.exportCsv({
filename: "数据",
});
},
getDataList(params) {
this.loading = true;
//
getLogisticsStationPageList(this.searchForm).then((res) => {
debugger;
this.loading = false;
if (res.code == 200) {
this.data = res.result.records;
this.total = res.result.total;
if (this.data && this.data.length == 0 && this.searchForm.pageNum > 1) {
this.searchForm.pageNum -= 1;
remove(v) {
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除 " + v.productName + " ?",
loading: true,
onOk: () => {
delSeckillProduct({ id: v.id }).then((res) => {
this.$Modal.remove();
if (res.success) {
this.$Message.success("删除成功");
this.getDataList();
}
}
});
},
});
},
mounted() {
//this.init();
},
};
</script>
<style lang="less">
//@import "@/styles/table-common.less";
</style>

237
src/views/app/business/logiticsCompany/logiticsCompany.vue

@ -2,36 +2,13 @@
@import "@/styles/table-common.less";
@import "./logiticsCompany.less";
</style>
<template>
<div class="search">
<Card>
<!-- <Row v-show="openSearch" @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="100">
<FormItem label="物流公司名称" prop="companyName">
<Input type="text" v-model="searchForm.companyName" clearable placeholder="请输入公司名称"
style="width: 200px" />
</FormItem>
<FormItem label="联系人" prop="contacts">
<Input type="text" v-model="searchForm.contacts" clearable placeholder="请输入联系人"
style="width: 200px" />
</FormItem>
<FormItem label="手机号" prop="mobile">
<Input type="text" v-model="searchForm.mobile" clearable placeholder="请输入手机号"
style="width: 200px" />
</FormItem>
<FormItem style="margin-left: -35px" class="br">
<Button @click="handleSearch" type="primary" icon="ios-search">搜索</Button>
<Button @click="handleReset">重置</Button>
<a class="drop-down" @click="dropDown">
{{ dropDownContent }}
<Icon :type="dropDownIcon"></Icon>
</a>
</FormItem>
</Form>
</Row> -->
<Row align="middle" justify="space-between" class="operation">
<div>
<Button @click="add" type="primary" icon="md-add">添加</Button>
<Button @click="add" type="primary" icon="md-add">添加分类</Button>
</div>
<div class="icons">
<Tooltip content="刷新" placement="top" transfer>
@ -49,47 +26,41 @@
</Tooltip>
</div>
</Row>
<Table :loading="loading" border :columns="columns" :data="data" :size="tableSize" sortable="custom"
ref="table"></Table>
<!-- <Row type="flex" justify="end" class="page">
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize"
@on-change="changePage" @on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]"
size="small" show-total show-elevator show-sizer></Page>
</Row> -->
<Table :loading="loading" border :columns="columns" :data="data" :size="tableSize" ref="table"></Table>
</Card>
<Modal :title="商品列表" v-model="Visiable" :mask-closable="false" :scrollabele="true" :width="1000">
<goodsList v-if="Visiable" ref="goodsPage"></goodsList>
<div slot="footer" v-show=Visiable>
<Button type="text" @click="Visiable = false">关闭</Button>
<Modal :title="goodsModalTitle" v-model="visibleGoods" :mask-closable="false" :width="1100">
<goodsList v-if="visibleGoods" ref="goodsPage" @on-submit="getDataList"></goodsList>
<div slot="footer">
<Button type="text" @click="visibleGoods = false">关闭</Button>
</div>
</Modal>
<addEdit :data="form" :type="showType" v-model="showCompany" @on-submit="getDataList" />
<addEdit :data="form" :type="showType" v-model="showCategory" @on-submit="getDataList" />
</div>
</template>
<script>
import {
seckillList,
addSeckill,
editSeckill,
delSeckill,
} from "@/api/app";
import { seckillList, delSeckill } from "@/api/app";
import addEdit from "./addEdit.vue";
import goodsList from "./dictManage.vue";
export default {
name: "logiticsCompany",
components: {
addEdit,
goodsList
goodsList,
},
data() {
return {
tableSize: "default",
showCompany: false,
showCategory: false,
showType: "0",
loading: true,
drop: false,
loading: false,
form: {},
data: [],
visibleGoods: false,
goodsModalTitle: "秒杀团商品",
columns: [
{
type: "index",
@ -100,189 +71,106 @@
{
title: "分类名称",
key: "categoryName",
minWidth: 125,
minWidth: 160,
fixed: "left",
},
{
title: "分类图标",
key: "categoryIcon",
minWidth: 120,
minWidth: 160,
render: (h, params) => {
if (!params.row.categoryIcon) return h("span", "-");
return h("img", {
attrs: { src: params.row.categoryIcon },
style: {
width: "60px",
height: "40px",
objectFit: "contain",
},
});
},
},
{
title: "排序",
key: "sort",
minWidth: 120,
minWidth: 100,
},
{
title: "状态",
key: "status",
minWidth: 120,
render: (h, params) => {
let re = ""
if (params.row.position == '0') {
re = "禁用";
} else if (params.row.position == '1') {
re = "启用";
}
return h(
"div",
re
);
}
minWidth: 100,
render: (h, params) => h("span", params.row.status == 1 ? "启用" : "禁用"),
},
{
title: "备注",
key: "remark",
minWidth: 120,
minWidth: 180,
},
{
title: "操作",
key: "action",
width: 170,
width: 230,
align: "center",
fixed: "right",
render: (h, params) => {
return h("div", [
h(
"a", {
on: {
click: () => {
this.edit(params.row);
},
},
},
"编辑"
),
h(
"a", {
on: {
click: () => {
this.remove(params.row);
},
},
},
"删除"
),
h("Divider", {
props: {
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.goodsList(params.row);
},
},
},
"管理商品"
),
h("a", { on: { click: () => this.edit(params.row) } }, "编辑"),
h("Divider", { props: { type: "vertical" } }),
h("a", { on: { click: () => this.remove(params.row) } }, "删除"),
h("Divider", { props: { type: "vertical" } }),
h("a", { on: { click: () => this.openGoods(params.row) } }, "管理商品"),
]);
},
},
],
data: [],
Visiable: false,
};
},
methods: {
init() {
this.getDataList();
},
findAllRecord(v) {
this.Visiable = true;
console.log(v)
this.$nextTick(() => {
this.$refs.dialog.initRecharge(v);
});
},
changePage(v) {
this.getDataList();
this.clearSelectAll();
},
changeTableSize(v) {
this.tableSize = v;
},
changePageSize(v) {
this.getDataList();
getRegionId() {
return JSON.parse(this.getStore("user")).departmentId;
},
getDataList() {
//
this.loading = true;
seckillList({
regionId: JSON.parse(this.getStore("user")).departmentId
regionId: this.getRegionId(),
}).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.records;
this.data = Array.isArray(res.result) ? res.result : (res.result && res.result.records) || [];
}
}).catch(() => {
this.loading = false;
});
},
goodsList(v){
this.Visiable = true;
this.$nextTick(() => {
this.$refs.goodsPage.init(v);
});
},
handleSearch() {
this.getDataList();
},
handleReset() {
this.$refs.searchForm.resetFields();
//
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order == "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
showDetail(v) {
// null""
for (let attr in v) {
if (v[attr] == null) {
v[attr] = "";
}
}
let str = JSON.stringify(v);
let data = JSON.parse(str);
this.form = data;
this.showType = "0";
this.showCompany = true;
},
add() {
this.form = {
regionId: this.getRegionId(),
sort: 0,
status: 1,
};
this.showType = "2";
this.showCompany = true;
this.showCategory = true;
},
edit(v) {
// null""
for (let attr in v) {
if (v[attr] == null) {
v[attr] = "";
}
}
let str = JSON.stringify(v);
let data = JSON.parse(str);
this.form = data;
this.form = JSON.parse(JSON.stringify(v));
this.showType = "1";
this.showCompany = true;
this.showCategory = true;
},
remove(v) {
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除公司配置 " + v.companyName + " ?",
content: "您确认要删除秒杀团分类 " + v.categoryName + " ?",
loading: true,
onOk: () => {
deleteLogiticsCompany({
ids: v.id
}).then((res) => {
delSeckill({ id: v.id }).then((res) => {
this.$Modal.remove();
if (res.success) {
this.clearSelectAll();
this.$Message.success("删除成功");
this.getDataList();
}
@ -290,12 +178,13 @@
},
});
},
dropDown() {
this.drop = !this.drop;
openGoods(v) {
this.goodsModalTitle = "管理商品 - " + v.categoryName;
this.visibleGoods = true;
this.$nextTick(() => {
this.$refs.goodsPage.init(v);
});
},
clearSelectAll() {
this.$refs.table.selectAll(false);
}
},
mounted() {
this.init();

1062
src/views/app/business/logiticsCompany/transferStation.vue

File diff suppressed because it is too large

2
vue.config.js

@ -4,7 +4,7 @@ module.exports = {
publicPath: '/',
devServer: {
host: '127.0.0.1',
port: 8888,
port: 8889,
proxy: {
'/hiver': {
// target: 'https://hbkuaishi.com', // 正式1

Loading…
Cancel
Save