注释修改

This commit is contained in:
cookiemy 2025-05-21 17:46:27 +08:00
parent 3496c86599
commit b70f6c6d48
7 changed files with 634 additions and 501 deletions

View File

@ -1,21 +1,28 @@
<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
label="收货人姓名 "
prop="name"
:rules="[{ required: true, message: ' ' }]"
>
<el-input v-model="form.name" class="max-w460"></el-input> <el-input v-model="form.name" class="max-w460"></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 v-model="form.phone" class="max-w460"></el-input> <el-input 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 v-model="form.detail" class="max-w460"></el-input> <el-input v-model="form.detail" class="max-w460"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="排序"> <el-form-item label="排序">
@ -25,95 +32,89 @@
<!--提交--> <!--提交-->
<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() {
return { return {
loading: false, loading: false,
/*form表单数据*/ /*form表单数据*/
form: { form: {
addressId: '', addressId: "",
name: '', name: "",
phone: '', phone: "",
sort: 1, sort: 1,
detail: '', detail: "",
},
};
},
created() {
this.getData();
},
methods: {
getData() {
let self = this;
//
const params = this.$route.query.addressId;
SettingApi.addressDetail(
{
addressId: params,
}, },
true
)
}; .then((res) => {
let detail = res.data;
//
self.form.addressId = detail.addressId;
self.form.name = detail.name;
self.form.phone = detail.phone;
self.form.detail = detail.detail;
self.form.sort = detail.sort;
})
.catch((error) => {});
}, },
created() { //
this.getData(); onSubmit() {
}, let self = this;
let form = self.form;
methods: { self.$refs.form.validate((valid) => {
getData() { if (valid) {
let self = this; self.loading = true;
// SettingApi.editAddress(form, true)
const params = this.$route.query.addressId .then((data) => {
SettingApi.addressDetail({ self.loading = false;
addressId: params ElMessage({
}, true) message: "恭喜你,修改成功",
.then(res => { type: "success",
let detail = res.data;
//
self.form.addressId = detail.addressId;
self.form.name = detail.name;
self.form.phone = detail.phone;
self.form.detail = detail.detail;
self.form.sort = detail.sort;
})
.catch(error => {
});
},
//
onSubmit() {
let self = this;
let form = self.form;
self.$refs.form.validate((valid) => {
if (valid) {
self.loading = true;
SettingApi.editAddress(form, true)
.then(data => {
self.loading = false;
ElMessage ({
message: '恭喜你,修改成功',
type: 'success'
});
self.$router.push('/setting/address/index');
})
.catch(error => {
self.loading = false;
}); });
self.$router.push("/setting/address/index");
} })
}); .catch((error) => {
self.loading = false;
}, });
}
} });
},
}; },
};
</script> </script>
<style> <style>
.tips { .tips {
color: #ccc; color: #ccc;
} }
</style> </style>

View File

