tianyi 2 months ago
parent
commit
83e924d6f1
  1. 8
      src/api/app.js
  2. 11
      src/api/index.js
  3. 2
      src/locale/lang/zh-CN.js
  4. 18
      src/views/app/bill/historical/historical.vue
  5. 17
      src/views/app/bill/success/success.vue
  6. 94
      src/views/app/business/courier/courier.vue
  7. 207
      src/views/app/business/courier/logisticsAddress.vue
  8. 264
      src/views/app/business/deliverytruck/addEdit.vue
  9. 26
      src/views/app/business/deliverytruck/deliveryTruck.vue
  10. 181
      src/views/app/business/expressCompany/addEdit.vue
  11. 11
      src/views/app/business/expressCompany/expressCompany.vue
  12. 10
      src/views/app/business/logistics/logistics.vue
  13. 312
      src/views/app/business/logiticsCompany/addEdit.vue
  14. 22
      src/views/app/business/logiticsCompany/logiticsCompany.vue
  15. 308
      src/views/app/business/problemFeedback/addEdit.vue
  16. 4
      src/views/app/business/problemFeedback/problemFeedback.vue
  17. 80
      src/views/app/business/recharge/logisticsAddress.vue
  18. 206
      src/views/app/business/recharge/recharge.vue
  19. 398
      src/views/app/business/recharge/rechargeOne.vue
  20. 20
      src/views/app/marketing-management/marketing-management.vue
  21. 209
      src/views/app/shop/logisticsAddress.vue
  22. 30
      src/views/app/shop/shop.vue
  23. 133
      src/views/login.vue
  24. 6
      src/views/main-components/footer.vue
  25. 6
      src/views/sys/order-manage/logisticsAddress.vue
  26. 11
      src/views/sys/order-manage/orderManage.vue

8
src/api/app.js

@ -317,6 +317,14 @@ export const editShopTakeway = (params) => {
export const editShop = (params) => {
return putRequest('/app/shop/edit', params)
}
//删除评论
export const deleteComment = (params) => {
return postRequest('/app/comment/deleteByOrderId', params)
}
//评论列表
export const getCommentList = (params) => {
return postBodyRequest('/app/comment/getCommentList', params)
}
// 启用用户
export const enableShop = (params) => {

11
src/api/index.js

@ -681,7 +681,7 @@ export const deleteOrder = (params) => {
// 获取配送员
export const getWorkerListData = (params) => {
return postBodyRequest('/worker/getMatchingWorkerList', params)
return postBodyRequest('/worker/getByCondition', params)
}
// 创建订单
@ -796,9 +796,14 @@ export const disableCourier = (id, params) => {
}
// 查询充值记录
export const getWorkerRechargeRecord = (params) => {
return getRequest(`/recharge/getByCondition`, params)
export const getGroupList = (params) => {
return postBodyRequest(`/mall/admin/orderGroup/page`, params)
}
//查看拼团订单
export const getPTOrder = (id,params) => {
return getRequest(`/mall/admin/orderGroup/detail/${id}`, params)
}
// 查询线路列表
export const getWorkerAddress = (params) => {
return postBodyRequest(`/app/operatingArea/getOperatingAreaList`, params)

2
src/locale/lang/zh-CN.js

@ -1,5 +1,5 @@
export default {
hiver: '嘻嘻哈哈',
hiver: '校园项目管理后台',
usernameLogin: '账户密码登录',
mobileLogin: '手机短信登录',
autoLogin: '自动登录',

18
src/views/app/bill/historical/historical.vue

@ -93,7 +93,6 @@
<script>
import {
getAllLogiticsCompanyData,
getLogiticsCompanyData,
deleteLogiticsCompany,
onLineCompany,
offLineCompany
@ -344,22 +343,7 @@
getDataList() {
//
this.loading = true;
getLogiticsCompanyData(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
if (!this.getStore("roles").includes("ROLE_ADMIN")) {
res.result.content.forEach((e) => {
e.mobile = "您无权查看该数据";
});
}
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
}
}
});
},
handleSearch() {
this.searchForm.pageNumber = 1;

17
src/views/app/bill/success/success.vue

@ -93,7 +93,6 @@
<script>
import {
getAllLogiticsCompanyData,
getLogiticsCompanyData,
deleteLogiticsCompany,
onLineCompany,
offLineCompany
@ -344,22 +343,6 @@
getDataList() {
//
this.loading = true;
getLogiticsCompanyData(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
if (!this.getStore("roles").includes("ROLE_ADMIN")) {
res.result.content.forEach((e) => {
e.mobile = "您无权查看该数据";
});
}
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
}
}
});
},
handleSearch() {
this.searchForm.pageNumber = 1;

94
src/views/app/business/courier/courier.vue

@ -6,7 +6,7 @@
<div class="search">
<Card>
<Row v-show="openSearch" @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="90">
<Form ref="searchForm" :model="searchForm" inline :label-width="100">
<FormItem label="配送员名称" prop="WorkerName">
<Input type="text" v-model="searchForm.workerName" clearable placeholder="请输入配送员名称"
style="width: 200px" />
@ -19,7 +19,7 @@
</Select>
</FormItem>
<FormItem label="是否接指派单" prop="getPushOrder">
<Select ref="dep" @on-change="checkStatus" style="width:200px">
<Select ref="dep" @on-change="checkStatus" style="width:210px">
<Option v-for="(item, i) in dictData" :key="i" :value="item.value">{{
item.title
}}</Option>
@ -67,6 +67,12 @@
size="small" show-total show-elevator show-sizer></Page>
</Row>
</Card>
<Modal :title="查看评论" v-model="Visiable" :mask-closable="false" :scrollabele="true" :width="1200">
<logistics-address v-if="Visiable" ref="dialog"></logistics-address>
<div slot="footer" v-show=Visiable>
<Button type="text" @click="Visiable = false">关闭</Button>
</div>
</Modal>
<addEdit :data="form" :type="showType" v-model="showWorker" @on-submit="getDataList" />
</div>
</template>
@ -88,18 +94,22 @@
userColumns,
userData
} from "./importTemplate";
import "viewerjs/dist/viewer.css";
import Viewer from "viewerjs";
//
import {
exportColumn
} from "./exportColumn";
import excel from "@/libs/excel";
import addEdit from "./addEdit.vue";
import logisticsAddress from "@/views/app/business/courier/logisticsAddress.vue";
import dict from "@/views/my-components/hiver/dict";
export default {
name: "Courier",
components: {
addEdit,
dict,
logisticsAddress
},
data() {
return {
@ -111,6 +121,7 @@
openTip: true,
loading: true,
reading: false,
Visiable: false,
importLoading: false,
loadingExport: true,
exportModalVisible: false,
@ -138,7 +149,7 @@
isOnLine:'', //0线1线
getPushOrder:'', //0 1
pageNum: 1,
pageSize: 1000
pageSize: 10
},
selectDate: null,
options: {
@ -248,27 +259,30 @@
width: 200,
align: "center"
},
{
title: "手上的待接单订单数",
key: "orderWaitCount",
width: 200,
align: "center",
},
{
title: "手上的待取货订单数",
key: "orderGetCount",
width: 200,
align: "center",
},
{
title: "手上的待送达订单数",
key: "orderPutCount",
width: 180,
},
{
title: "学生/身份证",
key: "cardPicture",
width: 180,
render: (h, params) => {
return h("img", {
attrs: {
src: params.row.cardPicture,
},
style: {
cursor: "zoom-in",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showPic(params.row.cardPicture);
},
},
});
},
},
{
title: "是否接指派",
@ -361,6 +375,21 @@
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.findAllRecord(params.row);
},
},
},
"查看评论"
),
h("Divider", {
props: {
type: "vertical",
},
}),
onOrOffLine,
h("Divider", {
props: {
@ -381,7 +410,7 @@
},
},
},
"查看接单规则"
"接单规则"
),
]);
},
@ -425,6 +454,16 @@
this.searchForm.isOnLine = v
console.log(v)
},
showPic(v) {
let image = new Image();
image.src = v;
let viewer = new Viewer(image, {
hidden: function() {
viewer.destroy();
},
});
viewer.show();
},
checkStatus(v){
this.searchForm.getPushOrder = v
console.log(v)
@ -441,10 +480,11 @@
getDataList() {
//
this.loading = true;
getWorkerListData(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result;
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNum > 1) {
this.searchForm.pageNum -= 1;
@ -453,6 +493,13 @@
}
});
},
findAllRecord(v) {
this.Visiable = true;
console.log(v)
this.$nextTick(() => {
this.$refs.dialog.initRecharge(v);
});
},
handleSearch() {
this.searchForm.pageNum = 1;
this.searchForm.pageSize = 10;
@ -526,6 +573,7 @@
this.showWorker = true;
},
edit(v) {
this.$Message.warning("暂未开放");return
// null""
for (let attr in v) {
if (v[attr] == null) {
@ -667,8 +715,6 @@
}
},
mounted() {
//
this.height = Number(document.documentElement.clientHeight - 230);
this.init();
},
};

207
src/views/app/business/courier/logisticsAddress.vue

@ -0,0 +1,207 @@
<template>
<div class="search">
<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 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>
</div>
</template>
<script>
import {
deleteComment,
getCommentList
} from "@/api/app";
import "viewerjs/dist/viewer.css";
import Viewer from "viewerjs";
export default {
name: "logisticsAddress",
components: {
},
data() {
return {
tableSize: "default",
loading: true, //
searchForm: {
pageNum: 1,
pageSize: 10,
picture: 0,
score: 0,
shopId: ""
},
selectList: [], //
columns: [
{
type: "index",
width: 60,
align: "center",
},
{
title: "评价用户",
key: "createByName",
minWidth: 125,
},
{
title: "评价时间",
key: "createTime",
minWidth: 125,
render: (h, params) => {
return h(
"div",
this.formatDateTime(params.row.createTime)
);
}
},
{
title: "星级",
key: "score",
minWidth: 125,
},
{
title: "评价",
key: "remark",
minWidth: 125,
},
{
title: "评价图",
key: "picture",
minWidth: 125,
render: (h, params) => {
return h("img", {
attrs: {
src: params.row.picture,
},
style: {
cursor: "zoom-in",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showPic(params.row.picture);
},
},
});
},
},
{
title: "操作",
key: "action",
width: 200,
align: "center",
fixed: "right",
render: (h, params) => {
return h("div", [
h(
"a", {
on: {
click: () => {
this.remove(params.row);
},
},
},
"删除"
),
]);
},
},
],
data: [], //
total: 0, //
};
},
methods: {
initRecharge(data) {
//data
console.log(data);
this.searchForm.shopId = data.workerId;
this.getDataList();
},
changePage(v) {
this.searchForm.pageNum = v;
this.getDataList();
},
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
remove(v) {
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除该评论吗?",
loading: true,
onOk: () => {
deleteComment({
orderId: v.id
}).then((res) => {
this.$Modal.remove();
if (res.success) {
this.$Message.success("删除成功");
this.getDataList();
}
});
},
});
},
showPic(v) {
if(v == ''){
this.$Message.warning("没有评价图");return
}
let image = new Image();
image.src = v;
let viewer = new Viewer(image, {
hidden: function() {
viewer.destroy();
},
});
viewer.show();
},
formatDateTime(isoString) {
if (!isoString) return ''
const date = new Date(isoString)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
changeSelect(e) {
this.selectList = e;
},
getDataList(params) {
this.loading = true;
//
getCommentList(this.searchForm).then((res) => {
this.loading = false;
if (res.code == 200) {
this.data = res.result.records;
this.total = res.result.total;
}
});
},
},
};
</script>
<style lang="less">
//@import "@/styles/table-common.less";
</style>

264
src/views/app/business/deliverytruck/addEdit.vue

@ -1,264 +0,0 @@
<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 label-colon v-show="type != '2'">
<Row :gutter="32">
<Col span="24">
<FormItem label="车牌号">
{{ form.companyName }}
</FormItem>
</Col>
</Row>
</Form>
<Form
ref="form"
:model="form"
:rules="formValidate"
label-position="top"
>
<Row :gutter="32" v-if="type == '2'">
<Col span="24">
<FormItem label="车牌号" prop="companyName">
<Input v-model="form.companyName" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="联系人" prop="contacts">
<Input v-model="form.contacts" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="手机号" prop="mobile">
<Input v-model="form.mobile" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="所在地区" prop="companyAddress">
<al-cascader
v-model="form.companyAddress"
data-type="name"
level="2"
transfer
/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="详细地址" prop="companyStreet">
<Input v-model="form.companyStreet" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="商圈区域" prop="region">
<region-tree-choose
@on-change="handleSelectRegion"
ref="regionTree"
></region-tree-choose>
</FormItem>
</Col>
<Col span="12">
<FormItem label="返佣金额" prop="rebateAmount">
<Input v-model="form.rebateAmount" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="当次缴纳" prop="depoNum">
<Input v-model="form.depoNum" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="押金余额" prop="depoBal">
<Input v-model="form.depoBal" :disabled="true"/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="送车信息收费标准说明">
<Input type="textarea" v-model="form.remark" :rows="4" />
</FormItem>
</Col>
</Row>
</Form>
</div>
<div class="drawer-footer br" v-show="type != '0'">
<Button type="primary" :loading="submitLoading" @click="submit"
>提交</Button
>
<Button @click="visible = false">取消</Button>
</div>
</Drawer>
</div>
</template>
<script>
import { addLogiticsCompany, editLogiticsCompany } 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";
export default {
name: "company",
components: {
dict,
uploadPicInput,
regionTreeChoose
},
props: {
value: {
type: Boolean,
default: false,
},
data: {
type: Object,
},
type: {
type: String,
default: "0",
},
},
data() {
return {
roleList: [],
visible: this.value,
title: "",
data:[],
passColor: "",
submitLoading: false,
maxHeight: 510,
form: {
companyAddress: [],
companyStreet: '',
},
formValidate: {
//
companyName: [
{ required: true, message: "请输入车牌号", trigger: "change" },
],
contacts: [
{ required: true, message: "请输入联系人", trigger: "change" },
],
mobile: [
{ required: true, message: "请输入手机号", trigger: "change" },
],
},
};
},
methods: {
init() {
},
changePass(v, grade, strength) {
this.form.password = strength;
},
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.type == "1") {
//
this.submitLoading = true;
editLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
} else {
//
this.submitLoading = true;
addLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
}
}
});
},
handleSelectRegion(v) {
this.form.region = v;
},
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;
//
if (data.companyAddress) {
data.companyAddress = data.companyAddress.split(",");
} else {
data.companyAddress = [];
}
//
this.$refs.regionTree.setData(data.region, data.regionTitle);
//
this.form = data;
} else {
//
this.form = {
companyAddress: [],
signCompany: "4",
};
}
this.visible = value;
},
},
watch: {
value(val) {
this.setCurrentValue(val);
},
visible(value) {
this.$emit("input", value);
},
},
mounted() {
this.init();
},
};
</script>
<style lang="less">
@import "@/styles/drawer-common.less";
</style>

26
src/views/app/business/deliverytruck/deliveryTruck.vue

