前端表头信息写死还是向服务端请求表头信息呢?
我觉得向服务端请求表头信息可能比较好吧。
比如我设计了下面这个结构用来返回表头信息和数据。表头信息中的prop
和数据中键
是对应的。
表头信息:
这里我给定了一个width
字段用于控制该列的宽度。该列的宽度和该列数据中显示最长的有关,这在后端应该是容易知道的(前端显示的只是一个视图,并不能保证在任何视图下显示的都很好),我觉得这是在后端上设置列宽的一个优点吧。
"fields": [
{
"prop": "dw",
"name": "单位",
"width": "160"
},
{
"prop": "xh",
"name": "序号",
"width": "60"
},
{
"prop": "jqd",
"name": "交气点",
"width": "120"
},
{
"prop": "dlrqgs",
"name": "代理燃气公司",
"width": "120"
},
{
"prop": "jqfs",
"name": "交气方式",
"width": "100"
},
{
"prop":"jdljjql",
"name": "阶段累计交气量(方)",
"width": "200"
},
{
"prop": "rjql",
"name": "日均气量(方/天)",
"width": "180"
},
{
"prop": "ljdsl",
"name": "累计代输量(方)",
"width": "160"
},
{
"prop": "2024-01-01",
"name": "1月1日"
},
....
],
数据:
"lsqjqltj": [
{
"id": "1",
"xh": "1",
"dw": "管理2区",
"jqd": "Bxxxxxx2",
"dlrqgs": "xxxxxx",
"jqfs": "代销",
"jdljjql": 23745,
"rjql": 156,
"ljdsl": 0,
"data": [
{
"rq": "2024-01-01",
"jql": 0
},
{
"rq": "2024-01-02",
"jql": 1
},
{
"rq": "2024-01-03",
"jql": 0
},
{
"rq": "2024-01-04",
"jql": 1
},
{
"rq": "2024-01-05",
"jql": 0
},
{
"rq": "2024-01-06",
"jql": 1
},
{
"rq": "2024-01-07",
"jql": 0
},
{
"rq": "2024-01-08",
"jql": 1
}
]
},
此时,前端人员并不需要了解到底有哪些字段?这些字段是什么含义,只需要知道prop
和name
的含义即可。当后端增加新的表头或者修改表头信息的时候,前端都不需要修改,这是它好的一方面。
前端可能会这样使用获取的表头信息和数据(这里的数据还需要稍作调整)
<el-table :data="tableData" border>
<template v-for="item in fields">
<el-table-column v-if="/\d{4}-\d{1,2}-\d{1,2}/.test(item.prop)" :label="item.name" :prop="item.prop" header-align="center" align="center" :width="item.width">
<template #header>
<el-button link type="primary" @click="showDrawer = true">{{item.name}}</el-button>
</template>
</el-table-column>
<el-table-column v-else :label="item.name" :prop="item.prop" fixed="left" header-align="center" align="center" :width="item.width">
</el-table-column>
</template>
</el-table>
前端人员并不需要了解到底有哪些字段?这些字段是什么含义,只需要知道prop
和name
的含义即可。
但是这可能还有不利的方面。
如果我们增加编辑信息的功能,
首先我们要先要搜索到要编辑的单元格
最后
这时前端仅仅知道prop
和name
还足够吗?
弥补措施?后端返回这样的编辑格式信息?然后前端按照这种形式来绘制编辑信息页面?
{
jql: {
name: "进气量",
options: [...]
}
....
}
前端人员并不需要了解到底有哪些字段
但总要有人了解,你可能是把前后端对接的工作交到了别人手里,可能是后台,可能给是项目经理,但总的任务并没有减少。这是其一,其二是这种操作增加了业务的复杂性,对于维护及开发都不利。第三,如果表格就这些内容,不会经常变动,那么在前端写死是最省事的,因为在后台做成配置型的,那你需要增加一系列配置型表格的功能,这工作量并不小,其次,也只是把维护人员从前台转移到了不知道谁那里。如果是项目业务需要这种动态配置型的表格,那当我没说
获取当前请求的所有HTTP 请求头信息,如: $headers = $request->header(); print_r($headers); 直接获取某个请求头信息,如: $token = $request->header('XX-Token'); HTTP请求头信息的名称不区分大小写,并且下划线会自动转换为-,所以下面的写法都是等效的: $token = $request->head
获取当前请求的所有HTTP 请求头信息,如: $headers = $request->header(); print_r($headers); 直接获取某个请求头信息,如: $token = $request->header('XX-Token'); HTTP请求头信息的名称不区分大小写,并且下划线会自动转换为-,所以下面的写法都是等效的: $token = $request->head
正是头信息开始让 Jekyll 变的很酷。任何只要包含 YAML 头信息的文件在 Jekyll 中都能被当做一个特殊的文件来处理。头信息必须在文件的开始部分,并且需要按照 YAML 的格式写在两行三虚线之间。下面是一个基本的例子: --- layout: post title: Blogging Like a Hacker --- 在这两行的三虚线之间,你可以设置预定义的变量(下面这个例子可以作为
可以使用Request对象的header方法获取当前请求的HTTP请求头信息,例如: $info = Request::header(); echo $info['accept']; echo $info['accept-encoding']; echo $info['user-agent']; 也可以直接获取某个请求头信息,例如: $agent = Request::header('user-a
TP5已经将请求封装为\think\Request,所有的请求信息可以通过请求对象获取; 获取请求对象 请求对象的获取有两种方式: 1.在控制器方法内可以直接通过 request 属性获取: $request = $this->request; 2.在其它地方可以Request的单例方法 $request = Request::instance(); 3.使用助手函数 $request = r
TP6.0已经将请求封装为\think\Request,所有的请求信息可以通过请求对象获取; 获取请求对象 请求对象的获取有两种方式: 1.在控制器方法内可以直接通过 request 属性获取: $request = $this->request; 2.在其它地方可以用request()的助手函数 $request = request(); 获取请求信息 // 获取当前控制器 $request