@ -1,30 +1,55 @@
<template> <template>
<!--
作者 luoyiming
时间2019-10-26
描述设置-退货地址列表
-->
<div class="user"> <div class="user">
<div class="common-form">退货地址列表</div> <div class="common-form">退货地址列表</div>
<!--添加退货地址--> <!--添加退货地址-->
<div class="common-level-rail"><el-button size="small" type="primary" @click="addClick" v-auth="'/setting/address/add'">添加</el-button></div> <div class="common-level-rail">
<el-button
size="small"
type="primary"
@click="addClick"
v-auth="'/setting/address/add'"
>添加</el-button
>
</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="addressId" label="地址ID"></el-table-column> <el-table-column prop="addressId" label="地址ID"></el-table-column>
<el-table-column prop="name" label="收货人姓名"></el-table-column> <el-table-column prop="name" label="收货人姓名"></el-table-column>
<el-table-column prop="phone" label="联系电话"></el-table-column> <el-table-column prop="phone" label="联系电话"></el-table-column>
<el-table-column prop="detail" label="详细地址" show-overflow-tooltip></el-table-column> <el-table-column
prop="detail"
label="详细地址"
show-overflow-tooltip
></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="'/setting/address/edit'">编辑</el-button> @click="editClick(scope.row)"
<el-button @click="deleteClick(scope.row)" type="primary" type="primary"
link size="small" v-auth="'/setting/address/delete'">删除</el-button> link
size="small"
v-auth="'/setting/address/edit'"
>编辑</el-button
>
<el-button
@click="deleteClick(scope.row)"
type="primary"
link
size="small"
v-auth="'/setting/address/delete'"
>删除</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -47,7 +72,7 @@
</template> </template>
<script> <script>
import SettingApi from '@/api/setting.js'; import SettingApi from "@/api/setting.js";
export default { export default {
data() { data() {
@ -64,15 +89,15 @@ export default {
curPage: 1, curPage: 1,
/*横向表单数据模型*/ /*横向表单数据模型*/
formInline: { formInline: {
user: '', user: "",
region: '' region: "",
}, },
/*是否打开添加弹窗*/ /*是否打开添加弹窗*/
open_add: false, open_add: false,
/*是否打开编辑弹窗*/ /*是否打开编辑弹窗*/
open_edit: false, open_edit: false,
/*当前编辑的对象*/ /*当前编辑的对象*/
userModel: {} userModel: {},
}; };
}, },
created() { created() {
@ -102,61 +127,61 @@ export default {
Params.page = self.curPage; Params.page = self.curPage;
Params.list_rows = self.pageSize; Params.list_rows = self.pageSize;
SettingApi.addressList(Params, true) SettingApi.addressList(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('/setting/address/add'); this.$router.push("/setting/address/add");
}, },
/*打开编辑*/ /*打开编辑*/
editClick(item) { editClick(item) {
let self = this; let self = this;
this.$router.push({ this.$router.push({
path: '/setting/address/edit', path: "/setting/address/edit",
query: { query: {
addressId: item.addressId addressId: item.addressId,
} },
}); });
}, },
/*删除用户*/ /*删除用户*/
deleteClick(row) { deleteClick(row) {
let self = this; let self = this;
ElMessageBox.confirm('此操作将永久删除该记录, 是否继续?', '提示', { ElMessageBox.confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning",
}) })
.then(() => { .then(() => {
SettingApi.deleteAddress( SettingApi.deleteAddress(
{ {
id: row.addressId id: row.addressId,
}, },
true true
) )
.then(data => { .then((data) => {
ElMessage ({ ElMessage({
message: data.msg, message: data.msg,
type: 'success' type: "success",
}); });
self.getData(); self.getData();
}) })
.catch(error => {}); .catch((error) => {});
}) })
.catch(() => { .catch(() => {
ElMessage({ ElMessage({
type: 'info', type: "info",
message: '已取消删除' message: "已取消删除",
}); });
}); });
} },
} },
}; };
</script> </script>

View File