@ -181,19 +181,12 @@
<Button type="text" @click="rechargeVisiable = false">关闭</Button>
</div>
</Modal>
<addEdit
:data="form"
:type="showType"
v-model="showCompany"
@on-submit="getDataList"
/>
</div>
</template>
<script>
import {
getAllLogiticsCompanyData,
getLogiticsCompanyData,
deleteLogiticsCompany,
offLineCompany,
onLineCompany
@ -202,13 +195,11 @@ import { shortcuts } from "@/libs/shortcuts";
//
import { exportColumn } from "./exportColumn";
import excel from "@/libs/excel";
import addEdit from "./addEdit.vue";
//
import rechargeOne from "@/views/app/business/recharge/rechargeOne.vue";
export default {
name: "logiticsCompany",
components: {
addEdit,
rechargeOne
},
data() {
@ -491,22 +482,7 @@ export default {
getDataList() {
//
this.loading = true;
getLogiticsCompanyData(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
if (!this.getStore("roles").includes("ROLE_ADMIN")) {
res.result.content.forEach((e) => {
e.mobile = "您无权查看该数据";
});
}
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
}
}
});
},
handleSearch() {
this.searchForm.pageNumber = 1;

181
src/views/app/business/expressCompany/addEdit.vue

@ -1,181 +0,0 @@
<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 label-colon>
<Row :gutter="32">
<Col span="24">
<FormItem label="楼栋名称" prop="companyName">
<Input v-model="form.name" />
</FormItem>
</Col>
</Row>
</Form>
<Form ref="form" :model="form" :rules="formValidate" label-position="top">
<Row :gutter="32">
<Col span="24">
<FormItem label="学校id" prop="companyName">
<Input v-model="form.schoolId" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="排序" prop="companyTel">
<Input v-model="form.orderByField" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="备注">
<Input type="textarea" v-model="form.remark" :rows="4" />
</FormItem>
</Col>
</Row>
</Form>
</div>
<div class="drawer-footer br" v-show="type != '0'">
<Button type="primary" :loading="submitLoading" @click="submit">提交</Button>
<Button @click="visible = false">取消</Button>
</div>
</Drawer>
</div>
</template>
<script>
import {
addLogiticsCompany,
editLogiticsCompany
} 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";
export default {
name: "expressCompany",
components: {
dict,
uploadPicInput,
regionTreeChoose
},
props: {
value: {
type: Boolean,
default: false,
},
data: {
type: Object,
},
type: {
type: String,
default: "0",
},
},
data() {
return {
roleList: [],
visible: this.value,
title: "",
passColor: "",
submitLoading: false,
maxHeight: 510,
form: {
orderByField: '',
name: '',
remark: '',
schoolId: ''
},
formValidate: {
//
name: [{
required: true,
message: "请输入名称",
trigger: "change"
}, ]
},
};
},
methods: {
init() {
},
handleSelectRegion(v) {
this.form.region = v;
},
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.type == "1") {
//
this.submitLoading = true;
editLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
} else {
//
this.submitLoading = true;
addLogiticsCompany(this.form).then((res) => {
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";
}
//
this.$refs.form.resetFields();
if (this.type == "1") {
//
let data = this.data;
//
this.form = data;
} else {
}
this.visible = value;
},
},
watch: {
value(val) {
this.setCurrentValue(val);
},
visible(value) {
this.$emit("input", value);
},
},
mounted() {
this.init();
},
};
</script>
<style lang="less">
@import "@/styles/drawer-common.less";
</style>

11
src/views/app/business/expressCompany/expressCompany.vue

@ -93,14 +93,12 @@
<Button type="text" @click="rechargeVisiable = false">关闭</Button>
</div>
</Modal>
<addEdit :data="form" :type="showType" v-model="showCompany" @on-submit="getDataList" />
</div>
</template>
<script>
import {
getAllLogiticsCompanyData,
getLogiticsCompanyData,
deleteLogiticsCompany,
onLineCompany,
offLineCompany
@ -113,13 +111,11 @@
exportColumn
} from "./exportColumn";
import excel from "@/libs/excel";
import addEdit from "./addEdit.vue";
//
import rechargeOne from "@/views/app/business/recharge/rechargeOne.vue";
export default {
name: "logiticsCompany",
components: {
addEdit,
rechargeOne
},
data() {
@ -271,12 +267,7 @@
getDataList() {
//
this.loading = true;
getLogiticsCompanyData(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result;
}
});
},
handleSearch() {
this.getDataList();

10
src/views/app/business/logistics/logistics.vue

@ -11,13 +11,13 @@
<TabPane label="跑腿订单" name="3"></TabPane>
</Tabs>
<Tabs v-model="tabName1" :animated="false" @on-click="changeTab">
<TabPane label="待接单" name="0"></TabPane>
<TabPane label="待取货" name="1"></TabPane>
<TabPane label="待送达" name="2"></TabPane>
<TabPane label="全部" name="10"></TabPane>
<TabPane label="待支付" name=""></TabPane>
<TabPane label="待成团" name=""></TabPane>
<TabPane label="待消费" name=""></TabPane>
<TabPane label="待接单" name="0"></TabPane>
<TabPane label="待取货" name="1"></TabPane>
<TabPane label="待送达" name="2"></TabPane>
<TabPane label="已完成" name=""></TabPane>
<TabPane label="待退款" name=""></TabPane>
<TabPane label="已退款" name=""></TabPane>
@ -26,7 +26,7 @@
<TabPane label="已售后" name=""></TabPane>
</Tabs>
<Row v-show="openSearch" @keydown.enter.native="handleSearch">
<Form ref="searchForm" :model="searchForm" inline :label-width="70">
<Form ref="searchForm" :model="searchForm" inline :label-width="90">
<FormItem label="配送员名称" prop="workerName">
<Input type="text" v-model="searchForm.workerName" clearable placeholder="请输入配送员名称"
style="width: 200px" />
@ -420,7 +420,7 @@
handleSelectDep(v) {
this.searchForm.departmentId = v;
},
changeOrderTab() {
changeOrderTab(v) {
this.searchForm.pageNum = 1;
this.searchForm.deliveryType = v;
this.getLogisticsInfo();

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

@ -1,312 +0,0 @@
<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 label-colon v-show="type != '2'">
<Row :gutter="32">
<Col span="24">
<FormItem label="公司名称">
{{ form.companyName }}
</FormItem>
</Col>
</Row>
</Form>
<Form
ref="form"
:model="form"
:rules="formValidate"
label-position="top"
>
<Row :gutter="32" v-if="type == '2'">
<Col span="24">
<FormItem label="公司名称" prop="companyName">
<Input v-model="form.companyName" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="登录账号" prop="username">
<Input v-model="form.username" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="登录密码" prop="password">
<SetPassword v-model="form.password" @on-change="changePass" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="公司电话" prop="companyTel">
<Input v-model="form.companyTel" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="公司邮箱" prop="companyEmail">
<Input v-model="form.companyEmail" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="所在地区" prop="companyAddress">
<al-cascader
v-model="form.companyAddress"
data-type="name"
level="2"
transfer
/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="详细地址" prop="companyStreet">
<Input v-model="form.companyStreet" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="联系人" prop="contacts">
<Input v-model="form.contacts" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="手机号" prop="mobile">
<Input v-model="form.mobile" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="商圈区域" prop="region">
<region-tree-choose
@on-change="handleSelectRegion"
ref="regionTree"
></region-tree-choose>
</FormItem>
</Col>
<Col span="12">
<FormItem label="返佣金额" prop="rebateAmount">
<Input v-model="form.rebateAmount" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="当次缴纳" prop="depoNum">
<Input v-model="form.depoNum" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="押金余额" prop="depoBal">
<Input v-model="form.depoBal" :disabled="true"/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="是否支持上门取货" prop="canToDoor">
<i-switch
size="large"
v-model="form.canToDoor"
:true-value="1"
:false-value="0"
>
<span slot="open"></span>
<span slot="close"></span>
</i-switch>
</FormItem>
</Col>
<Col span="12">
<FormItem label="押金余额" prop="depoBal">
<Input v-model="form.depoBal" :disabled="true"/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="物流公司收费标准说明">
<Input type="textarea" v-model="form.remark" :rows="4" />
</FormItem>
</Col>
</Row>
</Form>
</div>
<div class="drawer-footer br" v-show="type != '0'">
<Button type="primary" :loading="submitLoading" @click="submit"
>提交</Button
>
<Button @click="visible = false">取消</Button>
</div>
</Drawer>
</div>
</template>
<script>
import { addLogiticsCompany, editLogiticsCompany } 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";
export default {
name: "company",
components: {
dict,
uploadPicInput,
regionTreeChoose
},
props: {
value: {
type: Boolean,
default: false,
},
data: {
type: Object,
},
type: {
type: String,
default: "0",
},
},
data() {
return {
roleList: [],
visible: this.value,
title: "",
data:[],
passColor: "",
submitLoading: false,
maxHeight: 510,
form: {
companyAddress: [],
companyStreet: '',
},
formValidate: {
//
companyName: [
{ required: true, message: "请输入公司名称", trigger: "change" },
],
contacts: [
{ required: true, message: "请输入联系人", trigger: "change" },
],
mobile: [
{ required: true, message: "请输入手机号", trigger: "change" },
],
},
};
},
methods: {
init() {
},
changePass(v, grade, strength) {
this.form.password = strength;
},
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.type == "1") {
//
this.submitLoading = true;
editLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
} else {
//
this.submitLoading = true;
this.form.companyAddress = JSON.stringify(this.form.companyAddress)
this.form.signCompany = "0"
console.log(this.form)
addLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
}
}
});
},
handleSelectRegion(v) {
this.form.region = v;
},
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;
//
if (data.companyAddress) {
data.companyAddress = data.companyAddress.split(",");
} else {
data.companyAddress = [];
}
//
this.$refs.regionTree.setData(data.region, data.regionTitle);
//
this.form = data;
} else {
//
this.form = {
companyAddress: [],
signCompany: "0",
};
}
this.visible = value;
},
},
watch: {
value(val) {
this.setCurrentValue(val);
},
visible(value) {
this.$emit("input", value);
},
},
mounted() {
this.init();
},
};
</script>
<style lang="less">
@import "@/styles/drawer-common.less";
</style>

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

