Prechádzať zdrojové kódy

Merge branch 'zzd'

# Conflicts:
#	resources/views/process/index.blade.php
LD 5 rokov pred
rodič
commit
ad7e920c63

+ 1 - 3
app/Http/Controllers/ProcessController.php

@@ -1004,7 +1004,7 @@ class ProcessController extends Controller
             if (!is_object($owner)){
                 $str = $owner;
                 if (!$str) throw new \Exception('未找到货主!');
-                $owner=Owner::where('code',$str)->orWhere('name',$str)->first();
+                $owner=Owner::query()->where('code',$str)->orWhere('name',$str)->first();
                 if (!$owner){
                     $owner = Owner::create([
                         'code' => $str,
@@ -1121,7 +1121,6 @@ class ProcessController extends Controller
 
     public function validatorProcessContent(array $processContent){
         $validator=Validator::make($processContent,[
-            'wms_code'=>['required'],
             'commodity_id'=>['required','integer'],
             'bill_type'=>['required'],
             'amount'=>['required','min:0','max:999999','integer']
@@ -1131,7 +1130,6 @@ class ProcessController extends Controller
             'integer'=>':attribute 必须为整数',
             'max'=>':attribute 输入值过大',
         ],[
-            'wms_code'=>'单据号',
             'commodity_id'=>'商品',
             'bill_type'=>'单据类型',
             'amount'=>'商品数量',

+ 2 - 2
database/migrations/2020_03_25_164101_create_processes_additional_bills_table.php

@@ -15,7 +15,7 @@ class CreateProcessesAdditionalBillsTable extends Migration
      */
     public function up()
     {
-        Schema::create('processes_additional_bills', function (Blueprint $table) {
+        Schema::create('processes_contents', function (Blueprint $table) {
             $table->bigIncrements('id');
             $table->bigInteger('process_id')->index()->comment('外键二次加工单');
             $table->string('wms_code')->index()->comment('单据号');
@@ -32,6 +32,6 @@ class CreateProcessesAdditionalBillsTable extends Migration
      */
     public function down()
     {
-        Schema::dropIfExists('processes_additional_bills');
+        Schema::dropIfExists('processes_contents');
     }
 }

+ 32 - 0
database/migrations/2020_08_12_143542_change_processes_contents_column_wms_code.php

@@ -0,0 +1,32 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeProcessesContentsColumnWmsCode extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('processes_contents',function (Blueprint $table){
+            $table->string('wms_code')->nullable()->change();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('processes_contents',function (Blueprint $table){
+            $table->string('wms_code')->nullable(false)->change();
+        });
+    }
+}

+ 100 - 16
resources/js/queryForm/header.js

@@ -1,26 +1,37 @@
-require('../utilities/sort.js');
-const header = function (object) {
+window.sort=require('../utilities/sort');
+window.Header = function getHeader(object) {
+    this.object = object;
     this._header = object.el || '#header';
     this._column = object.column;
     this._data = object.data;
+    this._restorationColumn = object.restorationColumn;
+    this._fixedTop = object.fixedTop || 0;
 
     let _this = this;
     let _parentNode = $(_this._header);
     let sortType = {};
     let columnArr = [];
     // form fixed
-    function parentNodeFloat() {
+    let _headerParent = $(_this._header+"Parent");
+    let _parentNodeTemp = _parentNode.clone();
+    function fixed() {
         let _parentNode_top = _parentNode.offset().top;
         let height = _parentNode.height();
-        window.onscroll = function () {
+        _parentNodeTemp.css('position',"fixed");
+        _parentNodeTemp.css('top',_this._fixedTop+"px");
+        _parentNodeTemp.css('z-index',"1030");
+        _parentNodeTemp.css('width',_headerParent.width()+"px");
+        _parentNodeTemp.height(height);
+        _parentNodeTemp.attr('id',_this._header+"Temp");
+        $(_this._header+"Roll").append(_parentNodeTemp).removeClass('d-none');
+        $(window).scroll(function(){
             let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
             if (scrollTop > _parentNode_top) {
-                _parentNode.addClass('fixed-top');
-                _parentNode.height(height);
+                $(_this._header+"Roll").removeClass('d-none');
             } else {
-                _parentNode.removeClass('fixed-top');
+                $(_this._header+"Roll").addClass('d-none');
             }
-        }
+        });
     }
 
     /**
@@ -37,26 +48,99 @@ const header = function (object) {
             if (column.customization){
                 _parentNode.append(column.dom);
             }else{
-                let _td = "<th";
-                if (column.style) _td += " style='"+column.style+"'"
-                _td += ">"+column.value;
+                let _td = "<th id='sort_"+column.name+"' style='";
+                if(!column.neglect){
+                    _td += "cursor: pointer;"
+                }
+                if (column.style) _td += column.style;
+                _td += "'>";
+                if(!column.neglect){
+                    _td += "<span class='fa fa-sort'></span>";
+                }
+                _td += column.value;
                 _td += "</th>";
                 _parentNode.append(_td);
+                let column_dom = $('#sort_'+column.name);
+                let column_dom_temp = column_dom.clone();
+                column_dom_temp.attr('id','#sort_'+column.name+"_temp");
+                column_dom_temp.width(column_dom.width());
+                _parentNodeTemp.append(column_dom_temp);
                 if (!column.neglect){
-                    $(_td).click(function () {
+                    let rule=function () {
                         if (!sortType[column.name]){
                             sortType[column.name] = 'asc';
                             columnArr.push(column.name);
+                            column_dom.removeClass('fa-sort').addClass('fa-sort-asc');
+                            column_dom_temp.removeClass('fa-sort').addClass('fa-sort-asc');
+                            let columnArrTemp = [];
+                            columnArrTemp.push.apply(columnArrTemp,columnArr);
+                            window.sort.sort(_this._data,columnArrTemp,sortType);
+                            return ;
+                        }
+                        if (sortType[column.name] === 'asc'){
+                            sortType[column.name] = 'desc';
+                            column_dom.removeClass('fa-sort-asc').addClass('fa-sort-desc');
+                            column_dom_temp.removeClass('fa-sort-asc').addClass('fa-sort-desc');
+                            let columnArrTemp = [];
+                            columnArrTemp.push.apply(columnArrTemp,columnArr);
+                            window.sort.sort(_this._data,columnArrTemp,sortType);
+                            return ;
                         }
-                        if (sortType[column.name] === 'asc') sortType[column.name] = 'desc';
                         if (sortType[column.name] === 'desc'){
                             delete sortType[column.name];
-                            delete columnArr[column.name];
+                            columnArr.some(function (name, index) {
+                                if (name === column.name){
+                                    columnArr.splice(index,1);
+                                    return true;
+                                }
+                            });
+                            column_dom.removeClass('fa-sort-desc').addClass('fa-sort');
+                            column_dom_temp.removeClass('fa-sort-desc').addClass('fa-sort');
+                            if (columnArr.length === 0){
+                                //希尔排序
+                                let arr = [];
+                                arr.push.apply(arr,_this._data);
+                                let len = arr.length;
+                                for(let gap = Math.floor(len / 2); gap > 0; gap = Math.floor(gap / 2)) {
+                                    for(let i = gap; i < len; i++) {
+                                        let j = i;
+                                        let current = arr[i];
+                                        while(j - gap >= 0 && current[_this._restorationColumn] < arr[j - gap][_this._restorationColumn]) {
+                                            arr[j] = arr[j - gap];
+                                            j = j - gap;
+                                        }
+                                        arr[j] = current;
+                                    }
+                                }
+                                //插入排序
+                                /*let preIndex, current;
+                                for(let i = 1; i < len; i++) {
+                                    preIndex = i - 1;
+                                    current = arr[i];
+                                    while(preIndex >= 0 && arr[preIndex][_this._restorationColumn] > current[_this._restorationColumn]) {
+                                        arr[preIndex + 1] = arr[preIndex];
+                                        preIndex--;
+                                    }
+                                    arr[preIndex + 1] = current;
+                                }*/
+                                _this._data.length = 0;
+                                _this._data.push.apply(_this._data,arr);
+                                return;
+                            }
+                            let columnArrTemp = [];
+                            columnArrTemp.push.apply(columnArrTemp,columnArr);
+                            window.sort.sort(_this._data,columnArrTemp,sortType);
+                            return ;
                         }
-                        sort(_this._data,columnArr,sortType);
-                    });
+                    };
+                    column_dom.on('click',rule);
+                    column_dom_temp.on('click',rule);
                 }
             }
         });
     }
+    this.init = function() {
+        append();
+        fixed();
+    }
 };

+ 2 - 2
resources/js/queryForm/queryForm.js

@@ -84,7 +84,7 @@ const query = function getQueryForm(data) {
     function parentNodeFloat() {
         _parentNode_top = _parentNode.offset().top;
         let height = _parentNode.height();
-        window.onscroll = function () {
+        $(window).scroll(function(){
             let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
             if (scrollTop > _parentNode_top) {
                 _form.addClass('fixed-top');
@@ -92,7 +92,7 @@ const query = function getQueryForm(data) {
             } else {
                 _form.removeClass('fixed-top');
             }
-        }
+        });
     }
 
     // add  hide div (on submit form )

+ 61 - 57
resources/js/utilities/sort.js

@@ -1,62 +1,66 @@
-var result = [];
-var type = {};
-function parse(array , column , i) {
-    let data = {};
-    data['0']='';data['1']='';data['2']='';data['3']='';data['4']='';data['5']='';data['6']='';data['7']='';data['8']='';
-    data['9']='';data['a']='';data['b']='';data['c']='';data['d']='';data['e']='';data['f']='';data['g']='';data['h']='';
-    data['i']='';data['j']='';data['k']='';data['l']='';data['m']='';data['n']='';data['o']='';data['p']='';data['q']='';
-    data['r']='';data['s']='';data['t']='';data['u']='';data['v']='';data['w']='';data['x']='';data['y']='';data['z']='';
-    data['A']='';data['B']='';data['C']='';data['D']='';data['E']='';data['F']='';data['G']='';data['H']='';data['I']='';
-    data['J']='';data['K']='';data['L']='';data['M']='';data['N']='';data['O']='';data['P']='';data['Q']='';data['R']='';
-    data['S']='';data['T']='';data['U']='';data['V']='';data['W']='';data['X']='';data['Y']='';data['Z']='';
-    array.forEach(function (obj) {
-        if (!data[obj[column].charAt(i)])  data[obj[column].charAt(i)] = [obj];
-        else data[obj[column].charAt(i)].push(obj);
-    });
-    let recursion=[];
-    for (let key in data){
-        if (!data[key]){
-            delete data[key];
-            continue;
-        }
-        if (data[key].length > 1){
-            if ( !(!data[key].some(function (value, index) {
-                return value[column] !== data[key][0][column];
-            }))){
-                recursion.push(key);
+const  sortData = {
+    result : [],
+    type : {},
+    parse(array , column , i) {
+        let _this=this;
+        let data = {};
+        data['0']='';data['1']='';data['2']='';data['3']='';data['4']='';data['5']='';data['6']='';data['7']='';data['8']='';
+        data['9']='';data['a']='';data['b']='';data['c']='';data['d']='';data['e']='';data['f']='';data['g']='';data['h']='';
+        data['i']='';data['j']='';data['k']='';data['l']='';data['m']='';data['n']='';data['o']='';data['p']='';data['q']='';
+        data['r']='';data['s']='';data['t']='';data['u']='';data['v']='';data['w']='';data['x']='';data['y']='';data['z']='';
+        data['A']='';data['B']='';data['C']='';data['D']='';data['E']='';data['F']='';data['G']='';data['H']='';data['I']='';
+        data['J']='';data['K']='';data['L']='';data['M']='';data['N']='';data['O']='';data['P']='';data['Q']='';data['R']='';
+        data['S']='';data['T']='';data['U']='';data['V']='';data['W']='';data['X']='';data['Y']='';data['Z']='';
+        array.forEach(function (obj) {
+            if (!data[obj[column].charAt(i)])  data[obj[column].charAt(i)] = [obj];
+            else data[obj[column].charAt(i)].push(obj);
+        });
+        let recursion=[];
+        for (let key in data){
+            if (!data[key]){
+                delete data[key];
+                continue;
+            }
+            if (data[key].length > 1){
+                if ( !(!data[key].some(function (value, index) {
+                    return value[column] !== data[key][0][column];
+                }))){
+                    recursion.push(key);
+                }
             }
         }
-    }
-    if (recursion.length > 0){
-        i++;
-        recursion.forEach(function (key) {
-            data[key] = this.parse(data[key] ,column , i);
-        });
-    }
-    return data;
-}
+        if (recursion.length > 0){
+            i++;
+            recursion.forEach(function (key) {
+                data[key] = _this.parse(data[key] ,column , i);
+            });
+        }
+        return data;
+    },
 
-function sort(array, column ,type, i=0 ) {
-    result = [];
-    this.type = type;
-    if (!Array.isArray(column)) column = [column];
-    let columnName = column[0];
-    column.splice(0,1);
-    merge(parse(array, columnName, i), column, columnName);
-    array.length = 0;
-    array.push.apply(array,result);
-}
+    sort:function(array, column ,type, i=0 ) {
+        this.result = [];
+        this.type = type;
+        //if (!Array.isArray(column)) column = [column];
+        let columnName = column[0];
+        column.splice(0,1);
+        this.merge(this.parse(array, columnName, i), column, columnName);
+        array.length = 0;
+        array.push.apply(array,this.result);
+    },
 
-function merge(object, subordinate = [] ,columnName = '') {
-    for (let key in object){
-        if (Array.isArray(object[key])){
-            if (object[key].length > 1 && subordinate.length > 0){
-                let subordinateName = subordinate[0];
-                subordinate.splice(0,1);
-                object[key] = merge(parse(object[key], subordinateName, 0), subordinate, subordinateName);
-            }
-            if (this.type[columnName] === 'asc') result.push.apply(result,object[key]);
-            else result.unshift.apply(result,object[key]);
-        }else merge(object[key], [] ,columnName);
+    merge(object, subordinate = [] ,columnName = '') {
+        for (let key in object){
+            if (Array.isArray(object[key])){
+                if (object[key].length > 1 && subordinate.length > 0){
+                    let subordinateName = subordinate[0];
+                    subordinate.splice(0,1);
+                    object[key] = this.merge(this.parse(object[key], subordinateName, 0), subordinate, subordinateName);
+                }
+                if (this.type[columnName] === 'asc') this.result.push.apply(this.result,object[key]);
+                else this.result.unshift.apply(this.result,object[key]);
+            }else this.merge(object[key], [] ,columnName);
+        }
     }
-}
+};
+module.exports=sortData;

+ 0 - 7
resources/sass/text.scss

@@ -49,12 +49,5 @@
     user-select: none;
 }
 .fa-sort {
-    cursor: pointer;
     opacity: 0.3;
-}
-.fa-sort-up{
-    cursor: pointer;
-}
-.fa-sort-down{
-    cursor: pointer;
 }

+ 3 - 1
resources/views/process/create.blade.php

@@ -14,7 +14,7 @@
                                 <div class="row modal-title font-weight-bold w-100 text-nowrap ml-1 noselect" id="pasteDataTitle">
                                     <span v-for="(row,i) in rows" draggable="true"
                                           @drop="drop($event,i)" @dragover="dragover($event)" @dragstart="dragstart($event,i)"
-                                          :class="row=='货主' || row=='品名' || row=='数量' || row=='SKU' ? 'text-danger' : ''"
+                                          :class="row=='货主' || row=='单据' || row=='品名' || row=='数量' || row=='SKU' ? 'text-danger' : ''"
                                           class="col-2 border" style="cursor: move">@{{ row }}</span>
                                 </div>
                             </div>
@@ -621,6 +621,8 @@
                                         _this.processContents.push(processContent);
                                         _this.commodityIds.push(processContent.commodity_id+"_"+processContent.type);
                                         if (!processContent.type) sum += Number(processContent.amount);
+                                        if (processContent.owner_id && !_this.process.owner_id)
+                                            _this.process.owner_id = processContent.owner_id;
                                     }
                                 });
                                 _this.sum += sum;

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 465 - 454
resources/views/process/index.blade.php


+ 2 - 2
webpack.mix.js

@@ -12,7 +12,7 @@ const mix = require('laravel-mix');
  */
 
 mix.js('resources/js/app.js', 'public/js')
-    .sass('resources/sass/app.scss', 'public/css/app200806.css');
+    .sass('resources/sass/app.scss', 'public/css/app200811.css');
 mix.copy('resources/sass/fonts/','public/fonts');
 mix.copy('resources/icon','public/icon');
 mix.copy('resources/images','public/images');
@@ -21,5 +21,5 @@ mix.js('resources/js/trix.js','public/js/trix.js');
 mix.copy('resources/sass/trix.css','public/css/trix.css');
 mix.copy('resources/js/queryForm/queryForm.js','public/js/queryForm/queryForm200806.js');
 mix.copy('resources/js/queryForm/export.js','public/js/queryForm/export200804.js');
-mix.copy('resources/js/utilities/sort.js','public/js/utilities/sort200810.js');
+mix.js('resources/js/queryForm/header.js','public/js/queryForm/header.js');
 

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov