测试修改

This commit is contained in:
tsf 2024-07-04 18:44:21 +08:00
parent aad0e0960a
commit 5d912f2949
6 changed files with 324 additions and 112 deletions

View File

@ -12,11 +12,48 @@
<script type="text/javascript" src="/x_admin/lib/layui/layui.js" charset="utf-8"></script> <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/xadmin.js"></script>
<script type="text/javascript" src="/x_admin/js/jq.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> </head>
<body> <body>
<div class="layui-fluid"> <div class="layui-fluid">
<div class="layui-row" id="app_all"> <div class="layui-row" id="app_all">
<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" style="z-index:9999;width: 630px;">
<form class="layui-form layui-col-md12 layui-form-pane">
<div class="layui-form-item x-city" id="city_list">
<!-- <label class="layui-form-label">城市联动</label> -->
<div class="layui-input-inline" style="width:110px;">
<select id="province" name="province" lay-filter="province">
<option value="">请选择省</option>
</select>
</div>
<div class="layui-input-inline" style="width:110px;">
<select id="city" name="city" lay-filter="city">
<option value="">请选择市</option>
</select>
</div>
<!-- <div class="layui-input-inline" style="width:110px;">
<select id="area" name="area" lay-filter="area">
<option value="">请选区/县</option>
</select>
</div> -->
<div id="keyword" class="layui-input-inline" style="width:250px;">
</div>
</div>
</form>
</div>
<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" id="city_choose">
</div>
</div>
</div>
<form class="layui-form"> <form class="layui-form">
<!-- <div class="layui-form-item"> <!-- <div class="layui-form-item">
<label for="L_email" class="layui-form-label"> <label for="L_email" class="layui-form-label">
@ -37,16 +74,61 @@
</div> </div>
</div> --> </div> -->
<div class="layui-form-item"> <div class="layui-form-item">
<label for="device_name" class="layui-form-label"> <label for="username" class="layui-form-label">
<span class="x-red">*</span>类别</label> <span class="x-red">*</span>选择大类
</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<select v-model="selectedOption" @change="change_type_data"> <select name="type_big" lay-filter="type_big" id="type_big">
<option value="">请选择</option> <option value="">请选择</option>
<option v-for="item in type_arr" :key="item.value" :value="item.asd">{{item.content}}</option> <option value="1">现场考核(统一考试)</option>
</select> <option value="2">日常考核(过程性考核)</option>
<option value="3">机试</option>
</select>
</div> </div>
</div> </div>
<div v-if="selectedOption == '1'"> <div id="type_big_content" style="display: none;">
<div class="layui-form-item">
<label for="estimate_s_type" class="layui-form-label">
<span class="x-red">*</span>子类型</label>
<div class="layui-input-inline">
<input type="text" id="estimate_s_type" name="estimate_s_type" required="" lay-verify="estimate_s_type" 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="estimate_score" class="layui-form-label">
<span class="x-red">*</span>分值</label>
<div class="layui-input-inline">
<input type="text" id="estimate_score" name="estimate_score" required="" lay-verify="estimate_score" 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="estimate_name" class="layui-form-label">
<span class="x-red">*</span>项目名称</label>
<div class="layui-input-inline">
<input type="text" id="estimate_name" name="estimate_name" required="" lay-verify="estimate_name" 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="estimate_unit" class="layui-form-label">
<span class="x-red">*</span>单位</label>
<div class="layui-input-inline">
<input type="text" id="estimate_unit" name="estimate_unit" required="" lay-verify="estimate_unit" 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>
<div class="layui-form-item"> <div class="layui-form-item">
<label for="device_model" class="layui-form-label"> <label for="device_model" class="layui-form-label">
<span class="x-red">*</span>子类型</label> <span class="x-red">*</span>子类型</label>
@ -57,73 +139,173 @@
<span class="x-red">*</span>例如 “第一类:素质项目Ⅰ”,请根据当地实际叫法填写 <span class="x-red">*</span>例如 “第一类:素质项目Ⅰ”,请根据当地实际叫法填写
</div> </div>
</div> </div>
<div class="layui-form-item"> </div> -->
<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"> <div class="layui-form-item">
<label for="L_repass" class="layui-form-label"></label> <label for="L_repass" class="layui-form-label"></label>
<!-- <button class="layui-btn" lay-filter="add" lay-submit="">增加</button> --> <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> --> <!-- <button lay-filter="add" lay-submit="" v-on:click="asdaa">增加 {{num_test}}</button> -->
</div> </div>
</form> </form>
</div> </div>
</div> </div>
<script type="text/javascript" src="/x_admin/js/xcity.js"></script>
<script>
var address_arr = [];
var verify_arr = {};
layui.use(['form', 'code'], function () {
form = layui.form;
layui.code();
$('#city_list').xcity();
// $('#city_list').xcity('广东','广州市','东山区');//传默认值
form.on('select(type_big)', function(data){
console.log(data.value); //得到被选中的值
if(data.value == 1){
verify_arr = {
province: function(value) {
if (value == '') {
return '请选择区域';
}
},
estimate_s_type: function(value) {
if (value == '') {
return '请填写子类型';
}
},
estimate_score: function(value) {
if (value == '') {
return '请填写分值';
}
},
// version_num: [/[\d.]{0,9}$/, '版本号必须以大写V开头最多10个字符由数字跟英文"."组成)'],
estimate_name: function(value) {
if (value == '') {
return '请填写项目名称';
}
},
estimate_unit: function(value) {
if (value == '') {
return '请填写单位';
}
},
}
form.verify(verify_arr);
$('#type_big_content').show();
}else if(data.value == 2){
verify_arr = {}
$('#type_big_content').hide();
}else if(data.value == 3){
verify_arr = {}
$('#type_big_content').hide();
}else{
verify_arr = {}
$('#type_big_content').hide();
}
form.render();
// console.log(verify_arr)
});
//监听提交
form.on('submit(add)',function(data) {
//发异步把数据提交给php
// add_data()
return false;
});
});
// layui.use(['form', 'layer','jquery','code'],function() {
// $ = layui.jquery;
// 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 '必须填写蓝牙类型';
// }
// },
// });
// });
// 功能性~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function add_address(str,type){
if(type == 'province'){
if(str == '请选择'){
address_arr[0] = '';
address_arr[1] = '';
}else{
address_arr[0] = str;
address_arr[1] = '';
}
}else if(type == 'city'){
if(str == '请选择'){
address_arr[1] = '';
}else{
address_arr[1] = str;
}
}
console.log(address_arr)
var str_all = '';
var str_address = '';
for (let index = 0; index < address_arr.length; index++) {
if(address_arr[index] == ''){
str_address = ''
}else{
str_address = '<div class="layui-btn layui-btn-normal layui-btn-mini">'+ address_arr[index] +'</div>';
}
str_all = str_all + str_address;
}
$('#city_choose').html(str_all);
}
<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(){ $(document).ready(function(){
var form
var file_name_all = '' var file_name_all = ''
var file_name = '' var file_name = ''
var file_extension = '' var file_extension = ''
var pd = true var pd = true
$('#upload_file_app').on('change', function() { $('#upload_file_app').on('change', function() {
// 获取被选择的文件 // 获取被选择的文件
var fileInput = $(this)[0]; var fileInput = $(this)[0];
@ -199,46 +381,7 @@
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;
});
});
//加载提示开启 //加载提示开启

View File

@ -60,7 +60,7 @@
<div class="layui-card-header"> <div class="layui-card-header">
<!-- <button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量停用</button> --> <!-- <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('添加用户','/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> <button class="layui-btn" onclick="xadmin.open('添加版本','/estimate/estimate_add','100%','100%')"><i class="layui-icon"></i>添加</button>
</div> </div>
<div class="layui-card-body layui-table-body layui-table-main"> <div class="layui-card-body layui-table-body layui-table-main">
<table class="layui-table layui-form"> <table class="layui-table layui-form">

View File

@ -15,9 +15,6 @@ class Device extends Base{
################################################################接口################################################################ ################################################################接口################################################################
################################################################接口################################################################ ################################################################接口################################################################
// 获取系统设备列表 // 获取系统设备列表
public function device_data_list($data = ['token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ public function device_data_list($data = ['token'=>'0dafb98a10995c98b5a33b7d59d986ca']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
@ -79,6 +76,21 @@ class Device extends Base{
// unset($data['token']); // unset($data['token']);
return $this->device_unbinding_action($data); return $this->device_unbinding_action($data);
} }
// 获取设备详情
public function device_mac_get_content($data = ['mac'=>'26:FF:B3:2F:E7:D8','acd_id'=>'2','token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){
$data = input('post.');
}
if(!array_key_exists('mac', $data) || !array_key_exists('acd_id', $data) || !array_key_exists('token', $data)){
return $this->msg(10001);
}
cache($data['token'],time());
if($this->token_time_validate($data['token']) === false){
return $this->msg(20001);
}
return $this->device_mac_get_content_action($data);
}
################################################################业务接口################################################################ ################################################################业务接口################################################################
################################################################业务接口################################################################ ################################################################业务接口################################################################
@ -207,6 +219,32 @@ class Device extends Base{
return $this->msg(10002); return $this->msg(10002);
} }
} }
################################################device_mac_get_content
public function device_mac_get_content_action($data){
$user_id = Db::table('app_account_number')->where(['token'=>$data['token']])->field('id,token')->find();
// dump($user_id);
// die;
$result_device = Db::table('app_device_code_data')
->alias('adcd')
->join('app_device_data add','adcd.add_id = add.id','LEFT')
->where([
'adcd.machine_code'=>$data['mac'],
'add.acd_id'=>$data['acd_id'],
'adcd.bind_account_id'=>$user_id['id'],
'add.is_del'=>0,
'adcd.is_del'=>0,
])
->field('adcd.id,add.acd_id,add.name,add.pic,add.content,add.page_measure,add.bluetooth_type,add.device_model')
->find();
if($result_device){
unset($result_device['ROW_NUMBER']);
return $this->msg($result_device);
}else{
return $this->msg(10004);
}
}

View File

@ -176,7 +176,7 @@ class Index extends Base{
} }
// 获取指定用户详细信息 // 获取指定用户详细信息
public function get_user_data_information($data = ['aud_id'=>58,'token'=>'0dafb98a10995c98b5a33b7d59d986ca']){ public function get_user_data_information($data = ['aud_id'=>58,'token'=>'caadd1be045a65f30b92aa805f1de54a']){
if(count(input('post.')) > 0){ if(count(input('post.')) > 0){
$data = input('post.'); $data = input('post.');
} }
@ -187,11 +187,14 @@ class Index extends Base{
if(!array_key_exists('token', $data) || !array_key_exists('aud_id', $data)){ if(!array_key_exists('token', $data) || !array_key_exists('aud_id', $data)){
return $this->msg(10001); return $this->msg(10001);
} }
cache($data['token'],time());
if($this->token_time_validate($data['token']) === false){ if($this->token_time_validate($data['token']) === false){
return $this->msg(20001); return $this->msg(20001);
} }
unset($data['token']); unset($data['token']);
$result = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,aan_id,nickname,head_pic,birthday,gender,card_order,target_weight,initial_weight,initial_date')->find(); $result = Db::table('app_user_data')->where(['id'=>$data['aud_id']])->field('id,aan_id,nickname,head_pic,birthday,gender,card_order,target_weight,initial_weight,initial_date')->find();
// dump($result);
// die;
if(!$result){ if(!$result){
return $this->msg(10003); return $this->msg(10003);
} }
@ -224,8 +227,30 @@ class Index extends Base{
unset($result['target_weight']); unset($result['target_weight']);
unset($result['initial_weight']); unset($result['initial_weight']);
unset($result['initial_date']); unset($result['initial_date']);
// dump($result);
// 获取设备信息进入卡片 start
$result_device = Db::table('app_device_code_data')
->alias('adcd')
->join('app_device_data add','adcd.add_id = add.id','LEFT')
->where(['adcd.bind_account_id'=>$result['aan_id']])
->field('adcd.id,add.acd_id')
->select();
// dump($result_device);
// die; // die;
$device_arr = [];
foreach ($result_device as $key => $value) {
if(!in_array($value['acd_id'],$device_arr)){
array_push($device_arr,$value['acd_id']);
}
}
foreach ($result['card_data_list'] as $key => $value) {
if(in_array($value['acd_id'],$device_arr)){
$result['card_data_list'][$key]['device_determine'] = true;
}else{
$result['card_data_list'][$key]['device_determine'] = false;
}
}
// 获取设备信息进入卡片 end
return $this->msg($result); return $this->msg($result);
} }

View File

@ -177,8 +177,8 @@ Route::any('/device_binding', 'app/device/device_binding');
Route::any('/device_user_data_list', 'app/device/device_user_data_list'); Route::any('/device_user_data_list', 'app/device/device_user_data_list');
// 解绑系统设备 // 解绑系统设备
Route::any('/device_unbinding', 'app/device/device_unbinding'); Route::any('/device_unbinding', 'app/device/device_unbinding');
// // 获取估分历史详情 // 根据mac获取设备信息
// Route::any('/device_data_list', 'app/device/device_data_list'); Route::any('/device_mac_get_content', 'app/device/device_mac_get_content');
// // 计算并存储数据 // // 计算并存储数据
// Route::any('/device_data_list', 'app/device/device_data_list'); // Route::any('/device_data_list', 'app/device/device_data_list');
// ################################我的接口################################ // ################################我的接口################################

View File

@ -75,19 +75,25 @@
form.on('select(province)', function(data){ form.on('select(province)', function(data){
var pName = data.value; var pName = data.value;
$(data.elem).parents(".x-city").xcity(pName); $(data.elem).parents(".x-city").xcity(pName);
// province_value = pName
add_address(pName,'province')
}); });
form.on('select(city)', function(data){ form.on('select(city)', function(data){
var cName = data.value; var cName = data.value;
var pName = $(data.elem).parents(".x-city").find('select[lay-filter=province]').val(); var pName = $(data.elem).parents(".x-city").find('select[lay-filter=province]').val();
console.log(pName);
$(data.elem).parents(".x-city").xcity(pName,cName); $(data.elem).parents(".x-city").xcity(pName,cName);
add_address(cName,'city')
}); });
return this; return this;
} }
var provinceList = [ var provinceList = [
{name:'北京', cityList:[ {name:'请选择', cityList:[
{name:'请选择', areaList:[]},
{name:'请选择', areaList:[]}
]},
{name:'北京', cityList:[
{name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区']}, {name:'市辖区', areaList:['东城区','西城区','崇文区','宣武区','朝阳区','丰台区','石景山区','海淀区','门头沟区','房山区','通州区','顺义区','昌平区','大兴区','怀柔区','平谷区']},
{name:'县', areaList:['密云县','延庆县']} {name:'县', areaList:['密云县','延庆县']}
]}, ]},