注释修改

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>
<!--
作者 luoyiming
时间2019-10-26
描述设置-退货地址列表-修改
-->
<div class="product-add">
<!--form表单-->
<el-form size="small" ref="form" :model="form" label-width="200px">
<!--修改物流公司-->
<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-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-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-form-item>
<el-form-item label="排序">
@ -25,95 +32,89 @@
<!--提交-->
<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>
</el-form>
</div>
</template>
<script>
import SettingApi from '@/api/setting.js';
import SettingApi from "@/api/setting.js";
export default {
data() {
return {
loading: false,
/*form表单数据*/
form: {
addressId: '',
name: '',
phone: '',
sort: 1,
detail: '',
export default {
data() {
return {
loading: false,
/*form表单数据*/
form: {
addressId: "",
name: "",
phone: "",
sort: 1,
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();
},
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 => {
});
},
//
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;
//
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;
});
}
});
},
},
};
</script>
<style>
.tips {
color: #ccc;
}
.tips {
color: #ccc;
}
</style>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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