Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3e78275

Browse files
committed
增加页面预览代码
1 parent 66f80ff commit 3e78275

File tree

6 files changed

+233
-12
lines changed

6 files changed

+233
-12
lines changed

‎api/app/Http/Controllers/Admin/TableController.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,7 @@ public function download()
243243
// 处理后端控制器数据
244244
$code = $this->createCodeBySnippet($snippet->back_api, $config);
245245
$code = str_replace("##fillable##", $fillable, $code);
246+
// 查询
246247
$format = "\$this->model::paginate(\$pageSize)";
247248
$value = '';
248249
foreach ($tableConfig as $v) {

‎api/app/Models/Wechat.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public function scopeApp_id($query)
1515
{
1616
$params = request()->input('app_id');
1717
if ($params) {
18-
return $query = $query->where('app_id', 'like', "%".$params."%");
18+
return $query = $query->where('app_id', $params);
1919
} else {
2020
return $query;
2121
}

‎api/routes/api.php‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,3 +118,6 @@
118118
Route::middleware(['auth:admin','role'])->prefix('admin')->namespace('Admin')->group(function(){
119119
Route::apiResource('table_configs', 'TableConfigController');
120120
});
121+
Route::middleware(['auth:admin','role'])->prefix('admin')->namespace('Admin')->group(function(){
122+
Route::apiResource('wechats', 'WechatController');
123+
});

‎element/src/router/index.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ export const asyncRoutes = [
252252
{
253253
path: "wechat",
254254
name: "WechatIndex",
255-
component: () => import("@/views/common/wechat/index"),
255+
component: () => import("@/views/wechat/index"),
256256
meta: {
257257
title: "微信设置",
258258
roles: ["wechats.menu"],

‎element/src/views/system/table/preview.vue‎

Lines changed: 116 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @Author: wmhello 871228582@qq.com
33
* @Date: 2022年08月16日 21:01:45
44
* @LastEditors: wmhello 871228582@qq.com
5-
* @LastEditTime: 2022-08-18 19:49:04
5+
* @LastEditTime: 2022-08-19 11:05:19
66
* @FilePath: \element\src\views\system\snippet\index.vue
77
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE-->
88
<template>
@@ -63,7 +63,7 @@ require("codemirror/addon/fold/indent-fold.js");
6363
require("codemirror/addon/fold/markdown-fold.js");
6464
require("codemirror/addon/fold/comment-fold.js");
6565
import { Model } from "@/model/snippet";
66-
import { listColumns, index } from "@/api/table_config";
66+
import { index } from "@/api/table_config";
6767
export default {
6868
name: "PreviewIndex",
6969
mixins: [CURD],
@@ -156,27 +156,129 @@ export default {
156156
/##back_model##/g,
157157
this.tableConfig.back_model
158158
);
159-
// 拼接字符串
160-
let str = "";
159+
160+
// 填充字段
161+
let format = "##fillable##";
162+
let value = null;
161163
this.columns.forEach((v) => {
162-
str += `'${v}', `;
164+
let content = "";
165+
content = `'${v}', `;
166+
value === null ? (value = content) : (value += content);
163167
});
164-
str = "[" + str.slice(0, str.length - 2) + "]";
165-
this.formData.back_api = this.formData.back_api.replace(
166-
/##fillable##/g,
167-
str || "[]"
168-
);
168+
value === null
169+
? (value = "[]")
170+
: (value = "[" + value.slice(0, value.length - 2) + "]");
171+
this.formData.back_api = this.formData.back_api.replace(format, value);
172+
173+
// 控制器中的查询
174+
format = `$this->model::paginate($pageSize)`;
175+
value = null;
176+
this.tableData.forEach((v) => {
177+
let content = "";
178+
if (v.query_type) {
179+
let title = this.upperToForamt(v.column_name);
180+
content = `${title}()->`;
181+
value === null ? (value = content) : (value += content);
182+
}
183+
});
184+
value === null
185+
? (value = format)
186+
: (value = `$this->model::${value}paginate($pageSize)`);
187+
this.formData.back_api = this.formData.back_api.replace(format, value);
169188
170189
// 处理后端模型
171190
this.formData.back_model = this.formData.back_model.replace(
172191
/##back_model##/g,
173192
this.tableConfig.back_model
174193
);
194+
format = "##scopeItem##";
195+
value = null;
196+
this.tableData.forEach((v) => {
197+
let content = "";
198+
if (v.query_type) {
199+
let title = this.upperToForamt(v.column_name);
200+
switch (v.query_type) {
201+
case "=":
202+
content = `
203+
public function scope${title}($query)
204+
{
205+
$params = request()->input('${v.column_name}');
206+
if ($params) {
207+
return $query = $query->where('${v.column_name}', $params);
208+
} else {
209+
return $query;
210+
}
211+
}
212+
`;
213+
break;
214+
case "like":
215+
content = `
216+
public function scope${title}($query)
217+
{
218+
$params = request()->input('${v.column_name}');
219+
if ($params) {
220+
return $query = $query->where('${v.column_name}','like', "%".$params."%");
221+
} else {
222+
return $query;
223+
}
224+
}
225+
`;
226+
break;
227+
case "<>":
228+
content = `
229+
public function scope${title}($query)
230+
{
231+
$params = request()->input('${v.column_name}');
232+
if ($params) {
233+
return $query = $query->where('${v.column_name}', '<>', $params);
234+
} else {
235+
return $query;
236+
}
237+
}
238+
`;
239+
break;
240+
case "null":
241+
content = `
242+
public function scope${title}($query)
243+
{
244+
$params = request()->input('${v.column_name}');
245+
if ($params) {
246+
return $query = $query->whereNull('${v.column_name}');
247+
} else {
248+
return $query;
249+
}
250+
}
251+
`;
252+
break;
253+
case "notnull":
254+
content = `
255+
public function scope${title}($query)
256+
{
257+
$params = request()->input('${v.column_name}');
258+
if ($params) {
259+
return $query = $query->whereNotNull('${v.column_name}');
260+
} else {
261+
return $query;
262+
}
263+
}
264+
`;
265+
break;
266+
}
267+
value === null ? (value = content) : (value += content);
268+
}
269+
});
270+
value === null ? (value = "") : (value = content);
271+
console.log(content);
272+
// this.formData.back_model = this.formData.back_model.replace(
273+
// format,
274+
// value
275+
// );
175276
// 处理后端资源集合
176277
this.formData.back_resource = this.formData.back_resource.replace(
177278
/##back_model##/g,
178279
this.tableConfig.back_model
179280
);
281+
180282
// 处理后端路由
181283
this.formData.back_routes = this.formData.back_routes.replace(
182284
/##back_model##/g,
@@ -211,6 +313,10 @@ export default {
211313
);
212314
return data;
213315
},
316+
upperToForamt(str) {
317+
str = str.charAt(0).toUpperCase() + str.slice(1);
318+
return str;
319+
},
214320
handleClick() {},
215321
async saveHandle() {
216322
if ("id" in this.snippet) {

‎element/src/views/wechat/index.vue‎

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<template>
2+
<div class="warpper">
3+
<div class="toolbar">
4+
<el-form :inline="true" :model="searchForm" class="demo-form-inline">
5+
<el-form-item label="APP_ID">
6+
<el-input v-model="searchForm.app_id" placeholder="请输入APP_ID">
7+
</el-input>
8+
</el-form-item>
9+
<el-form-item label="APP_Secret">
10+
<el-input v-model="searchForm.app_secret" placeholder="请输入APP_Secret">
11+
</el-input>
12+
</el-form-item>
13+
14+
<el-form-item>
15+
<el-button @click="find()" plain>查询</el-button>
16+
<el-button type="info" @click="findReset()" plain>重置</el-button>
17+
</el-form-item>
18+
</el-form>
19+
<el-button type="primary" plain @click="add">添加</el-button>
20+
</div>
21+
<div class="table">
22+
<el-table
23+
:data="tableData"
24+
size="small"
25+
stripe
26+
border
27+
style="width: 100%"
28+
>
29+
<el-table-column type="index" label="标识" width="50" align="center" />
30+
<el-table-column prop="app_id" label= "APP_ID" width="100" align="center" />
31+
<el-table-column prop="app_secret" label= "APP_Secret" width="100" align="center" />
32+
<el-table-column prop="type" label= "应用类型" width="100" align="center" />
33+
34+
<el-table-column label="操作" min-width="300">
35+
<template slot-scope="scope">
36+
<el-button plain @click="edit(scope.row.id)">修改</el-button>
37+
<el-button plain type="danger" @click="del(scope.row.id)"
38+
>删除</el-button
39+
>
40+
</template>
41+
</el-table-column>
42+
</el-table>
43+
</div>
44+
<div class="page">
45+
<el-pagination
46+
:current-page="page.current_page"
47+
:page-sizes="page.sizes"
48+
:page-size="page.per_page"
49+
layout="total, sizes, prev, pager, next"
50+
:total="page.total"
51+
@size-change="sizeChange"
52+
@current-change="currentChange"
53+
/>
54+
</div>
55+
<el-dialog
56+
:title="title"
57+
:visible.sync="dialogFormVisible"
58+
:close-on-click-modal="false"
59+
width="40%"
60+
v-el-drag-dialog
61+
>
62+
<el-form
63+
v-if="dialogFormVisible"
64+
ref="ruleForm"
65+
:model="formData"
66+
:rules="rules"
67+
>
68+
<!-- 这里面开始 -->
69+
<el-row :gutter="20">
70+
<el-col :span="12">
71+
<el-form-item label="APP_ID" prop="app_id">
72+
<el-input v-model="formData.app_id" type="text" />
73+
</el-form-item>
74+
</el-col>
75+
<el-col :span="12">
76+
<el-form-item label="APP_Secret" prop="app_secret">
77+
<el-input v-model="formData.app_secret" type="textarea" />
78+
</el-form-item>
79+
</el-col>
80+
81+
</el-row>
82+
</el-form>
83+
<div slot="footer" class="dialog-footer">
84+
<el-button @click="dialogFormVisible = false">取 消</el-button>
85+
<el-button type="primary" @click="save('ruleForm')">{{
86+
cmdTitle
87+
}}</el-button>
88+
</div>
89+
</el-dialog>
90+
</div>
91+
</template>
92+
93+
<script>
94+
import "@/styles/view.scss";
95+
import CURD from "@/mixin/CURD";
96+
export default {
97+
name: "WechatIndex",
98+
mixins: [CURD],
99+
data() {
100+
return {
101+
module: "wechat",
102+
newTitle: "新增信息",
103+
editTitle: "编辑信息",
104+
};
105+
},
106+
methods: {},
107+
};
108+
</script>
109+
110+
<style scoped>
111+
</style>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /