This commit is contained in:
tsf 2024-07-03 19:26:07 +08:00
parent b4fe295077
commit aad0e0960a
8 changed files with 1032 additions and 25 deletions

View File

@ -0,0 +1,96 @@
<?php
namespace app\admin\controller;
use think\Db;
use think\Log;
class Estimate extends Base{
protected $page_num = 10;
protected $file_max = 1024*1024*5;//xxxMB
################################################################接口################################################################
################################################################接口################################################################
################################################################接口################################################################
// 获取系统设备列表
public function index($page = 1){
$data = input();
$pd = true;
$parameter = [];
// $parameter['is_del'] = 0;
if(array_key_exists('tt', $data)){
$page = $data['page_num'];
unset($data['page_num']);
unset($data['tt']);
$pd = false;
// if($data['status_num'] === "0" || $data['status_num'] === "1"){
// $parameter['is_del'] = $data['status_num'];
// }
// if($data['tel']){
// $parameter['tel'] = $data['tel'];
// }
// if($data['email']){
// $parameter['email'] = $data['email'];
// }
// if($data['s_time']){
// $parameter['create_time'] = ['>=',$data['s_time']];
// }
// if($data['e_time']){
// $parameter['create_time'] = ['<=',$data['e_time']];
// }
}
$num = Db::table('admin_estimate')->where($parameter)->count();
$result = Db::table('admin_estimate')->where($parameter)->order('is_del,id desc')->page($page,$this->page_num)->select();
if(!$pd){
$result['num'] = $num;
$result['data'] = $result;
return $this->msg(0,'success',$result);
}
$this->assign([
'result' => $result,
'num' => $num,
]);
return $this->fetch();
}
public function estimate_add(){
return $this->fetch();
}
################################################################业务接口################################################################
################################################################业务接口################################################################
################################################device_data_list
public function device_data_list_action($data){
$result = Db::table('app_device_data')->where(['is_del'=>0])->field('id,name,pic,content,page_measure,bluetooth_type,device_model')->select();
foreach ($result as $key => $value) {
unset($result[$key]['ROW_NUMBER']);
}
if(empty($result)){
return $this->msg(10004);
}else{
return $this->msg(['list'=>$result]);
}
}
################################################################其他接口################################################################
################################################################其他接口################################################################
}

View File

