Commit 02b39e7e6a022743f18b761ae8e0b7805a0fca76
1 parent
41682b63
Exists in
master
app-ht
1. F 添加序列号和追加序列号可以导入mac地址
Showing
2 changed files
with
287 additions
and
43 deletions
Show diff stats
app-ht/modules/device/controllers/DeviceController.php
@@ -7,6 +7,7 @@ use yii\base\Exception; | @@ -7,6 +7,7 @@ use yii\base\Exception; | ||
7 | use yii\data\Pagination; | 7 | use yii\data\Pagination; |
8 | use app\ht\controllers\BaseController; | 8 | use app\ht\controllers\BaseController; |
9 | use common\helpers\Utils; | 9 | use common\helpers\Utils; |
10 | +use common\helpers\FileUtil; | ||
10 | use common\models\AdminLog as AdminLogModel; | 11 | use common\models\AdminLog as AdminLogModel; |
11 | use domain\device\DeviceAuthFailRepository; | 12 | use domain\device\DeviceAuthFailRepository; |
12 | use domain\device\models\DeviceAuthFail as DeviceAuthFailModel; | 13 | use domain\device\models\DeviceAuthFail as DeviceAuthFailModel; |
@@ -182,21 +183,41 @@ class DeviceController extends BaseController | @@ -182,21 +183,41 @@ class DeviceController extends BaseController | ||
182 | $model = $req->post('model'); | 183 | $model = $req->post('model'); |
183 | $production = $req->post('production'); | 184 | $production = $req->post('production'); |
184 | $num = $req->post('num'); | 185 | $num = $req->post('num'); |
186 | + $uploadPath = $req->post('upload_path'); | ||
187 | + $type = $req->post('type'); | ||
185 | $e = new stdClass(); | 188 | $e = new stdClass(); |
186 | $e->success = false; | 189 | $e->success = false; |
187 | $e->message = 'fail'; | 190 | $e->message = 'fail'; |
188 | - if (empty($num)) { | ||
189 | - $e->message = '数量不能为空'; | ||
190 | - return $this->renderJson($e); | ||
191 | - } | ||
192 | - if ($num *1 <= 0) { | ||
193 | - $e->message = '数量不能小于等于0'; | ||
194 | - return $this->renderJson($e); | 191 | + |
192 | + if (1 == $type) { | ||
193 | + if (empty($num)) { | ||
194 | + $e->message = '数量不能为空'; | ||
195 | + return $this->renderJson($e); | ||
196 | + } | ||
197 | + if ($num *1 <= 0) { | ||
198 | + $e->message = '数量不能小于等于0'; | ||
199 | + return $this->renderJson($e); | ||
200 | + } | ||
201 | + if (1 * $num > 10000) { | ||
202 | + $e->message = '数量不能超过1万'; | ||
203 | + return $this->renderJson($e); | ||
204 | + } | ||
195 | } | 205 | } |
196 | - if (1 * $num > 10000) { | ||
197 | - $e->message = '数量不能超过1万'; | ||
198 | - return $this->renderJson($e); | 206 | + $importMacs = []; |
207 | + if (2 == $type) { | ||
208 | + if (empty($uploadPath)) { | ||
209 | + $e->message = '请上传文件'; | ||
210 | + return $this->renderJson($e); | ||
211 | + } | ||
212 | + | ||
213 | + $importMacs = $this->getMacAddress($uploadPath); | ||
214 | + if (empty($importMacs)) { | ||
215 | + $e->message = '上传文件不合格'; | ||
216 | + return $this->renderJson($e); | ||
217 | + } | ||
218 | + $num = count($importMacs); | ||
199 | } | 219 | } |
220 | + | ||
200 | if (empty($manufacture) || empty($project) || empty($model) || empty($production)) { | 221 | if (empty($manufacture) || empty($project) || empty($model) || empty($production)) { |
201 | $e->message = '厂商,项目,型号,生产日期必填'; | 222 | $e->message = '厂商,项目,型号,生产日期必填'; |
202 | return $this->renderJson($e); | 223 | return $this->renderJson($e); |
@@ -247,9 +268,15 @@ class DeviceController extends BaseController | @@ -247,9 +268,15 @@ class DeviceController extends BaseController | ||
247 | $saveData = []; | 268 | $saveData = []; |
248 | $tt = time(); | 269 | $tt = time(); |
249 | for ($i = 1 ; $i <= $num; $i++) { | 270 | for ($i = 1 ; $i <= $num; $i++) { |
271 | + if (1 == $type) { | ||
272 | + $macAddress = Utils::macGenerate(); | ||
273 | + } else { | ||
274 | + $index = $i -1; | ||
275 | + $macAddress = isset($importMacs[$index])? $importMacs[$index]: Utils::macGenerate(); | ||
276 | + } | ||
250 | $saveData[] = [ | 277 | $saveData[] = [ |
251 | strtoupper($batchNo.sprintf('%04x', $i)), | 278 | strtoupper($batchNo.sprintf('%04x', $i)), |
252 | - Utils::macGenerate(), | 279 | + $macAddress, |
253 | 0, | 280 | 0, |
254 | $newBatchModel->id, | 281 | $newBatchModel->id, |
255 | 0, | 282 | 0, |
@@ -266,6 +293,7 @@ class DeviceController extends BaseController | @@ -266,6 +293,7 @@ class DeviceController extends BaseController | ||
266 | $saveData)->execute();//执行批量添加 | 293 | $saveData)->execute();//执行批量添加 |
267 | $transaction->commit(); | 294 | $transaction->commit(); |
268 | $e->success = true; | 295 | $e->success = true; |
296 | + $e->message = '成功生成'. $num.'个序列号'; | ||
269 | } catch (Exception $exception) { | 297 | } catch (Exception $exception) { |
270 | $transaction->rollBack(); | 298 | $transaction->rollBack(); |
271 | $e->message = '创建失败'; | 299 | $e->message = '创建失败'; |
@@ -1029,14 +1057,42 @@ class DeviceController extends BaseController | @@ -1029,14 +1057,42 @@ class DeviceController extends BaseController | ||
1029 | $req = Yii::$app->request; | 1057 | $req = Yii::$app->request; |
1030 | $batchId = $req->post('batch_id'); | 1058 | $batchId = $req->post('batch_id'); |
1031 | $appendNum = $req->post('append_num'); | 1059 | $appendNum = $req->post('append_num'); |
1060 | + $type = $req->post('type'); | ||
1061 | + $uploadPath = $req->post('upload_path'); | ||
1032 | $e = new stdClass(); | 1062 | $e = new stdClass(); |
1033 | $e->success = false; | 1063 | $e->success = false; |
1034 | $e->message = 'fail'; | 1064 | $e->message = 'fail'; |
1035 | - if (empty($appendNum)) { | ||
1036 | - $e->message = '追加数量不能为0'; | ||
1037 | - return $this->renderJson($e); | 1065 | + |
1066 | + if (1 == $type) { | ||
1067 | + if (empty($appendNum)) { | ||
1068 | + $e->message = '数量不能为空'; | ||
1069 | + return $this->renderJson($e); | ||
1070 | + } | ||
1071 | + if ($appendNum *1 <= 0) { | ||
1072 | + $e->message = '数量不能小于等于0'; | ||
1073 | + return $this->renderJson($e); | ||
1074 | + } | ||
1075 | + if (1 * $appendNum > 10000) { | ||
1076 | + $e->message = '数量不能超过1万'; | ||
1077 | + return $this->renderJson($e); | ||
1078 | + } | ||
1079 | + } | ||
1080 | + $importMacs = []; | ||
1081 | + if (2 == $type) { | ||
1082 | + if (empty($uploadPath)) { | ||
1083 | + $e->message = '请上传文件'; | ||
1084 | + return $this->renderJson($e); | ||
1085 | + } | ||
1086 | + | ||
1087 | + $importMacs = $this->getMacAddress($uploadPath); | ||
1088 | + if (empty($importMacs)) { | ||
1089 | + $e->message = '上传文件不合格'; | ||
1090 | + return $this->renderJson($e); | ||
1091 | + } | ||
1092 | + $appendNum = count($importMacs); | ||
1038 | } | 1093 | } |
1039 | 1094 | ||
1095 | + | ||
1040 | $batchModel = CreateBatchRepository::findOne(['id' => $batchId]); | 1096 | $batchModel = CreateBatchRepository::findOne(['id' => $batchId]); |
1041 | if (empty($batchModel)) { | 1097 | if (empty($batchModel)) { |
1042 | $e->message = '未找到批次'; | 1098 | $e->message = '未找到批次'; |
@@ -1063,9 +1119,15 @@ class DeviceController extends BaseController | @@ -1063,9 +1119,15 @@ class DeviceController extends BaseController | ||
1063 | } | 1119 | } |
1064 | 1120 | ||
1065 | for ($i = 1 ; $i <= $appendNum; $i++) { | 1121 | for ($i = 1 ; $i <= $appendNum; $i++) { |
1122 | + if (1 == $type) { | ||
1123 | + $macAddress = Utils::macGenerate(); | ||
1124 | + } else { | ||
1125 | + $index = $i -1; | ||
1126 | + $macAddress = isset($importMacs[$index])? $importMacs[$index]: Utils::macGenerate(); | ||
1127 | + } | ||
1066 | $saveData[] = [ | 1128 | $saveData[] = [ |
1067 | strtoupper($batchNo.sprintf('%04X', ($no1 * 1) + $i)), | 1129 | strtoupper($batchNo.sprintf('%04X', ($no1 * 1) + $i)), |
1068 | - Utils::macGenerate(), | 1130 | + $macAddress, |
1069 | 0, | 1131 | 0, |
1070 | $batchId, | 1132 | $batchId, |
1071 | 0, | 1133 | 0, |
@@ -1082,7 +1144,7 @@ class DeviceController extends BaseController | @@ -1082,7 +1144,7 @@ class DeviceController extends BaseController | ||
1082 | $saveData)->execute();//执行批量添加 | 1144 | $saveData)->execute();//执行批量添加 |
1083 | $trans->commit(); | 1145 | $trans->commit(); |
1084 | $e->success = true; | 1146 | $e->success = true; |
1085 | - $e->message = 'ok'; | 1147 | + $e->message = '成功追加了'.$appendNum.'个序列号'; |
1086 | 1148 | ||
1087 | return $this->renderJson($e); | 1149 | return $this->renderJson($e); |
1088 | } catch (Exception $exception) { | 1150 | } catch (Exception $exception) { |
@@ -1107,4 +1169,74 @@ class DeviceController extends BaseController | @@ -1107,4 +1169,74 @@ class DeviceController extends BaseController | ||
1107 | 1169 | ||
1108 | return $this->renderJson($e); | 1170 | return $this->renderJson($e); |
1109 | } | 1171 | } |
1172 | + | ||
1173 | + /** | ||
1174 | + * @return string | ||
1175 | + */ | ||
1176 | + public function actionUploadMac() | ||
1177 | + { | ||
1178 | + $e = new stdClass(); | ||
1179 | + $e->success = false; | ||
1180 | + $e->path = ''; | ||
1181 | + | ||
1182 | + if (empty($_FILES['file']['name'])) { | ||
1183 | + $e->message = "请选择文件进行上传"; | ||
1184 | + return $this->renderJson($e); | ||
1185 | + } | ||
1186 | + $file_size = $_FILES['file']['size']; | ||
1187 | + if ($file_size > 5 * 1024 * 1024) { | ||
1188 | + $e->message = "文件过大,不能上传大于5M的文件"; | ||
1189 | + return $this->renderJson($e); | ||
1190 | + } | ||
1191 | + $file_name = strtolower($_FILES['file']['name']); | ||
1192 | + $file_type = substr($file_name, strrpos($file_name, '.') + 1); | ||
1193 | + if ($file_type != "txt") { | ||
1194 | + $e->message = "文件类型只能为" . $file_type; | ||
1195 | + return $this->renderJson($e); | ||
1196 | + } | ||
1197 | + | ||
1198 | + $temp_name = $_FILES['file']['tmp_name']; | ||
1199 | + $fileHandle = fopen($temp_name, "r"); | ||
1200 | + $contents = fread($fileHandle, filesize($temp_name)); | ||
1201 | + fclose($fileHandle); | ||
1202 | + | ||
1203 | + if (empty($contents)) { | ||
1204 | + $e->message = '文件为空'; | ||
1205 | + } else { | ||
1206 | + $dir = Yii::getAlias('@app/ht') . "/web/tmp"; | ||
1207 | + FileUtil::createDir($dir); | ||
1208 | + $saveFilePath = $dir.'/mac_'.time().mt_rand(1000, 9999).'_.txt'; | ||
1209 | + $saveFileHandle = fopen($saveFilePath, "a"); | ||
1210 | + fwrite($saveFileHandle, $contents); | ||
1211 | + fclose($saveFileHandle); | ||
1212 | + | ||
1213 | + $e->success = true; | ||
1214 | + $e->message = 'ok'; | ||
1215 | + $e->path = $saveFilePath; | ||
1216 | + } | ||
1217 | + | ||
1218 | + return $this->renderJson($e); | ||
1219 | + } | ||
1220 | + | ||
1221 | + /** | ||
1222 | + * @param $pathFile | ||
1223 | + * @return array|null | ||
1224 | + */ | ||
1225 | + private function getMacAddress($pathFile) | ||
1226 | + { | ||
1227 | + $fileHandle = fopen($pathFile, "r"); | ||
1228 | + $macList = []; | ||
1229 | + while(!feof($fileHandle)) { | ||
1230 | + $macList [] = fgets($fileHandle); | ||
1231 | + } | ||
1232 | + fclose($fileHandle); | ||
1233 | + $returnMac = []; | ||
1234 | + foreach ($macList as $k => $v) { | ||
1235 | + if (preg_match('/^[0-9a-fA-F:]{12,18}$/', $v)) { | ||
1236 | + $returnMac[] = strtoupper(trim($v)); | ||
1237 | + } | ||
1238 | + } | ||
1239 | + | ||
1240 | + return $returnMac; | ||
1241 | + } | ||
1110 | } | 1242 | } |
1111 | \ No newline at end of file | 1243 | \ No newline at end of file |
app-ht/modules/device/views/device/createDevice.php
@@ -15,6 +15,12 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | @@ -15,6 +15,12 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | ||
15 | .create-div .form-group{padding:1rem 0} | 15 | .create-div .form-group{padding:1rem 0} |
16 | .create-div .full-width{width:100%;} | 16 | .create-div .full-width{width:100%;} |
17 | .combo-select{max-width:100% !important;} | 17 | .combo-select{max-width:100% !important;} |
18 | + .source-cls{padding:1rem 0.5rem; box-sizing: border-box;} | ||
19 | + .source-cls .add_way, | ||
20 | + .source-cls .append_way{margin-left:1rem;} | ||
21 | + .source-cls .upload-cls{position: relative;width:100px;display: inline-block;cursor: pointer} | ||
22 | + .source-cls .upload-cls-txt{position: absolute;top:0;left:0;width: 100%;display: inline; padding: 0.5rem 0;text-align: center;} | ||
23 | + .source-cls .file-upload-cls{background-color:rgba(0,0,0,0);opacity: 0;max-width: 100px;position: absolute;top: 0;left: 0;z-index: 222;padding: 0.5rem;} | ||
18 | </style> | 24 | </style> |
19 | <div class="panel panel-default"> | 25 | <div class="panel panel-default"> |
20 | <div class="panel-body form-inline create-div"> | 26 | <div class="panel-body form-inline create-div"> |
@@ -73,9 +79,20 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | @@ -73,9 +79,20 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | ||
73 | </div> | 79 | </div> |
74 | </div> | 80 | </div> |
75 | <div class="form-group col-sm-12"> | 81 | <div class="form-group col-sm-12"> |
76 | - <label for="production" class="col-sm-4 control-label text-right">数量:</label> | 82 | + <label for="production" class="col-sm-4 control-label text-right">来源:</label> |
77 | <div class="col-sm-4 form-inline"> | 83 | <div class="col-sm-4 form-inline"> |
78 | - <input type="number" class="form-control full-width" id="num" name="num" value="" autocomplete="off"> | 84 | + <div class="source-cls" style="padding-top: 0;"> |
85 | + 自动生成 | ||
86 | + <input type="number" class="form-control" style="max-width: 100px;" id="num" name="num" value="" placeholder="例如:20" autocomplete="off"> | ||
87 | + <input type="radio" class="form-control add_way" name="add_way" value="1" checked/> | ||
88 | + </div> | ||
89 | + | ||
90 | + <div class="source-cls"> | ||
91 | + 导入文件 | ||
92 | + <span class="upload-cls form-control" ><input type="file" style="max-width: 100px;" class="file-upload-cls" id="file_num" name="file" disabled><span class="upload-cls-txt">点击上传</span></span><input type="radio" class="form-control add_way" name="add_way" value="2" /> | ||
93 | + <input type="hidden" value="" id="upload_path"> <span style="color:#cc0000">(格式是txt,每行一个mac地址,5M以内)</span> | ||
94 | + </div> | ||
95 | + | ||
79 | </div> | 96 | </div> |
80 | </div> | 97 | </div> |
81 | 98 | ||
@@ -86,7 +103,6 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | @@ -86,7 +103,6 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | ||
86 | 103 | ||
87 | </div> | 104 | </div> |
88 | 105 | ||
89 | - | ||
90 | <div role="tabpanel" class="tab-pane" id="append"> | 106 | <div role="tabpanel" class="tab-pane" id="append"> |
91 | <form action="" id="append-form" class="filter-form"> | 107 | <form action="" id="append-form" class="filter-form"> |
92 | <div class="form-group col-sm-12"> | 108 | <div class="form-group col-sm-12"> |
@@ -96,9 +112,21 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | @@ -96,9 +112,21 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | ||
96 | </div> | 112 | </div> |
97 | </div> | 113 | </div> |
98 | <div class="form-group col-sm-12"> | 114 | <div class="form-group col-sm-12"> |
99 | - <label for="append_num" class="col-sm-4 control-label text-right">追加数量:</label> | 115 | + <label for="append_num" class="col-sm-4 control-label text-right">来源:</label> |
100 | <div class="col-sm-4 form-inline"> | 116 | <div class="col-sm-4 form-inline"> |
101 | - <input type="number" class="form-control full-width" id="append_num" name="append_num" value="" autocomplete="off"> | 117 | + |
118 | + <div class="source-cls" style="padding-top: 0;"> | ||
119 | + 追加生成 | ||
120 | + <input type="number" class="form-control" style="max-width: 100px;" id="append_num" name="append_num" value="" placeholder="例如:20" autocomplete="off"> | ||
121 | + <input type="radio" class="form-control append_way" name="append_way" value="1" checked/> | ||
122 | + </div> | ||
123 | + | ||
124 | + <div class="source-cls"> | ||
125 | + 导入文件 | ||
126 | + <span class="upload-cls form-control" ><input type="file" style="max-width: 100px;" class="file-upload-cls" id="append_file_num" name="file" disabled><span class="upload-cls-txt">点击上传</span></span><input type="radio" class="form-control append_way" name="append_way" value="2" /> <span style="color:#cc0000">(格式是txt,每行一个mac地址,5M以内)</span> | ||
127 | + <input type="hidden" value="" id="append_upload_path"> | ||
128 | + </div> | ||
129 | + | ||
102 | </div> | 130 | </div> |
103 | </div> | 131 | </div> |
104 | 132 | ||
@@ -115,7 +143,7 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | @@ -115,7 +143,7 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | ||
115 | </div> | 143 | </div> |
116 | 144 | ||
117 | </div> | 145 | </div> |
118 | - | 146 | +<script src="<?= Yii::$app->request->baseUrl . "/exts/base/1.0.0/ui/ajaxfileupload/ajaxfileupload-1.0.0.js"?>"></script> |
119 | <script src="<?= Yii::$app->request->baseUrl . "/exts/combo-select/js/jquery.combo.select.js"?>"></script> | 147 | <script src="<?= Yii::$app->request->baseUrl . "/exts/combo-select/js/jquery.combo.select.js"?>"></script> |
120 | <link rel="stylesheet" type="text/css" href="<?= Yii::$app->request->baseUrl . "/exts/combo-select/css/combo.select.css"?>" /> | 148 | <link rel="stylesheet" type="text/css" href="<?= Yii::$app->request->baseUrl . "/exts/combo-select/css/combo.select.css"?>" /> |
121 | <script type="text/javascript"> | 149 | <script type="text/javascript"> |
@@ -123,6 +151,7 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | @@ -123,6 +151,7 @@ CssFiles::register($this, 'exts/showimg/css/showimg.css'); | ||
123 | var saveUrl = "<?=Url::toRoute('/device/device/do-create-device')?>"; | 151 | var saveUrl = "<?=Url::toRoute('/device/device/do-create-device')?>"; |
124 | var getBatchSelectUrl = "<?=Url::toRoute('/device/device/get-batch-select')?>"; | 152 | var getBatchSelectUrl = "<?=Url::toRoute('/device/device/get-batch-select')?>"; |
125 | var appendSerialUrl = "<?=Url::toRoute('/device/device/append-serial-no')?>"; | 153 | var appendSerialUrl = "<?=Url::toRoute('/device/device/append-serial-no')?>"; |
154 | + var upLoadURL = "<?=Url::toRoute('/device/device/upload-mac')?>"; | ||
126 | $(function() { | 155 | $(function() { |
127 | 156 | ||
128 | function selectAll(id) { | 157 | function selectAll(id) { |
@@ -222,14 +251,24 @@ $(function() { | @@ -222,14 +251,24 @@ $(function() { | ||
222 | alert('请选生产日期'); | 251 | alert('请选生产日期'); |
223 | return false; | 252 | return false; |
224 | } | 253 | } |
225 | - //production = production.split('_'); | 254 | + |
255 | + var type = $('.add_way:checked').val(); | ||
226 | var num = $('#num').val(); | 256 | var num = $('#num').val(); |
227 | - var par = /^[0-9]+$/; | ||
228 | - if (par.test(num) && (num > 0)) { | ||
229 | - // 合法的 | ||
230 | - } else { | ||
231 | - alert('请录入大于0的整数'); | ||
232 | - return false; | 257 | + if (1 == type) { |
258 | + var par = /^[0-9]+$/; | ||
259 | + if (par.test(num) && (num > 0)) { | ||
260 | + // 合法的 | ||
261 | + } else { | ||
262 | + alert('请录入大于0的整数'); | ||
263 | + return false; | ||
264 | + } | ||
265 | + } | ||
266 | + var uploadPath = $('#upload_path').val(); | ||
267 | + if (2 == type) { | ||
268 | + if ("" == uploadPath || null == uploadPath) { | ||
269 | + alert('请上传文件'); | ||
270 | + return false; | ||
271 | + } | ||
233 | } | 272 | } |
234 | 273 | ||
235 | var params = { | 274 | var params = { |
@@ -237,14 +276,16 @@ $(function() { | @@ -237,14 +276,16 @@ $(function() { | ||
237 | project: project, | 276 | project: project, |
238 | model: model, | 277 | model: model, |
239 | production: production, | 278 | production: production, |
240 | - num: num | 279 | + num: num, |
280 | + type:type, | ||
281 | + upload_path:uploadPath | ||
241 | } | 282 | } |
242 | $.post(saveUrl, params, function(res) { | 283 | $.post(saveUrl, params, function(res) { |
243 | if (!res.success) { | 284 | if (!res.success) { |
244 | alert(res.message); | 285 | alert(res.message); |
245 | return false; | 286 | return false; |
246 | } | 287 | } |
247 | - alert('成功生成'+params.num +'个序列号'); | 288 | + alert(res.message); |
248 | window.location.href = '<?=Url::toRoute('/datas/device/index')?>' | 289 | window.location.href = '<?=Url::toRoute('/datas/device/index')?>' |
249 | }, 'json') | 290 | }, 'json') |
250 | }) | 291 | }) |
@@ -256,21 +297,37 @@ $(function() { | @@ -256,21 +297,37 @@ $(function() { | ||
256 | alert('请选择批次'); | 297 | alert('请选择批次'); |
257 | return false; | 298 | return false; |
258 | } | 299 | } |
259 | - var par = /^[0-9]+$/; | ||
260 | - if (par.test(append_num) && (append_num > 0)) { | ||
261 | - // 合法的 | ||
262 | - } else { | ||
263 | - alert('请录入大于0的整数'); | ||
264 | - return false; | ||
265 | - } | ||
266 | 300 | ||
267 | - if (append_num*1 > 3000) { | ||
268 | - alert('追加数量不要超过3000'); | ||
269 | - return false; | 301 | + var type = $('.append_way:checked').val(); |
302 | + if (1 == type) { | ||
303 | + var par = /^[0-9]+$/; | ||
304 | + if (par.test(append_num) && (append_num > 0)) { | ||
305 | + // 合法的 | ||
306 | + } else { | ||
307 | + alert('请录入大于0的整数'); | ||
308 | + return false; | ||
309 | + } | ||
310 | + if (append_num*1 > 3000) { | ||
311 | + alert('追加数量不要超过3000'); | ||
312 | + return false; | ||
313 | + } | ||
314 | + } | ||
315 | + var uploadPath = $('#append_upload_path').val(); | ||
316 | + if (2 == type) { | ||
317 | + if ("" == uploadPath || null == uploadPath) { | ||
318 | + alert('请上传文件'); | ||
319 | + return false; | ||
320 | + } | ||
270 | } | 321 | } |
271 | - $.post(appendSerialUrl,{batch_id:batch_id, append_num:append_num}, function(ajaxRes){ | 322 | + |
323 | + $.post(appendSerialUrl,{ | ||
324 | + batch_id:batch_id, | ||
325 | + append_num:append_num, | ||
326 | + type:type, | ||
327 | + upload_path:uploadPath | ||
328 | + }, function(ajaxRes){ | ||
272 | if (ajaxRes.success) { | 329 | if (ajaxRes.success) { |
273 | - alert('成功追加'+append_num+'个序列号'); | 330 | + alert(ajaxRes.message); |
274 | window.location.href = '<?=Url::toRoute('/datas/device/index')?>' | 331 | window.location.href = '<?=Url::toRoute('/datas/device/index')?>' |
275 | } else { | 332 | } else { |
276 | alert(ajaxRes.message); | 333 | alert(ajaxRes.message); |
@@ -278,5 +335,60 @@ $(function() { | @@ -278,5 +335,60 @@ $(function() { | ||
278 | }, 'json') | 335 | }, 'json') |
279 | }) | 336 | }) |
280 | 337 | ||
338 | + $('.add_way').click(function(e){ | ||
339 | + var type = $(this).val(); | ||
340 | + if (1 == type) { | ||
341 | + $('#num').removeAttr('disabled'); | ||
342 | + $('#file_num').prop('disabled', true); | ||
343 | + } else { | ||
344 | + $('#file_num').removeAttr('disabled'); | ||
345 | + $('#num').prop('disabled', true); | ||
346 | + } | ||
347 | + }) | ||
348 | + | ||
349 | + $('#file_num').change(function(){ | ||
350 | + $.ajaxFileUpload({ | ||
351 | + url: upLoadURL, | ||
352 | + fileElementId: "file_num", | ||
353 | + dataType: "json", | ||
354 | + success: function (res) { | ||
355 | + if (res.success) { | ||
356 | + $('#upload_path').val(res.path); | ||
357 | + alert('成功上传'); | ||
358 | + } else { | ||
359 | + $('#upload_path').val(''); | ||
360 | + alert(res.message); | ||
361 | + } | ||
362 | + }, | ||
363 | + }); | ||
364 | + }) | ||
365 | + | ||
366 | + $('.append_way').click(function(e){ | ||
367 | + var type = $(this).val(); | ||
368 | + if (1 == type) { | ||
369 | + $('#append_num').removeAttr('disabled'); | ||
370 | + $('#append_file_num').prop('disabled', true); | ||
371 | + } else { | ||
372 | + $('#append_file_num').removeAttr('disabled'); | ||
373 | + $('#append_num').prop('disabled', true); | ||
374 | + } | ||
375 | + }) | ||
376 | + | ||
377 | + $('#append_file_num').change(function(){ | ||
378 | + $.ajaxFileUpload({ | ||
379 | + url: upLoadURL, | ||
380 | + fileElementId: "append_file_num", | ||
381 | + dataType: "json", | ||
382 | + success: function (res) { | ||
383 | + if (res.success) { | ||
384 | + $('#append_upload_path').val(res.path); | ||
385 | + alert('成功上传'); | ||
386 | + } else { | ||
387 | + $('#append_upload_path').val(''); | ||
388 | + alert(res.message); | ||
389 | + } | ||
390 | + }, | ||
391 | + }); | ||
392 | + }) | ||
281 | }) | 393 | }) |
282 | </script> | 394 | </script> |