@ -1,9 +1,4 @@
<template> <template>
<!--
作者 WuYuseng
时间2019-10-26
描述物流编码
-->
<div class="express-company"> <div class="express-company">
<div class="common-form">物流公司列表</div> <div class="common-form">物流公司列表</div>
@ -4349,17 +4344,19 @@
<!--提交--> <!--提交-->
<div class="common-button-wrapper"> <div class="common-button-wrapper">
<el-button size="small" type="info" @click="gotoBack">返回上一页</el-button> <el-button size="small" type="info" @click="gotoBack"
>返回上一页</el-button
>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import SettingApi from '@/api/setting.js'; import SettingApi from "@/api/setting.js";
export default { export default {
data() { data() {
return { return {
tableData: [], tableData: [],
loading: true loading: true,
}; };
}, },
created() { created() {
@ -4367,31 +4364,29 @@ export default {
//this.getData(); //this.getData();
}, },
methods: { methods: {
/*获取数据*/ /*获取数据*/
getData() { getData() {
let self = this; let self = this;
let Params = {}; let Params = {};
SettingApi.getCompany(Params, true) SettingApi.getCompany(Params, true)
.then(data => { .then((data) => {
self.loading = false; self.loading = false;
self.tableData = data.data.data; self.tableData = data.data.data;
}) })
.catch(error => {}); .catch((error) => {});
}, },
/*返回上一页*/ /*返回上一页*/
gotoBack(){ gotoBack() {
this.$router.back(-1); this.$router.back(-1);
} },
},
}
}; };
</script> </script>
<style> <style>
.express-company{ .express-company {
padding-bottom: 80px; padding-bottom: 80px;
} }
.express-company table { .express-company table {
width: 100%; width: 100%;
border-collapse: collapse; border-collapse: collapse;

View File

@ -1,160 +1,185 @@
<template> <template>
<!-- <div class="user">
作者 WuYuseng <div class="common-form">运费模板</div>
时间2019-10-26 <!--添加等级-->
描述等级列表 <div class="common-level-rail">
--> <el-button
<div class="user"> size="small"
<div class="common-form">运费模板</div> type="primary"
<!--添加等级--> @click="addClick"
<div class="common-level-rail"> v-auth="'/setting/delivery/express/add'"
<el-button size="small" type="primary" @click="addClick" >添加</el-button
v-auth="'/setting/delivery/express/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
<el-table-column prop="deliveryId" label="模板ID"></el-table-column> size="small"
<el-table-column prop="name" label="模板名称"></el-table-column> :data="tableData"
<el-table-column prop="method" label="计费方式"></el-table-column> border
<el-table-column prop="sort" label="排序"></el-table-column> style="width: 100%"
<el-table-column prop="createTime" label="添加时间"></el-table-column> v-loading="loading"
<el-table-column fixed="right" label="操作" width="110px"> >
<template #default="scope"> <el-table-column prop="deliveryId" label="模板ID"></el-table-column>
<el-button @click="editClick(scope.row)" type="primary" link size="small" <el-table-column prop="name" label="模板名称"></el-table-column>
v-auth="'/setting/delivery/express/edit'">编辑</el-button> <el-table-column prop="method" label="计费方式"></el-table-column>
<el-button @click="deleteClick(scope.row)" type="primary" link size="small" <el-table-column prop="sort" label="排序"></el-table-column>
v-auth="'/setting/delivery/express/delete'">删除</el-button> <el-table-column prop="createTime" label="添加时间"></el-table-column>
</template> <el-table-column fixed="right" label="操作" width="110px">
</el-table-column> <template #default="scope">
</el-table> <el-button
</div> @click="editClick(scope.row)"
type="primary"
link
size="small"
v-auth="'/setting/delivery/express/edit'"
>编辑</el-button
>
<el-button
@click="deleteClick(scope.row)"
type="primary"
link
size="small"
v-auth="'/setting/delivery/express/delete'"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<!--分页--> <!--分页-->
<div class="pagination"> <div class="pagination">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" background <el-pagination
:current-page="curPage" :page-size="pageSize" layout="total, prev, pager, next, jumper" @size-change="handleSizeChange"
:total="totalDataNumber"> @current-change="handleCurrentChange"
</el-pagination> background
</div> :current-page="curPage"
</div> :page-size="pageSize"
</div> layout="total, prev, pager, next, jumper"
:total="totalDataNumber"
>
</el-pagination>
</div>
</div>
</div>
</template> </template>
<script> <script>
import SettingApi from "@/api/setting.js"; import SettingApi from "@/api/setting.js";
export default { export default {
data() { data() {
return { return {
/*是否加载完成*/ /*是否加载完成*/
loading: true, loading: true,
/*列表数据*/ /*列表数据*/
tableData: [], tableData: [],
/*一页多少条*/ /*一页多少条*/
pageSize: 10, pageSize: 10,
/*一共多少条数据*/ /*一共多少条数据*/
totalDataNumber: 0, totalDataNumber: 0,
/*当前是第几页*/ /*当前是第几页*/
curPage: 1, curPage: 1,
/*横向表单数据模型*/ /*横向表单数据模型*/
formInline: { formInline: {
user: "", user: "",
region: "", region: "",
}, },
/*是否打开添加弹窗*/ /*是否打开添加弹窗*/
open_add: false, open_add: false,
/*是否打开编辑弹窗*/ /*是否打开编辑弹窗*/
open_edit: false, open_edit: false,
/*当前编辑的对象*/ /*当前编辑的对象*/
userModel: {}, userModel: {},
}; };
}, },
created() { created() {
/*获取列表*/ /*获取列表*/
this.getData(); this.getData();
}, },
methods: { methods: {
/*选择第几页*/ /*选择第几页*/
handleCurrentChange(val) { handleCurrentChange(val) {
let self = this; let self = this;
self.curPage = val; self.curPage = val;
self.loading = true; self.loading = true;
self.getData(); self.getData();
}, },
/*每页多少条*/ /*每页多少条*/
handleSizeChange(val) { handleSizeChange(val) {
this.curPage = 1; this.curPage = 1;
this.pageSize = val; this.pageSize = val;
this.getData(); this.getData();
}, },
/*获取列表*/ /*获取列表*/
getData() { getData() {
let self = this; let self = this;
let Params = {}; let Params = {};
Params.pageIndex = self.curPage; Params.pageIndex = self.curPage;
Params.pageSize = self.pageSize; Params.pageSize = self.pageSize;
SettingApi.deliveryList(Params, true) SettingApi.deliveryList(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({ this.$router.push({
path: "/setting/delivery/add", path: "/setting/delivery/add",
}); });
}, },
/*打开编辑*/ /*打开编辑*/
editClick(item) { editClick(item) {
let self = this; let self = this;
this.$router.push({ this.$router.push({
path: "/setting/delivery/edit", path: "/setting/delivery/edit",
query: { query: {
deliveryId: item.deliveryId, deliveryId: item.deliveryId,
}, },
}); });
}, },
/*删除用户*/ /*删除用户*/
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;
SettingApi.deleteDelivery({ SettingApi.deleteDelivery(
deliveryId: row.deliveryId, {
}, deliveryId: row.deliveryId,
true },
) true
.then((data) => { )
self.loading = false; .then((data) => {
ElMessage({ self.loading = false;
message: data.msg, ElMessage({
type: "success", message: data.msg,
}); type: "success",
self.getData(); });
}) self.getData();
.catch((error) => { })
self.loading = false; .catch((error) => {
}); self.loading = false;
}) });
.catch(() => {}); })
}, .catch(() => {});
}, },
}; },
};
</script> </script>
<style></style> <style></style>

