update autocomplete choose staff

This commit is contained in:
dongpd 2020-12-21 16:57:30 +07:00
parent 5bb7d519fc
commit df644d539d
9 changed files with 133 additions and 40 deletions

View File

@ -159,7 +159,7 @@ class ApiController extends Controller {
} }
public function actionResetData() { public function actionResetData() {
return file_get_contents("https://bischool.beetai.com/view/image/5f7c1b22dfe5aaf427a6dfa1"); // return file_get_contents("https://bischool.beetai.com/view/image/5f7c1b22dfe5aaf427a6dfa1");
\Yii::$app->db->createCommand()->truncateTable('capture_logs')->execute(); \Yii::$app->db->createCommand()->truncateTable('capture_logs')->execute();
\Yii::$app->db->createCommand()->truncateTable('list_management')->execute(); \Yii::$app->db->createCommand()->truncateTable('list_management')->execute();
} }

View File

@ -8,6 +8,7 @@ use app\models\CaptureLogsSearch;
use yii\web\Controller; use yii\web\Controller;
use yii\web\NotFoundHttpException; use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter; use yii\filters\VerbFilter;
use app\models\ListManagement;
/** /**
* CaptureLogsController implements the CRUD actions for CaptureLogs model. * CaptureLogsController implements the CRUD actions for CaptureLogs model.
@ -43,17 +44,17 @@ class CaptureLogsController extends Controller {
$dataProvider->query->andWhere(["BETWEEN", "capture_logs.time", $f, $t]); $dataProvider->query->andWhere(["BETWEEN", "capture_logs.time", $f, $t]);
$dataProvider->query->orderBy(["time" => SORT_DESC]); $dataProvider->query->orderBy(["time" => SORT_DESC]);
$tempConfig = json_decode(file_get_contents("http://localhost:4004/ReadEngineConfig", false, stream_context_create([ // $tempConfig = json_decode(file_get_contents("http://localhost:4004/ReadEngineConfig", false, stream_context_create([
'http' => [ // 'http' => [
'header' => "Content-Type: application/json", // 'header' => "Content-Type: application/json",
'method' => "POST" // 'method' => "POST"
] // ]
])), true); // ])), true);
$data = json_decode($tempConfig['data'], true); // $data = json_decode($tempConfig['data'], true);
$last = \app\models\ListManagement::find()->orderBy(['id' => SORT_DESC])->limit(1)->one(); // $last = \app\models\ListManagement::find()->orderBy(['id' => SORT_DESC])->limit(1)->one();
if (!is_object($last)) // if (!is_object($last))
$last = (object) ['id' => 0]; // $last = (object) ['id' => 0];
$idAuto = $data['data']['box_id'] . "_" . ($last->id + 1); // $idAuto = $data['data']['box_id'] . "_" . ($last->id + 1);
return $this->render('index', [ return $this->render('index', [
'searchModel' => $searchModel, 'searchModel' => $searchModel,
@ -61,7 +62,8 @@ class CaptureLogsController extends Controller {
'statusArray' => CaptureLogs::$statusArray, 'statusArray' => CaptureLogs::$statusArray,
'f' => $f, 'f' => $f,
't' => $t, 't' => $t,
'idAuto' => $idAuto // 'idAuto' => $idAuto,
"staffArray" => ListManagement::staffArray()
]); ]);
} }

View File

@ -50,17 +50,17 @@ class ListManagementController extends Controller {
$dataProvider->query->andWhere(["gender" => $gender]); $dataProvider->query->andWhere(["gender" => $gender]);
$dataProvider->query->orderBy(["time" => SORT_DESC]); $dataProvider->query->orderBy(["time" => SORT_DESC]);
$tempConfig = json_decode(file_get_contents("http://localhost:4004/ReadEngineConfig", false, stream_context_create([ // $tempConfig = json_decode(file_get_contents("http://localhost:4004/ReadEngineConfig", false, stream_context_create([
'http' => [ // 'http' => [
'header' => "Content-Type: application/json", // 'header' => "Content-Type: application/json",
'method' => "POST" // 'method' => "POST"
] // ]
])), true); // ])), true);
$data = json_decode($tempConfig['data'], true); // $data = json_decode($tempConfig['data'], true);
$last = \app\models\ListManagement::find()->orderBy(['id' => SORT_DESC])->limit(1)->one(); // $last = \app\models\ListManagement::find()->orderBy(['id' => SORT_DESC])->limit(1)->one();
if (!is_object($last)) // if (!is_object($last))
$last = (object) ['id' => 0]; // $last = (object) ['id' => 0];
$idAuto = $data['data']['box_id'] . "_" . ($last->id + 1); // $idAuto = $data['data']['box_id'] . "_" . ($last->id + 1);
return $this->render('index', [ return $this->render('index', [
'searchModel' => $searchModel, 'searchModel' => $searchModel,
'dataProvider' => $dataProvider, 'dataProvider' => $dataProvider,
@ -68,7 +68,8 @@ class ListManagementController extends Controller {
't' => $t, 't' => $t,
'typeArray' => ListManagement::$typeArray, 'typeArray' => ListManagement::$typeArray,
'genderArray' => ListManagement::$genderArray, 'genderArray' => ListManagement::$genderArray,
'idAuto' => $idAuto // 'idAuto' => $idAuto,
"staffArray" => ListManagement::staffArray()
]); ]);
} }
@ -382,7 +383,7 @@ class ListManagementController extends Controller {
'type' => "wl", 'type' => "wl",
'name' => $data['name'], 'name' => $data['name'],
'image' => json_encode($ft), 'image' => json_encode($ft),
'gender' => "", 'gender' => "Male",
'birthday' => "", 'birthday' => "",
'telephone' => "", 'telephone' => "",
'address' => $data['department'] 'address' => $data['department']
@ -451,4 +452,19 @@ class ListManagementController extends Controller {
} }
} }
public function actionChooseStaff() {
if (Yii::$app->request->post()) {
$post = Yii::$app->request->post();
$staff = ListManagement::findOne(['code' => $post['code']]);
Yii::$app->response->format = "json";
return [
"name" => $staff->name,
"gender" => $staff->gender,
"birthday" => date("d/m/Y", $staff->birthday),
"telephone" => $staff->telephone,
"department" => $staff->address
];
}
}
} }

View File

@ -107,4 +107,13 @@ class ListManagement extends \yii\db\ActiveRecord {
return $res; return $res;
} }
public static function staffArray() {
$res = [];
$ls = self::find()->all();
foreach ($ls as $key => $value) {
$res[$value->code] = $value->code . " - " . $value->name;
}
return $res;
}
} }

View File

@ -14,6 +14,12 @@
.table-striped > tbody > tr:nth-of-type(odd){ .table-striped > tbody > tr:nth-of-type(odd){
background-color: rgb(210, 210, 210); background-color: rgb(210, 210, 210);
} }
.select2-container {
width: 100% !important;
}
.select2-container--default .select2-selection--single, .select2-selection .select2-selection--single{
border-color: green;
}
</style> </style>
<div class="row"> <div class="row">
<div class="col-md-10" style="max-height: 850px;overflow-y: auto;"> <div class="col-md-10" style="max-height: 850px;overflow-y: auto;">
@ -99,7 +105,10 @@
<div class="row"> <div class="row">
<div class="col-md-4 text-right">ID</div> <div class="col-md-4 text-right">ID</div>
<div class="col-md-8"> <div class="col-md-8">
<input type="text" name="Code" value="{$idAuto}"> <select name='Code' id='Code' onchange="chooseStaff(this);" data-href="{Url::to("/list-management/choose-staff")}">
<option value=""></option>
{html_options options=$staffArray}
</select>
</div> </div>
</div> </div>
<div class="row"> <div class="row">

View File

@ -65,7 +65,8 @@
'headerOptions' => ['class' => 'text-center'], 'headerOptions' => ['class' => 'text-center'],
'value' => \app\helpers\CaptureLogsGrid::birthday() 'value' => \app\helpers\CaptureLogsGrid::birthday()
], ],
'listManagement.address' 'listManagement.address',
'sync_status'
] ]
])} ])}
</div> </div>

View File

@ -25,8 +25,13 @@
background-color: red; background-color: red;
color: #fff; color: #fff;
} }
.select2-container {
width: 100% !important;
}
.select2-container--default .select2-selection--single, .select2-selection .select2-selection--single{
border-color: green;
}
</style> </style>
<input type="hidden" value="{$idAuto}" name="isAuto">
<input type="hidden" value="{Url::to(["/list-management/add"])}" name="create_url"> <input type="hidden" value="{Url::to(["/list-management/add"])}" name="create_url">
<input type="hidden" value="{Url::to(["/list-management/update"])}" name="update_url"> <input type="hidden" value="{Url::to(["/list-management/update"])}" name="update_url">
<input type="hidden" value="{Url::to(["/list-management/sync-feature"])}" name="sync_feature_url"> <input type="hidden" value="{Url::to(["/list-management/sync-feature"])}" name="sync_feature_url">
@ -144,9 +149,9 @@
</div> </div>
<hr style="border-top: 1px solid #000;"> <hr style="border-top: 1px solid #000;">
<div class="text-center"> <div class="text-center">
<button class="btn btn-info" onclick="_form();"> {*<button class="btn btn-info" onclick="_form();">
<i class="fa fa-plus-circle"></i> Thêm mới <i class="fa fa-plus-circle"></i> Thêm mới
</button> </button>*}
<button class="btn btn-info" onclick="_syncFromServerForm(this);" data-href="{Url::to(['/list-management/sync-from-server'])}"> <button class="btn btn-info" onclick="_syncFromServerForm(this);" data-href="{Url::to(['/list-management/sync-from-server'])}">
<i class="fa fa-download"></i> Đồng bộ từ máy chủ <i class="fa fa-download"></i> Đồng bộ từ máy chủ
</button> </button>
@ -203,10 +208,13 @@
</select> </select>
</div> </div>
</div> </div>
<div class="row"> <div class="row hidden">
<div class="col-md-4 text-right">ID</div> <div class="col-md-4 text-right">ID</div>
<div class="col-md-8"> <div class="col-md-8">
<input type="text" name="Code"> <select name='Code' id='Code' onchange="chooseStaff(this);" data-href="{Url::to("/list-management/choose-staff")}">
<option value=""></option>
{html_options options=$staffArray}
</select>
</div> </div>
</div> </div>
<div class="row"> <div class="row">

View File

@ -1,6 +1,7 @@
$(function () { $(function () {
common.dateTimePickerByClass("datepicker", "HH:mm DD/MM/YYYY"); common.dateTimePickerByClass("datepicker", "HH:mm DD/MM/YYYY");
common.dateTimePickerDay("birthday"); common.dateTimePickerDay("birthday");
$("#Code").select2();
}); });
function _search(e) { function _search(e) {
@ -18,9 +19,9 @@ function _close() {
} }
function _save(e) { function _save(e) {
var code = $("input[name='Code']").val(); var code = $("select[name='Code']").val();
if (code === "") { if (code === "") {
alert("Hãy nhập mã đối tượng!"); alert("Hãy chọn đối tượng!");
return; return;
} }
var name = $("input[name='Name']").val(); var name = $("input[name='Name']").val();
@ -52,3 +53,26 @@ function _save(e) {
} }
}); });
} }
function chooseStaff(e) {
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
code: $(e).val()
},
success: function (data) {
common.modalBlock(false);
$("input[name='Name']").val(data.name);
$("select[name='Gender']").val(data.gender);
$("input[name='Birthday']").val(data.birthday);
$("input[name='Telephone']").val(data.telephone);
$("input[name='Address']").val(data.department);
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
}

View File

@ -15,6 +15,7 @@ $(function () {
} }
}); });
btnImage(); btnImage();
$("#Code").select2();
}); });
function _search(e) { function _search(e) {
@ -60,7 +61,7 @@ function _formModified(e) {
success: function (data) { success: function (data) {
common.modalBlock(false); common.modalBlock(false);
$("select[name='Type']").val(data.type); $("select[name='Type']").val(data.type);
$("input[name='Code']").val(data.code); $("select[name='Code']").val(data.code);
$("input[name='Name']").val(data.name); $("input[name='Name']").val(data.name);
$("select[name='Gender']").val(data.gender); $("select[name='Gender']").val(data.gender);
$("input[name='Birthday']").val(data.birthday); $("input[name='Birthday']").val(data.birthday);
@ -78,9 +79,9 @@ function _formModified(e) {
} }
function _update(e) { function _update(e) {
var code = $("input[name='Code']").val(); var code = $("select[name='Code']").val();
if (code === "") { if (code === "") {
alert("Hãy nhập mã đối tượng!"); alert("Hãy chọn đối tượng!");
return; return;
} }
var name = $("input[name='Name']").val(); var name = $("input[name='Name']").val();
@ -241,9 +242,9 @@ function btnImage() {
} }
function _create(e) { function _create(e) {
var code = $("input[name='Code']").val(); var code = $("select[name='Code']").val();
if (code === "") { if (code === "") {
alert("Hãy nhập mã đối tượng!"); alert("Hãy chọn đối tượng!");
return; return;
} }
var name = $("input[name='Name']").val(); var name = $("input[name='Name']").val();
@ -461,3 +462,26 @@ function updateFeature() {
} }
}); });
} }
function chooseStaff(e) {
common.modalBlock(true);
$.ajax({
url: $(e).attr("data-href"),
type: 'POST',
data: {
code: $(e).val()
},
success: function (data) {
common.modalBlock(false);
$("input[name='Name']").val(data.name);
$("select[name='Gender']").val(data.gender);
$("input[name='Birthday']").val(data.birthday);
$("input[name='Telephone']").val(data.telephone);
$("input[name='Address']").val(data.department);
},
error: function (jqXHR, textStatus, errorThrown) {
common.modalBlock(false);
common.ajaxError();
}
});
}