leisure-common 0.5.1 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import LeComEmployee from "./le-com-employee/index.js";
2
2
  import LeComActivity from "./le-com-activity/index.js";
3
3
  import LeComCompany from "./le-com-company/index.js";
4
+ import LeComMenu from "./le-com-menu/index.js";
4
5
 
5
- const components = [LeComEmployee, LeComActivity, LeComCompany];
6
+
7
+ const components = [LeComEmployee, LeComActivity, LeComCompany, LeComMenu];
6
8
 
7
9
  const install = function (Vue) {
8
10
  if (install.installed) return;
@@ -17,4 +19,5 @@ export default {
17
19
  LeComEmployee,
18
20
  LeComActivity,
19
21
  LeComCompany,
22
+ LeComMenu,
20
23
  };
@@ -0,0 +1,6 @@
1
+ import LeComMenu from "./src/main.vue";
2
+
3
+ LeComMenu.install = function (Vue) {
4
+ Vue.component(LeComMenu.name, LeComMenu);
5
+ };
6
+ export default LeComMenu;
@@ -0,0 +1,179 @@
1
+ <template>
2
+ <div>
3
+ <le-list ref="commonPage" :tableColumns="tableColumns" :tableData="tableData" :searchParam="searchParam"
4
+ :isDispAddBtn="false" :isDispDelBtn="false" :totalData="totalData" dialogTitle="后台菜单信息维护" dialogWidth="50%"
5
+ @handleStatus="handleStatus" @getList="list">
6
+ <template #sub="{ rowItem }">
7
+ <le-list-form :formColumns="formColumns" :formData="rowItem" :handleStatus="status" @closeDialog="closeDialog"
8
+ @saveData="saveForm" @itemChange="itemChange">
9
+ <div slot="control" class="btnWarnTip">配置该项后,该项下所有功能均可用(功能按钮配置失效)</div>
10
+ <el-form-item label="菜单项">
11
+ <el-table :data="btnInfos" border stripe style="width: 100%">
12
+ <el-table-column prop="id" label="ID" align="center">
13
+ <template slot-scope="scope">
14
+ <el-input v-model="scope.row.id"></el-input>
15
+ </template>
16
+ </el-table-column>
17
+ <el-table-column prop="name" label="名称" align="center">
18
+ <template slot-scope="scope">
19
+ <el-input v-model="scope.row.name"></el-input>
20
+ </template>
21
+ </el-table-column>
22
+ <el-table-column prop="mname" label="按钮功能名称" align="center">
23
+ <template slot-scope="scope">
24
+ <el-input v-model="scope.row.mname"></el-input>
25
+ </template>
26
+ </el-table-column>
27
+ <el-table-column prop="control" label="控制器" align="center">
28
+ <template slot-scope="scope">
29
+ <el-input v-model="scope.row.control"></el-input>
30
+ </template>
31
+ </el-table-column>
32
+ <el-table-column prop="bname" label="方法名称" align="center">
33
+ <template slot-scope="scope">
34
+ <el-input v-model="scope.row.bname"></el-input>
35
+ </template>
36
+ </el-table-column>
37
+ <el-table-column label="操作" align="center">
38
+ <template slot-scope="scope">
39
+ <le-button-msg text="删除" @click="delBtn(scope.$index)"></le-button-msg>
40
+ </template>
41
+ </el-table-column>
42
+ </el-table>
43
+ <div class="btnItemClass">
44
+ <el-button type="primary" @click="saveBtns(rowItem)">保存按钮菜单</el-button>
45
+ <el-button type="primary" @click="newBtnItem">新增按钮项</el-button>
46
+ </div>
47
+ </el-form-item>
48
+ </le-list-form>
49
+ </template>
50
+ <template v-slot:rowAllBtns="{ rowdata }">
51
+ <le-button @click="editItem(rowdata)" v-if="rowdata.pcode != 0">
52
+ 编辑</le-button>
53
+ </template>
54
+ <template #paramSlot>
55
+ <el-form-item label="名称">
56
+ <le-input v-model="searchParam.title" placeholder="请输入菜单名称"></le-input>
57
+ </el-form-item>
58
+ </template>
59
+ </le-list>
60
+ </div>
61
+ </template>
62
+ <script>
63
+ import {
64
+ list as menuList,
65
+ update as updateBtns
66
+ } from "@/api/system-menu-admin";
67
+ export default {
68
+ name: "le-com-menu",
69
+ components: {
70
+ },
71
+ data() {
72
+ return {
73
+ tableData: [],
74
+ totalData: 0,
75
+ tableColumns: [
76
+ { prop: "name", label: "菜单名称" },
77
+ { prop: "title", label: "系统标题" },
78
+ { prop: "code", label: "菜单编码" },
79
+ { prop: "pcode", label: "上级编码" }
80
+ ],
81
+ formColumns: [
82
+ { prop: "name", label: "菜单名称" },
83
+ { prop: "title", label: "菜单标题" },
84
+ { prop: "code", label: "菜单编码" },
85
+ { prop: "pcode", label: "上级编码" },
86
+ { prop: "control", label: "后台控制器" },
87
+ { prop: "btns", label: "功能按钮" },
88
+ ],
89
+ btnInfos: [{
90
+ id: '',//按钮id
91
+ name: '',//按钮名称
92
+ mname: '',//按钮功能名称
93
+ control: '',//按钮名称
94
+ bname: '',//按钮后台方法名称
95
+ }],
96
+ rules: {
97
+ },
98
+ fieldOptions: {
99
+ },
100
+ searchParam: { title: '' },
101
+ status: 2, //0:详情 1:新增 2:编辑
102
+ };
103
+ },
104
+ mounted() {
105
+ },
106
+ methods: {
107
+ list(param) {
108
+ menuList(param).then((res) => {
109
+ this.tableData = res.data.data.list;
110
+ this.totalData = res.data.data.count;
111
+ });
112
+ },
113
+ handleStatus(status) {
114
+ this.status = status;
115
+ },
116
+ closeDialog() {
117
+ this.$refs.commonPage.closeDialog();
118
+ },
119
+ delBtn(index) {
120
+ this.btnInfos.splice(index, 1);
121
+ },
122
+ editItem(row) {
123
+ this.$refs.commonPage.editItem(row);
124
+ },
125
+ saveBtns(item) {
126
+ if (this.btnInfos && this.btnInfos.length > 0 && this.btnInfos[0].id) {
127
+ item.btns = JSON.stringify(this.btnInfos);
128
+ }
129
+ else {
130
+ item.btns = "";
131
+ }
132
+ },
133
+ itemChange(param) {
134
+ if (param && param.btns && param.btns.length > 0) {
135
+ let btns = JSON.parse(param.btns);
136
+ this.btnInfos = [];
137
+ btns.forEach((item) => {
138
+ let bparm = {};
139
+ bparm.id = item.id;
140
+ bparm.name = item.name ?? "";
141
+ bparm.mname = item.mname ?? "";
142
+ bparm.control = item.control ?? "";
143
+ bparm.bname = item.bname ?? "";
144
+ this.btnInfos.push(bparm);
145
+ })
146
+ }
147
+ },
148
+ newBtnItem() {
149
+ this.btnInfos.push({
150
+ id: '', // 新按钮id
151
+ name: '', // 新按钮名称
152
+ mname: '', // 新按钮功能名称
153
+ control: '', // 控制属性
154
+ bname: '' // 新后台方法名称
155
+ });
156
+ },
157
+ saveForm(params, callBack) {
158
+ if (params && params.id && (params.id + '').length > 0) {
159
+ updateBtns(params).then((response) => {
160
+ if (callBack) callBack();
161
+ this.$message.success(response.data.info);
162
+ });
163
+ }
164
+ },
165
+ },
166
+ };
167
+ </script>
168
+ <style scoped>
169
+ .btnItemClass {
170
+ display: flex;
171
+ display: -webkit-flex;
172
+ }
173
+
174
+ .btnWarnTip {
175
+ color: red;
176
+ font-size: 13px !important;
177
+ padding-left: 2px !important;
178
+ }
179
+ </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leisure-common",
3
- "version": "0.5.01",
3
+ "version": "0.5.04",
4
4
  "description": "leisure-common是京心数据在leisure-core基础上开发的一套后台管理系统基于故事的电商行业组件库,封装了大量实用的UI控件模板,方便开发者快速搭建前端应用",
5
5
  "private": false,
6
6
  "author": "北方乐逍遥(zcx7878)",
@@ -13,7 +13,7 @@
13
13
  "registry": "https://registry.npmjs.org/"
14
14
  },
15
15
  "dependencies": {
16
- "leisure-core": "^0.5.01"
16
+ "leisure-core": "^0.5.04"
17
17
  },
18
18
  "devDependencies": {}
19
19
  }