View File

@ -1,14 +1,19 @@
<template> <template>
<!-- <el-dialog
作者luoyiming title="添加菜单&权限"
时间2020-06-3 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"
>
<el-form size="small" :model="formData" :rules="formRules" ref="form"> <el-form size="small" :model="formData" :rules="formRules" ref="form">
<!--菜单名称--> <!--菜单名称-->
<el-form-item label="菜单名称" prop="name" :label-width="formLabelWidth"> <el-form-item label="菜单名称" prop="name" :label-width="formLabelWidth">
<el-input v-model="formData.name" autocomplete="off" placeholder="请输入菜单名称"></el-input> <el-input
v-model="formData.name"
autocomplete="off"
placeholder="请输入菜单名称"
></el-input>
</el-form-item> </el-form-item>
<!--类型--> <!--类型-->
<el-form-item label="类型" prop="name" :label-width="formLabelWidth"> <el-form-item label="类型" prop="name" :label-width="formLabelWidth">
@ -19,21 +24,43 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--上级菜单--> <!--上级菜单-->
<el-form-item label="上级菜单" prop="parentId" :label-width="formLabelWidth"> <el-form-item
<el-cascader size="small" v-model="parentsVal" :options="accessList" :props="propsParam" @change="handleChange"></el-cascader> label="上级菜单"
prop="parentId"
:label-width="formLabelWidth"
>
<el-cascader
size="small"
v-model="parentsVal"
:options="accessList"
:props="propsParam"
@change="handleChange"
></el-cascader>
</el-form-item> </el-form-item>
<!--路径--> <!--路径-->
<el-form-item label="路径" prop="path" :label-width="formLabelWidth"> <el-form-item label="路径" prop="path" :label-width="formLabelWidth">
<el-input v-model="formData.path" autocomplete="off" placeholder="请输入组件文件路径"></el-input> <el-input
v-model="formData.path"
autocomplete="off"
placeholder="请输入组件文件路径"
></el-input>
<p>提示对应前端给的文件路径例如/index/index</p> <p>提示对应前端给的文件路径例如/index/index</p>
</el-form-item> </el-form-item>
<!--图标--> <!--图标-->
<el-form-item label="图标" :label-width="formLabelWidth"> <el-form-item label="图标" :label-width="formLabelWidth">
<el-input v-model="formData.icon" autocomplete="off" placeholder="请输入icon"></el-input> <el-input
v-model="formData.icon"
autocomplete="off"
placeholder="请输入icon"
></el-input>
<p>提示请选择系统提供的图标</p> <p>提示请选择系统提供的图标</p>
</el-form-item> </el-form-item>
<!--是否是菜单--> <!--是否是菜单-->
<el-form-item label="是否是菜单" :label-width="formLabelWidth" v-if="formData.isRoute==1"> <el-form-item
label="是否是菜单"
:label-width="formLabelWidth"
v-if="formData.isRoute == 1"
>
<el-radio-group v-model="formData.isMenu"> <el-radio-group v-model="formData.isMenu">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio> <el-radio :label="0"></el-radio>
@ -47,31 +74,49 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--重定向--> <!--重定向-->
<el-form-item label="重定向" :label-width="formLabelWidth" v-if="formData.isRoute == 1"> <el-form-item
<el-input v-model="formData.redirectName" autocomplete="off" placeholder="请输入重定向地址"></el-input> label="重定向"
:label-width="formLabelWidth"
v-if="formData.isRoute == 1"
>
<el-input
v-model="formData.redirectName"
autocomplete="off"
placeholder="请输入重定向地址"
></el-input>
</el-form-item> </el-form-item>
<!--备注--> <!--备注-->
<el-form-item label="备注" prop="sort" :label-width="formLabelWidth"> <el-form-item label="备注" prop="sort" :label-width="formLabelWidth">
<el-input v-model="formData.remark" placeholder="请输入备注" type="textarea"></el-input> <el-input
v-model="formData.remark"
placeholder="请输入备注"
type="textarea"
></el-input>
</el-form-item> </el-form-item>
<!--排序--> <!--排序-->
<el-form-item label="排序" prop="sort" :label-width="formLabelWidth"> <el-form-item label="排序" prop="sort" :label-width="formLabelWidth">
<el-input v-model="formData.sort" placeholder="请输入排序" type="number"></el-input> <el-input
v-model="formData.sort"
placeholder="请输入排序"
type="number"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!--操作按钮--> <!--操作按钮-->
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="dialogFormVisible"> </el-button> <el-button @click="dialogFormVisible"> </el-button>
<el-button type="primary" @click="onSubmit()" :disabled="loading"> </el-button> <el-button type="primary" @click="onSubmit()" :disabled="loading"
</div> > </el-button
>
</div>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import AccessApi from '@/api/access.js'; import AccessApi from "@/api/access.js";
import { deepClone,formatModel } from '@/utils/base.js'; import { deepClone, formatModel } from "@/utils/base.js";
export default { export default {
data() { data() {
return { return {
@ -80,15 +125,15 @@ export default {
/*form表单数据对象*/ /*form表单数据对象*/
formData: { formData: {
/*菜单名称*/ /*菜单名称*/
name: '', name: "",
/*路由地址*/ /*路由地址*/
path: '', path: "",
/*组件名*/ /*组件名*/
views: '', views: "",
/*别名*/ /*别名*/
alias: '', alias: "",
/*图标*/ /*图标*/
icon: '', icon: "",
/*是否是菜单*/ /*是否是菜单*/
isMenu: 0, isMenu: 0,
/*是否是路由*/ /*是否是路由*/
@ -99,49 +144,48 @@ export default {
sort: 1, sort: 1,
/*父集ID*/ /*父集ID*/
parentId: 0, parentId: 0,
remark: '', remark: "",
redirectName:'' redirectName: "",
}, },
/*验证规则*/ /*验证规则*/
formRules: { formRules: {
name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }], name: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
path: [{ required: true, message: '请输入路径', trigger: 'blur' }], path: [{ required: true, message: "请输入路径", trigger: "blur" }],
views: [{ required: true, message: '请输入组件名称', trigger: 'blur' }], views: [{ required: true, message: "请输入组件名称", trigger: "blur" }],
alias: [{ required: true, message: '请输入别名', trigger: 'blur' }] alias: [{ required: true, message: "请输入别名", trigger: "blur" }],
}, },
/*当前父集ID*/ /*当前父集ID*/
parentsVal: [], parentsVal: [],
/*菜单列表*/ /*菜单列表*/
accessList: [], accessList: [],
/*排序*/ /*排序*/
srot: '1', srot: "1",
/*左边长度*/ /*左边长度*/
formLabelWidth: '120px', formLabelWidth: "120px",
/*是否显示*/ /*是否显示*/
dialogVisible: false, dialogVisible: false,
/*展示数据*/ /*展示数据*/
propsParam: { propsParam: {
label: 'name', label: "name",
value: 'accessId', value: "accessId",
checkStrictly: true checkStrictly: true,
} },
}; };
}, },
props: { props: {
open_add: Boolean, open_add: Boolean,
add_type: String, add_type: String,
rawData: Array, rawData: Array,
selectModel: Object selectModel: Object,
}, },
created() { created() {
this.dialogVisible = this.open_add; this.dialogVisible = this.open_add;
this.accessList = deepClone(this.rawData); this.accessList = deepClone(this.rawData);
this.accessList.unshift({ name: '顶级菜单', accessId: 0 }); this.accessList.unshift({ name: "顶级菜单", accessId: 0 });
if (this.add_type == 'copy') { if (this.add_type == "copy") {
this.formData = formatModel(this.formData,this.selectModel); this.formData = formatModel(this.formData, this.selectModel);
this.findParentsID(this.accessList); this.findParentsID(this.accessList);
} else if (this.add_type == 'child') { } else if (this.add_type == "child") {
this.formData.parentId = this.selectModel.accessId; this.formData.parentId = this.selectModel.accessId;
this.findParentsID(this.accessList); this.findParentsID(this.accessList);
} }
@ -151,22 +195,22 @@ export default {
handleChange(e) {}, handleChange(e) {},
/*查找父集id*/ /*查找父集id*/
findParentsID(list){ findParentsID(list) {
let flag=false; let flag = false;
for(let i=0;i<list.length;i++){ for (let i = 0; i < list.length; i++) {
let item=list[i]; let item = list[i];
if(item.accessId==this.formData.parentId){ if (item.accessId == this.formData.parentId) {
this.parentsVal.unshift(item.accessId); this.parentsVal.unshift(item.accessId);
flag=true; flag = true;
break; break;
}else{ } else {
let children=item.children; let children = item.children;
if(typeof children!='undefined' && children != null){ if (typeof children != "undefined" && children != null) {
if(this.findParentsID(children)){ if (this.findParentsID(children)) {
this.parentsVal.unshift(item.accessId); this.parentsVal.unshift(item.accessId);
flag=true; flag = true;
break; break;
} }
} }
} }
} }
@ -180,21 +224,21 @@ export default {
if (self.parentsVal.length > 0) { if (self.parentsVal.length > 0) {
params.parentId = self.parentsVal[self.parentsVal.length - 1]; params.parentId = self.parentsVal[self.parentsVal.length - 1];
} }
self.$refs.form.validate(valid => { self.$refs.form.validate((valid) => {
if (valid) { if (valid) {
self.loading = true; self.loading = true;
AccessApi.addAccess(params, true) AccessApi.addAccess(params, true)
.then(res => { .then((res) => {
if (res.code == 1) { if (res.code == 1) {
ElMessage({ ElMessage({
message: res.msg, message: res.msg,
type: 'success' type: "success",
}); });
self.dialogFormVisible(true); self.dialogFormVisible(true);
self.loading = false; self.loading = false;
} }
}) })
.catch(error => { .catch((error) => {
self.loading = false; self.loading = false;
}); });
} }
@ -204,18 +248,18 @@ export default {
/*关闭弹窗*/ /*关闭弹窗*/
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>

View File

@ -1,14 +1,19 @@
<template> <template>
<!-- <el-dialog
作者luoyiming title="修改菜单&权限"
时间2020-06-3 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"
>
<el-form size="small" :model="formData" :rules="formRules" ref="form"> <el-form size="small" :model="formData" :rules="formRules" ref="form">
<!--菜单名称--> <!--菜单名称-->
<el-form-item label="菜单名称" prop="name" :label-width="formLabelWidth"> <el-form-item label="菜单名称" prop="name" :label-width="formLabelWidth">
<el-input v-model="formData.name" autocomplete="off" placeholder="请输入菜单名称"></el-input> <el-input
v-model="formData.name"
autocomplete="off"
placeholder="请输入菜单名称"
></el-input>
</el-form-item> </el-form-item>
<!--类型--> <!--类型-->
<el-form-item label="类型" prop="name" :label-width="formLabelWidth"> <el-form-item label="类型" prop="name" :label-width="formLabelWidth">
@ -19,21 +24,44 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--上级菜单--> <!--上级菜单-->
<el-form-item label="上级菜单" prop="parentId" :label-width="formLabelWidth"> <el-form-item
<el-cascader size="small" v-model="parentsVal" :options="accessList" :props="propsParam" @change="handleChange"></el-cascader> label="上级菜单"
prop="parentId"
:label-width="formLabelWidth"
>
<el-cascader
size="small"
v-model="parentsVal"
:options="accessList"
:props="propsParam"
@change="handleChange"
></el-cascader>
</el-form-item> </el-form-item>
<!--路径--> <!--路径-->
<el-form-item label="路径" prop="path" :label-width="formLabelWidth"> <el-form-item label="路径" prop="path" :label-width="formLabelWidth">
<el-input v-model="formData.path" autocomplete="off" placeholder="请输入组件文件路径" :disabled="formData.path=='/plus'"></el-input> <el-input
v-model="formData.path"
autocomplete="off"
placeholder="请输入组件文件路径"
:disabled="formData.path == '/plus'"
></el-input>
<p>提示对应前端给的文件路径例如index/index</p> <p>提示对应前端给的文件路径例如index/index</p>
</el-form-item> </el-form-item>
<!--图标--> <!--图标-->
<el-form-item label="图标" :label-width="formLabelWidth"> <el-form-item label="图标" :label-width="formLabelWidth">
<el-input v-model="formData.icon" autocomplete="off" placeholder="请输入icon"></el-input> <el-input
v-model="formData.icon"
autocomplete="off"
placeholder="请输入icon"
></el-input>
<p>提示请选择系统提供的图标</p> <p>提示请选择系统提供的图标</p>
</el-form-item> </el-form-item>
<!--是否是菜单--> <!--是否是菜单-->
<el-form-item label="是否是菜单" :label-width="formLabelWidth" v-if="formData.isRoute==1"> <el-form-item
label="是否是菜单"
:label-width="formLabelWidth"
v-if="formData.isRoute == 1"
>
<el-radio-group v-model="formData.isMenu"> <el-radio-group v-model="formData.isMenu">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio> <el-radio :label="0"></el-radio>
@ -47,29 +75,49 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!--重定向--> <!--重定向-->
<el-form-item label="重定向" :label-width="formLabelWidth" v-if="formData.isRoute == 1"> <el-form-item
<el-input v-model="formData.redirectName" autocomplete="off" placeholder="请输入重定向地址"></el-input> label="重定向"
:label-width="formLabelWidth"
v-if="formData.isRoute == 1"
>
<el-input
v-model="formData.redirectName"
autocomplete="off"
placeholder="请输入重定向地址"
></el-input>
</el-form-item> </el-form-item>
<!--备注--> <!--备注-->
<el-form-item label="备注" prop="sort" :label-width="formLabelWidth"> <el-form-item label="备注" prop="sort" :label-width="formLabelWidth">
<el-input v-model="formData.remark" placeholder="请输入备注" type="textarea"></el-input> <el-input
v-model="formData.remark"
placeholder="请输入备注"
type="textarea"
></el-input>
</el-form-item> </el-form-item>
<!--排序--> <!--排序-->
<el-form-item label="排序" prop="sort" :label-width="formLabelWidth"><el-input v-model="formData.sort" placeholder="请输入排序" type="number"></el-input></el-form-item> <el-form-item label="排序" prop="sort" :label-width="formLabelWidth"
><el-input
v-model="formData.sort"
placeholder="请输入排序"
type="number"
></el-input
></el-form-item>
</el-form> </el-form>
<!--操作按钮--> <!--操作按钮-->
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="dialogFormVisible"> </el-button> <el-button @click="dialogFormVisible"> </el-button>
<el-button type="primary" @click="onSubmit()" :disabled="loading"> </el-button> <el-button type="primary" @click="onSubmit()" :disabled="loading"
</div> > </el-button
>
</div>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import AccessApi from '@/api/access.js'; import AccessApi from "@/api/access.js";
import { deepClone } from '@/utils/base.js'; import { deepClone } from "@/utils/base.js";
export default { export default {
data() { data() {
return { return {
@ -78,15 +126,15 @@ export default {
/*form表单数据对象*/ /*form表单数据对象*/
formData: { formData: {
/*菜单名称*/ /*菜单名称*/
name: '', name: "",
/*路由地址*/ /*路由地址*/
path:'', path: "",
/*组件名*/ /*组件名*/
views:'', views: "",
/*别名*/ /*别名*/
alias:'', alias: "",
/*图标*/ /*图标*/
icon:'', icon: "",
/*是否是菜单*/ /*是否是菜单*/
isMenu: 1, isMenu: 1,
/*是否是路由*/ /*是否是路由*/
@ -96,70 +144,67 @@ export default {
/*排序*/ /*排序*/
sort: 1, sort: 1,
/*父集ID*/ /*父集ID*/
parentId: 0 parentId: 0,
}, },
/*验证规则*/ /*验证规则*/
formRules: { formRules: {
name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }], name: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
path: [{ required: true, message: '请输入路径', trigger: 'blur' }], path: [{ required: true, message: "请输入路径", trigger: "blur" }],
views: [{ required: true, message: '请输入组件名称', trigger: 'blur' }], views: [{ required: true, message: "请输入组件名称", trigger: "blur" }],
alias: [{ required: true, message: '请输入别名', trigger: 'blur' }] alias: [{ required: true, message: "请输入别名", trigger: "blur" }],
}, },
/*当前父集ID*/ /*当前父集ID*/
parentsVal: [], parentsVal: [],
/*菜单列表*/ /*菜单列表*/
accessList: [], accessList: [],
/*排序*/ /*排序*/
srot: '1', srot: "1",
/*左边长度*/ /*左边长度*/
formLabelWidth: '120px', formLabelWidth: "120px",
/*是否显示*/ /*是否显示*/
dialogVisible: false, dialogVisible: false,
/*展示数据*/ /*展示数据*/
propsParam: { propsParam: {
label: 'name', label: "name",
value: 'accessId', value: "accessId",
checkStrictly: true checkStrictly: true,
} },
}; };
}, },
props: { props: {
open_edit:Boolean, open_edit: Boolean,
add_type:String, add_type: String,
rawData:Array, rawData: Array,
selectModel:Object selectModel: Object,
}, },
created() { created() {
this.dialogVisible = this.open_edit; this.dialogVisible = this.open_edit;
this.accessList = deepClone(this.rawData); this.accessList = deepClone(this.rawData);
this.accessList.unshift({name:'顶级菜单',accessId:0}) this.accessList.unshift({ name: "顶级菜单", accessId: 0 });
this.formData = deepClone(this.selectModel); this.formData = deepClone(this.selectModel);
this.findParentsID(this.accessList); this.findParentsID(this.accessList);
}, },
methods: { methods: {
/*选择菜单*/ /*选择菜单*/
handleChange(e) { handleChange(e) {},
},
/*查找父集id*/ /*查找父集id*/
findParentsID(list){ findParentsID(list) {
let flag=false; let flag = false;
for(let i=0;i<list.length;i++){ for (let i = 0; i < list.length; i++) {
let item=list[i]; let item = list[i];
if(item.accessId == this.formData.parentId){ if (item.accessId == this.formData.parentId) {
this.parentsVal.unshift(item.accessId); this.parentsVal.unshift(item.accessId);
flag=true; flag = true;
break; break;
}else{ } else {
let children=item.children; let children = item.children;
if(typeof children!='undefined' && children != null){ if (typeof children != "undefined" && children != null) {
if(this.findParentsID(children)){ if (this.findParentsID(children)) {
this.parentsVal.unshift(item.accessId); this.parentsVal.unshift(item.accessId);
flag=true; flag = true;
break; break;
} }
} }
} }
} }
@ -170,28 +215,28 @@ export default {
onSubmit() { onSubmit() {
let self = this; let self = this;
let params = self.formData; let params = self.formData;
if(self.parentsVal.length>0){ if (self.parentsVal.length > 0) {
params.parentId=self.parentsVal[self.parentsVal.length-1]; params.parentId = self.parentsVal[self.parentsVal.length - 1];
} }
self.$refs.form.validate(valid => { self.$refs.form.validate((valid) => {
if (valid) { if (valid) {
self.loading = true; self.loading = true;
AccessApi.editAccess(params, true) AccessApi.editAccess(params, true)
.then(res => { .then((res) => {
if (res.code == 1) { if (res.code == 1) {
ElMessage({ ElMessage({
message: res.msg, message: res.msg,
type: 'success', type: "success",
}); });
self.$emit('closeDialog', { self.$emit("closeDialog", {
type: 'success', type: "success",
openDialog: false, openDialog: false,
data:params data: params,
}); });
self.loading = false; self.loading = false;
} }
}) })
.catch(error => { .catch((error) => {
self.loading = false; self.loading = false;
}); });
} }
@ -200,12 +245,12 @@ export default {
/*关闭弹窗*/ /*关闭弹窗*/
dialogFormVisible(e) { dialogFormVisible(e) {
this.$emit('closeDialog', { this.$emit("closeDialog", {
type: 'error', type: "error",
openDialog: false openDialog: false,
}); });
} },
} },
}; };
</script> </script>

View File

@ -1,81 +1,79 @@
<template> <template>
<!-- <div class="home-container">
作者luoyiming <h1 class="home-title">三勾商城运营管理系统</h1>
时间2019-10-24 <p class="home-des">
描述后台系统首页 尊敬的 {{ userInfo && userInfo.userName }} 用户欢迎使用商城管理员系统
--> </p>
<div class="home-container"> <p class="home-des mt16">
<h1 class="home-title"> <!-- 当前版本号{{version}}-->
三勾商城运营管理系统 </p>
</h1> </div>
<p class="home-des">
尊敬的 {{ userInfo && userInfo.userName}} 用户欢迎使用商城管理员系统
</p>
<p class="home-des mt16">
<!-- 当前版本号{{version}}-->
</p>
</div>
</template> </template>
<script> <script>
import { useUserStore } from "@/store"; import { useUserStore } from "@/store";
import UserApi from '@/api/user.js'; import UserApi from "@/api/user.js";
const { userInfo } = useUserStore(); const { userInfo } = useUserStore();
export default { export default {
data() { data() {
return { return {
userInfo, userInfo,
}; };
},
created() {
/*获取数据*/
this.getTableList();
},
methods: {
/*获取数据*/
getTableList() {
UserApi.getVersion({})
.then((data) => {
this.loading = false;
this.version = data.data.version;
})
.catch((error) => {
this.loading = false;
});
}, },
created() { },
/*获取数据*/ };
this.getTableList();
},
methods: {
/*获取数据*/
getTableList() {
UserApi.getVersion({}).then(data => {
this.loading = false;
this.version=data.data.version;
})
.catch(error => {
this.loading = false;
});
},
}
}
</script> </script>
<style lang="scss"> <style lang="scss">
.home-container { .home-container {
height: calc(100vh - 120px); height: calc(100vh - 120px);
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
text-align: center; text-align: center;
align-content:center; align-content: center;
flex-direction: column; flex-direction: column;
// background: url(/static/imgs/home_bg.jpg) center center no-repeat; // background: url(/static/imgs/home_bg.jpg) center center no-repeat;
} }
.home-container .home-title{ .home-container .home-title {
padding: 20px; padding: 20px;
text-align: center; text-align: center;
white-space: nowrap; white-space: nowrap;
text-align: center; text-align: center;
font-size: 40px; color:#409EFF;} font-size: 40px;
.home-container .home-des{color: #888888;} color: #409eff;
}
.home-container .home-des {
color: #888888;
}
.home-index{ .home-index {
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
-webkit-box-orient: horizontal; -webkit-box-orient: horizontal;
-webkit-box-direction: normal; -webkit-box-direction: normal;
-ms-flex-direction: row; -ms-flex-direction: row;
flex-direction: row; flex-direction: row;
-webkit-box-pack: justify; -webkit-box-pack: justify;
-ms-flex-pack: justify; -ms-flex-pack: justify;
justify-content: space-between; justify-content: space-between;
min-width: 1000px; min-width: 1000px;
overflow-x: auto; overflow-x: auto;
} }
</style> </style>