@ -112,15 +112,12 @@
</FormItem>
</Form>
</Modal>
<addEdit :data="form" :type="showType" v-model="showCompany" @on-submit="getDataList" />
</div>
</template>
<script>
import {
getAllLogiticsCompanyData,
getLogiticsCompanyData,
deleteLogiticsCompany,
onLineCompany,
offLineCompany
@ -133,7 +130,6 @@
exportColumn
} from "./exportColumn";
import excel from "@/libs/excel";
import addEdit from "./addEdit.vue";
import logisticsAddress from "@/views/app/company/logisticsAddress.vue";
import lineBinding from "@/views/app/business/logiticsCompany/lineBinding.vue";
//
@ -145,7 +141,6 @@
export default {
name: "logiticsCompany",
components: {
addEdit,
logisticsAddress,
rechargeOne,
lineBinding
@ -512,22 +507,7 @@
getDataList() {
//
this.loading = true;
getLogiticsCompanyData(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
if (!this.getStore("roles").includes("ROLE_ADMIN")) {
res.result.content.forEach((e) => {
e.mobile = "您无权查看该数据";
});
}
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
}
}
});
},
handleSearch() {
this.searchForm.pageNumber = 1;

308
src/views/app/business/problemFeedback/addEdit.vue

@ -1,308 +0,0 @@
<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 label-colon v-show="type != '2'">
<Row :gutter="32">
<Col span="24">
<FormItem label="公司名称">
{{ form.companyName }}
</FormItem>
</Col>
</Row>
</Form>
<Form
ref="form"
:model="form"
:rules="formValidate"
label-position="top"
>
<Row :gutter="32" v-if="type == '2'">
<Col span="24">
<FormItem label="公司名称" prop="companyName">
<Input v-model="form.companyName" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="登录账号" prop="username">
<Input v-model="form.username" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="登录密码" prop="password">
<SetPassword v-model="form.password" @on-change="changePass" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="公司电话" prop="companyTel">
<Input v-model="form.companyTel" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="公司邮箱" prop="companyEmail">
<Input v-model="form.companyEmail" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="所在地区" prop="companyAddress">
<al-cascader
v-model="form.companyAddress"
data-type="name"
level="2"
transfer
/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="详细地址" prop="companyStreet">
<Input v-model="form.companyStreet" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="联系人" prop="contacts">
<Input v-model="form.contacts" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="手机号" prop="mobile">
<Input v-model="form.mobile" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="商圈区域" prop="region">
<region-tree-choose
@on-change="handleSelectRegion"
ref="regionTree"
></region-tree-choose>
</FormItem>
</Col>
<Col span="12">
<FormItem label="返佣金额" prop="rebateAmount">
<Input v-model="form.rebateAmount" />
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="12">
<FormItem label="当次缴纳" prop="depoNum">
<Input v-model="form.depoNum" />
</FormItem>
</Col>
<Col span="12">
<FormItem label="押金余额" prop="depoBal">
<Input v-model="form.depoBal" :disabled="true"/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="是否支持上门取货" prop="canToDoor">
<i-switch
size="large"
v-model="form.canToDoor"
:true-value="1"
:false-value="0"
>
<span slot="open"></span>
<span slot="close"></span>
</i-switch>
</FormItem>
</Col>
<Col span="12">
<FormItem label="押金余额" prop="depoBal">
<Input v-model="form.depoBal" :disabled="true"/>
</FormItem>
</Col>
</Row>
<Row :gutter="32">
<Col span="24">
<FormItem label="物流公司收费标准说明">
<Input type="textarea" v-model="form.remark" :rows="4" />
</FormItem>
</Col>
</Row>
</Form>
</div>
<div class="drawer-footer br" v-show="type != '0'">
<Button type="primary" :loading="submitLoading" @click="submit"
>提交</Button
>
<Button @click="visible = false">取消</Button>
</div>
</Drawer>
</div>
</template>
<script>
import { addLogiticsCompany, editLogiticsCompany } 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";
export default {
name: "company",
components: {
dict,
uploadPicInput,
regionTreeChoose
},
props: {
value: {
type: Boolean,
default: false,
},
data: {
type: Object,
},
type: {
type: String,
default: "0",
},
},
data() {
return {
roleList: [],
visible: this.value,
title: "",
data:[],
passColor: "",
submitLoading: false,
maxHeight: 510,
form: {
companyAddress: [],
companyStreet: '',
},
formValidate: {
//
companyName: [
{ required: true, message: "请输入公司名称", trigger: "change" },
],
contacts: [
{ required: true, message: "请输入联系人", trigger: "change" },
],
mobile: [
{ required: true, message: "请输入手机号", trigger: "change" },
],
},
};
},
methods: {
init() {
},
changePass(v, grade, strength) {
this.form.password = strength;
},
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.type == "1") {
//
this.submitLoading = true;
editLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
} else {
//
this.submitLoading = true;
addLogiticsCompany(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.$emit("on-submit", true);
this.visible = false;
}
});
}
}
});
},
handleSelectRegion(v) {
this.form.region = v;
},
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;
//
if (data.companyAddress) {
data.companyAddress = data.companyAddress.split(",");
} else {
data.companyAddress = [];
}
//
this.$refs.regionTree.setData(data.region, data.regionTitle);
//
this.form = data;
} else {
//
this.form = {
companyAddress: [],
signCompany: "0",
};
}
this.visible = value;
},
},
watch: {
value(val) {
this.setCurrentValue(val);
},
visible(value) {
this.$emit("input", value);
},
},
mounted() {
this.init();
},
};
</script>
<style lang="less">
@import "@/styles/drawer-common.less";
</style>