@ -0,0 +1,238 @@
<!DOCTYPE html>
<html class="x-admin-sm">
<head>
<meta charset="UTF-8">
<title>设备管理_edit</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="stylesheet" href="/x_admin/css/font.css">
<link rel="stylesheet" href="/x_admin/css/xadmin.css">
<script type="text/javascript" src="/x_admin/lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="/x_admin/js/xadmin.js"></script>
<script type="text/javascript" src="/x_admin/js/jq.js"></script>
<!-- 让IE8/9支持媒体查询从而兼容栅格 -->
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="layui-fluid">
<div class="layui-row">
<form class="layui-form">
<div class="layui-form-item">
<label for="L_email" class="layui-form-label">
<span class="x-red">*</span>封面</label>
</label>
<div class="layui-input-inline">
<!-- <input type="text" id="L_email" name="email" required="" lay-verify="email" autocomplete="off" class="layui-input"> -->
<input type="file" id="upload_file_app" lay-verify="upload_file_app" name="file_data">
</div>
<!-- <div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>将会成为您唯一的登入名
</div> -->
</div>
<div class="layui-form-item">
<label for="device_name" class="layui-form-label">
<span class="x-red">*</span>设备名称</label>
<div class="layui-input-inline">
<input type="text" id="device_name" name="device_name" required="" lay-verify="device_name" autocomplete="off" class="layui-input" value="{$result.name}">
</div>
</div>
<div class="layui-form-item">
<label for="device_model" class="layui-form-label">
<span class="x-red">*</span>设备型号</label>
<div class="layui-input-inline">
<input type="text" id="device_model" name="device_model" required="" lay-verify="device_model" autocomplete="off" class="layui-input" value="{$result.device_model}">
</div>
</div>
<div class="layui-form-item">
<label for="bluetooth_type" class="layui-form-label">
<span class="x-red">*</span>蓝牙类型</label>
<div class="layui-input-inline">
<input type="text" id="bluetooth_type" name="bluetooth_type" required="" lay-verify="bluetooth_type" autocomplete="off" class="layui-input" value="{$result.bluetooth_type}">
</div>
</div>
<div class="layui-form-item">
<label for="page_measure" class="layui-form-label">
<span class="x-red"></span>测量页路径</label>
<div class="layui-input-inline">
<input type="text" id="page_measure" name="page_measure" required="" lay-verify="page_measure" autocomplete="off" class="layui-input" value="{$result.page_measure}">
</div>
<div class="layui-form-mid layui-word-aux"></div>
</div>
<div class="layui-form-item">
<label for="content" class="layui-form-label">
<span class="x-red"></span>描述</label>
<div class="layui-input-inline">
<input type="text" id="content" name="content" required="" lay-verify="content" autocomplete="off" class="layui-input" value="{$result.content}"></div>
</div>
<div class="layui-form-item">
<label for="L_repass" class="layui-form-label"></label>
<!-- <div class="layui-btn" id="add" lay-filter="add" lay-submit="">增加</div>
<input value="登录" lay-submit lay-filter="add" type="submit" class="layui-btn"> -->
<button class="layui-btn" lay-filter="add" lay-submit="">修改</button>
</div>
</form>
</div>
</div>
<!-- <div class="layui-fluid">
<div id="official_1" class="layui-row">
<div style="margin-left: 8%;margin-top: 5%;font-size: 25px;">请先下载模板文件,信息填写完成并上传该文件后点击生成</div>
<img style="width: 90%;margin-left: 3%;"src="/uploads/code_demo.png?v=1.0" alt="">
<div class="layui-form-item" style="width: 30%;margin-left: 33%;margin-top: 5%;">
<span>步骤1</span><a href="/uploads/code_demo.xlsx" class="layui-btn" lay-filter="add">下载模板文件</a>
</div>
<div class="layui-form-item" style="width: 50%;margin-left: 33%;margin-top: 5%;">
<span>步骤2</span><input type="file" id="data_excel" name="data_excel">
</div>
<div class="layui-form-item" style="width: 30%;margin-left: 33%;margin-top: 5%;">
<span>步骤3</span><button class="layui-btn" lay-filter="add" lay-submit="" onclick="add_data()">生成</button>
</div>
</div>
</div> -->
<script>
$(document).ready(function(){
var id = "{$result.id}"
var file_name_all = ''
var file_name = ''
var file_extension = ''
var pd = true
$('#upload_file_app').on('change', function() {
// 获取被选择的文件
var fileInput = $(this)[0];
var file = fileInput.files[0];
// 检查是否有文件被选择
if (file) {
// 获取文件的名称
file_name_all = file.name;
// 使用lastIndexOf和substring来获取文件名不包括后缀
var lastIndex = file_name_all.lastIndexOf('.');
file_name = lastIndex !== -1 ? file_name_all.substring(0, lastIndex) : file_name_all;
// 获取文件后缀
file_extension = lastIndex !== -1 ? file_name_all.substring(lastIndex + 1) : '';
$('#file_name').val(file_name)
// console.log($('#upload_file_app')[0].files[0])
// formdata.append('apk',$('#upload_file_app')[0].files[0])
}
});
function edit_data(){
if(pd === false){
return
}
var formdata = new FormData();
formdata.append('upload_file_app',$('#upload_file_app')[0].files[0])
formdata.append('device_name',$('#device_name').val())
formdata.append('device_model',$('#device_model').val())
formdata.append('bluetooth_type',$('#bluetooth_type').val())
formdata.append('page_measure',$('#page_measure').val())
formdata.append('content',$('#content').val())
formdata.append('file_extension',file_extension)
formdata.append('id',id)
load()
pd = false
console.log('进来了')
$.ajax({
url:"/device/device_edit_action", //请求的url地址
contentType:false,
processData:false,
async:true,//请求是否异步默认为异步这也是ajax重要特性
data:formdata, //参数值
type:"POST", //请求方式
success:function(req){
c_load()
pd = true
if(req.code == 0){
layer.alert("修改成功", {icon: 6},function() {
//关闭当前frame
xadmin.close();
// 可以对父窗口进行刷新
xadmin.father_reload();
});
}else{
layer.alert("修改失败"+req.msg, {icon: 6},function() {
//关闭当前frame
xadmin.close();
// 可以对父窗口进行刷新
xadmin.father_reload();
});
}
//请求成功时处理
console.log(req)
},
error:function(){
//请求出错处理
pd = true
}
});
}
layui.use(['form', 'layer','jquery'],function() {
$ = layui.jquery;
var form = layui.form,
layer = layui.layer;
//自定义验证规则
form.verify({
// upload_file_app: function(value) {
// if (value == '') {
// return '请先选择文件';
// }
// },
device_name: function(value) {
if (value == '') {
return '必须填写设备名称';
}
},
// version_num: [/[\d.]{0,9}$/, '版本号必须以大写V开头最多10个字符由数字跟英文"."组成)'],
device_model: function(value) {
if (value == '') {
return '必须填写设备类型';
}
},
bluetooth_type: function(value) {
if (value == '') {
return '必须填写蓝牙类型';
}
},
});
//监听提交
form.on('submit(add)',function(data) {
//发异步把数据提交给php
edit_data()
return false;
});
});
//加载提示开启
function load() {
var index = layer.load(1, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
}
// 关闭加载提示
function c_load() {
layer.close(layer.index)
}
});
// });
</script>
</body>
</html>

View File

@ -0,0 +1,263 @@
<!DOCTYPE html>
<html class="x-admin-sm">
<head>
<meta charset="UTF-8">
<title>设备管理_add</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="stylesheet" href="/x_admin/css/font.css">
<link rel="stylesheet" href="/x_admin/css/xadmin.css">
<script type="text/javascript" src="/x_admin/lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="/x_admin/js/xadmin.js"></script>
<script type="text/javascript" src="/x_admin/js/jq.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js" charset="utf-8"></script>
</head>
<body>
<div class="layui-fluid">
<div class="layui-row" id="app_all">
<form class="layui-form">
<!-- <div class="layui-form-item">
<label for="L_email" class="layui-form-label">
<span class="x-red">*</span>封面</label>
</label>
<div class="layui-input-inline">
<input type="file" id="upload_file_app" lay-verify="upload_file_app" name="file_data">
</div>
</div> -->
<!-- <div class="layui-form-item">
<label for="device_name" class="layui-form-label">
<span class="x-red">*</span>地区</label>
<div class="layui-input-inline">
<select name="" id="">
<option value="">请选择</option>
<option v-for="item in type_arr" :value="item.asd">{{item.content}}</option>
</select>
</div>
</div> -->
<div class="layui-form-item">
<label for="device_name" class="layui-form-label">
<span class="x-red">*</span>类别</label>
<div class="layui-input-inline">
<select v-model="selectedOption" @change="change_type_data">
<option value="">请选择</option>
<option v-for="item in type_arr" :key="item.value" :value="item.asd">{{item.content}}</option>
</select>
</div>
</div>
<div v-if="selectedOption == '1'">
<div class="layui-form-item">
<label for="device_model" class="layui-form-label">
<span class="x-red">*</span>子类型</label>
<div class="layui-input-inline">
<input type="text" id="device_model" name="device_model" required="" lay-verify="device_model" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>例如 “第一类:素质项目Ⅰ”,请根据当地实际叫法填写
</div>
</div>
<div class="layui-form-item">
<label for="device_model" class="layui-form-label">
<span class="x-red">*</span>分值</label>
<div class="layui-input-inline">
<input type="text" id="device_model" name="device_model" required="" lay-verify="device_model" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>该单项分值
</div>
</div>
<div class="layui-form-item">
<label for="device_model" class="layui-form-label">
<span class="x-red">*</span>项目名称</label>
<div class="layui-input-inline">
<input type="text" id="device_model" name="device_model" required="" lay-verify="device_model" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>例如 “男子1000米”请根据当地实际叫法填写
</div>
</div>
<div class="layui-form-item">
<label for="device_model" class="layui-form-label">
<span class="x-red">*</span>单位</label>
<div class="layui-input-inline">
<input type="text" id="device_model" name="device_model" required="" lay-verify="device_model" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>例如 “KG、ML、分/秒、秒...”,请根据项目的单位填写
</div>
</div>
</div>
<div class="layui-form-item">
<label for="L_repass" class="layui-form-label"></label>
<!-- <button class="layui-btn" lay-filter="add" lay-submit="">增加</button> -->
<div class="layui-btn" v-on:click="asdaa">增加</div>
<!-- <button lay-filter="add" lay-submit="" v-on:click="asdaa">增加 {{num_test}}</button> -->
</div>
</form>
</div>
</div>
<script>
var app = new Vue({
el: '#app_all',
data: {
selectedOption: '',
type_arr: [
{asd: '1', content: '现场考试'},
{asd: '2', content: '过程性考核'},
{asd: '3', content: '机试'}
]
},
methods: {
change_type_data: function() {
console.log(1);
console.log(this.selectedOption);
}
}
});
</script>
<script>
$(document).ready(function(){
var file_name_all = ''
var file_name = ''
var file_extension = ''
var pd = true
$('#upload_file_app').on('change', function() {
// 获取被选择的文件
var fileInput = $(this)[0];
var file = fileInput.files[0];
// 检查是否有文件被选择
if (file) {
// 获取文件的名称
file_name_all = file.name;
// 使用lastIndexOf和substring来获取文件名不包括后缀
var lastIndex = file_name_all.lastIndexOf('.');
file_name = lastIndex !== -1 ? file_name_all.substring(0, lastIndex) : file_name_all;
// 获取文件后缀
file_extension = lastIndex !== -1 ? file_name_all.substring(lastIndex + 1) : '';
$('#file_name').val(file_name)
console.log(file_name)
console.log(file_extension)
// formdata.append('apk',$('#upload_file_app')[0].files[0])
}
});
function add_data(){
if(pd === false){
return
}
var formdata = new FormData();
formdata.append('upload_file_app',$('#upload_file_app')[0].files[0])
formdata.append('device_name',$('#device_name').val())
formdata.append('device_model',$('#device_model').val())
formdata.append('bluetooth_type',$('#bluetooth_type').val())
formdata.append('page_measure',$('#page_measure').val())
formdata.append('content',$('#content').val())
formdata.append('file_extension',file_extension)
load()
pd = false
console.log('进来了')
$.ajax({
url:"/device/device_add_action", //请求的url地址
contentType:false,
processData:false,
async:true,//请求是否异步默认为异步这也是ajax重要特性
data:formdata, //参数值
type:"POST", //请求方式
success:function(req){
c_load()
pd = true
if(req.code == 0){
layer.alert("增加成功", {icon: 6},function() {
//关闭当前frame
xadmin.close();
// 可以对父窗口进行刷新
xadmin.father_reload();
});
}else{
layer.alert("增加失败"+req.msg, {icon: 6},function() {
//关闭当前frame
xadmin.close();
// 可以对父窗口进行刷新
xadmin.father_reload();
});
}
//请求成功时处理
console.log(req)
},
error:function(){
//请求出错处理
pd = true
}
});
}
layui.use(['form', 'layer','jquery'],function() {
$ = layui.jquery;
var form = layui.form,
layer = layui.layer;
//自定义验证规则
form.verify({
upload_file_app: function(value) {
if (value == '') {
return '请先选择文件';
}
},
device_name: function(value) {
if (value == '') {
return '必须填写设备名称';
}
},
// version_num: [/[\d.]{0,9}$/, '版本号必须以大写V开头最多10个字符由数字跟英文"."组成)'],
device_model: function(value) {
if (value == '') {
return '必须填写设备类型';
}
},
bluetooth_type: function(value) {
if (value == '') {
return '必须填写蓝牙类型';
}
},
});
//监听提交
form.on('submit(add)',function(data) {
//发异步把数据提交给php
add_data()
return false;
});
});
//加载提示开启
function load() {
var index = layer.load(1, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
}
// 关闭加载提示
function c_load() {
layer.close(layer.index)
}
});
// });
</script>
</body>
</html>

View File

@ -0,0 +1,364 @@
<!DOCTYPE html>
<html class="x-admin-sm">
<head>
<meta charset="UTF-8">
<title>所有设备管理</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="stylesheet" href="/x_admin/css/font.css">
<link rel="stylesheet" href="/x_admin/css/xadmin.css">
<script src="/x_admin/lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="/x_admin/js/xadmin.js"></script>
<style>
/* th{
min-width:30px;
} */
</style>
</head>
<body>
<div class="x-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">演示</a>
<a>
<cite>导航元素</cite></a>
</span>
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新">
<i class="layui-icon layui-icon-refresh" style="line-height:30px"></i></a>
</div>
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<!-- <div class="layui-card-body ">
<form class="layui-form layui-col-space5">
<div class="layui-inline layui-show-xs-block">
<input class="layui-input" autocomplete="off" placeholder="开始日" name="start" id="s_time">
</div>
<div class="layui-inline layui-show-xs-block">
<input class="layui-input" autocomplete="off" placeholder="截止日" name="end" id="e_time">
</div>
<div class="layui-inline layui-show-xs-block">
<input type="text" name="username" placeholder="请输入用户手机" autocomplete="off" class="layui-input" id="tel">
</div>
<div class="layui-inline layui-show-xs-block">
<input type="text" name="username" placeholder="请输入用户邮箱" autocomplete="off" class="layui-input" id="email">
</div>
<div class="layui-input-inline layui-show-xs-block">
<select name="contrller" id="status_num">
<option value="">状态</option>
<option value="0">启用</option>
<option value="1">停用</option>
</select>
</div>
<div class="layui-inline layui-show-xs-block">
<div class="layui-btn" lay-submit="" lay-filter="sreach" onclick="find('y')"><i class="layui-icon">&#xe615;</i></div>
</div>
</form>
</div> -->
<div class="layui-card-header">
<!-- <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量停用</button> -->
<!-- <button class="layui-btn" onclick="xadmin.open('添加用户','/appversion/app_add','100%','100%')"><i class="layui-icon"></i>添加</button> -->
<button class="layui-btn" onclick="xadmin.open('添加版本','/estimate/estimate_add','50%','70%')"><i class="layui-icon"></i>添加</button>
</div>
<div class="layui-card-body layui-table-body layui-table-main">
<table class="layui-table layui-form">
<thead>
<tr>
<!-- <th><input type="checkbox" lay-filter="checkall" name="" lay-skin="primary"></th> -->
<th>ID</th>
<th>区域</th>
<th>类别</th>
<th>子分类</th>
<th>分值</th>
<th>项目名称</th>
<th>单位</th>
<th>性别</th>
</tr>
</thead>
<tbody id='content'>
{volist name="result" id="vo"}
<tr>
<!-- <td><input type="checkbox" name="id" value="{$vo.id}" lay-skin="primary"></td> -->
<td>{$vo.id}</td>
<td>{$vo.address}</td>
<td>{$vo.type}</td>
<td>{$vo.category_name}</td>
<td>{$vo.project_name}</td>
<td>{$vo.unit_data}</td>
<td>{$vo.gender}</td>
<td class="td-status">
{if condition="$vo.is_del == 1"}
<span onclick="app_stop(this,'{$vo.id}')" class="layui-btn layui-btn-normal layui-btn-mini layui-btn-disabled" title="停用">已停用</span>
{else /}
<span onclick="app_stop(this,'{$vo.id}')" class="layui-btn layui-btn-normal layui-btn-mini" title="启用">已启用</span>
{/if}
</td>
<td>
<button class="layui-btn" onclick="xadmin.open('修改','/device/device_edit?id={$vo.id}','50%','70%')">修改</button>
</td>
</tr>
{/volist}
</tbody>
</table>
</div>
<div class="layui-card-body ">
<div id="page" style="text-align: center;">
</div>
</div>
<!-- <div class="layui-card-body ">
<div class="page">
<div>
<a class="prev" href="">&lt;&lt;</a>
<a class="num" href="">1</a>
<span class="current">2</span>
<a class="num" href="">3</a>
<a class="num" href="">489</a>
<a class="next" href="">&gt;&gt;</a>
</div>
</div>
</div> -->
</div>
</div>
</div>
</div>
</body>
<script>
var form
layui.use(['laydate','form'], function(){
var laydate = layui.laydate;
form = layui.form;
// 监听全选
form.on('checkbox(checkall)', function(data){
if(data.elem.checked){
$('tbody input').prop('checked',true);
}else{
$('tbody input').prop('checked',false);
}
form.render('checkbox');
});
//执行一个laydate实例
laydate.render({
elem: '#s_time' //指定元素
});
//执行一个laydate实例
laydate.render({
elem: '#e_time' //指定元素
});
});
var page_num;
var laypage;
var all_page = "{$num}";
layui.use('laypage', function () {
laypage = layui.laypage;
//执行一个laypage实例
laypage.render({
elem: 'page',
count: all_page, //数据总数,从服务端得到
limit: 10,
groups:10,
jump: function (obj, first) {
//首次不执行
if (!first) {
//obj包含了当前分页的所有参数比如
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
console.log(obj.limit); //得到每页显示的条数
page_num = obj.curr;
find("n")
}
}
});
});
/*用户-停用*/
function app_stop(obj,id){
// return
var title = '',is_del,num
if($(obj).attr('title')=='启用'){
title = '停用'
is_del = 1
num = 5
}else{
title = '启用'
is_del = 0
num = 6
}
// console.log('点击时'+$(obj).attr('title')+'====='+id+'===传到后台是否删除:'+is_del)
layer.confirm('确认要'+ title +'吗?',function(index){
load()
$.ajax({
url:"/device/device_del", //请求的url地址
dataType:"json", //返回格式为json
async:true,//请求是否异步默认为异步这也是ajax重要特性
data:{"id":id,'is_del':is_del}, //参数值
type:"POST", //请求方式
success:function(req){
c_load()
//请求成功时处理
if(req['code'] == 0){
//发异步把用户状态进行更改
$(obj).attr('title',title)
if(is_del == 1){
$(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已'+ title);
}else{
$(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已'+ title);
}
layer.msg('已'+ title,{icon: num});
}else{
layer.msg('操作失败!',{icon: 5});
}
},
error:function(){
//请求出错处理
}});
});
}
function delAll (argument) {
// layer.msg('停用成功', {icon: 2});
// return
var ids = [];
// 获取选中的id
$('tbody input').each(function(index, el) {
if($(this).prop('checked')){
ids.push($(this).val())
}
});
if(ids.length <= 0){
return
}
console.log(ids);
layer.confirm('确认要停用吗ID为'+ids.toString(),function(index){
//捉到所有被选中的,发异步进行删除
$.ajax({
url:"/device/device_del", //请求的url地址
dataType:"json", //返回格式为json
async:true,//请求是否异步默认为异步这也是ajax重要特性
data:{"id":ids,'is_del':1}, //参数值
type:"POST", //请求方式
success:function(req){
c_load()
//请求成功时处理
if(req['code'] == 0){
//发异步把用户状态进行更改
layer.msg('停用成功', {icon: 1});
$(".layui-form-checked").not('.header').parents('tr').find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
}else{
layer.msg('操作失败!',{icon: 2});
}
},
error:function(){
//请求出错处理
}});
});
}
function find(pd) {
if(!page_num || pd == 'y'){
page_num = 1;
}
page({
"status_num":$('#status_num').val(),
"tel":$('#tel').val(),
"email":$('#email').val(),
"s_time":$('#s_time').val(),
"e_time":$('#e_time').val(),
"page_num":page_num,
"tt":1},pd);
}
function page(data,pd) {
console.log(data)
load()
$.ajax({
url: "member_list", //请求的url地址s
dataType: "json", //返回格式为json
async: true,//请求是否异步默认为异步这也是ajax重要特性
data: data, //参数值
type: "POST", //请求方式
success: function (req) {
console.log(req)
c_load();
if (req['code'] == 0) {
var str,str_s,str_c,str_all="";
for (let i = 0; i < req['data']['data'].length; i++) {
if(req['data']['data'][i]['is_del'] == 1){
str = '<span onclick="member_stop(this,\''+req['data']['data'][i]['id']+'\')" class="layui-btn layui-btn-normal layui-btn-mini layui-btn-disabled" title="停用">已停用</span>'
}else{
str = '<span onclick="member_stop(this,\''+ req['data']['data'][i]['id'] +'\')" class="layui-btn layui-btn-normal layui-btn-mini" title="启用">已启用</span>'
}
str_c = "<tr>"+
'<td><input type="checkbox" name="id" value="'+req['data']['data'][i]['id']+'" lay-skin="primary"></td>'+
'<td>'+req['data']['data'][i]['id']+'</td>'+
'<td>'+req['data']['data'][i]['token']+'</td>'+
'<td>'+req['data']['data'][i]['tel']+'</td>'+
'<td>'+req['data']['data'][i]['email']+'</td>'+
'<td>'+req['data']['data'][i]['create_time']+'</td>'+
'<td class="td-status">'+
str+
'</td>'
'</tr>'
str_all = str_all+str_c;
}
$('#content').html(str_all);
form.render();
if(pd == 'y'){
$("#page").html("")
laypage.render({
elem: 'page',
count: req['data']['num'], //数据总数,从服务端得到
limit: 10,
groups:10,
jump: function (obj, first) {
//首次不执行
if (!first) {
//obj包含了当前分页的所有参数比如
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
console.log(obj.limit); //得到每页显示的条数
page_num = obj.curr;
// page({"page":page_num,"tt":1});
find("n")
}
}
});
}
} else {
layer.msg(req['msg'])
}
},
error: function () {
//请求出错处理
}
});
}
//加载提示开启
function load() {
var index = layer.load(1, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
}
// 关闭加载提示
function c_load() {
layer.close(layer.index)
}
</script>
</html>

View File

@ -94,6 +94,19 @@
</li>
</ul>
</li>
<li>
<a href="javascript:;">
<i class="iconfont left-nav-li" lay-tips="估分功能管理">&#xe723;</i>
<cite>估分功能管理</cite>
<i class="iconfont nav_right">&#xe697;</i></a>
<ul class="sub-menu">
<li>
<a onclick="xadmin.add_tab('地市规则列表','/estimate/index')">
<i class="iconfont">&#xe6a7;</i>
<cite>地市规则列表</cite></a>
</li>
</ul>
</li>
<li>
<a href="javascript:;">
<i class="iconfont left-nav-li" lay-tips="APP版本管理">&#xe723;</i>

View File

@ -144,10 +144,10 @@ class Card extends Base{
if(!array_key_exists('aud_id', $data) || !array_key_exists('height', $data) || !array_key_exists('weight', $data) || !array_key_exists('adc', $data) || !array_key_exists('token', $data)){
return $this->msg(10001);
}
if($this->token_time_validate($data['token']) === false){
return $this->msg(20001);
}
unset($data['token']);
// if($this->token_time_validate($data['token']) === false){
// return $this->msg(20001);
// }
// unset($data['token']);
$data['acd_id'] = '2';
return $this->set_user_body_data($data);
}

View File

@ -140,16 +140,18 @@ class Device extends Base{
->alias('adcd')
->join('app_device_data add','adcd.add_id = add.id','LEFT')
->where(['adcd.bind_account_id'=>$result_user['id']])
->field('adcd.id,adcd.add_id,adcd.machine_code,add.name,add.pic,add.content,add.page_measure,add.bluetooth_type,add.device_model')
->field('adcd.id,adcd.add_id,adcd.machine_code,adcd.create_time,add.name,add.pic,add.content,add.page_measure,add.bluetooth_type,add.device_model')
->select();
if(count($device_code_data) <= 0){
return $this->msg([]);
}
$device_code_data1 = [];
$result = [];
// 新版格式
// $result['list'] = [];
foreach ($device_code_data as $key => $value) {
if(!array_key_exists($value['add_id'], $device_code_data1)){
$device_code_data1[$value['add_id']] = [
array_push($result,[
'add_id'=>$value['add_id'],
'name'=>$value['name'],
'pic'=>$value['pic'],
@ -157,18 +159,36 @@ class Device extends Base{
'page_measure'=>$value['page_measure'],
'bluetooth_type'=>$value['bluetooth_type'],
'device_model'=>$value['device_model'],
'list'=>[[
'bind_time'=>$value['create_time'],
'id'=>$value['id'],
'mac'=>$value['machine_code']
]]
];
}else{
array_push($device_code_data1[$value['add_id']]['list'],['id'=>$value['id'],'mac'=>$value['machine_code']]);
}
}
foreach ($device_code_data1 as $key => $value) {
array_push($result,$value);
]);
}
// dump($device_code_data);
// die;
// 旧版格式
// foreach ($device_code_data as $key => $value) {
// if(!array_key_exists($value['add_id'], $device_code_data1)){
// $device_code_data1[$value['add_id']] = [
// 'add_id'=>$value['add_id'],
// 'name'=>$value['name'],
// 'pic'=>$value['pic'],
// 'content'=>$value['content'],
// 'page_measure'=>$value['page_measure'],
// 'bluetooth_type'=>$value['bluetooth_type'],
// 'device_model'=>$value['device_model'],
// 'list'=>[[
// 'id'=>$value['id'],
// 'mac'=>$value['machine_code']
// ]]
// ];
// }else{
// array_push($device_code_data1[$value['add_id']]['list'],['id'=>$value['id'],'mac'=>$value['machine_code']]);
// }
// }
// foreach ($device_code_data1 as $key => $value) {
// array_push($result,$value);
// }
return $this->msg(['list'=>$result]);
}

View File

@ -43,6 +43,19 @@ Route::any('/card/card_edit', 'admin/card/card_edit');
Route::any('/card/card_edit_action', 'admin/card/card_edit_action');
Route::any('/card/card_del', 'admin/card/card_del');
// Route::any('/appversion/app_add_action', 'admin/appversion/app_add_action');
// 估分功能管理
Route::any('/estimate/index', 'admin/estimate/index');
Route::any('/estimate/estimate_add', 'admin/estimate/estimate_add');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// Route::any('/estimate/index', 'admin/estimate/index');
// 设备管理
Route::any('/device/index', 'admin/device/index');
Route::any('/device/device_add', 'admin/device/device_add');