admin_transfer_118

This commit is contained in:
dengbw
2022-01-18 11:26:56 +08:00
parent 7ac34dcd57
commit 14d81648ea
2 changed files with 160 additions and 64 deletions
+79 -52
View File
@@ -364,24 +364,7 @@ class Transfer extends HD_Controller
'feesTypeAry' => $this->mdTransfer->feesTypeAry(), 'feesBizList' => [], 'uidTypeAry' => $this->mdTransfer->uidTypeAry()];
$info = ['id' => 0, 'status' => 0, 'item_id' => 0, 'arti_id' => [], 'out_bak' => 0, 'in_bak' => 0, 'trailer_fees' => '', 'fees_city' => '', 'trailer_fees' => 0,
'fees_type' => 1, 'fees_biz_id' => '', 'transport' => ['name' => '', 'mobile' => '', 'cardid' => ''], 'reason' => ''];
//常用运输人
$transports = [];
$cache = &load_cache('redis');
$cache_transports = $cache->get($this->cacheKeyTransports);
if ($cache_transports) {
$time = date('Y-m-d', strtotime("-1 month"));
foreach ($cache_transports as $key => $value) {
if ($value['name'] && $value['time'] >= $time) {//小于1个月过期不显示
$transports[] = $value;
}
}
}
$cache->save($this->cacheKeyTransports, $transports);
if ($transports) {//按最近日期排序
$timeKey = array_column($transports, 'time');
array_multisort($timeKey, SORT_DESC, $transports);
}
$this->data['transports'] = $transports;//常用运输人员
$this->data['transports'] = $this->transports(['type' => 'get']);//运输人
$this->data['showInfo'] = $showInfo;
}
$this->data['info'] = $info;
@@ -442,24 +425,7 @@ class Transfer extends HD_Controller
}
}
$showInfo['takeCar'] = $takeCar;
//常用运输人
$transports = [];
$cache = &load_cache('redis');
$cache_transports = $cache->get($this->cacheKeyTransports);
if ($cache_transports) {//按最近日期排序
$time = date('Y-m-d', strtotime("-1 month"));
foreach ($cache_transports as $key => $value) {
if ($value['name'] && $value['time'] >= $time) {//小于1个月过期不显示
$transports[] = $value;
}
}
}
$cache->save($this->cacheKeyTransports, $transports);
if ($transports) {//按最近日期排序
$timeKey = array_column($transports, 'time');
array_multisort($timeKey, SORT_DESC, $transports);
}
$this->data['transports'] = $transports;//常用运输人员
$this->data['transports'] = $this->transports(['type' => 'get']);//运输人
$this->data['showInfo'] = $showInfo;
$this->data['info'] = $info;
$this->data['edit_url'] = '/items/transfer/edit_info';
@@ -590,22 +556,8 @@ class Transfer extends HD_Controller
//常用运输人员
$transport_name = $info['transport']['name'] ? trim($info['transport']['name']) : '';
$transport_mobile = $info['transport']['mobile'] ? trim($info['transport']['mobile']) : '';
if ($transport_name && $transport_mobile) {
$cache = &load_cache('redis');
$cache_transports = $cache->get($this->cacheKeyTransports);
$addTransports = true;
foreach ($cache_transports as $key => $value) {
if ($value['mobile'] == $transport_mobile) {
$value['time'] = date('Y-m-d');
$addTransports = false;
}
}
if ($addTransports) {
$info['transport']['time'] = date('Y-m-d');
$cache_transports[] = $info['transport'];
}
$cache->save($this->cacheKeyTransports, $cache_transports);
}
$transport_cardid = $info['transport']['cardid'] ? trim($info['transport']['cardid']) : '';
$this->transports(['name' => $transport_name, 'mobile' => $transport_mobile, 'cardid' => $transport_cardid]);
if ($info['status'] == -1) {
return $this->show_json(SYS_CODE_SUCCESS, '保存成功', "/items/transfer");
}
@@ -775,6 +727,19 @@ class Transfer extends HD_Controller
return $this->show_json(SYS_CODE_SUCCESS, '删除成功!');
}
/**
* Notes:运输人员操作
* Created on: 2022/1/18 11:24
* Created by: dengbw
*/
public function get_transport()
{
$params = $this->input->get();
$data = $this->transports($params);
print_r($data);
exit;
}
public function batch()
{
// TODO: Implement batch() method.
@@ -824,6 +789,68 @@ class Transfer extends HD_Controller
$this->excel->out_csv($data, $indexs, $fileName . "_" . date('YmdHis'));
}
private function transports($params)
{
$transports = [];
$cache = &load_cache('redis');
$cache_transports = $cache->get($this->cacheKeyTransports);
if ($params['type'] == 'all') {//所有运输人员
return $cache_transports;
} else if ($params['type'] == 'get') {//排序后的运输人员
$saveTransports = false;
if ($cache_transports) {//按最近日期排序
foreach ($cache_transports as $key => $value) {
if ($value['name']) {
$transports[] = $value;
} else {
$saveTransports = true;
}
}
}
$saveTransports && $cache->save($this->cacheKeyTransports, $transports);//名字有空重新更新
if ($transports) {//按最近日期排序
$timeKey = array_column($transports, 'time');
array_multisort($timeKey, SORT_DESC, $transports);
}
return $transports;
} else if ($params['type'] == 'del') {
if ($cache_transports) {
if (strlen($params['id'])) {//删除指定id
unset($cache_transports[$params['id']]);
$transports = $cache_transports;
} else {//删除指定的名字
foreach ($cache_transports as $key => $value) {
if ($value['name'] == $params['name']) {
} else {
$transports[] = $value;
}
}
}
$cache->save($this->cacheKeyTransports, $transports);
}
return $transports;
} else {//新增/更新运输人员
if (!$params['name'] || !$params['mobile'] || !$params['cardid']) {
return 0;
}
$addTransports = true;
foreach ($cache_transports as $key => $value) {
if ($value['cardid'] == $params['cardid']) {//身份证一样更新数据
$cache_transports[$key]['name'] = $params['name'];
$cache_transports[$key]['mobile'] = $params['mobile'];
$cache_transports[$key]['time'] = date('Y-m-d');
$addTransports = false;
}
}
if ($addTransports) {//新增
$cache_transports[] = ['name' => $params['name'], 'mobile' => $params['mobile']
, 'cardid' => $params['cardid'], 'time' => date('Y-m-d')];
}
$cache->save($this->cacheKeyTransports, $cache_transports);
return 1;
}
}
/**
* Notes:获取商品信息
* Created on: 2021/12/9 10:47
+81 -12
View File
@@ -12,7 +12,7 @@
</div>
</div>
</div>
<div class="am-form-group" v-if="showInfo.items_info.vin">
<div class="am-form-group" v-show="showInfo.items_info.vin">
<div class="coms-table-bd">
<table class="am-table am-table-bordered">
<thead>
@@ -37,7 +37,8 @@
</table>
</div>
</div>
<div class="am-panel am-panel-default" v-if="info.item_id">
<div class="am-panel am-panel-default" v-show="info.item_id">
<div class="am-panel-hd"><span style="font-size: 20px">调拨信息</span></div>
<div class="am-panel-bd am-g" style="margin-top: 10px;margin-bottom: 10px;">
<div class="am-form-group">
@@ -312,10 +313,24 @@
</div>
</template>
</div>
<div class="am-form-group">
<label class="am-para-label w100">运输人员:</label>
<div class="am-para-inline w120">
<input type="text" v-model="info.transport.name" placeholder="姓名">
<div class="sc-con relative">
<input id="keyword" type="text" v-model="info.transport.name" autocomplete="off"
placeholder="姓名" title="姓名"/>
<select id="transport_id" style="display: none">
<template v-for="(v,i) in transports">
<option :value="i">{{v.name}}</option>
</template>
</select>
<div class="scshopcon">
<template v-for="(v,i) in transports">
<a class="scshop-item" :data-id="i" href="javascript:">{{v.name}}</a>
</template>
</div>
</div>
</div>
<div class="am-para-inline w150">
<input type="text" v-model="info.transport.mobile" placeholder="电话">
@@ -324,13 +339,6 @@
<input type="text" v-model="info.transport.cardid" placeholder="身份证号码">
</div>
</div>
<div class="am-form-group" style="width: 80%;padding-left: 100px;">
常用运输人员:
<button v-for="(v,i) in transports" type="button" class="am-btn am-btn-default am-btn-sm"
style="margin-bottom: 3px;margin-right: 5px;" @click='chooseTransports(i);'>
{{v.name}}
</button>
</div>
<div class="am-form-group">
<label class="am-para-label w100">调拨理由:</label>
<div class="am-para-inline" style="width: 50%"><textarea rows="5" placeholder="请输入调拨理由"
@@ -352,7 +360,7 @@
vue_obj = new Vue({
el: '#vue-edit',
data: {
info: {'item_id': 0},
info: {'item_id': 0, 'transport': {}},
showInfo: {items_info: {'vin': ""}},
auto_article: {},
transports: [],
@@ -1057,5 +1065,66 @@
},
}
});
jQuery("body").on("click", function (e) {
if (jQuery(e.target).parents(".sc-con").length == 0) {
jQuery(".scshopcon").removeClass("active");
}
});
jQuery("input#keyword").focus(function () {
jQuery(this).siblings(".scshopcon").addClass("active");
});
jQuery("input#keyword").on("input propertychange", function () {
var sctx = jQuery("#keyword").val();
$(".scshopcon").html('');
jQuery(this).siblings(".scshopcon").addClass("active");
$('#transport_id option').each(function (i) {
text = $(this).text();
if (sctx.length < 0 || -1 != text.indexOf(sctx)) {
$(".scshopcon").append('<a class="scshop-item" data-id="' + $(this).val() + '" href="javascript:">' + text + '</a>');
}
});
});
jQuery(".scshopcon").on("click", ".scshop-item", function (e) {
jQuery(".scshopcon").removeClass("active");
var id = $(this).attr('data-id');
if (id) {
vue_obj.$data.info.transport.name = vue_obj.$data.transports[id].name;
vue_obj.$data.info.transport.mobile = vue_obj.$data.transports[id].mobile;
vue_obj.$data.info.transport.cardid = vue_obj.$data.transports[id].cardid;
}
});
});
</script>
</script>
<style type="text/css">
.scshopcon {
display: none;
position: absolute;
left: 0;
top: 37px;
width: 120px;
max-height: 235px;
background-color: #fff;
border: #ccc 1px solid;
border-top: none;
overflow-y: auto;
z-index: 10;
}
.scshopcon.active {
display: block;
}
.scshopcon .scshop-item {
display: block;
padding: 5px 10px;
border-bottom: #fafafa 1px solid;
font-size: 16px;
color: #555;
}
.scshopcon .scshop-item.active,
.scshopcon .scshop-item:hover {
background-color: #388aff;
color: #fff;
}
</style>