This commit is contained in:
LittleBoy 2023-04-06 11:09:32 +08:00
parent 7c37f8f30a
commit eea9cf61d6
13 changed files with 1341 additions and 1211 deletions

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@
>
<i class="el-icon-plus"></i>
</el-upload>
<!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip">
请上传
@ -76,7 +76,7 @@ export default {
dialogImageUrl: "",
dialogVisible: false,
hideUpload: false,
baseUrl: process.env.VUE_APP_BASE_API,
baseUrl: '',//process.env.VUE_APP_BASE_API,
uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", //
headers: {
Authorization: "Bearer " + getToken(),
@ -155,7 +155,7 @@ export default {
//
handleUploadSuccess(res, file) {
if (res.code === 200) {
this.uploadList.push({ name: res.fileName, url: res.fileName });
this.uploadList.push({ name: res.fileName, url: res.url });
this.uploadedSuccessfully();
} else {
this.number--;

View File

@ -35,7 +35,7 @@ export default {
},
data() {
return {
title: '若依管理系统',
title: '外卖管理系统',
logo: logoImg
}
}

View File

@ -0,0 +1,19 @@
export const AreaData = [{ 'code': '510104', 'name': '锦江区' }, { 'code': '510105', 'name': '青羊区' }, {
'code': '510106',
'name': '金牛区'
}, { 'code': '510107', 'name': '武侯区' }, { 'code': '510108', 'name': '成华区' }, {
'code': '510112',
'name': '龙泉驿区'
}, { 'code': '510113', 'name': '青白江区' }, { 'code': '510114', 'name': '新都区' }, {
'code': '510115',
'name': '温江区'
}, { 'code': '510116', 'name': '双流区' }, { 'code': '510117', 'name': '郫都区' }, {
'code': '510118',
'name': '新津区'
}, { 'code': '510121', 'name': '金堂县' }, { 'code': '510129', 'name': '大邑县' }, {
'code': '510131',
'name': '蒲江县'
}, { 'code': '510181', 'name': '都江堰市' }, { 'code': '510182', 'name': '彭州市' }, {
'code': '510183',
'name': '邛崃市'
}, { 'code': '510184', 'name': '崇州市' }, { 'code': '510185', 'name': '简阳市' }]

View File

@ -1,18 +1,10 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户编号" prop="uid">
<el-input
v-model="queryParams.uid"
placeholder="请输入用户编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="收货人" prop="username">
<el-form-item label="姓名" prop="username">
<el-input
v-model="queryParams.username"
placeholder="请输入收货人"
placeholder="请输入用户昵称或收货人姓名"
clearable
@keyup.enter.native="handleQuery"
/>
@ -80,7 +72,7 @@
<el-table v-loading="loading" :data="addressList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="地址编号" align="center" prop="id" />
<el-table-column label="用户编号" align="center" prop="uid" />
<el-table-column label="用户昵称" align="center" prop="userNickname" />
<el-table-column label="收货人" align="center" prop="username" />
<el-table-column label="收货电话" align="center" prop="phone" />
<el-table-column label="省编号" align="center" prop="provice" />
@ -109,7 +101,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"

View File

@ -44,14 +44,6 @@
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['admin:food:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['admin:food:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['admin:food:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -60,7 +52,7 @@
<el-table-column label="食品编号" align="center" prop="id" />
<el-table-column label="分类编号" align="center" prop="cid">
<template slot-scope="scope">
{{ categoryList.find(c=>c.id == scope.row.cid).title }}
{{ getCategoryName(scope.row.cid) }}
</template>
</el-table-column>
<el-table-column label="食品标题" align="center" prop="title" />
@ -100,7 +92,7 @@
@pagination="getList" />
<!-- 添加或修改食品对话框 -->
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="900px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px" label-position="top">
<el-row :gutter="20">
<el-col :span="18">
@ -168,8 +160,28 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="售卖区域(匹配收货地址,null表示不限制)" prop="area">
<el-input v-model="form.area" placeholder="请输入售卖区域(匹配收货地址,null表示不限制)" />
<el-form-item label="售卖区域" prop="area">
<el-select v-model="form.area" multiple placeholder="请输入售卖区域(匹配收货地址,null表示不限制)">
<el-option
v-for="item in areaData"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
<!-- <el-cascader-->
<!-- placeholder="请输入售卖区域(匹配收货地址,null表示不限制)"-->
<!-- :options="areaData"-->
<!-- :show-all-levels="false"-->
<!-- v-model="form.area"-->
<!-- :props="{-->
<!-- multiple:true,-->
<!-- label:'name',-->
<!-- value:'code'-->
<!-- }"-->
<!-- collapse-tags-->
<!-- clearable></el-cascader>-->
<!-- <el-input v-model="form.area" placeholder="请输入售卖区域(匹配收货地址,null表示不限制)" />-->
</el-form-item>
</el-col>
<el-col :span="8">
@ -210,12 +222,14 @@
<script>
import { listFood, getFood, delFood, addFood, updateFood } from "@/api/admin/food";
import { listCategory } from '@/api/admin/category'
import { AreaData } from '@/utils/pca-code'
export default {
name: "Food",
dicts: ['data_state'],
data() {
return {
areaData:AreaData,
//
loading: true,
//
@ -273,6 +287,11 @@ export default {
})
},
methods: {
getCategoryName(cid){
if(!cid || !this.categoryList) return '';
const c = this.categoryList.find(c=>c.id == cid)
return c ? c.title : '';
},
/** 查询食品列表 */
getList() {
this.loading = true;
@ -346,6 +365,9 @@ export default {
this.reset();
const id = row.id || this.ids
getFood(id).then(response => {
if(response.data.area){
response.data.area = response.data.area.split(',')
}
this.form = response.data;
this.open = true;
this.title = "修改食品";
@ -354,6 +376,9 @@ export default {
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if(this.form.area){
this.form.area = this.form.area.join(',')
}
if (valid) {
if (this.form.id != null) {
updateFood(this.form).then(response => {

View File

@ -1,26 +1,26 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="订单标题" prop="orderTitle">
<!-- <el-form-item label="订单标题" prop="orderTitle">-->
<!-- <el-input-->
<!-- v-model="queryParams.orderTitle"-->
<!-- placeholder="请输入订单标题"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="价格" prop="price">-->
<!-- <el-input-->
<!-- v-model="queryParams.price"-->
<!-- placeholder="请输入价格"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="用户名称" prop="uid">
<el-input
v-model="queryParams.orderTitle"
placeholder="请输入订单标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="价格" prop="price">
<el-input
v-model="queryParams.price"
placeholder="请输入价格"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户编号" prop="uid">
<el-input
v-model="queryParams.uid"
placeholder="请输入用户编号"
v-model="queryParams.username"
placeholder="请输入账号或者昵称"
clearable
@keyup.enter.native="handleQuery"
/>
@ -53,16 +53,6 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['admin:orders:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@ -102,8 +92,18 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="订单编号" align="center" prop="id" />
<el-table-column label="订单标题" align="center" prop="orderTitle" />
<el-table-column label="价格" align="center" prop="price" />
<el-table-column label="用户编号" align="center" prop="uid" />
<el-table-column label="价格" align="center" prop="price" >
<!-- username-->
<template #default="scope">
{{(scope.row.price / 100).toFixed(2)}}
</template>
</el-table-column>
<el-table-column label="用户编号" align="center" prop="uid">
<!-- username-->
<template #default="scope">
{{scope.row.username}}({{scope.row.nickname}})
</template>
</el-table-column>
<el-table-column label="订单状态" align="center" prop="orderStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
@ -133,7 +133,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -166,13 +166,13 @@
<template slot-scope="scope">
<el-input v-model="scope.row.price" placeholder="请输入价格" />
</template>
</el-table-column>
</el-table-column>username
<el-table-column label="购买数量" prop="count" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.count" placeholder="请输入购买数量" />
</template>
</el-table-column>
<el-table-column label="优惠(0无优惠 正数涨价 负数:降价)" prop="coupon" width="150">
<el-table-column label="优惠" prop="coupon" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.coupon" placeholder="请输入优惠(0无优惠 正数涨价 负数:降价)" />
</template>
@ -235,7 +235,7 @@ export default {
pageSize: 10,
orderTitle: null,
price: null,
uid: null,
username: null,
orderStatus: null,
createTime: null,
},

View File

@ -29,12 +29,20 @@
></el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入状态"
clearable
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.state" placeholder="请选择用户状态" clearable>
<el-option
v-for="dict in dict.type.data_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
<!-- <el-input-->
<!-- v-model="queryParams.state"-->
<!-- placeholder="请输入状态"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -90,7 +98,7 @@
<el-table v-loading="loading" :data="usersList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="用户编号" align="center" prop="id" />
<el-table-column label="用户编号" width="80" align="center" prop="id" />
<el-table-column label="用户名" align="center" prop="username" />
<el-table-column label="昵称" align="center" prop="nickname" />
<el-table-column label="头像" align="center" prop="avatar" width="100">
@ -128,7 +136,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -147,8 +155,19 @@
<el-input v-model="form.nickname" placeholder="请输入昵称" />
</el-form-item>
<el-form-item label="头像" prop="avatar">
<image-upload v-model="form.avatar"/>
<image-upload v-model="form.avatar" :limit="1"/>
</el-form-item>
<el-form-item label="用户状态" prop="state">
<el-select v-model="form.state" placeholder="请选择用户状态" clearable>
<el-option
v-for="dict in dict.type.data_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
@ -166,6 +185,7 @@ import { listUsers, getUsers, delUsers, addUsers, updateUsers } from "@/api/admi
export default {
name: "Users",
dicts: ['data_state'],
data() {
return {
//

View File

@ -40,6 +40,10 @@ module.exports = {
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
},
'/api/1/upload':{
target: `https://cdnjson.com`,
changeOrigin: true,
}
},
disableHostCheck: true

View File

@ -22,6 +22,9 @@ public class Address extends BaseEntity
@Excel(name = "用户编号")
private Long uid;
private String userNickname;
/** 收货人 */
@Excel(name = "收货人")
private String username;
@ -177,4 +180,12 @@ public class Address extends BaseEntity
.append("remark", getRemark())
.toString();
}
public String getUserNickname() {
return userNickname;
}
public void setUserNickname(String userNickname) {
this.userNickname = userNickname;
}
}

View File

@ -31,6 +31,9 @@ public class Orders extends BaseEntity
@Excel(name = "用户编号")
private Integer uid;
private String nickname;
private String username;
/** 订单数据 */
private String data;
@ -147,4 +150,20 @@ public class Orders extends BaseEntity
.append("orderFoodsList", getOrderFoodsList())
.toString();
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}

View File

@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="Address" id="AddressResult">
<result property="id" column="id" />
<result property="uid" column="uid" />
<result property="userNickname" column="user_nickname" />
<result property="username" column="username" />
<result property="phone" column="phone" />
<result property="provice" column="provice" />
@ -26,10 +27,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectAddressList" parameterType="Address" resultMap="AddressResult">
<include refid="selectAddressVo"/>
<where>
<if test="uid != null "> and uid = #{uid}</if>
<if test="username != null and username != ''"> and username like concat('%', #{username}, '%')</if>
<!-- <include refid="selectAddressVo"/>-->
select
addr.id, uid, u.nickname as user_nickname,addr.username, phone, provice, city, county, street, detail,
is_default,
addr.create_time, addr.update_time, addr.state, addr.remark
from address as addr,users as u
<where>
addr.uid = u.id
<if test="username != null and username != ''"> and (
addr.username like concat('%', #{username}, '%')
or
u.username like concat('%', #{username}, '%')
or
nickname like concat('%', #{username}, '%')
)</if>
<if test="phone != null and phone != ''"> and phone like concat('%', #{phone}, '%')</if>
</where>
</select>

View File

@ -9,6 +9,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="orderTitle" column="order_title" />
<result property="price" column="price" />
<result property="uid" column="uid" />
<result property="nickname" column="nickname" />
<result property="username" column="username" />
<result property="data" column="data" />
<result property="receiveInfo" column="receive_info" />
<result property="orderStatus" column="order_status" />
@ -40,8 +42,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectOrdersList" parameterType="Orders" resultMap="OrdersResult">
<include refid="selectOrdersVo"/>
<where>
select
o.*,
u.nickname,
u.username
from orders as o,users as u
<where>
o.uid = u.id
<if test="username != null and username != ''"> and (
username like concat('%', #{username}, '%')
or
nickname like concat('%', #{username}, '%')
)</if>
<if test="orderTitle != null and orderTitle != ''"> and order_title = #{orderTitle}</if>
<if test="params.beginPrice != null and params.beginPrice != '' and params.endPrice != null and params.endPrice != ''"> and price between #{params.beginPrice} and #{params.endPrice}</if>
<if test="uid != null "> and uid = #{uid}</if>