mirror of
https://gitee.com/victor123/jjjerp-java.git
synced 2025-12-06 21:32:37 +08:00
注释删除
This commit is contained in:
parent
2d101ebf42
commit
3496c86599
@ -1,29 +1,40 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
<el-dialog
|
||||||
作者:luoyiming
|
title="选择优惠券"
|
||||||
时间:2019-10-25
|
v-model="dialogVisible"
|
||||||
描述:会员-添加
|
@close="dialogFormVisible"
|
||||||
-->
|
:close-on-click-modal="false"
|
||||||
<el-dialog title="选择优惠券" v-model="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false"
|
:close-on-press-escape="false"
|
||||||
:close-on-press-escape="false" width="600px">
|
width="600px"
|
||||||
|
>
|
||||||
|
|
||||||
<!--内容-->
|
<!--内容-->
|
||||||
<div class="product-content">
|
<div class="product-content">
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<el-table :data="tableData" border style="width: 100%" v-loading="loading"
|
<el-table
|
||||||
@current-change="handleCurrentChange">
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
>
|
||||||
<el-table-column prop="name" label="名称"></el-table-column>
|
<el-table-column prop="name" label="名称"></el-table-column>
|
||||||
<el-table-column prop="minPrice" label="最低消费"></el-table-column>
|
<el-table-column prop="minPrice" label="最低消费"></el-table-column>
|
||||||
<el-table-column prop="totalNum" label="数量">
|
<el-table-column prop="totalNum" label="数量">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span v-if="scope.row.totalNum>0">{{scope.row.totalNum}}</span>
|
<span v-if="scope.row.totalNum > 0">{{
|
||||||
|
scope.row.totalNum
|
||||||
|
}}</span>
|
||||||
<span v-else>无限制</span>
|
<span v-else>无限制</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" width="80">
|
<el-table-column label="操作" width="80">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button type="primary" size="small" @click="selectUser(scope.row)">选择</el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="selectUser(scope.row)"
|
||||||
|
>选择</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -31,9 +42,16 @@
|
|||||||
|
|
||||||
<!--分页-->
|
<!--分页-->
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" background
|
<el-pagination
|
||||||
:current-page="curPage" :page-sizes="[2, 10, 20, 50, 100]" :page-size="pageSize"
|
@size-change="handleSizeChange"
|
||||||
layout="total, prev, pager, next, jumper" :total="totalDataNumber"></el-pagination>
|
@current-change="handleCurrentChange"
|
||||||
|
background
|
||||||
|
:current-page="curPage"
|
||||||
|
:page-sizes="[2, 10, 20, 50, 100]"
|
||||||
|
:page-size="pageSize"
|
||||||
|
layout="total, prev, pager, next, jumper"
|
||||||
|
:total="totalDataNumber"
|
||||||
|
></el-pagination>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -45,7 +63,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import CouponApi from '@/api/coupon.js';
|
import CouponApi from "@/api/coupon.js";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -58,32 +76,33 @@
|
|||||||
/*一共多少条数据*/
|
/*一共多少条数据*/
|
||||||
totalDataNumber: 0,
|
totalDataNumber: 0,
|
||||||
formInline: {
|
formInline: {
|
||||||
name: '',
|
name: "",
|
||||||
},
|
},
|
||||||
//会员列表
|
//会员列表
|
||||||
tableData: [],
|
tableData: [],
|
||||||
formRules: {
|
formRules: {
|
||||||
name: [{
|
name: [
|
||||||
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入等级名称',
|
message: "请输入等级名称",
|
||||||
trigger: 'blur'
|
trigger: "blur",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
min: 3,
|
min: 3,
|
||||||
max: 5,
|
max: 5,
|
||||||
message: '长度在 3 到 5 个字符',
|
message: "长度在 3 到 5 个字符",
|
||||||
trigger: 'blur'
|
trigger: "blur",
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
multipleSelection: [],
|
multipleSelection: [],
|
||||||
/*左边长度*/
|
/*左边长度*/
|
||||||
formLabelWidth: '120px',
|
formLabelWidth: "120px",
|
||||||
/*是否显示*/
|
/*是否显示*/
|
||||||
dialogVisible: false
|
dialogVisible: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: ['open_add'],
|
props: ["open_add"],
|
||||||
created() {
|
created() {
|
||||||
this.dialogVisible = this.open_add;
|
this.dialogVisible = this.open_add;
|
||||||
/*获取列表*/
|
/*获取列表*/
|
||||||
@ -108,46 +127,45 @@
|
|||||||
params.pageIndex = self.curPage;
|
params.pageIndex = self.curPage;
|
||||||
params.pageSize = self.pageSize;
|
params.pageSize = self.pageSize;
|
||||||
CouponApi.couponList(params, true)
|
CouponApi.couponList(params, true)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.tableData = res.data.records;
|
self.tableData = res.data.records;
|
||||||
self.totalDataNumber = res.data.total;
|
self.totalDataNumber = res.data.total;
|
||||||
self.gradeList = res.data.grade;
|
self.gradeList = res.data.grade;
|
||||||
} else {
|
} else {
|
||||||
ElMessage .error('错了哦,这是一条错误消息');
|
ElMessage.error("错了哦,这是一条错误消息");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {});
|
.catch((error) => {});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
//点击确定
|
//点击确定
|
||||||
selectUser(e) {
|
selectUser(e) {
|
||||||
let self = this;
|
let self = this;
|
||||||
let params = e;
|
let params = e;
|
||||||
this.$emit('closeDialog', {
|
this.$emit("closeDialog", {
|
||||||
type: 'success',
|
type: "success",
|
||||||
openDialog: false,
|
openDialog: false,
|
||||||
params: params
|
params: params,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
/*关闭弹窗*/
|
/*关闭弹窗*/
|
||||||
dialogFormVisible(e) {
|
dialogFormVisible(e) {
|
||||||
if (e) {
|
if (e) {
|
||||||
this.$emit('closeDialog', {
|
this.$emit("closeDialog", {
|
||||||
type: 'success',
|
type: "success",
|
||||||
openDialog: false
|
openDialog: false,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.$emit('closeDialog', {
|
this.$emit("closeDialog", {
|
||||||
type: 'error',
|
type: "error",
|
||||||
openDialog: false
|
openDialog: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,28 +1,41 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-26
|
|
||||||
描述:获取腾讯坐标
|
|
||||||
-->
|
|
||||||
<div class="getpoint-container">
|
<div class="getpoint-container">
|
||||||
<div>
|
<div>
|
||||||
<div id="cur_city">
|
<div id="cur_city">
|
||||||
<div class="d-s-c map-header-box">
|
<div class="d-s-c map-header-box">
|
||||||
<span class="pr16">{{ select_city }}</span>
|
<span class="pr16">{{ select_city }}</span>
|
||||||
<a href="javascript:void(0);" @click="selectCityFunc" class="btn-city">
|
<a
|
||||||
|
href="javascript:void(0);"
|
||||||
|
@click="selectCityFunc"
|
||||||
|
class="btn-city"
|
||||||
|
>
|
||||||
[
|
[
|
||||||
<span style="text-decoration:underline;">更换城市</span>
|
<span style="text-decoration: underline">更换城市</span>
|
||||||
]
|
]
|
||||||
</a>
|
</a>
|
||||||
<span class="pl16">当前缩放等级:{{ zoom }}</span>
|
<span class="pl16">当前缩放等级:{{ zoom }}</span>
|
||||||
<div class="d-s-c pl16 pr">
|
<div class="d-s-c pl16 pr">
|
||||||
<div class="search-word-list">
|
<div class="search-word-list">
|
||||||
<ul>
|
<ul>
|
||||||
<li :class="{ curr: searchlist_index == index }" v-for="(item, index) in searchWordList" :key="index" @click="ChooseSeatchValue(item.title)">{{ item.title }}</li>
|
<li
|
||||||
|
:class="{ curr: searchlist_index == index }"
|
||||||
|
v-for="(item, index) in searchWordList"
|
||||||
|
:key="index"
|
||||||
|
@click="ChooseSeatchValue(item.title)"
|
||||||
|
>
|
||||||
|
{{ item.title }}
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<input class="search-box" type="text" @keyup="keyupFunc" v-model="searchValue" />
|
<input
|
||||||
<span class="ml4"><el-button @click="searchFunc">搜索</el-button></span>
|
class="search-box"
|
||||||
|
type="text"
|
||||||
|
@keyup="keyupFunc"
|
||||||
|
v-model="searchValue"
|
||||||
|
/>
|
||||||
|
<span class="ml4"
|
||||||
|
><el-button @click="searchFunc">搜索</el-button></span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -58,7 +71,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">内蒙古</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">内蒙古</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">呼和浩特</span>
|
<span class="city_name">呼和浩特</span>
|
||||||
<span class="city_name">包头</span>
|
<span class="city_name">包头</span>
|
||||||
@ -76,7 +91,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">山西</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">山西</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">太原</span>
|
<span class="city_name">太原</span>
|
||||||
<span class="city_name">大同</span>
|
<span class="city_name">大同</span>
|
||||||
@ -93,7 +110,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">陕西</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">陕西</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">西安</span>
|
<span class="city_name">西安</span>
|
||||||
<span class="city_name">铜川</span>
|
<span class="city_name">铜川</span>
|
||||||
@ -109,7 +128,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">河北</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">河北</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">石家庄</span>
|
<span class="city_name">石家庄</span>
|
||||||
<span class="city_name">唐山</span>
|
<span class="city_name">唐山</span>
|
||||||
@ -126,7 +147,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">辽宁</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">辽宁</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">沈阳</span>
|
<span class="city_name">沈阳</span>
|
||||||
<span class="city_name">大连</span>
|
<span class="city_name">大连</span>
|
||||||
@ -146,7 +169,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">吉林</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">吉林</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">长春</span>
|
<span class="city_name">长春</span>
|
||||||
<span class="city_name">吉林市</span>
|
<span class="city_name">吉林市</span>
|
||||||
@ -161,7 +186,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">黑龙江</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">黑龙江</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">哈尔滨</span>
|
<span class="city_name">哈尔滨</span>
|
||||||
<span class="city_name">齐齐哈尔</span>
|
<span class="city_name">齐齐哈尔</span>
|
||||||
@ -180,7 +207,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">江苏</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">江苏</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">南京</span>
|
<span class="city_name">南京</span>
|
||||||
<span class="city_name">无锡</span>
|
<span class="city_name">无锡</span>
|
||||||
@ -199,7 +228,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">安徽</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">安徽</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">合肥</span>
|
<span class="city_name">合肥</span>
|
||||||
<span class="city_name">蚌埠</span>
|
<span class="city_name">蚌埠</span>
|
||||||
@ -221,7 +252,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">山东</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">山东</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">济南</span>
|
<span class="city_name">济南</span>
|
||||||
<span class="city_name">青岛</span>
|
<span class="city_name">青岛</span>
|
||||||
@ -243,7 +276,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">浙江</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">浙江</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">杭州</span>
|
<span class="city_name">杭州</span>
|
||||||
<span class="city_name">宁波</span>
|
<span class="city_name">宁波</span>
|
||||||
@ -260,7 +295,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">江西</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">江西</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">南昌</span>
|
<span class="city_name">南昌</span>
|
||||||
<span class="city_name">景德镇</span>
|
<span class="city_name">景德镇</span>
|
||||||
@ -277,7 +314,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">福建</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">福建</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">福州</span>
|
<span class="city_name">福州</span>
|
||||||
<span class="city_name">厦门</span>
|
<span class="city_name">厦门</span>
|
||||||
@ -292,7 +331,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">湖南</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">湖南</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">长沙</span>
|
<span class="city_name">长沙</span>
|
||||||
<span class="city_name">株洲</span>
|
<span class="city_name">株洲</span>
|
||||||
@ -312,7 +353,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">湖北</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">湖北</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">武汉</span>
|
<span class="city_name">武汉</span>
|
||||||
<span class="city_name">黄石</span>
|
<span class="city_name">黄石</span>
|
||||||
@ -335,7 +378,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">河南</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">河南</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">郑州</span>
|
<span class="city_name">郑州</span>
|
||||||
<span class="city_name">开封</span>
|
<span class="city_name">开封</span>
|
||||||
@ -359,7 +404,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">海南</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">海南</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">海口</span>
|
<span class="city_name">海口</span>
|
||||||
<span class="city_name">三亚</span>
|
<span class="city_name">三亚</span>
|
||||||
@ -384,7 +431,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">广东</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">广东</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">广州</span>
|
<span class="city_name">广州</span>
|
||||||
<span class="city_name">深圳</span>
|
<span class="city_name">深圳</span>
|
||||||
@ -411,7 +460,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">广西</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">广西</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">南宁</span>
|
<span class="city_name">南宁</span>
|
||||||
<span class="city_name">柳州</span>
|
<span class="city_name">柳州</span>
|
||||||
@ -431,7 +482,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">贵州</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">贵州</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">贵阳</span>
|
<span class="city_name">贵阳</span>
|
||||||
<span class="city_name">遵义</span>
|
<span class="city_name">遵义</span>
|
||||||
@ -446,7 +499,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">四川</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">四川</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">成都</span>
|
<span class="city_name">成都</span>
|
||||||
<span class="city_name">自贡</span>
|
<span class="city_name">自贡</span>
|
||||||
@ -473,7 +528,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">云南</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">云南</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">昆明</span>
|
<span class="city_name">昆明</span>
|
||||||
<span class="city_name">保山</span>
|
<span class="city_name">保山</span>
|
||||||
@ -495,7 +552,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">甘肃</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">甘肃</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">兰州</span>
|
<span class="city_name">兰州</span>
|
||||||
<span class="city_name">嘉峪关</span>
|
<span class="city_name">嘉峪关</span>
|
||||||
@ -515,7 +574,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">宁夏</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">宁夏</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">银川</span>
|
<span class="city_name">银川</span>
|
||||||
<span class="city_name">石嘴山</span>
|
<span class="city_name">石嘴山</span>
|
||||||
@ -526,7 +587,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">青海</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">青海</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">西宁</span>
|
<span class="city_name">西宁</span>
|
||||||
<span class="city_name">玉树</span>
|
<span class="city_name">玉树</span>
|
||||||
@ -540,7 +603,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">西藏</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">西藏</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">拉萨</span>
|
<span class="city_name">拉萨</span>
|
||||||
<span class="city_name">那曲</span>
|
<span class="city_name">那曲</span>
|
||||||
@ -553,7 +618,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="clear: both"></div>
|
<div style="clear: both"></div>
|
||||||
<div class="city_container">
|
<div class="city_container">
|
||||||
<div class="city_container_left"><span class="style_color">新疆</span></div>
|
<div class="city_container_left">
|
||||||
|
<span class="style_color">新疆</span>
|
||||||
|
</div>
|
||||||
<div class="city_container_right">
|
<div class="city_container_right">
|
||||||
<span class="city_name">乌鲁木齐</span>
|
<span class="city_name">乌鲁木齐</span>
|
||||||
<span class="city_name">克拉玛依</span>
|
<span class="city_name">克拉玛依</span>
|
||||||
@ -588,8 +655,15 @@
|
|||||||
<div class="pr map-container">
|
<div class="pr map-container">
|
||||||
<div id="mapContainer"></div>
|
<div id="mapContainer"></div>
|
||||||
<!--搜索出来的地方-->
|
<!--搜索出来的地方-->
|
||||||
<div :class="searchList.length > 0 ? 'map-city-list open' : 'map-city-list'">
|
<div
|
||||||
<div :class="select_address == index ? 'd-s-s item active' : 'd-s-s item'" v-for="(item, index) in searchList" :key="index" @click="choseItem(item, index)">
|
:class="searchList.length > 0 ? 'map-city-list open' : 'map-city-list'"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
:class="select_address == index ? 'd-s-s item active' : 'd-s-s item'"
|
||||||
|
v-for="(item, index) in searchList"
|
||||||
|
:key="index"
|
||||||
|
@click="choseItem(item, index)"
|
||||||
|
>
|
||||||
<span class="index-box">{{ index + 1 }}</span>
|
<span class="index-box">{{ index + 1 }}</span>
|
||||||
<div class="flex-1">
|
<div class="flex-1">
|
||||||
<p class="title">{{ item.title }}</p>
|
<p class="title">{{ item.title }}</p>
|
||||||
@ -602,9 +676,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import marker10 from '@/assets/img/marker10.png';
|
import marker10 from "@/assets/img/marker10.png";
|
||||||
import { TMap } from '@/utils/txmap.js';
|
import { TMap } from "@/utils/txmap.js";
|
||||||
import { getJson } from '@/utils/getJson.js';
|
import { getJson } from "@/utils/getJson.js";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -625,19 +699,19 @@ export default {
|
|||||||
/*城市列表是否显示*/
|
/*城市列表是否显示*/
|
||||||
is_city: false,
|
is_city: false,
|
||||||
/*关键字*/
|
/*关键字*/
|
||||||
searchValue: '',
|
searchValue: "",
|
||||||
/*搜索字母*/
|
/*搜索字母*/
|
||||||
searchWord: '',
|
searchWord: "",
|
||||||
/*键盘事件搜索的数据*/
|
/*键盘事件搜索的数据*/
|
||||||
searchWordList: [],
|
searchWordList: [],
|
||||||
/*选择搜索出来的数据列表*/
|
/*选择搜索出来的数据列表*/
|
||||||
searchlist_index: null,
|
searchlist_index: null,
|
||||||
/*图标临时对象*/
|
/*图标临时对象*/
|
||||||
marker_temp: null
|
marker_temp: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
form: Object
|
form: Object,
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
/* 'form.is_search_map': {
|
/* 'form.is_search_map': {
|
||||||
@ -657,50 +731,60 @@ export default {
|
|||||||
/*初始化*/
|
/*初始化*/
|
||||||
start() {
|
start() {
|
||||||
const self = this;
|
const self = this;
|
||||||
TMap().then(qq => {
|
TMap().then((qq) => {
|
||||||
self.map = new qq.maps.Map(document.getElementById('mapContainer'), {
|
self.map = new qq.maps.Map(document.getElementById("mapContainer"), {
|
||||||
// 地图的中心地理坐标。
|
// 地图的中心地理坐标。
|
||||||
center: new qq.maps.LatLng(39.916527, 116.397128),
|
center: new qq.maps.LatLng(39.916527, 116.397128),
|
||||||
draggableCursor: 'crosshair',
|
draggableCursor: "crosshair",
|
||||||
draggingCursor: 'crosshair',
|
draggingCursor: "crosshair",
|
||||||
zoom: 8
|
zoom: 8,
|
||||||
});
|
});
|
||||||
|
|
||||||
//获取当前的城市
|
//获取当前的城市
|
||||||
let cityservice = new qq.maps.CityService({
|
let cityservice = new qq.maps.CityService({
|
||||||
complete: function (result) {
|
complete: function (result) {
|
||||||
self.select_city = result.detail.name;
|
self.select_city = result.detail.name;
|
||||||
self.map.panTo(new qq.maps.LatLng(result.detail.latLng.lat, result.detail.latLng.lng));
|
self.map.panTo(
|
||||||
|
new qq.maps.LatLng(
|
||||||
|
result.detail.latLng.lat,
|
||||||
|
result.detail.latLng.lng
|
||||||
|
)
|
||||||
|
);
|
||||||
self.map.zoomTo(13);
|
self.map.zoomTo(13);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
cityservice.searchLocalCity();
|
cityservice.searchLocalCity();
|
||||||
|
|
||||||
//绑定单击地图事件添加参数
|
//绑定单击地图事件添加参数
|
||||||
qq.maps.event.addListener(self.map, 'click', function(event) {
|
qq.maps.event.addListener(self.map, "click", function (event) {
|
||||||
let lat = event.latLng.getLat(),
|
let lat = event.latLng.getLat(),
|
||||||
lng = event.latLng.getLng();
|
lng = event.latLng.getLng();
|
||||||
let url = encodeURI("https://apis.map.qq.com/ws/geocoder/v1/?location=" + lat + "," + lng +
|
let url = encodeURI(
|
||||||
"&key=LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR&output=jsonp&&callback=?");
|
"https://apis.map.qq.com/ws/geocoder/v1/?location=" +
|
||||||
getJson(url, 'QQmap', function(res) {
|
lat +
|
||||||
|
"," +
|
||||||
|
lng +
|
||||||
|
"&key=LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR&output=jsonp&&callback=?"
|
||||||
|
);
|
||||||
|
getJson(url, "QQmap", function (res) {
|
||||||
if (res.status == 0) {
|
if (res.status == 0) {
|
||||||
self.$emit('chose', res.result);
|
self.$emit("chose", res.result);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//获取地图缩放层级
|
//获取地图缩放层级
|
||||||
qq.maps.event.addListener(self.map, 'zoom_changed', function() {
|
qq.maps.event.addListener(self.map, "zoom_changed", function () {
|
||||||
self.zoom = self.map.getZoom();
|
self.zoom = self.map.getZoom();
|
||||||
});
|
});
|
||||||
|
|
||||||
self.qq = qq;
|
self.qq = qq;
|
||||||
|
|
||||||
//选择城市
|
//选择城市
|
||||||
let cityList = document.getElementById('city');
|
let cityList = document.getElementById("city");
|
||||||
cityList.onclick = function (ev) {
|
cityList.onclick = function (ev) {
|
||||||
var ev = ev || event;
|
var ev = ev || event;
|
||||||
if (ev.target.className == 'city_name') {
|
if (ev.target.className == "city_name") {
|
||||||
var name = ev.target.innerText;
|
var name = ev.target.innerText;
|
||||||
self.select_city = name;
|
self.select_city = name;
|
||||||
self.is_city = false;
|
self.is_city = false;
|
||||||
@ -712,7 +796,7 @@ export default {
|
|||||||
/*监听键盘事件*/
|
/*监听键盘事件*/
|
||||||
keyupFunc(e) {
|
keyupFunc(e) {
|
||||||
/*如果已经有搜索内容,按下向下的键盘*/
|
/*如果已经有搜索内容,按下向下的键盘*/
|
||||||
if (e.key == 'ArrowDown') {
|
if (e.key == "ArrowDown") {
|
||||||
if (this.searchWordList.length > 0) {
|
if (this.searchWordList.length > 0) {
|
||||||
if (this.searchlist_index == null) {
|
if (this.searchlist_index == null) {
|
||||||
this.searchlist_index = 0;
|
this.searchlist_index = 0;
|
||||||
@ -728,7 +812,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*如果已经有搜索内容,按下向上的键盘*/
|
/*如果已经有搜索内容,按下向上的键盘*/
|
||||||
if (e.key == 'ArrowUp') {
|
if (e.key == "ArrowUp") {
|
||||||
if (this.searchWordList.length > 0) {
|
if (this.searchWordList.length > 0) {
|
||||||
if (this.searchlist_index == null) {
|
if (this.searchlist_index == null) {
|
||||||
this.searchlist_index = this.searchWordList.length - 1;
|
this.searchlist_index = this.searchWordList.length - 1;
|
||||||
@ -744,7 +828,11 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*如果搜索有数据,选中也有值,则直接赋值*/
|
/*如果搜索有数据,选中也有值,则直接赋值*/
|
||||||
if (e.key == 'Enter' && this.searchWordList.length > 0 && this.searchlist_index != null) {
|
if (
|
||||||
|
e.key == "Enter" &&
|
||||||
|
this.searchWordList.length > 0 &&
|
||||||
|
this.searchlist_index != null
|
||||||
|
) {
|
||||||
this.searchValue = this.searchWordList[this.searchlist_index].title;
|
this.searchValue = this.searchWordList[this.searchlist_index].title;
|
||||||
this.searchWordList = [];
|
this.searchWordList = [];
|
||||||
this.searchlist_index = null;
|
this.searchlist_index = null;
|
||||||
@ -760,16 +848,19 @@ export default {
|
|||||||
this.getSearchWord(this.searchValue);
|
this.getSearchWord(this.searchValue);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (e.key == 'Backspace') {
|
if (e.key == "Backspace") {
|
||||||
if (this.searchValue.length < 1) {
|
if (this.searchValue.length < 1) {
|
||||||
this.searchWord = this.searchWord.substr(0, this.searchWord.length - 1);
|
this.searchWord = this.searchWord.substr(
|
||||||
|
0,
|
||||||
|
this.searchWord.length - 1
|
||||||
|
);
|
||||||
this.getSearchWord(this.searchWord);
|
this.getSearchWord(this.searchWord);
|
||||||
} else {
|
} else {
|
||||||
this.getSearchWord(this.searchValue);
|
this.getSearchWord(this.searchValue);
|
||||||
}
|
}
|
||||||
} else if (e.key == 'Process' || e.key == 'Enter') {
|
} else if (e.key == "Process" || e.key == "Enter") {
|
||||||
if (this.searchValue.length > 0) {
|
if (this.searchValue.length > 0) {
|
||||||
this.searchWord == '';
|
this.searchWord == "";
|
||||||
}
|
}
|
||||||
this.getSearchWord(this.searchValue);
|
this.getSearchWord(this.searchValue);
|
||||||
}
|
}
|
||||||
@ -779,14 +870,18 @@ export default {
|
|||||||
/*搜索关键字变化时,触发获取类似列表*/
|
/*搜索关键字变化时,触发获取类似列表*/
|
||||||
getSearchWord(Value) {
|
getSearchWord(Value) {
|
||||||
let self = this;
|
let self = this;
|
||||||
if (Value == '') {
|
if (Value == "") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let url = encodeURI(
|
let url = encodeURI(
|
||||||
'https://apis.map.qq.com/ws/place/v1/suggestion/?keyword=' + Value + '®ion=' + this.select_city + '&key=LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR&output=jsonp&&callback=?'
|
"https://apis.map.qq.com/ws/place/v1/suggestion/?keyword=" +
|
||||||
|
Value +
|
||||||
|
"®ion=" +
|
||||||
|
this.select_city +
|
||||||
|
"&key=LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR&output=jsonp&&callback=?"
|
||||||
);
|
);
|
||||||
|
|
||||||
getJson(url, 'QQmap', function(res) {
|
getJson(url, "QQmap", function (res) {
|
||||||
if (res.status == 0) {
|
if (res.status == 0) {
|
||||||
self.searchWordList = res.data;
|
self.searchWordList = res.data;
|
||||||
}
|
}
|
||||||
@ -812,11 +907,11 @@ export default {
|
|||||||
self.is_city = false;
|
self.is_city = false;
|
||||||
}
|
}
|
||||||
if (self.select_city == null) {
|
if (self.select_city == null) {
|
||||||
ElMessage .error('请选择城市!');
|
ElMessage.error("请选择城市!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (self.searchValue == '') {
|
if (self.searchValue == "") {
|
||||||
ElMessage .error('请填写搜索的内容!');
|
ElMessage.error("请填写搜索的内容!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -824,26 +919,29 @@ export default {
|
|||||||
let query_city = self.select_city;
|
let query_city = self.select_city;
|
||||||
|
|
||||||
let url = encodeURI(
|
let url = encodeURI(
|
||||||
'https://apis.map.qq.com/ws/place/v1/search?keyword=' +
|
"https://apis.map.qq.com/ws/place/v1/search?keyword=" +
|
||||||
value +
|
value +
|
||||||
'&boundary=region(' +
|
"&boundary=region(" +
|
||||||
query_city +
|
query_city +
|
||||||
',0)&page_size=9&page_index=1&key=LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR&output=jsonp&&callback=?'
|
",0)&page_size=9&page_index=1&key=LS7BZ-NHSWK-CWOJQ-AJC7Y-H5HE2-UGBWR&output=jsonp&&callback=?"
|
||||||
);
|
);
|
||||||
|
|
||||||
/*通过关键字搜索*/
|
/*通过关键字搜索*/
|
||||||
getJson(url, 'QQmap', function(res) {
|
getJson(url, "QQmap", function (res) {
|
||||||
self.searchList = res.data;
|
self.searchList = res.data;
|
||||||
|
|
||||||
for (let n = 0; n < res.data.length; n++) {
|
for (let n = 0; n < res.data.length; n++) {
|
||||||
let ele = res.data[n];
|
let ele = res.data[n];
|
||||||
let latlng = new self.qq.maps.LatLng(ele.location.lat, ele.location.lng);
|
let latlng = new self.qq.maps.LatLng(
|
||||||
|
ele.location.lat,
|
||||||
|
ele.location.lng
|
||||||
|
);
|
||||||
|
|
||||||
let left = n * 27;
|
let left = n * 27;
|
||||||
let marker = new self.qq.maps.Marker({
|
let marker = new self.qq.maps.Marker({
|
||||||
map: self.map,
|
map: self.map,
|
||||||
position: latlng,
|
position: latlng,
|
||||||
zIndex: 10
|
zIndex: 10,
|
||||||
});
|
});
|
||||||
marker.index = n;
|
marker.index = n;
|
||||||
marker.isClicked = false;
|
marker.isClicked = false;
|
||||||
@ -853,7 +951,6 @@ export default {
|
|||||||
//console.log('点击地图',e.target.index);
|
//console.log('点击地图',e.target.index);
|
||||||
self.choseItem(self.searchList[e.target.index], e.target.index);
|
self.choseItem(self.searchList[e.target.index], e.target.index);
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -867,13 +964,23 @@ export default {
|
|||||||
var anchor = new self.qq.maps.Point(10, 30),
|
var anchor = new self.qq.maps.Point(10, 30),
|
||||||
origin = new self.qq.maps.Point(left, 0),
|
origin = new self.qq.maps.Point(left, 0),
|
||||||
size = new self.qq.maps.Size(27, 33),
|
size = new self.qq.maps.Size(27, 33),
|
||||||
icon = new self.qq.maps.MarkerImage(self.marker10_url, size, origin, anchor);
|
icon = new self.qq.maps.MarkerImage(
|
||||||
|
self.marker10_url,
|
||||||
|
size,
|
||||||
|
origin,
|
||||||
|
anchor
|
||||||
|
);
|
||||||
marker.setIcon(icon);
|
marker.setIcon(icon);
|
||||||
} else {
|
} else {
|
||||||
var anchor = new self.qq.maps.Point(10, 30),
|
var anchor = new self.qq.maps.Point(10, 30),
|
||||||
origin = new self.qq.maps.Point(left, 35),
|
origin = new self.qq.maps.Point(left, 35),
|
||||||
size = new self.qq.maps.Size(27, 33),
|
size = new self.qq.maps.Size(27, 33),
|
||||||
icon = new self.qq.maps.MarkerImage(self.marker10_url, size, origin, anchor);
|
icon = new self.qq.maps.MarkerImage(
|
||||||
|
self.marker10_url,
|
||||||
|
size,
|
||||||
|
origin,
|
||||||
|
anchor
|
||||||
|
);
|
||||||
marker.setIcon(icon);
|
marker.setIcon(icon);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -884,11 +991,14 @@ export default {
|
|||||||
self.select_address = _index;
|
self.select_address = _index;
|
||||||
self.map.panTo(new qq.maps.LatLng(item.location.lat, item.location.lng));
|
self.map.panTo(new qq.maps.LatLng(item.location.lat, item.location.lng));
|
||||||
self.map.zoomTo(13);
|
self.map.zoomTo(13);
|
||||||
let latlng = new self.qq.maps.LatLng(item.location.lat, item.location.lng);
|
let latlng = new self.qq.maps.LatLng(
|
||||||
|
item.location.lat,
|
||||||
|
item.location.lng
|
||||||
|
);
|
||||||
let marker = new self.qq.maps.Marker({
|
let marker = new self.qq.maps.Marker({
|
||||||
map: self.map,
|
map: self.map,
|
||||||
position: latlng,
|
position: latlng,
|
||||||
zIndex: 10
|
zIndex: 10,
|
||||||
});
|
});
|
||||||
marker.index = _index;
|
marker.index = _index;
|
||||||
marker.isClicked = false;
|
marker.isClicked = false;
|
||||||
@ -901,7 +1011,7 @@ export default {
|
|||||||
self.choseItem(item, _index);
|
self.choseItem(item, _index);
|
||||||
});
|
});
|
||||||
|
|
||||||
self.$emit('chose', item);
|
self.$emit("chose", item);
|
||||||
},
|
},
|
||||||
|
|
||||||
/*选择城市*/
|
/*选择城市*/
|
||||||
@ -918,8 +1028,8 @@ export default {
|
|||||||
searchMap() {},
|
searchMap() {},
|
||||||
|
|
||||||
/*获取坐标*/
|
/*获取坐标*/
|
||||||
getMap(e) {}
|
getMap(e) {},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-25
|
|
||||||
描述:权限-登录日志
|
|
||||||
-->
|
|
||||||
<div class="user">
|
<div class="user">
|
||||||
|
|
||||||
<!--搜索表单-->
|
<!--搜索表单-->
|
||||||
<div class="common-seach-wrap">
|
<div class="common-seach-wrap">
|
||||||
<el-form size="small" :inline="true" :model="searchForm" class="demo-form-inline">
|
<el-form
|
||||||
<el-form-item><el-input size="small" v-model="searchForm.search" placeholder="请输入用户名和真实姓名"></el-input></el-form-item>
|
size="small"
|
||||||
|
:inline="true"
|
||||||
|
:model="searchForm"
|
||||||
|
class="demo-form-inline"
|
||||||
|
>
|
||||||
|
<el-form-item
|
||||||
|
><el-input
|
||||||
|
size="small"
|
||||||
|
v-model="searchForm.search"
|
||||||
|
placeholder="请输入用户名和真实姓名"
|
||||||
|
></el-input
|
||||||
|
></el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button size="small" type="primary" icon="Search" @click="searchSubmit">查询</el-button>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
icon="Search"
|
||||||
|
@click="searchSubmit"
|
||||||
|
>查询</el-button
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -19,7 +30,13 @@
|
|||||||
<!--内容-->
|
<!--内容-->
|
||||||
<div class="product-content">
|
<div class="product-content">
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
<el-table
|
||||||
|
size="small"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
>
|
||||||
<el-table-column prop="loginLogId" label="ID"></el-table-column>
|
<el-table-column prop="loginLogId" label="ID"></el-table-column>
|
||||||
<el-table-column prop="ip" label="IP"></el-table-column>
|
<el-table-column prop="ip" label="IP"></el-table-column>
|
||||||
<el-table-column prop="result" label="登录状态"></el-table-column>
|
<el-table-column prop="result" label="登录状态"></el-table-column>
|
||||||
@ -45,10 +62,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AuthApi from '@/api/auth.js';
|
import AuthApi from "@/api/auth.js";
|
||||||
export default {
|
export default {
|
||||||
components: {},
|
components: {},
|
||||||
inject: ['reload'],
|
inject: ["reload"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
/*是否加载完成*/
|
/*是否加载完成*/
|
||||||
@ -63,14 +80,14 @@ export default {
|
|||||||
curPage: 1,
|
curPage: 1,
|
||||||
/*横向表单数据模型*/
|
/*横向表单数据模型*/
|
||||||
searchForm: {
|
searchForm: {
|
||||||
search:''
|
search: "",
|
||||||
},
|
},
|
||||||
/*是否打开添加弹窗*/
|
/*是否打开添加弹窗*/
|
||||||
open_add: false,
|
open_add: false,
|
||||||
/*是否打开编辑弹窗*/
|
/*是否打开编辑弹窗*/
|
||||||
open_edit: false,
|
open_edit: false,
|
||||||
/*当前编辑的对象*/
|
/*当前编辑的对象*/
|
||||||
userModel: {}
|
userModel: {},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -78,7 +95,6 @@ export default {
|
|||||||
this.getTableList();
|
this.getTableList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
/*搜索*/
|
/*搜索*/
|
||||||
searchSubmit() {
|
searchSubmit() {
|
||||||
this.curPage = 1;
|
this.curPage = 1;
|
||||||
@ -106,31 +122,31 @@ export default {
|
|||||||
let Params = {
|
let Params = {
|
||||||
pageIndex: self.curPage,
|
pageIndex: self.curPage,
|
||||||
pageSize: self.pageSize,
|
pageSize: self.pageSize,
|
||||||
username: self.searchForm.search
|
username: self.searchForm.search,
|
||||||
};
|
};
|
||||||
|
|
||||||
AuthApi.loginlog(Params, true)
|
AuthApi.loginlog(Params, true)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.tableData = res.data.records;
|
self.tableData = res.data.records;
|
||||||
self.totalDataNumber = res.data.total;
|
self.totalDataNumber = res.data.total;
|
||||||
})
|
})
|
||||||
.catch(error => {});
|
.catch((error) => {});
|
||||||
},
|
},
|
||||||
|
|
||||||
/*打开添加*/
|
/*打开添加*/
|
||||||
addClick() {
|
addClick() {
|
||||||
this.$router.push('/auth/user/add');
|
this.$router.push("/auth/user/add");
|
||||||
},
|
},
|
||||||
|
|
||||||
/*打开编辑*/
|
/*打开编辑*/
|
||||||
editClick(row) {
|
editClick(row) {
|
||||||
let self = this;
|
let self = this;
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: '/auth/user/edit',
|
path: "/auth/user/edit",
|
||||||
query: {
|
query: {
|
||||||
shop_user_id: row.shop_user_id
|
shop_user_id: row.shop_user_id,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -143,25 +159,25 @@ export default {
|
|||||||
/*删除*/
|
/*删除*/
|
||||||
deleteClick(row) {
|
deleteClick(row) {
|
||||||
let self = this;
|
let self = this;
|
||||||
ElMessageBox.confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
ElMessageBox.confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: "取消",
|
||||||
type: 'warning'
|
type: "warning",
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
AuthApi.userDelete(
|
AuthApi.userDelete(
|
||||||
{
|
{
|
||||||
shop_user_id: row.shop_user_id
|
shop_user_id: row.shop_user_id,
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
.then(data => {
|
.then((data) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
if (data.code == 1) {
|
if (data.code == 1) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '恭喜你,该管理员删除成功',
|
message: "恭喜你,该管理员删除成功",
|
||||||
type: 'success'
|
type: "success",
|
||||||
});
|
});
|
||||||
//刷新页面
|
//刷新页面
|
||||||
self.getTableList();
|
self.getTableList();
|
||||||
@ -169,13 +185,13 @@ export default {
|
|||||||
self.loading = false;
|
self.loading = false;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,28 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2020-07-25
|
|
||||||
描述:权限-操作日志
|
|
||||||
-->
|
|
||||||
<div class="user">
|
<div class="user">
|
||||||
|
|
||||||
<!--搜索表单-->
|
<!--搜索表单-->
|
||||||
<div class="common-seach-wrap">
|
<div class="common-seach-wrap">
|
||||||
<el-form size="small" :inline="true" :model="searchForm" class="demo-form-inline">
|
<el-form
|
||||||
<el-form-item><el-input size="small" v-model="searchForm.search" placeholder="请输入用户名"></el-input></el-form-item>
|
size="small"
|
||||||
|
:inline="true"
|
||||||
|
:model="searchForm"
|
||||||
|
class="demo-form-inline"
|
||||||
|
>
|
||||||
|
<el-form-item
|
||||||
|
><el-input
|
||||||
|
size="small"
|
||||||
|
v-model="searchForm.search"
|
||||||
|
placeholder="请输入用户名"
|
||||||
|
></el-input
|
||||||
|
></el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button size="small" type="primary" icon="Search" @click="searchSubmit">查询</el-button>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
icon="Search"
|
||||||
|
@click="searchSubmit"
|
||||||
|
>查询</el-button
|
||||||
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -19,13 +30,27 @@
|
|||||||
<!--内容-->
|
<!--内容-->
|
||||||
<div class="product-content">
|
<div class="product-content">
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
<el-table
|
||||||
<el-table-column prop="optLogId" label="id" width="70"></el-table-column>
|
size="small"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
prop="optLogId"
|
||||||
|
label="id"
|
||||||
|
width="70"
|
||||||
|
></el-table-column>
|
||||||
<el-table-column prop="userName" label="用户名"></el-table-column>
|
<el-table-column prop="userName" label="用户名"></el-table-column>
|
||||||
<el-table-column prop="realName" label="真实姓名"></el-table-column>
|
<el-table-column prop="realName" label="真实姓名"></el-table-column>
|
||||||
<el-table-column prop="url" label="Url" width="300">
|
<el-table-column prop="url" label="Url" width="300">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-input size="small" placeholder="请输入内容" v-model="scope.row.url">
|
<el-input
|
||||||
|
size="small"
|
||||||
|
placeholder="请输入内容"
|
||||||
|
v-model="scope.row.url"
|
||||||
|
>
|
||||||
<el-button @click="gotoUrl(scope.row.url)" icon="Link">
|
<el-button @click="gotoUrl(scope.row.url)" icon="Link">
|
||||||
<template #append>
|
<template #append>
|
||||||
<el-button icon="Link" />
|
<el-button icon="Link" />
|
||||||
@ -36,12 +61,21 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="title" label="标题"></el-table-column>
|
<el-table-column prop="title" label="标题"></el-table-column>
|
||||||
<el-table-column prop="ip" label="IP" width="120"></el-table-column>
|
<el-table-column prop="ip" label="IP" width="120"></el-table-column>
|
||||||
<el-table-column prop="browser" label="Browser" width="120"></el-table-column>
|
<el-table-column
|
||||||
|
prop="browser"
|
||||||
|
label="Browser"
|
||||||
|
width="120"
|
||||||
|
></el-table-column>
|
||||||
<el-table-column prop="createTime" label="添加时间"></el-table-column>
|
<el-table-column prop="createTime" label="添加时间"></el-table-column>
|
||||||
<el-table-column fixed="right" label="操作" width="80">
|
<el-table-column fixed="right" label="操作" width="80">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button @click="openDetail(scope.row)" type="primary"
|
<el-button
|
||||||
link size="small">详情</el-button>
|
@click="openDetail(scope.row)"
|
||||||
|
type="primary"
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
>详情</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -62,18 +96,17 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Detail :open="open" :form="userModel" @close="closeDetail"></Detail>
|
<Detail :open="open" :form="userModel" @close="closeDetail"></Detail>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AuthApi from '@/api/auth.js';
|
import AuthApi from "@/api/auth.js";
|
||||||
import Detail from './dialog/Detail.vue'
|
import Detail from "./dialog/Detail.vue";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Detail
|
Detail,
|
||||||
},
|
},
|
||||||
inject: ['reload'],
|
inject: ["reload"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
/*是否加载完成*/
|
/*是否加载完成*/
|
||||||
@ -88,12 +121,12 @@ export default {
|
|||||||
curPage: 1,
|
curPage: 1,
|
||||||
/*横向表单数据模型*/
|
/*横向表单数据模型*/
|
||||||
searchForm: {
|
searchForm: {
|
||||||
search:''
|
search: "",
|
||||||
},
|
},
|
||||||
/*是否打开弹窗*/
|
/*是否打开弹窗*/
|
||||||
open: false,
|
open: false,
|
||||||
/*编辑对象*/
|
/*编辑对象*/
|
||||||
userModel: {}
|
userModel: {},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -101,7 +134,6 @@ export default {
|
|||||||
this.getTableList();
|
this.getTableList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
/*搜索*/
|
/*搜索*/
|
||||||
searchSubmit() {
|
searchSubmit() {
|
||||||
this.curPage = 1;
|
this.curPage = 1;
|
||||||
@ -129,16 +161,16 @@ export default {
|
|||||||
let Params = {
|
let Params = {
|
||||||
pageIndex: self.curPage,
|
pageIndex: self.curPage,
|
||||||
pageSize: self.pageSize,
|
pageSize: self.pageSize,
|
||||||
username: self.searchForm.search
|
username: self.searchForm.search,
|
||||||
};
|
};
|
||||||
|
|
||||||
AuthApi.optlog(Params, true)
|
AuthApi.optlog(Params, true)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.tableData = res.data.records;
|
self.tableData = res.data.records;
|
||||||
self.totalDataNumber = res.data.total;
|
self.totalDataNumber = res.data.total;
|
||||||
})
|
})
|
||||||
.catch(error => {});
|
.catch((error) => {});
|
||||||
},
|
},
|
||||||
|
|
||||||
/*跳转链接*/
|
/*跳转链接*/
|
||||||
@ -146,8 +178,7 @@ export default {
|
|||||||
let self = this;
|
let self = this;
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: row,
|
path: row,
|
||||||
query: {
|
query: {},
|
||||||
}
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -165,9 +196,8 @@ export default {
|
|||||||
/*关闭详情*/
|
/*关闭详情*/
|
||||||
closeDetail() {
|
closeDetail() {
|
||||||
this.open = false;
|
this.open = false;
|
||||||
}
|
},
|
||||||
|
},
|
||||||
}
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,36 +1,60 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-25
|
|
||||||
描述:权限-角色管理-添加角色
|
|
||||||
-->
|
|
||||||
<div v-loading="loading">
|
<div v-loading="loading">
|
||||||
<!--form表单-->
|
<!--form表单-->
|
||||||
<el-form size="small" ref="form" :model="form" label-width="180px">
|
<el-form size="small" ref="form" :model="form" label-width="180px">
|
||||||
<!--添加门店-->
|
<!--添加门店-->
|
||||||
<div class="common-form">添加角色</div>
|
<div class="common-form">添加角色</div>
|
||||||
|
|
||||||
<el-form-item label="角色名称:" prop="roleName" :rules="[{ required: true, message: ' ' }]">
|
<el-form-item
|
||||||
<el-input v-model="form.roleName" placeholder="请输入角色名称" class="max-w460"></el-input>
|
label="角色名称:"
|
||||||
|
prop="roleName"
|
||||||
|
:rules="[{ required: true, message: ' ' }]"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="form.roleName"
|
||||||
|
placeholder="请输入角色名称"
|
||||||
|
class="max-w460"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="权限列表:" v-model="form.accessId">
|
<el-form-item label="权限列表:" v-model="form.accessId">
|
||||||
<el-tree :data="data" show-checkbox node-key="accessId" :default-expand-all="true" :default-checked-keys="[]" :props="defaultProps" @check="handleCheckChange"></el-tree>
|
<el-tree
|
||||||
|
:data="data"
|
||||||
|
show-checkbox
|
||||||
|
node-key="accessId"
|
||||||
|
:default-expand-all="true"
|
||||||
|
:default-checked-keys="[]"
|
||||||
|
:props="defaultProps"
|
||||||
|
@check="handleCheckChange"
|
||||||
|
></el-tree>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="排序:"><el-input type="number" v-model="form.sort" placeholder="请输入排序" class="max-w460"></el-input></el-form-item>
|
<el-form-item label="排序:"
|
||||||
|
><el-input
|
||||||
|
type="number"
|
||||||
|
v-model="form.sort"
|
||||||
|
placeholder="请输入排序"
|
||||||
|
class="max-w460"
|
||||||
|
></el-input
|
||||||
|
></el-form-item>
|
||||||
|
|
||||||
<!--提交-->
|
<!--提交-->
|
||||||
<div class="common-button-wrapper">
|
<div class="common-button-wrapper">
|
||||||
<el-button size="small" type="info" @click="cancelFunc">取消</el-button>
|
<el-button size="small" type="info" @click="cancelFunc">取消</el-button>
|
||||||
<el-button type="primary" size="small" @click="onSubmit" :loading="loading">提交</el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="onSubmit"
|
||||||
|
:loading="loading"
|
||||||
|
>提交</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AuthApi from '@/api/auth.js';
|
import AuthApi from "@/api/auth.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -40,13 +64,13 @@ export default {
|
|||||||
/*表单数据对象*/
|
/*表单数据对象*/
|
||||||
form: {
|
form: {
|
||||||
accessId: [],
|
accessId: [],
|
||||||
sort: 1
|
sort: 1,
|
||||||
},
|
},
|
||||||
data: [],
|
data: [],
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
children: 'children',
|
children: "children",
|
||||||
label: 'name'
|
label: "name",
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -58,19 +82,19 @@ export default {
|
|||||||
onSubmit() {
|
onSubmit() {
|
||||||
let self = this;
|
let self = this;
|
||||||
let form = self.form;
|
let form = self.form;
|
||||||
self.$refs.form.validate(valid => {
|
self.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
AuthApi.roleAdd(form, true)
|
AuthApi.roleAdd(form, true)
|
||||||
.then(data => {
|
.then((data) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '添加成功',
|
message: "添加成功",
|
||||||
type: 'success'
|
type: "success",
|
||||||
});
|
});
|
||||||
self.$router.push('/auth/role/index');
|
self.$router.push("/auth/role/index");
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -81,11 +105,11 @@ export default {
|
|||||||
getData() {
|
getData() {
|
||||||
let self = this;
|
let self = this;
|
||||||
AuthApi.roleAddInfo()
|
AuthApi.roleAddInfo()
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
self.data = res.data;
|
self.data = res.data;
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -98,8 +122,8 @@ export default {
|
|||||||
/*取消*/
|
/*取消*/
|
||||||
cancelFunc() {
|
cancelFunc() {
|
||||||
this.$router.back(-1);
|
this.$router.back(-1);
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,16 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-25
|
|
||||||
描述:权限-角色管理-编辑角色
|
|
||||||
-->
|
|
||||||
<div v-loading="loading">
|
<div v-loading="loading">
|
||||||
<!--form表单-->
|
<!--form表单-->
|
||||||
<el-form size="small" ref="form" :model="form" label-width="180px">
|
<el-form size="small" ref="form" :model="form" label-width="180px">
|
||||||
<!--编辑角色-->
|
<!--编辑角色-->
|
||||||
<div class="common-form">编辑角色</div>
|
<div class="common-form">编辑角色</div>
|
||||||
<el-form-item label="角色名称:" prop="roleName" :rules="[{ required: true, message: ' ' }]">
|
<el-form-item
|
||||||
<el-input v-model="form.roleName" placeholder="请输入角色名称" class="max-w460"></el-input>
|
label="角色名称:"
|
||||||
|
prop="roleName"
|
||||||
|
:rules="[{ required: true, message: ' ' }]"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="form.roleName"
|
||||||
|
placeholder="请输入角色名称"
|
||||||
|
class="max-w460"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="权限列表:" v-model="form.accessId">
|
<el-form-item label="权限列表:" v-model="form.accessId">
|
||||||
<el-tree
|
<el-tree
|
||||||
@ -24,19 +27,32 @@
|
|||||||
></el-tree>
|
></el-tree>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="排序:"><el-input type="number" v-model="form.sort" placeholder="请输入排序" class="max-w460"></el-input></el-form-item>
|
<el-form-item label="排序:"
|
||||||
|
><el-input
|
||||||
|
type="number"
|
||||||
|
v-model="form.sort"
|
||||||
|
placeholder="请输入排序"
|
||||||
|
class="max-w460"
|
||||||
|
></el-input
|
||||||
|
></el-form-item>
|
||||||
|
|
||||||
<!--提交-->
|
<!--提交-->
|
||||||
<div class="common-button-wrapper">
|
<div class="common-button-wrapper">
|
||||||
<el-button size="small" type="info" @click="cancelFunc">取消</el-button>
|
<el-button size="small" type="info" @click="cancelFunc">取消</el-button>
|
||||||
<el-button type="primary" size="small" @click="onSubmit" :loading="loading">提交</el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="onSubmit"
|
||||||
|
:loading="loading"
|
||||||
|
>提交</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AuthApi from '@/api/auth.js';
|
import AuthApi from "@/api/auth.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -45,7 +61,7 @@ export default {
|
|||||||
loading: true,
|
loading: true,
|
||||||
/*表单数据对象*/
|
/*表单数据对象*/
|
||||||
form: {
|
form: {
|
||||||
accessId: []
|
accessId: [],
|
||||||
},
|
},
|
||||||
data: [],
|
data: [],
|
||||||
/*角色列表*/
|
/*角色列表*/
|
||||||
@ -54,10 +70,10 @@ export default {
|
|||||||
selectMenu: [],
|
selectMenu: [],
|
||||||
/*权限树菜单重新自定义字段*/
|
/*权限树菜单重新自定义字段*/
|
||||||
defaultProps: {
|
defaultProps: {
|
||||||
children: 'children',
|
children: "children",
|
||||||
label: 'name'
|
label: "name",
|
||||||
},
|
},
|
||||||
roleId: 0
|
roleId: 0,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -70,24 +86,27 @@ export default {
|
|||||||
onSubmit() {
|
onSubmit() {
|
||||||
let self = this;
|
let self = this;
|
||||||
let form = self.form;
|
let form = self.form;
|
||||||
self.$refs.form.validate(valid => {
|
self.$refs.form.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
AuthApi.roleEdit({
|
AuthApi.roleEdit(
|
||||||
|
{
|
||||||
roleId: self.form.roleId,
|
roleId: self.form.roleId,
|
||||||
roleName: self.form.roleName,
|
roleName: self.form.roleName,
|
||||||
sort: self.form.sort,
|
sort: self.form.sort,
|
||||||
accessId: self.form.accessId,
|
accessId: self.form.accessId,
|
||||||
}, true)
|
},
|
||||||
.then(data => {
|
true
|
||||||
|
)
|
||||||
|
.then((data) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '修改成功',
|
message: "修改成功",
|
||||||
type: 'success'
|
type: "success",
|
||||||
});
|
});
|
||||||
self.$router.push('/auth/role/index');
|
self.$router.push("/auth/role/index");
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -98,9 +117,9 @@ export default {
|
|||||||
getData() {
|
getData() {
|
||||||
let self = this;
|
let self = this;
|
||||||
AuthApi.roleEditInfo({
|
AuthApi.roleEditInfo({
|
||||||
roleId: self.roleId
|
roleId: self.roleId,
|
||||||
})
|
})
|
||||||
.then(data => {
|
.then((data) => {
|
||||||
let obj = self.clearData(data.data.menu, data.data.selectMenu);
|
let obj = self.clearData(data.data.menu, data.data.selectMenu);
|
||||||
self.selectMenu = data.data.selectMenu;
|
self.selectMenu = data.data.selectMenu;
|
||||||
self.form = data.data.model;
|
self.form = data.data.model;
|
||||||
@ -108,11 +127,11 @@ export default {
|
|||||||
self.data = data.data.menu;
|
self.data = data.data.menu;
|
||||||
self.form.accessId = self.selectMenu;
|
self.form.accessId = self.selectMenu;
|
||||||
if (self.form.parentId == 0) {
|
if (self.form.parentId == 0) {
|
||||||
self.form.parentId = 0 + '';
|
self.form.parentId = 0 + "";
|
||||||
}
|
}
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -151,9 +170,8 @@ export default {
|
|||||||
/*取消*/
|
/*取消*/
|
||||||
cancelFunc() {
|
cancelFunc() {
|
||||||
this.$router.back(-1);
|
this.$router.back(-1);
|
||||||
}
|
},
|
||||||
|
},
|
||||||
}
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,28 +1,48 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-25
|
|
||||||
描述:权限-角色管理
|
|
||||||
-->
|
|
||||||
<div class="user">
|
<div class="user">
|
||||||
<div class="common-level-rail">
|
<div class="common-level-rail">
|
||||||
<el-button size="small" type="primary" icon="Plus" @click="addClick" v-auth="'/auth/role/add'">添加角色</el-button>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
icon="Plus"
|
||||||
|
@click="addClick"
|
||||||
|
v-auth="'/auth/role/add'"
|
||||||
|
>添加角色</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--内容-->
|
<!--内容-->
|
||||||
<div class="product-content">
|
<div class="product-content">
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
<el-table
|
||||||
|
size="small"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
>
|
||||||
<el-table-column prop="roleId" label="角色ID"></el-table-column>
|
<el-table-column prop="roleId" label="角色ID"></el-table-column>
|
||||||
<el-table-column prop="roleName" label="角色名称"></el-table-column>
|
<el-table-column prop="roleName" label="角色名称"></el-table-column>
|
||||||
<el-table-column prop="sort" label="排序"></el-table-column>
|
<el-table-column prop="sort" label="排序"></el-table-column>
|
||||||
<el-table-column prop="createTime" label="添加时间"></el-table-column>
|
<el-table-column prop="createTime" label="添加时间"></el-table-column>
|
||||||
<el-table-column fixed="right" label="操作" width="120">
|
<el-table-column fixed="right" label="操作" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button @click="editClick(scope.row)" type="primary"
|
<el-button
|
||||||
link size="small" v-auth="'/auth/role/edit'">编辑</el-button>
|
@click="editClick(scope.row)"
|
||||||
<el-button @click="deleteClick(scope.row)" type="primary"
|
type="primary"
|
||||||
link size="small" v-auth="'/auth/role/delete'">删除</el-button>
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'/auth/role/edit'"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
@click="deleteClick(scope.row)"
|
||||||
|
type="primary"
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'/auth/role/delete'"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -32,14 +52,14 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AuthApi from '@/api/auth.js';
|
import AuthApi from "@/api/auth.js";
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
/*是否加载完成*/
|
/*是否加载完成*/
|
||||||
loading: true,
|
loading: true,
|
||||||
/*列表数据*/
|
/*列表数据*/
|
||||||
tableData: []
|
tableData: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -52,28 +72,28 @@ export default {
|
|||||||
let self = this;
|
let self = this;
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
AuthApi.roleList({}, true)
|
AuthApi.roleList({}, true)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.tableData = res.data;
|
self.tableData = res.data;
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
/*打开添加*/
|
/*打开添加*/
|
||||||
addClick() {
|
addClick() {
|
||||||
this.$router.push('/auth/role/add');
|
this.$router.push("/auth/role/add");
|
||||||
},
|
},
|
||||||
|
|
||||||
/*打开编辑*/
|
/*打开编辑*/
|
||||||
editClick(row) {
|
editClick(row) {
|
||||||
let self = this;
|
let self = this;
|
||||||
this.$router.push({
|
this.$router.push({
|
||||||
path: '/auth/role/edit',
|
path: "/auth/role/edit",
|
||||||
query: {
|
query: {
|
||||||
roleId: row.roleId
|
roleId: row.roleId,
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -86,38 +106,38 @@ export default {
|
|||||||
/*删除*/
|
/*删除*/
|
||||||
deleteClick(row) {
|
deleteClick(row) {
|
||||||
let self = this;
|
let self = this;
|
||||||
ElMessageBox.confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
ElMessageBox.confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: "取消",
|
||||||
type: 'warning'
|
type: "warning",
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
AuthApi.roleDelete(
|
AuthApi.roleDelete(
|
||||||
{
|
{
|
||||||
roleId: row.roleId
|
roleId: row.roleId,
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
.then(data => {
|
.then((data) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
if (data.code == 1) {
|
if (data.code == 1) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '恭喜你,该角色删除成功',
|
message: "恭喜你,该角色删除成功",
|
||||||
type: 'success'
|
type: "success",
|
||||||
});
|
});
|
||||||
self.getTableList();
|
self.getTableList();
|
||||||
} else {
|
} else {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,38 +1,63 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-25
|
|
||||||
描述:权限-管理员列表
|
|
||||||
-->
|
|
||||||
<div class="user">
|
<div class="user">
|
||||||
<!--添加管理员-->
|
<!--添加管理员-->
|
||||||
<div class="common-level-rail">
|
<div class="common-level-rail">
|
||||||
<el-button size="small" type="primary" icon="Plus" @click="addClick" v-auth="'/auth/user/add'">添加管理员</el-button>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
icon="Plus"
|
||||||
|
@click="addClick"
|
||||||
|
v-auth="'/auth/user/add'"
|
||||||
|
>添加管理员</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--内容-->
|
<!--内容-->
|
||||||
<div class="product-content">
|
<div class="product-content">
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<el-table size="small" :data="tableData" border style="width: 100%" v-loading="loading">
|
<el-table
|
||||||
|
size="small"
|
||||||
|
:data="tableData"
|
||||||
|
border
|
||||||
|
style="width: 100%"
|
||||||
|
v-loading="loading"
|
||||||
|
>
|
||||||
<el-table-column prop="shopUserId" label="管理员ID"></el-table-column>
|
<el-table-column prop="shopUserId" label="管理员ID"></el-table-column>
|
||||||
<el-table-column prop="userName" label="用户名"></el-table-column>
|
<el-table-column prop="userName" label="用户名"></el-table-column>
|
||||||
<el-table-column label="所属角色">
|
<el-table-column label="所属角色">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<div v-if="scope.row.isSuper == 0">
|
<div v-if="scope.row.isSuper == 0">
|
||||||
<span class="mr10 green" v-for="(item, index) in scope.row.roleList" :key="index">{{ item.roleName }}</span>
|
<span
|
||||||
</div>
|
class="mr10 green"
|
||||||
<div class="gray" v-if="scope.row.isSuper">
|
v-for="(item, index) in scope.row.roleList"
|
||||||
超级管理员
|
:key="index"
|
||||||
|
>{{ item.roleName }}</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="gray" v-if="scope.row.isSuper">超级管理员</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="createTime" label="添加时间"></el-table-column>
|
<el-table-column prop="createTime" label="添加时间"></el-table-column>
|
||||||
<el-table-column fixed="right" label="操作" width="120">
|
<el-table-column fixed="right" label="操作" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button v-if="!scope.row.isSuper" @click="editClick(scope.row)" type="primary"
|
<el-button
|
||||||
link size="small" v-auth="'/auth/user/edit'">编辑</el-button>
|
v-if="!scope.row.isSuper"
|
||||||
<el-button v-if="!scope.row.isSuper" @click="deleteClick(scope.row)" type="primary"
|
@click="editClick(scope.row)"
|
||||||
link size="small" v-auth="'/auth/user/delete'">删除</el-button>
|
type="primary"
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'/auth/user/edit'"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
v-if="!scope.row.isSuper"
|
||||||
|
@click="deleteClick(scope.row)"
|
||||||
|
type="primary"
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'/auth/user/delete'"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -54,21 +79,25 @@
|
|||||||
|
|
||||||
<Add :open="open_add" :roleList="roleList" @close="closeAdd"></Add>
|
<Add :open="open_add" :roleList="roleList" @close="closeAdd"></Add>
|
||||||
|
|
||||||
<Edit :open="open_edit" :roleList="roleList" :model="curModel" @close="closeEdit"></Edit>
|
<Edit
|
||||||
|
:open="open_edit"
|
||||||
|
:roleList="roleList"
|
||||||
|
:model="curModel"
|
||||||
|
@close="closeEdit"
|
||||||
|
></Edit>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import AuthApi from '@/api/auth.js';
|
import AuthApi from "@/api/auth.js";
|
||||||
import Add from './dialog/Add.vue';
|
import Add from "./dialog/Add.vue";
|
||||||
import Edit from './dialog/Edit.vue';
|
import Edit from "./dialog/Edit.vue";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Add,
|
Add,
|
||||||
Edit
|
Edit,
|
||||||
},
|
},
|
||||||
inject: ['reload'],
|
inject: ["reload"],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
/*是否加载完成*/
|
/*是否加载完成*/
|
||||||
@ -88,7 +117,7 @@ export default {
|
|||||||
/*当前编辑的对象*/
|
/*当前编辑的对象*/
|
||||||
curModel: {},
|
curModel: {},
|
||||||
/*角色列表*/
|
/*角色列表*/
|
||||||
roleList:[]
|
roleList: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -118,13 +147,13 @@ export default {
|
|||||||
Params.pageIndex = self.curPage;
|
Params.pageIndex = self.curPage;
|
||||||
Params.pageSize = self.pageSize;
|
Params.pageSize = self.pageSize;
|
||||||
AuthApi.userList(Params, true)
|
AuthApi.userList(Params, true)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.tableData = res.data.userList.records;
|
self.tableData = res.data.userList.records;
|
||||||
self.totalDataNumber = res.data.userList.total;
|
self.totalDataNumber = res.data.userList.total;
|
||||||
self.roleList = res.data.roleList;
|
self.roleList = res.data.roleList;
|
||||||
})
|
})
|
||||||
.catch(error => {});
|
.catch((error) => {});
|
||||||
},
|
},
|
||||||
|
|
||||||
/*打开添加*/
|
/*打开添加*/
|
||||||
@ -135,7 +164,7 @@ export default {
|
|||||||
/*关闭添加*/
|
/*关闭添加*/
|
||||||
closeAdd(e) {
|
closeAdd(e) {
|
||||||
this.open_add = false;
|
this.open_add = false;
|
||||||
if(e && e.type=='success'){
|
if (e && e.type == "success") {
|
||||||
this.getTableList();
|
this.getTableList();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -149,7 +178,7 @@ export default {
|
|||||||
/*关闭添加*/
|
/*关闭添加*/
|
||||||
closeEdit(e) {
|
closeEdit(e) {
|
||||||
this.open_edit = false;
|
this.open_edit = false;
|
||||||
if(e && e.type=='success'){
|
if (e && e.type == "success") {
|
||||||
this.getTableList();
|
this.getTableList();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -157,25 +186,25 @@ export default {
|
|||||||
/*删除*/
|
/*删除*/
|
||||||
deleteClick(row) {
|
deleteClick(row) {
|
||||||
let self = this;
|
let self = this;
|
||||||
ElMessageBox.confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
ElMessageBox.confirm("此操作将永久删除该记录, 是否继续?", "提示", {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: "取消",
|
||||||
type: 'warning'
|
type: "warning",
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
AuthApi.userDelete(
|
AuthApi.userDelete(
|
||||||
{
|
{
|
||||||
shopUserId: row.shopUserId
|
shopUserId: row.shopUserId,
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
.then(data => {
|
.then((data) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
if (data.code == 1) {
|
if (data.code == 1) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '恭喜你,该管理员删除成功',
|
message: "恭喜你,该管理员删除成功",
|
||||||
type: 'success'
|
type: "success",
|
||||||
});
|
});
|
||||||
//刷新页面
|
//刷新页面
|
||||||
self.getTableList();
|
self.getTableList();
|
||||||
@ -183,13 +212,13 @@ export default {
|
|||||||
self.loading = false;
|
self.loading = false;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-24
|
|
||||||
描述:统计-销售统计-商品统计
|
|
||||||
-->
|
|
||||||
<div class="sales-product-box mt30">
|
<div class="sales-product-box mt30">
|
||||||
<div class="common-form">商品统计</div>
|
<div class="common-form">商品统计</div>
|
||||||
<div class="d-s-stretch bd-box">
|
<div class="d-s-stretch bd-box">
|
||||||
@ -21,19 +16,24 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Total from './product/Total.vue';
|
import Total from "./product/Total.vue";
|
||||||
import LineChart from './product/LineChart.vue';
|
import LineChart from "./product/LineChart.vue";
|
||||||
import Ranking from './product/Ranking.vue'
|
import Ranking from "./product/Ranking.vue";
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Total,
|
Total,
|
||||||
LineChart,
|
LineChart,
|
||||||
Ranking
|
Ranking,
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.sales-product-box .bd-box{ border-top: 1px solid #EEEEEE;}
|
.sales-product-box .bd-box {
|
||||||
.sales-product-box .left-box{ width: 69%; border-right: 1px solid #EEEEEE;}
|
border-top: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
|
.sales-product-box .left-box {
|
||||||
|
width: 69%;
|
||||||
|
border-right: 1px solid #eeeeee;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,11 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-24
|
|
||||||
描述:统计-销售统计-总计
|
|
||||||
-->
|
|
||||||
<div class="d-a-c lh30 ww100 pt16">
|
<div class="d-a-c lh30 ww100 pt16">
|
||||||
<div class="pt30 tc" style="width: 80px;">
|
<div class="pt30 tc" style="width: 80px">
|
||||||
<p class="gray9">今日</p>
|
<p class="gray9">今日</p>
|
||||||
<p class="gray9">昨日</p>
|
<p class="gray9">昨日</p>
|
||||||
</div>
|
</div>
|
||||||
@ -42,27 +37,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components:{
|
components: {},
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
/*是否正在加载*/
|
/*是否正在加载*/
|
||||||
loading: true,
|
loading: true,
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
inject: ['dataModel'],
|
inject: ["dataModel"],
|
||||||
created() {
|
created() {},
|
||||||
|
methods: {},
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style></style>
|
||||||
</style>
|
|
||||||
|
|||||||
@ -1,9 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-24
|
|
||||||
描述:统计-销售统计-交易统计
|
|
||||||
-->
|
|
||||||
<div class="mt30">
|
<div class="mt30">
|
||||||
<div class="">
|
<div class="">
|
||||||
<div class="Echarts">
|
<div class="Echarts">
|
||||||
|
|||||||
@ -1,9 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-24
|
|
||||||
描述:统计-销售统计-商品统计-已付款商品
|
|
||||||
-->
|
|
||||||
<div class="ww100 mt30">
|
<div class="ww100 mt30">
|
||||||
<el-tabs v-model="activeName">
|
<el-tabs v-model="activeName">
|
||||||
<el-tab-pane label="已付款商品" name="first"></el-tab-pane>
|
<el-tab-pane label="已付款商品" name="first"></el-tab-pane>
|
||||||
@ -33,8 +28,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import StatisticsApi from '@/api/statistics.js';
|
import StatisticsApi from "@/api/statistics.js";
|
||||||
import { formatDate } from '@/utils/DateTime.js'
|
import { formatDate } from "@/utils/DateTime.js";
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
let myChart;
|
let myChart;
|
||||||
export default {
|
export default {
|
||||||
@ -43,40 +38,40 @@ export default {
|
|||||||
let startDate = new Date();
|
let startDate = new Date();
|
||||||
startDate.setTime(startDate.getTime() - 3600 * 1000 * 24 * 7);
|
startDate.setTime(startDate.getTime() - 3600 * 1000 * 24 * 7);
|
||||||
return {
|
return {
|
||||||
activeName: 'first',
|
activeName: "first",
|
||||||
/*时间快捷选项*/
|
/*时间快捷选项*/
|
||||||
|
|
||||||
shortcuts: [
|
shortcuts: [
|
||||||
{
|
{
|
||||||
text: '最近一周',
|
text: "最近一周",
|
||||||
value: () => {
|
value: () => {
|
||||||
const end = new Date();
|
const end = new Date();
|
||||||
const start = new Date();
|
const start = new Date();
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
||||||
return [start, end];
|
return [start, end];
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '最近一个月',
|
text: "最近一个月",
|
||||||
value: () => {
|
value: () => {
|
||||||
const end = new Date();
|
const end = new Date();
|
||||||
const start = new Date();
|
const start = new Date();
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
||||||
return [start, end];
|
return [start, end];
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '最近三个月',
|
text: "最近三个月",
|
||||||
value: () => {
|
value: () => {
|
||||||
const end = new Date();
|
const end = new Date();
|
||||||
const start = new Date();
|
const start = new Date();
|
||||||
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
||||||
return [start, end];
|
return [start, end];
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
startDate: formatDate(startDate,'YYYY-MM-DD'),
|
startDate: formatDate(startDate, "YYYY-MM-DD"),
|
||||||
endDate: formatDate(endDate,'YYYY-MM-DD'),
|
endDate: formatDate(endDate, "YYYY-MM-DD"),
|
||||||
/*数据对象*/
|
/*数据对象*/
|
||||||
dataList: null,
|
dataList: null,
|
||||||
/*交易统计图表对象*/
|
/*交易统计图表对象*/
|
||||||
@ -87,23 +82,22 @@ export default {
|
|||||||
//text: 'ECharts 入门示例'
|
//text: 'ECharts 入门示例'
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: '3%',
|
left: "3%",
|
||||||
right: '4%',
|
right: "4%",
|
||||||
bottom: '3%',
|
bottom: "3%",
|
||||||
containLabel: true
|
containLabel: true,
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis'
|
trigger: "axis",
|
||||||
|
},
|
||||||
|
yAxis: {},
|
||||||
},
|
},
|
||||||
yAxis: {}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.myEcharts();
|
this.myEcharts();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
/*选择时间*/
|
/*选择时间*/
|
||||||
changeDate() {
|
changeDate() {
|
||||||
this.getData();
|
this.getData();
|
||||||
@ -111,7 +105,7 @@ export default {
|
|||||||
|
|
||||||
myEcharts() {
|
myEcharts() {
|
||||||
// 基于准备好的dom,初始化echarts实例
|
// 基于准备好的dom,初始化echarts实例
|
||||||
myChart = echarts.init(document.getElementById('LineChart'));
|
myChart = echarts.init(document.getElementById("LineChart"));
|
||||||
/*获取列表*/
|
/*获取列表*/
|
||||||
this.getData();
|
this.getData();
|
||||||
},
|
},
|
||||||
@ -122,16 +116,16 @@ export default {
|
|||||||
let names = [];
|
let names = [];
|
||||||
let xAxis = this.dataList.days;
|
let xAxis = this.dataList.days;
|
||||||
let series1 = [];
|
let series1 = [];
|
||||||
this.dataList.data.forEach(item => {
|
this.dataList.data.forEach((item) => {
|
||||||
series1.push(item.totalNum);
|
series1.push(item.totalNum);
|
||||||
});
|
});
|
||||||
names = [ '商品件数'];
|
names = ["商品件数"];
|
||||||
|
|
||||||
// 指定图表的配置项和数据
|
// 指定图表的配置项和数据
|
||||||
this.option.xAxis = {
|
this.option.xAxis = {
|
||||||
type: 'category',
|
type: "category",
|
||||||
boundaryGap: false,
|
boundaryGap: false,
|
||||||
data: xAxis
|
data: xAxis,
|
||||||
};
|
};
|
||||||
this.option.color = ["red", "#409EFF"];
|
this.option.color = ["red", "#409EFF"];
|
||||||
|
|
||||||
@ -141,12 +135,12 @@ export default {
|
|||||||
this.option.series = [
|
this.option.series = [
|
||||||
{
|
{
|
||||||
name: names[0],
|
name: names[0],
|
||||||
type: 'line',
|
type: "line",
|
||||||
data: series1,
|
data: series1,
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
color: 'red'
|
color: "red",
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
myChart.setOption(this.option);
|
myChart.setOption(this.option);
|
||||||
@ -162,22 +156,28 @@ export default {
|
|||||||
{
|
{
|
||||||
startDate: self.startDate,
|
startDate: self.startDate,
|
||||||
endDate: self.endDate,
|
endDate: self.endDate,
|
||||||
type: self.activeName
|
type: self.activeName,
|
||||||
},
|
},
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
self.dataList = res.data;
|
self.dataList = res.data;
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
self.createOption();
|
self.createOption();
|
||||||
})
|
})
|
||||||
.catch(error => {});
|
.catch((error) => {});
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped="scoped">
|
<style scoped="scoped">
|
||||||
.Echarts{ box-sizing: border-box;}
|
.Echarts {
|
||||||
.Echarts>div{ width: 100%; height: 360px; box-sizing: border-box;}
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.Echarts > div {
|
||||||
|
width: 100%;
|
||||||
|
height: 360px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,9 +1,4 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-24
|
|
||||||
描述:统计-销售统计-商品统计-排行榜
|
|
||||||
-->
|
|
||||||
<div class="right-box d-s-s d-c">
|
<div class="right-box d-s-s d-c">
|
||||||
<div class="lh30 f16 tl">商品排行榜</div>
|
<div class="lh30 f16 tl">商品排行榜</div>
|
||||||
<div class="ww100 mt10">
|
<div class="ww100 mt10">
|
||||||
@ -15,21 +10,31 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="list ww100">
|
<div class="list ww100">
|
||||||
<ul v-if="listData.length > 0">
|
<ul v-if="listData.length > 0">
|
||||||
<li v-for="(item, index) in listData" :key="index" class="d-s-c p-6-0 border-b-d">
|
<li
|
||||||
|
v-for="(item, index) in listData"
|
||||||
|
:key="index"
|
||||||
|
class="d-s-c p-6-0 border-b-d"
|
||||||
|
>
|
||||||
<span class="key-box">{{ index + 1 }}</span>
|
<span class="key-box">{{ index + 1 }}</span>
|
||||||
<span>
|
<span>
|
||||||
<template v-if="activeName == 'sale'">
|
<template v-if="activeName == 'sale'">
|
||||||
<img v-img-url="item.image.file_path" alt="" class="ml10" />
|
<img v-img-url="item.image.file_path" alt="" class="ml10" />
|
||||||
</template>
|
</template>
|
||||||
<template v-if="activeName == 'refund'">
|
<template v-if="activeName == 'refund'">
|
||||||
<img v-img-url="item.orderproduct.image.file_path" alt="" class="ml10" />
|
<img
|
||||||
|
v-img-url="item.orderproduct.image.file_path"
|
||||||
|
alt=""
|
||||||
|
class="ml10"
|
||||||
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="activeName == 'view'">
|
<template v-if="activeName == 'view'">
|
||||||
<img v-img-url="item.image[0].file_path" alt="" class="ml10" />
|
<img v-img-url="item.image[0].file_path" alt="" class="ml10" />
|
||||||
</template>
|
</template>
|
||||||
</span>
|
</span>
|
||||||
<span class="text-ellipsis-2 flex-1 ml10">{{ item.product_name }}</span>
|
<span class="text-ellipsis-2 flex-1 ml10">{{
|
||||||
<span class="gray9 tr" style="width: 80px;" >
|
item.product_name
|
||||||
|
}}</span>
|
||||||
|
<span class="gray9 tr" style="width: 80px">
|
||||||
<template v-if="activeName == 'sale'">
|
<template v-if="activeName == 'sale'">
|
||||||
销量:{{ item.total_sales_num }}
|
销量:{{ item.total_sales_num }}
|
||||||
</template>
|
</template>
|
||||||
@ -51,12 +56,12 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
activeName: 'sale',
|
activeName: "sale",
|
||||||
/*列表数据*/
|
/*列表数据*/
|
||||||
listData: []
|
listData: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
inject: ['dataModel'],
|
inject: ["dataModel"],
|
||||||
created() {
|
created() {
|
||||||
this.listData = this.dataModel.productSaleRanking;
|
this.listData = this.dataModel.productSaleRanking;
|
||||||
},
|
},
|
||||||
@ -64,15 +69,15 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
handleClick(e) {
|
handleClick(e) {
|
||||||
this.activeName = e;
|
this.activeName = e;
|
||||||
if(this.activeName=='sale'){
|
if (this.activeName == "sale") {
|
||||||
this.listData = this.dataModel.productSaleRanking;
|
this.listData = this.dataModel.productSaleRanking;
|
||||||
}else if(this.activeName=='view'){
|
} else if (this.activeName == "view") {
|
||||||
this.listData = this.dataModel.productViewRanking;
|
this.listData = this.dataModel.productViewRanking;
|
||||||
}else if(this.activeName=='refund'){
|
} else if (this.activeName == "refund") {
|
||||||
this.listData = this.dataModel.productRefundRanking;
|
this.listData = this.dataModel.productRefundRanking;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者:luoyiming
|
|
||||||
时间:2019-10-24
|
|
||||||
描述:统计-销售统计-商品统计-汇总
|
|
||||||
-->
|
|
||||||
<div class="d-a-c lh30 ww100 pt16">
|
<div class="d-a-c lh30 ww100 pt16">
|
||||||
<div class="pt30 tc" style="width: 80px;">
|
<div class="pt30 tc" style="width: 80px">
|
||||||
<p class="gray9">今日</p>
|
<p class="gray9">今日</p>
|
||||||
<p class="gray9">昨日</p>
|
<p class="gray9">昨日</p>
|
||||||
</div>
|
</div>
|
||||||
@ -29,23 +24,16 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
components:{
|
components: {},
|
||||||
},
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
/*是否正在加载*/
|
/*是否正在加载*/
|
||||||
loading: true,
|
loading: true,
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
inject: ['dataModel'],
|
inject: ["dataModel"],
|
||||||
created() {
|
created() {},
|
||||||
|
methods: {},
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -1,21 +1,33 @@
|
|||||||
<template>
|
<template>
|
||||||
<!--
|
|
||||||
作者 luoyiming
|
|
||||||
时间:2019-10-26
|
|
||||||
描述:设置-退货地址列表-添加
|
|
||||||
-->
|
|
||||||
<div class="product-add">
|
<div class="product-add">
|
||||||
<!--form表单-->
|
<!--form表单-->
|
||||||
<el-form size="small" ref="form" :model="form" label-width="200px">
|
<el-form size="small" ref="form" :model="form" label-width="200px">
|
||||||
<!--新增退货地址-->
|
<!--新增退货地址-->
|
||||||
<div class="common-form">新增退货地址</div>
|
<div class="common-form">新增退货地址</div>
|
||||||
<el-form-item label="收货人姓名" prop="name" :rules="[{required: true,message: ' '}]">
|
<el-form-item
|
||||||
<el-input type="text" v-model="form.name" class="max-w460" prop="name"></el-input>
|
label="收货人姓名"
|
||||||
|
prop="name"
|
||||||
|
:rules="[{ required: true, message: ' ' }]"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
type="text"
|
||||||
|
v-model="form.name"
|
||||||
|
class="max-w460"
|
||||||
|
prop="name"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="联系电话" prop="phone" :rules="[{required: true,message: ' '}]">
|
<el-form-item
|
||||||
|
label="联系电话"
|
||||||
|
prop="phone"
|
||||||
|
:rules="[{ required: true, message: ' ' }]"
|
||||||
|
>
|
||||||
<el-input type="text" v-model="form.phone" class="max-w460"></el-input>
|
<el-input type="text" v-model="form.phone" class="max-w460"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="详细地址" prop="detail" :rules="[{required: true,message: ' '}]">
|
<el-form-item
|
||||||
|
label="详细地址"
|
||||||
|
prop="detail"
|
||||||
|
:rules="[{ required: true, message: ' ' }]"
|
||||||
|
>
|
||||||
<el-input type="text" v-model="form.detail" class="max-w460"></el-input>
|
<el-input type="text" v-model="form.detail" class="max-w460"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序">
|
<el-form-item label="排序">
|
||||||
@ -25,19 +37,20 @@
|
|||||||
|
|
||||||
<!--提交-->
|
<!--提交-->
|
||||||
<div class="common-button-wrapper">
|
<div class="common-button-wrapper">
|
||||||
<el-button size="small" type="primary" @click="onSubmit()" :loading="loading">提交</el-button>
|
<el-button
|
||||||
|
size="small"
|
||||||
|
type="primary"
|
||||||
|
@click="onSubmit()"
|
||||||
|
:loading="loading"
|
||||||
|
>提交</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import SettingApi from '@/api/setting.js';
|
import SettingApi from "@/api/setting.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
@ -47,13 +60,11 @@
|
|||||||
// activeIndex: '1',
|
// activeIndex: '1',
|
||||||
/*form表单数据*/
|
/*form表单数据*/
|
||||||
form: {
|
form: {
|
||||||
name: '',
|
name: "",
|
||||||
phone: '',
|
phone: "",
|
||||||
detail: '',
|
detail: "",
|
||||||
sort: 1,
|
sort: 1,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {},
|
created() {},
|
||||||
@ -67,26 +78,21 @@
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
SettingApi.addAddress(form, true)
|
SettingApi.addAddress(form, true)
|
||||||
.then(data => {
|
.then((data) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '恭喜你,添加成功',
|
message: "恭喜你,添加成功",
|
||||||
type: 'success'
|
type: "success",
|
||||||
});
|
});
|
||||||
self.$router.push('/setting/address/index');
|
self.$router.push("/setting/address/index");
|
||||||
|
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch((error) => {
|
||||||
self.loading = false;
|
self.loading = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
},
|
||||||
}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user