4
src/views/app/business/problemFeedback/problemFeedback.vue

@ -120,8 +120,6 @@
</FormItem>
</Form>
</Modal>
<addEdit :data="form" :type="showType" v-model="showCompany" @on-submit="getDataList" />
</div>
</template>
@ -139,14 +137,12 @@
exportColumn
} from "./exportColumn";
import excel from "@/libs/excel";
import addEdit from "./addEdit.vue";
import logisticsAddress from "@/views/app/company/logisticsAddress.vue";
//
import rechargeOne from "@/views/app/business/recharge/rechargeOne.vue";
export default {
name: "problemFeedback",
components: {
addEdit,
logisticsAddress,
rechargeOne
},

80
src/views/app/business/recharge/logisticsAddress.vue

@ -1,79 +1,60 @@
<template>
<div class="search">
<div style="max-height:600px;overflow: scroll;scrollbar-width: none;">
<div class="search" v-for="(item,index) in orderData" :key="index">
<div style="font-size: 24px;font-weight: 700;padding: 10px;">订单{{index + 1}}</div>
<div style="display: flex;">
<div class="waiceng">
<div class="title">订单信息</div>
<div>订单编号{{orderData.numberCode}}</div>
<div>支付订单编号{{'ORDER'+orderData.id}}</div>
<div>订单编号{{item.numberCode}}</div>
<div>支付订单编号{{'ORDER'+item.id}}</div>
<div>创建时间{{item.createTime | formatDateTime}}</div>
</div>
<div class="waiceng">
<div class="title">用户信息</div>
<div>收货人<span class="blue-color">{{orderData.receiverName}}</span></div>
<div>收货电话<span class="blue-color">{{orderData.receiverPhone}}</span></div>
<div>收货地址<span class="blue-color">{{orderData.receiverAddress}}</span></div>
<div>要求送达时间<span class="blue-color">2026/04/07 09:31:00</span></div>
<div>收货人<span class="blue-color">{{item.receiverName}}</span></div>
<div>收货电话<span class="blue-color">{{item.receiverPhone}}</span></div>
<div>收货地址<span class="blue-color">{{item.receiverAddress}}</span></div>
</div>
<div class="waiceng">
<div class="title">店铺信息</div>
<div>店铺名称<span class="blue-color">{{orderData.shopName}}</span></div>
<div>店铺电话<span class="blue-color">{{orderData.shopPhone}}</span></div>
<div>配送方式 <span class="blue-color">{{orderData.deliveryType == 1?'配送':'不配送'}}</span></div>
</div>
<div class="waiceng">
<div class="title">其他信息</div>
<div>配送员<span class="blue-color">张宝芹</span></div>
<div>配送员电话<span class="blue-color">15832720108</span></div>
<div>备注<span class="blue-color">{{orderData.remark}}</span></div>
<div>店铺名称<span class="blue-color">{{item.shopName}}</span></div>
<div>店铺电话<span class="blue-color">{{item.shopPhone}}</span></div>
<div>配送方式 <span class="blue-color">{{item.deliveryType == 1?'配送':'不配送'}}</span></div>
</div>
</div>
<div style="display: flex;">
<div class="waiceng" style="width: 70%;">
<div class="waiceng" style="width: 100%;">
<div class="title">商品信息</div>
<div class="box" v-for="(item,index) in orderData.goodsList" :key="index">
<div style="flex:1;">{{item.productName}}</div>
<div class="price"> X{{item.quantity}}</div>
<div class="price">¥{{item.price}}</div>
<div class="box" v-for="(item1,index) in item.goodsList" :key="index">
<div style="flex:1;">{{item1.productName}}</div>
<div class="price"> X{{item1.quantity}}</div>
<div class="price">¥{{item1.price}}</div>
</div>
<div class="box">
<div style="flex:1;">餐盒费</div>
<div class="price">¥{{orderData.packageFee}}</div>
<div class="price">¥{{item.packageFee}}</div>
</div>
<div class="box">
<div style="flex:1;">配送费</div>
<div class="price">¥{{orderData.deliveryFee}}</div>
<div class="price">¥{{item.deliveryFee}}</div>
</div>
<div class="zong">活动优惠<span style="color:red;">¥0</span> 下单返佣<span style="color:red;">¥0</span>
合计<span style="color:#11cd6e;">¥{{orderData.totalAmount}}</span></div>
<div class="zong">流水金额<span class="blue-color">¥24</span> </div>
<div class="zong">商家预计收入<span class="blue-color">¥20.16</span> </div>
</div>
<div class="waiceng" style="width: 30%;background: #eee;padding: 0;">
<div style="background: #fff;padding: 10px;margin-bottom: 10px;border-radius: 10px;">
<div class="title">物流信息</div>
<div class="text">用户提交订单时间{{orderData.createTime | formatDateTime }}</div>
<div class="text">用户完成支付时间2026/04/07 09:06:41</div>
<div class="text">商家接单时间2026/04/07 09:06:41</div>
<div class="text">配送员已接单2026/04/07 09:06:44</div>
</div>
<div style="background: #fff;padding: 10px;border-radius: 10px;">
<div class="title">运营订单备注</div>
<textarea name="" id="" cols="30" rows="10" style="width: 100%;border: 1px solid #eee;"></textarea>
<div class='btn' @tap="returnOrder">退款</div>
</div>
合计<span style="color:#11cd6e;">¥{{item.totalAmount}}</span></div>
</div>
</div>
</div>
</div>
</template>
<script>
import {
returnOrder,
getPTOrder
} from "@/api/index";
export default {
name: "logisticsAddress",
data() {
return {
orderData: {}
orderData: []
};
},
filters: {
@ -91,17 +72,13 @@
},
methods: {
initRecharge(data) {
console.log('111112222', data);
this.orderData = data
this.getPTOrder(data)
},
returnOrder(){
returnOrder({
orderId:orderData.id,
userId:orderData.userId
}).then((res) => {
this.loading = false;
getPTOrder(id){
getPTOrder(id).then((res) => {
if (res.success) {
this.$Message.success("取消订单成功");
this.orderData = res.result.childOrders;
this.$forceUpdate()
}
});
}
@ -123,6 +100,7 @@
border-radius: 10px;
margin: 5px;
padding: 10px;
flex: 1;
}
.btn {

206
src/views/app/business/recharge/recharge.vue

@ -40,13 +40,8 @@
</Tooltip>
</div>
</Row>
<Alert show-icon v-show="openTip">
已选择
<span class="select-count">{{ selectList.length }}</span>
<a class="select-clear" @click="clearSelectAll">清空</a>
</Alert>
<Table :loading="loading" border :columns="columns" :data="data" :size="tableSize" ref="table"
sortable="custom" @on-sort-change="changeSort" @on-selection-change="changeSelect"></Table>
sortable="custom" ></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]"
@ -54,7 +49,7 @@
</Row>
</Card>
<!-- 订单详情 -->
<Modal :title="订单详情" v-model="Visiable" :mask-closable="false" :scrollabele="true" :width="1000">
<Modal :title="订单详情" v-model="Visiable" :mask-closable="false" :scrollabele="true" :width="850">
<logistics-address v-if="Visiable" ref="dialog"></logistics-address>
<div slot="footer" v-show="Visiable">
<Button type="text" @click="Visiable = false">关闭</Button>
@ -65,17 +60,12 @@
<script>
import {
getWorkerRechargeRecord
getGroupList
} from "@/api/index";
import uploadPicInput from "@/views/my-components/hiver/upload-pic-input";
import {
shortcuts
} from "@/libs/shortcuts";
import logisticsAddress from "@/views/sys/order-manage/logisticsAddress";
import logisticsAddress from "@/views/app/business/recharge/logisticsAddress";
export default {
name: "recharge",
components: {
uploadPicInput,
logisticsAddress,
},
data() {
@ -85,33 +75,16 @@
openSearch: true, //
openTip: true, //
loading: true, //
modalType: 0, //
modalVisible: false, //
modalTitle: "", //
searchForm: {
//
pageNumber: 1, //
pageSize: 10, //
sort: "createTime", //
order: "desc", //
startDate: "", //
endDate: "", //
},
selectDate: null,
options: {
shortcuts: shortcuts,
},
form: {
//
name: "",
logo: "",
clientSecret: "",
homeUri: "",
redirectUri: "",
autoApprove: false,
shopId:'',
headUserId:'',
status:'',
productName:'',
isFace:'',
pageNumber: 1,
pageSize: 10,
},
submitLoading: false, //
selectList: [], //
columns: [{
type: "index",
width: 60,
@ -119,28 +92,62 @@
},
{
title: "拼团编号",
key: "rechargeId",
key: "id",
align: "center",
},
{
title: "商名",
key: "rechargeName",
title: "商名",
key: "productName",
align: "center",
},
{
title: "成团时间",
key: "rechargeWorkerId",
key: "successTime",
align: "center",
},
{
title: "几人团",
key: "rechargeNum",
title: "几人团/已拼成",
key: "targetMembers",
align: "center",
render: (h, params) => {
let re = params.row.targetMembers + '/' + params.row.currentMembers
return h(
"div",
re
);
}
},
{
title: "状态",
key: "createTime",
key: "status", //0 1 2 3
align: "center",
render: (h, params) => {
let re = "",
color = "";
if (params.row.status == "3") {
re = "面对面";
color = "yellow";
} else if (params.row.status == "0") {
re = "待成团";
color = "yellow";
} else if (params.row.status == "1") {
re = "成功";
color = "green";
} else if (params.row.status == "2") {
re = "失败";
color = "red";
}
return h("div", [
h(
"Tag", {
props: {
color: color,
},
},
re
),
]);
},
},
{
title: "操作",
@ -150,43 +157,23 @@
fixed: "right",
render: (h, params) => {
return h("div", [
h("Divider", {
props: {
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.edit(params.row);
},
},
},
"查看详情"
),
h("Divider", {
props: {
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.edit(params.row);
this.getOrder(params.row.id);
},
},
},
"查看订单"
),
)
]);
},
},
],
data: [], //
total: 0, //
rechargeWorkerId: "",
};
},
methods: {
@ -196,11 +183,6 @@
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
edit(v){
this.Visiable = true;
},
changePageSize(v) {
this.searchForm.pageSize = v;
@ -215,55 +197,28 @@
this.$refs.searchForm.resetFields();
this.searchForm.pageNumber = 1;
this.searchForm.pageSize = 10;
this.selectDate = null;
this.searchForm.startDate = "";
this.searchForm.endDate = "";
//
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
},
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
//
getOrder(v){
console.log(v)
this.Visiable = true
this.$nextTick(() => {
this.$refs.dialog.initRecharge(v);
});
},
changeTableSize(v) {
this.tableSize = v;
},
exportData() {
this.$refs.table.exportCsv({
filename: "数据",
});
},
generateSecret() {
getSecretKey().then((res) => {
if (res.success) {
this.form.clientSecret = res.result;
}
});
},
getDataList() {
this.loading = true;
//
getWorkerRechargeRecord(this.rechargeWorkerId).then((res) => {
getGroupList(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.content;
this.total = res.result.totalElements;
this.data = res.result.records;
this.total = res.result.total;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
@ -271,35 +226,6 @@
}
});
},
handleSubmit() {
this.$refs.form.validate((valid) => {
if (valid) {
this.submitLoading = true;
if (this.modalType === 0) {
// id
delete this.form.id;
addClient(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
this.modalVisible = false;
}
});
} else {
//
updateClient(this.form).then((res) => {
this.submitLoading = false;
if (res.success) {
this.$Message.success("操作成功");
this.getDataList();
this.modalVisible = false;
}
});
}
}
});
},
},
mounted() {
this.init();

398
src/views/app/business/recharge/rechargeOne.vue

@ -1,227 +1,185 @@
<template>
<!--1.首先弹窗页面中要有el-dialog组件即弹窗组件我们把弹窗中的内容放在el-dialog组件中-->
<!--2.设置:visible.sync属性动态绑定一个布尔值通过这个属性来控制弹窗是否弹出-->
<div class="search">
<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 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>
</Card>
</div>
<!--1.首先弹窗页面中要有el-dialog组件即弹窗组件我们把弹窗中的内容放在el-dialog组件中-->
<!--2.设置:visible.sync属性动态绑定一个布尔值通过这个属性来控制弹窗是否弹出-->
<div class="search">
<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 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>
</Card>
</div>
</template>
<script>
import {
getWorkerRechargeRecord
} from "@/api/index";
import uploadPicInput from "@/views/my-components/hiver/upload-pic-input";
import { shortcuts } from "@/libs/shortcuts";
export default {
name: "rechargeOne",
components: {
uploadPicInput,
},
data() {
return {
tableSize: "default",
openSearch: true, //
openTip: true, //
loading: true, //
modalType: 0, //
modalVisible: false, //
modalTitle: "", //
searchForm: {
//
pageNumber: 1, //
pageSize: 10, //
sort: "createTime", //
order: "desc", //
startDate: "", //
endDate: "", //
},
selectDate: null,
options: {
shortcuts: shortcuts,
},
form: {
//
name: "",
logo: "",
clientSecret: "",
homeUri: "",
redirectUri: "",
autoApprove: false,
},
submitLoading: false, //
selectList: [], //
columns: [
{
type: "selection",
width: 60,
align: "center",
fixed: "left",
},
{
type: "index",
width: 60,
align: "center",
fixed: "left",
},
{
title: "充值编号",
key: "rechargeId",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "被充值人名称",
key: "rechargeName",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "被充值人编号",
key: "rechargeWorkerId",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "充值金额",
key: "rechargeNum",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "充值描述",
key: "rechargeDescribe",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "充值时间",
key: "createTime",
width: 170,
sortable: true,
sortType: "desc",
},
],
data: [], //
total: 0, //
rechargeWorkerId: "",
detailVisible:false,
};
},
methods: {
init() {
this.getDataList();
},
initRecharge(data) {
this.detailVisible=true;
//data
console.log(data);
this.getDataList1(data);
},
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
},
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
changeTableSize(v) {
this.tableSize = v;
},
exportData() {
this.$refs.table.exportCsv({
filename: "数据",
});
},
getDataList() {
this.loading = true;
//
getWorkerRechargeRecord(this.searchForm).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
}
}
});
},
getDataList1(params) {
this.loading = true;
//
getWorkerRechargeRecord(params).then((res) => {
this.loading = false;
if (res.success) {
this.data = res.result.content;
this.total = res.result.totalElements;
if (this.data.length == 0 && this.searchForm.pageNumber > 1) {
this.searchForm.pageNumber -= 1;
this.getDataList();
}
}
});
},
},
mounted() {
//this.init();
},
};
import uploadPicInput from "@/views/my-components/hiver/upload-pic-input";
import {
shortcuts
} from "@/libs/shortcuts";
export default {
name: "rechargeOne",
components: {
uploadPicInput,
},
data() {
return {
tableSize: "default",
openSearch: true, //
openTip: true, //
loading: true, //
modalType: 0, //
modalVisible: false, //
modalTitle: "", //
searchForm: {
//
pageNumber: 1, //
pageSize: 10, //
sort: "createTime", //
order: "desc", //
startDate: "", //
endDate: "", //
},
selectDate: null,
options: {
shortcuts: shortcuts,
},
form: {
//
name: "",
logo: "",
clientSecret: "",
homeUri: "",
redirectUri: "",
autoApprove: false,
},
submitLoading: false, //
selectList: [], //
columns: [{
type: "selection",
width: 60,
align: "center",
fixed: "left",
},
{
type: "index",
width: 60,
align: "center",
fixed: "left",
},
{
title: "充值编号",
key: "rechargeId",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "被充值人名称",
key: "rechargeName",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "被充值人编号",
key: "rechargeWorkerId",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "充值金额",
key: "rechargeNum",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "充值描述",
key: "rechargeDescribe",
minWidth: 125,
sortable: true,
fixed: "left",
},
{
title: "充值时间",
key: "createTime",
width: 170,
sortable: true,
sortType: "desc",
},
],
data: [], //
total: 0, //
rechargeWorkerId: "",
detailVisible: false,
};
},
methods: {
init() {
this.getDataList();
},
initRecharge(data) {
this.detailVisible = true;
//data
console.log(data);
this.getDataList1(data);
},
changePage(v) {
this.searchForm.pageNumber = v;
this.getDataList();
this.clearSelectAll();
},
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
clearSelectAll() {
this.$refs.table.selectAll(false);
},
changeSelect(e) {
this.selectList = e;
},
selectDateRange(v) {
if (v) {
this.searchForm.startDate = v[0];
this.searchForm.endDate = v[1];
}
},
changeTableSize(v) {
this.tableSize = v;
},
exportData() {
this.$refs.table.exportCsv({
filename: "数据",
});
},
getDataList() {
this.loading = true;
},
getDataList1(params) {
this.loading = true;
},
},
mounted() {
//this.init();
},
};
</script>
<style lang="less">
//@import "@/styles/table-common.less";
//@import "@/styles/table-common.less";
</style>

20
src/views/app/marketing-management/marketing-management.vue

@ -167,7 +167,6 @@
} from "@/api/index";
import {
getAllLogiticsCompanyData,
getLogiticsCompanyData,
} from "@/api/app";
import {
shortcuts
@ -651,24 +650,7 @@
getWuLiuValue(v) {
this.searchForm.companyName = v
getLogiticsCompanyData({
companyName: v,
id: "",
contacts: "",
mobile: "",
pageNumber: 1,
pageSize: 10,
sort: "createTime",
order: "desc",
startDate: "",
endDate: "",
signCompany: "",
}).then((res) => {
this.loading = false;
if (res.success) {
this.wuliuList = res.result.content
}
});
},
getShouValue(v) {

209
src/views/app/shop/logisticsAddress.vue

@ -0,0 +1,209 @@
<template>
<div class="search">
<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 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>
</div>
</template>
<script>
import {
deleteComment,
getCommentList
} from "@/api/app";
import "viewerjs/dist/viewer.css";
import Viewer from "viewerjs";
export default {
name: "logisticsAddress",
components: {
},
data() {
return {
tableSize: "default",
loading: true, //
searchForm: {
pageNum: 1,
pageSize: 10,
picture: 0,
score: 0,
shopId: ""
},
selectList: [], //
columns: [
{
type: "index",
width: 60,
align: "center",
},
{
title: "评价用户",
key: "createByName",
minWidth: 125,
},
{
title: "评价时间",
key: "createTime",
minWidth: 125,
render: (h, params) => {
return h(
"div",
this.formatDateTime(params.row.createTime)
);
}
},
{
title: "星级",
key: "score",
minWidth: 125,
},
{
title: "评价",
key: "remark",
minWidth: 125,
},
{
title: "评价图",
key: "picture",
minWidth: 125,
render: (h, params) => {
return h("img", {
attrs: {
src: params.row.picture,
},
style: {
cursor: "zoom-in",
width: "80px",
height: "60px",
margin: "10px 0",
"object-fit": "contain",
},
on: {
click: () => {
this.showPic(params.row.picture);
},
},
});
},
},
{
title: "操作",
key: "action",
width: 200,
align: "center",
fixed: "right",
render: (h, params) => {
return h("div", [
h(
"a", {
on: {
click: () => {
this.remove(params.row);
},
},
},
"删除"
),
]);
},
},
],
data: [], //
total: 0, //
};
},
methods: {
initRecharge(data) {
//data
console.log('djdjdjd1',data);
this.searchForm.shopId = data.id;
console.log('djdjdjd1',this.searchForm.shopId);
this.getDataList();
},
changePage(v) {
this.searchForm.pageNum = v;
this.getDataList();
},
changePageSize(v) {
this.searchForm.pageSize = v;
this.getDataList();
},
remove(v) {
this.$Modal.confirm({
title: "确认删除",
content: "您确认要删除该评论吗?",
loading: true,
onOk: () => {
deleteComment({
orderId: v.id
}).then((res) => {
this.$Modal.remove();
if (res.success) {
this.$Message.success("删除成功");
this.getDataList();
}
});
},
});
},
showPic(v) {
if(v == ''){
this.$Message.warning("没有评价图");return
}
let image = new Image();
image.src = v;
let viewer = new Viewer(image, {
hidden: function() {
viewer.destroy();
},
});
viewer.show();
},
formatDateTime(isoString) {
if (!isoString) return ''
const date = new Date(isoString)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
},
changeSort(e) {
this.searchForm.sort = e.key;
this.searchForm.order = e.order;
if (e.order === "normal") {
this.searchForm.order = "";
}
this.getDataList();
},
changeSelect(e) {
this.selectList = e;
},
getDataList(params) {
this.loading = true;
//
getCommentList(this.searchForm).then((res) => {
this.loading = false;
if (res.code == 200) {
this.data = res.result.records;
this.total = res.result.total;
}
});
},
},
};
</script>
<style lang="less">
//@import "@/styles/table-common.less";
</style>

30
src/views/app/shop/shop.vue

@ -122,6 +122,12 @@
<Button type="text" @click="Visiable = false">关闭</Button>
</div>
</Modal>
<Modal :title="查看评论" v-model="courierVisiable" :mask-closable="false" :scrollabele="true" :width="1200">
<logistics-address v-if="courierVisiable" ref="courierDialog"></logistics-address>
<div slot="footer" v-show=courierVisiable>
<Button type="text" @click="courierVisiable = false">关闭</Button>
</div>
</Modal>
<check-password ref="checkPass" @on-success="resetPass" />
<addEdit :data="form" :type="showType" v-model="showUser" @on-submit="getDataList" />
@ -159,6 +165,7 @@
import excel from "@/libs/excel";
import addEdit from "./addEdit.vue";
import mernage from "./mernage.vue";
import logisticsAddress from "@/views/app/shop/logisticsAddress.vue";
import dict from "@/views/my-components/hiver/dict";
import goodsList from "./dictManage.vue";
@ -173,6 +180,7 @@
export default {
name: "user-manage",
components: {
logisticsAddress,
departmentChoose,
checkPassword,
addEdit,
@ -182,6 +190,7 @@
},
data() {
return {
courierVisiable:false,
Visiable:false,
tableSize: "default",
height: 510,
@ -372,6 +381,21 @@
type: "vertical",
},
}),
h(
"a", {
on: {
click: () => {
this.findAllRecord(params.row);
},
},
},
"查看评论"
),
h("Divider", {
props: {
type: "vertical",
},
}),
h(
"a", {
on: {
@ -669,6 +693,12 @@
this.showType = "0";
this.showUser = true;
},
findAllRecord(v) {
this.courierVisiable = true;
this.$nextTick(() => {
this.$refs.courierDialog.initRecharge(v);
});
},
add() {
this.showType = "2";
this.showUser = true;

133
src/views/login.vue

@ -57,57 +57,20 @@
</Form>
</TabPane>
</Tabs>
<Tooltip content="hiver App扫码登录" placement="right" class="qr block-tool">
<router-link to="/login-qr">
<XIcon type="iconfont icon-saomadenglu1" size="30" />
</router-link>
</Tooltip>
</div>
<Row justify="space-between" align="middle">
<Checkbox v-model="form.saveLogin" size="large">{{
$t("autoLogin")
}}</Checkbox>
<Dropdown trigger="click" @on-click="handleDropDown">
<a class="forget-pass">{{ $t("forgetPass") }}</a>
<DropdownMenu slot="list">
<DropdownItem name="test">体验测试账号</DropdownItem>
<DropdownItem name="resetByMobile">使用手机号重置密码(付费)</DropdownItem>
<DropdownItem name="resetByEmail">使用邮箱重置密码(付费)</DropdownItem>
</DropdownMenu>
</Dropdown>
</Row>
<Button class="login-btn" type="primary" size="large" :loading="loading" @click="submitLogin" long>
<span v-if="!loading">{{ $t("login") }}</span>
<span v-else>{{ $t("logining") }}</span>
</Button>
<Row type="flex" justify="space-between" class="other-login">
<div class="other-way icons">
{{ $t("otherLogin") }}
<div class="other-icon" @click="toGithubLogin">
<Icon custom="iconfont icon-github" size="20" class="other-icon"
@click="toGithubLogin" />
</div>
<div class="other-icon" @click="toQQLogin">
<Icon custom="iconfont icon-qq" size="22" />
</div>
<div class="other-icon" @click="toWeixinLogin">
<Icon custom="iconfont icon-weixin" size="23" />
</div>
<Icon v-show="!showMore" type="ios-arrow-down" class="other-icon" size="16"
@click="showMore = true"></Icon>
<div class="other-icon" v-show="showMore" @click="toWeiboLogin">
<Icon custom="iconfont icon-weibo" size="23" />
</div>
<div class="other-icon" v-show="showMore" @click="toDingdingLogin">
<Icon custom="iconfont icon-dingding" size="20" />
</div>
<div class="other-icon" v-show="showMore" @click="toWorkwechatLogin">
<Icon custom="iconfont icon-qiyeweixin" size="20" />
</div>
<Icon v-show="showMore" type="ios-arrow-up" class="other-icon" size="16"
@click="showMore = false"></Icon>
</div>
<router-link to="/register">
<a class="forget-pass">{{ $t("registerAccount") }}</a>
</router-link>
@ -119,7 +82,6 @@
</div>
<Footer />
</Col>
<LangSwitch />
</Row>
</div>
</template>
@ -128,12 +90,6 @@
import {
login,
userInfo,
githubLogin,
qqLogin,
weiboLogin,
wechatLogin,
dingdingLogin,
workwechatLogin,
getJWT,
sendLoginSms,
smsLogin,
@ -148,7 +104,6 @@
import Cookies from "js-cookie";
import Header from "@/views/main-components/header";
import Footer from "@/views/main-components/footer";
import LangSwitch from "@/views/main-components/lang-switch";
import RectLoading from "@/views/my-components/hiver/rect-loading";
import CountDownButton from "@/views/my-components/hiver/count-down-button";
import util from "@/libs/util.js";
@ -156,13 +111,11 @@
components: {
CountDownButton,
RectLoading,
LangSwitch,
Header,
Footer,
},
data() {
return {
showMore: false,
captchaImg: "",
loadingCaptcha: true,
socialLogining: true,
@ -322,66 +275,6 @@
});
}
},
toGithubLogin() {
this.socialLogining = true;
githubLogin().then((res) => {
if (res.success) {
window.location.href = res.result;
} else {
this.socialLogining = false;
}
});
},
toQQLogin() {
this.socialLogining = true;
qqLogin().then((res) => {
if (res.success) {
window.location.href = res.result;
} else {
this.socialLogining = false;
}
});
},
toWeiboLogin() {
this.socialLogining = true;
weiboLogin().then((res) => {
if (res.success) {
window.location.href = res.result;
} else {
this.socialLogining = false;
}
});
},
toWeixinLogin() {
this.socialLogining = true;
wechatLogin().then((res) => {
if (res.success) {
window.location.href = res.result;
} else {
this.socialLogining = false;
}
});
},
toDingdingLogin() {
this.socialLogining = true;
dingdingLogin().then((res) => {
if (res.success) {
window.location.href = res.result;
} else {
this.socialLogining = false;
}
});
},
toWorkwechatLogin() {
this.socialLogining = true;
workwechatLogin().then((res) => {
if (res.success) {
window.location.href = res.result;
} else {
this.socialLogining = false;
}
});
},
relatedLogin() {
let q = this.$route.query;
let error = q.error;
@ -443,22 +336,6 @@
this.socialLogining = false;
}
},
handleDropDown(v) {
if (v == "test") {
this.test();
} else if (v == "resetByMobile") {
this.$router.push({
name: "reset",
});
} else if (v == "resetByEmail") {
this.$router.push({
name: "reset",
query: {
type: "1",
},
});
}
},
showNotice() {
getNotice().then((res) => {
if (res.success) {
@ -480,12 +357,6 @@
}
});
},
test() {
this.$Notice.info({
title: "测试体验账号",
desc: "账号:test或test2<br>密码:123456",
});
},
},
mounted() {
this.showNotice();

6
src/views/main-components/footer.vue

@ -1,8 +1,10 @@
<template>
<div class="foot">
<Row type="flex" justify="center" class="copyright">
Copyright © 2025 - Present
<a href="https://hiver.cc" target="_blank" style="margin: 0 5px">Hiver.cc</a>
Copyright © 2022 - Present
<!-- <a href="https://hiver.cc" target="_blank" style="margin: 0 5px"> -->
河北快拾科技
<!-- </a> -->
{{ $t("rights") }}
</Row>
</div>

6
src/views/sys/order-manage/logisticsAddress.vue

@ -26,7 +26,7 @@
<div>备注<span class="blue-color">{{orderData.deliveryInfo.remark}}</span></div>
</div>
</div>
<div style="display: flex;">
<div style="display: flex;" v-if="orderData.status ==7 || orderData.status ==11">
<div class="waiceng" style="width: 70%;">
<div class="title" style="color:red">申请退款信息-用户全部退款</div>
<div class="box" v-for="(item,index) in orderData.goodsList" :key="index">
@ -200,8 +200,6 @@
});
},
processReturn(item,status){
console.log('ggggg',item)
console.log('hhhhh',status)
let url = ''
//退
if(item.status == 7){
@ -229,7 +227,7 @@
this.returnFormData.refundType = item.refundType;
this.returnFormData.refundTypeStatus = item.refundTypeStatus;
let that = this
let that = this;
returnOrNoOrder(this.returnFormData).then((res) => {
this.loading = false;
if (res.success) {

11
src/views/sys/order-manage/orderManage.vue

@ -153,7 +153,13 @@
{
title: "店铺名称",
key: "shopName",
width: 200,
width: 230,
align: "center",
},
{
title: "配送费",
key: "deliveryFee",
width: 130,
align: "center",
},
{
@ -171,7 +177,6 @@
{
title: "完成支付时间",
key: "createTime",
width: 170,
align: "center",
render: (h, params) => {
return h(
@ -205,6 +210,8 @@
re = "等待同意退款";
} else if (params.row.status == 8) {
re = "订单已退款";
} else if (params.row.status == 10) {
re = "待成团";
} else if (params.row.status == 11) {
re = "售后中";
} else if (params.row.status == 12) {

Loading…
Cancel
Save