| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628 |
- @extends('layouts.app')
- @section('title')编辑-用户@endsection
- @section('content')
- <div class="container-fluid" id="editPanel">
- <div class="card">
- <div class="card-body">
- @if(Session::has('successTip'))
- <div class="alert alert-success h1">{{Session::get('successTip')}}!</div>
- @endif
- <form method="POST" action='{{url("maintenance/user/{$user->id}")}}'>
- @csrf
- @method('PUT')
- <div class="form-group row">
- <label for="name" class="col-2 col-form-label text-right">用户名</label>
- <div class="col-8">
- <input type="text" class="form-control @error('name') is-invalid @enderror"
- name="name" autocomplete="off" value="@if(old('name')){{old('name')}}@else{{$user->name}}@endif" required>
- @error('name')
- <span class="invalid-feedback" role="alert">
- <strong>{{ $message }}</strong>
- </span>
- @enderror
- </div>
- </div>
- <div class="form-group row">
- <label for="email" class="col-2 col-form-label text-right">邮箱</label>
- <div class="col-8">
- <input type="text" class="form-control @error('email') is-invalid @enderror"
- name="email" autocomplete="off" value="@if(old('email')){{old('email')}}@else{{$user->email}}@endif" required>
- @error('email')
- <span class="invalid-feedback" role="alert">
- <strong>{{ $message }}</strong>
- </span>
- @enderror
- </div>
- </div>
- <div class="form-group row">
- <label for="email" class="col-2 col-form-label text-right">手机号</label>
- <div class="col-8">
- <input type="text" class="form-control @error('phone') is-invalid @enderror"
- name="phone" autocomplete="off" value="@if(old('phone')){{old('phone')}}@else{{$user->userDetail ? $user->userDetail->mobile_phone : ''}}@endif">
- @error('phone')
- <span class="invalid-feedback" role="alert">
- <strong>{{ $message }}</strong>
- </span>
- @enderror
- </div>
- </div>
- <div class="form-group row">
- <label for="userWorkgroup" class="col-2 col-form-label text-right">工作组</label>
- <div class="col-8">
- <select class="form-control" name="userWorkgroupID" id="userWorkgroupID" v-model="userWorkgroupID">
- <option v-for="userWorkgroup in userWorkgroups" :value="userWorkgroup.id">@{{ userWorkgroup.name }}</option>
- </select>
- </div>
- </div>
- <div class="form-group row">
- <label for="role" class="col-md-3 col-form-label text-md-right">角色</label>
- <div class="col-md-7">
- <input type="text" class="form-control tooltipTarget" placeholder="定位角色"
- @input="seekRole($event)" title="输入关键词快速定位"></div>
- </div>
- <div class="form-group row">
- <label class="col-md-3"></label>
- <div class="col-md-4">
- <input name="role" hidden v-model="roles" >
- <div class="input-group" style="max-height: 190px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
- <ul class="list-group tooltipTarget" style="width: 100%" onselectstart="return false;">
- <li :data-original-title="role.style ? '双击删除角色' :'双击添加角色'" v-for="role in rolesFilter" :id="role.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedRole(role)" :class="role.style ? 'active' :''"><span style="cursor: default;" :id="role.name"> @{{ role.name }} </span></li>
- </ul>
- </div>
- </div>
- <div class="col-md-3">
- <div class="input-group" style="max-height: 190px; overflow-y: scroll;border-radius:5px;text-align: center;">
- <ul class="list-group" style="width: 100%" onselectstart="return false;">
- <li title="双击删除角色" v-for="role in rolesList" :id="role.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedRole(role)" ><span style="cursor: default;" > @{{ role.name }} </span></li>
- </ul>
- </div>
- </div>
- </div>
- <hr class="col-8 offset-2 border-info">
- {{--承运商--}}
- <div class="form-group row">
- <label for="logistic" class="col-md-3 col-form-label text-md-right">可见承运商</label>
- <div class="col-md-7">
- <input type="text" class="form-control tooltipTarget" placeholder="定位承运商"
- @input="seekLogistic($event)" title="输入关键词快速定位"></div>
- </div>
- <div class="form-group row">
- <label class="col-md-3"></label>
- <div class="col-md-4">
- <input name="logistic" hidden v-model="logistics" >
- <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
- <ul class="list-group tooltipTarget" style="width: 100%" onselectstart="return false;">
- <li :data-original-title="logistic.style ? '双击删除承运商' :'双击添加承运商'" v-for="logistic in logisticsFilter" :id="logistic.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedLogistic(logistic)" :class="logistic.style ? 'active' :''"><span style="cursor: default;" > @{{ logistic.name }} </span></li>
- </ul>
- </div>
- </div>
- <div class="col-md-3">
- <input name="logistic" hidden v-model="logistics" >
- <div class="input-group" style="max-height: 150px; overflow-y: scroll;border-radius:5px;text-align: center;">
- <ul class="list-group" style="width: 100%" onselectstart="return false;">
- <li title="双击删除承运商" v-for="logistic in logisticsList" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedLogistic(logistic)" ><span style="cursor: default;" > @{{ logistic.name }} </span></li>
- </ul>
- </div>
- </div>
- </div>
- <hr class="col-8 offset-2 border-info">
- <div class="form-group row">
- <label for="supplier" class="col-md-3 col-form-label text-md-right">供应商</label>
- <div class="col-md-7">
- <input type="text" class="form-control tooltipTarget" placeholder="定位供应商"
- @input="seekSupplier($event)" title="输入关键词快速定位"></div>
- </div>
- <div class="form-group row">
- <label class="col-md-3"></label>
- <div class="col-md-4">
- <input name="supplier" hidden v-model="suppliers" >
- <div class="input-group" style="max-height: 190px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
- <ul class="list-group tooltipTarget" style="width: 100%" onselectstart="return false;">
- <li :data-original-title="supplier.style ? '双击删除供应商' :'双击添加供应商'" v-for="supplier in suppliersFilter" :id="supplier.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedSupplier(supplier)" :class="supplier.style ? 'active' :''"><span style="cursor: default;" :id="supplier.name"> @{{ supplier.name }} </span></li>
- </ul>
- </div>
- </div>
- <div class="col-md-3">
- <div class="input-group" style="max-height: 190px; overflow-y: scroll;border-radius:5px;text-align: center;">
- <ul class="list-group" style="width: 100%" onselectstart="return false;">
- <li title="双击删除供应商" v-for="supplier in suppliersList" :id="supplier.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedSupplier(supplier)" ><span style="cursor: default;" > @{{ supplier.name }} </span></li>
- </ul>
- </div>
- </div>
- </div>
- {{-- 货主分组开始--}}
- <hr class="col-8 offset-2 border-info">
- <div class="form-group row">
- <label for="supplier" class="col-md-3 col-form-label text-md-right">货主分组</label>
- <div class="col-md-7">
- <input type="text" class="form-control tooltipTarget" placeholder="定位货主组"
- @input="seekOwnerGroup($event)" title="输入关键词快速定位"></div>
- </div>
- <div class="form-group row">
- <label class="col-md-3"></label>
- <div class="col-md-4">
- <input name="ownerGroup" hidden v-model="ownerGroups" >
- <div class="input-group" style="max-height: 190px; overflow-y: scroll;border-radius:5px;opacity:0.5;text-align: center;">
- <ul class="list-group tooltipTarget" style="width: 100%" onselectstart="return false;">
- <li :data-original-title="ownerGroup.style ? '双击删除货主组' :'双击添加货主组'" v-for="ownerGroup in ownerGroupsFilter" :id="ownerGroup.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedOwnerGroup(ownerGroup)" :class="ownerGroup.style ? 'active' :''"><span style="cursor: default;" :id="ownerGroup.name"> @{{ ownerGroup.name }} </span></li>
- </ul>
- </div>
- </div>
- <div class="col-md-3">
- <div class="input-group" style="max-height: 190px; overflow-y: scroll;border-radius:5px;text-align: center;">
- <ul class="list-group" style="width: 100%" onselectstart="return false;">
- <li title="双击删除货主组" v-for="ownerGroup in ownerGroupsList" :id="ownerGroup.name" class="list-group-item list-group-item-action pt-0 pb-0"
- @dblclick="selectedOwnerGroup(ownerGroup)" ><span style="cursor: default;" > @{{ ownerGroup.name }} </span></li>
- </ul>
- </div>
- </div>
- </div>
- {{-- 货主分组结束--}}
- <hr class="col-8 offset-2 border-info">
- <div class="form-group row">
- <div class="col-8 offset-2">
- <input type="submit" class="btn btn-outline-dark form-control">
- </div>
- </div>
- </form>
- </div>
- </div>
- </div>
- @endsection
- @section('lastScript')
- <script>
- let vueList=new Vue({
- el:"#editPanel",
- data:{
- userWorkgroupID:'{{old('userWorkgroupID')??($userWorkgroup?$userWorkgroup->id:'')}}',
- userWorkgroups:[
- @foreach($userWorkgroups as $userWorkgroup)
- {!! $userWorkgroup !!},
- @endforeach
- ],
- rolesAll:[
- @foreach( $rolesAll as $role )
- {id:'{{$role->id}}',name:'{{$role->name}}',style:false},
- @endforeach
- ],
- rolesFilter:[
- @foreach( $rolesAll as $role )
- {id:'{{$role->id}}',name:'{{$role->name}}',style:false},
- @endforeach
- ],
- roles:[
- @if(old('role'))
- {{ old('role') }}
- @else
- @foreach( $roles as $role )
- {{$role->id}},
- @endforeach
- @endif
- ],
- rolesList:[],
- logisticsAll:[
- @foreach($logistics as $logistic)
- {id:'{{$logistic->id}}',name:'{{$logistic->name}}',style:false},
- @endforeach
- ],
- logistics:[
- @if(old('logistic'))
- {{ old('logistic') }}
- @else
- @foreach( $logisticUser as $logistic )
- {{$logistic->id}},
- @endforeach
- @endif
- ],
- logisticsFilter:[
- @foreach($logistics as $logistic)
- {id:'{{$logistic->id}}',name:'{{$logistic->name}}',style:false},
- @endforeach
- ],
- logisticsList:[],
- suppliersAll: [
- @foreach($suppliers as $supplier)
- {id: '{{$supplier->id}}', name: '{{$supplier->name}}', style: false},
- @endforeach
- ],
- suppliersFilter: [
- @foreach($suppliers as $supplier)
- {id: '{{$supplier->id}}', name: '{{$supplier->name}}', style: false},
- @endforeach
- ],
- suppliers: [
- @if(old('supplier'))
- {{ old('supplier') }}
- @else
- @foreach( $supplierUser as $supplier )
- {{$supplier->id}},
- @endforeach
- @endif
- ],
- suppliersList: [],
- ownerGroupsAll: [
- @foreach($ownerGroups as $ownerGroup)
- {id: '{{$ownerGroup->id}}', name: '{{$ownerGroup->name}}', style: false},
- @endforeach
- ],
- ownerGroupsFilter: [
- @foreach($ownerGroups as $ownerGroup)
- {id: '{{$ownerGroup->id}}', name: '{{$ownerGroup->name}}', style: false},
- @endforeach
- ],
- ownerGroups: [
- @if(old('ownerGroup'))
- {{ old('ownerGroup') }}
- @else
- @foreach( $ownerGroup as $group )
- {{$group->id??''}},
- @endforeach
- @endif
- ],
- ownerGroupsList: [],
- },
- mounted:function(){
- $(".tooltipTarget").tooltip({'trigger':'hover'});
- if (this.roles.length>0){
- let rolesAll=this.rolesAll;
- let roles=this.roles;
- let rolesList=this.rolesList;
- for (let i = 0; i < roles.length; i++) {
- rolesAll.every(function (roleAll) {
- if (roleAll.id == roles[i]) {
- roleAll.style = true;
- rolesList.push({'id':roleAll.id,'name':roleAll.name});
- return false;
- }
- return true;
- });
- }
- }
- if (this.logistics.length>0){
- let logisticsAll=this.logisticsAll;
- let logistics=this.logistics;
- let logisticsList=this.logisticsList;
- for (let i = 0; i < logistics.length; i++) {
- logisticsAll.every(function (logisticAll) {
- if (logisticAll.id == logistics[i]) {
- logisticAll.style = true;
- logisticsList.push({'id':logisticAll.id,'name':logisticAll.name});
- return false;
- }
- return true;
- });
- }
- }
- if (this.suppliers.length>0){
- let suppliersAll=this.suppliersAll;
- let suppliers=this.suppliers;
- let suppliersList=this.suppliersList;
- for (let i = 0; i < suppliers.length; i++) {
- suppliersAll.every(function (supplierAll) {
- if (supplierAll.id == suppliers[i]) {
- supplierAll.style = true;
- suppliersList.push({'id':supplierAll.id,'name':supplierAll.name});
- return false;
- }
- return true;
- });
- }
- }
- if (this.ownerGroups.length>0){
- let ownerGroupsAll=this.ownerGroupsAll;
- let ownerGroups=this.ownerGroups;
- let ownerGroupsList=this.ownerGroupsList;
- for (let i = 0; i < ownerGroups.length; i++) {
- ownerGroupsAll.every(function (ownerGroupAll) {
- if (ownerGroupAll.id == ownerGroups[i]) {
- ownerGroupAll.style = true;
- ownerGroupsList.push({'id':ownerGroupAll.id,'name':ownerGroupAll.name});
- return false;
- }
- return true;
- });
- }
- }
- },
- methods:{
- selectedLogistic:function (e) {
- let logistics=this.logistics;
- let logisticsAll=this.logisticsAll;
- let logisticsList=this.logisticsList;
- let isLogistic=true;
- if (logistics&&logisticsAll) {
- for (let i = 0; i < logistics.length; i++) {
- if (logistics[i] == e.id) {
- logistics.splice(i,1);
- logisticsAll.every(function (logisticAll) {
- if (logisticAll.id == e.id) {
- logisticAll.style = false;
- return false;
- }
- return true;
- });
- logisticsList.every(function (logistic,i) {
- if (logistic.id==e.id){
- logisticsList.splice(i,1);
- return false;
- }
- return true;
- });
- isLogistic= false;
- break;
- }
- isLogistic= true;
- }
- }
- if (isLogistic || !logistics){
- logistics.push(e.id);
- logisticsAll.every(function (logisticAll) {
- if (logisticAll.id==e.id){
- logisticAll.style=true;
- logisticsList.push({'id':logisticAll.id,'name':logisticAll.name});
- return false;
- }
- return true;
- });
- }
- setTimeout(function(){
- $(".tooltipTarget").tooltip({'trigger':'hover'});
- },10)
- },
- selectedSupplier:function (e) {
- let suppliers=this.suppliers;
- let suppliersAll=this.suppliersAll;
- let suppliersList=this.suppliersList;
- let isSupplier=true;
- if (suppliers&&suppliersAll) {
- for (let i = 0; i < suppliers.length; i++) {
- if (suppliers[i] == e.id) {
- suppliers.splice(i,1);
- suppliersAll.every(function (supplierAll) {
- if (supplierAll.id == e.id) {
- supplierAll.style = false;
- return false;
- }
- return true;
- });
- suppliersList.every(function (supplier,i) {
- if (supplier.id==e.id){
- suppliersList.splice(i,1);
- return false;
- }
- return true;
- });
- isSupplier= false;
- break;
- }
- isSupplier= true;
- }
- }
- if (isSupplier || !suppliers){
- suppliers.push(e.id);
- suppliersAll.every(function (supplierAll) {
- if (supplierAll.id==e.id){
- supplierAll.style=true;
- suppliersList.push({'id':supplierAll.id,'name':supplierAll.name});
- return false;
- }
- return true;
- });
- }
- setTimeout(function(){
- $(".tooltipTarget").tooltip({'trigger':'hover'});
- },10)
- },
- seekLogistic:function (e) {
- let $val=e.target.value;
- let logisticsAll=this.logisticsAll;
- let bool = false;
- logisticsAll.every(function (logisticsAll) {
- let name=logisticsAll.name;
- if (name.includes($val)){
- bool = true;
- return false;
- }
- return true;
- });
- if($val === '' ){
- this.rolesFilter = this.rolesAll;
- }else if(bool){
- this.logisticsFilter = [];
- for (let i = 0; i <logisticsAll.length ; i++) {
- let logistic = logisticsAll[i];
- if(logistic.name.includes($val)){
- this.logisticsFilter.push(logistic);
- }
- }
- }
- },
- selectedRole:function (e) {
- let roles=this.roles;
- let rolesAll=this.rolesAll;
- let rolesList=this.rolesList;
- let isRole=true;
- if (roles && rolesAll) {
- for (let i = 0; i < roles.length; i++) {
- if (roles[i] == e.id) {
- roles.splice(i,1);
- rolesAll.every(function (roleAll) {
- if (roleAll.id == e.id) {
- roleAll.style = false;
- return false;
- }
- return true;
- });
- rolesList.every(function (role,i) {
- if (role.id==e.id){
- rolesList.splice(i,1);
- return false;
- }
- return true;
- });
- isRole= false;
- break;
- }
- isRole= true;
- }
- }
- if (isRole || !roles){
- roles.push(Number(e.id));
- rolesAll.every(function (roleAll) {
- if (roleAll.id==e.id){
- roleAll.style=true;
- rolesList.push({'id':roleAll.id,'name':roleAll.name});
- return false;
- }
- return true;
- });
- }
- setTimeout(function(){
- $(".tooltipTarget").tooltip({'trigger':'hover'});
- },10)
- },
- seekRole:function (e) {
- let $val=e.target.value;
- let rolesAll=this.rolesAll;
- let bool = false;
- rolesAll.every(function (roleAll) {
- let name=roleAll.name;
- if (name.includes($val)){
- bool = true;
- return false;
- }
- return true;
- });
- if($val === '' ){
- this.rolesFilter = this.rolesAll;
- }else if(bool){
- this.rolesFilter = [];
- for (let i = 0; i <rolesAll.length ; i++) {
- let role = rolesAll[i];
- if(role.name.includes($val)){
- this.rolesFilter.push(role);
- }
- }
- }
- },
- seekSupplier:function (e) {
- let $val=e.target.value;
- let suppliersAll=this.suppliersAll;
- let bool = false;
- suppliersAll.every(function (supplierAll) {
- let name=supplierAll.name;
- if (name.includes($val)){
- bool = true;
- return false;
- }
- return true;
- });
- if($val === '' ){
- this.suppliersFilter = this.suppliersAll;
- }else if(bool){
- this.suppliersFilter = [];
- for (let i = 0; i <suppliersAll.length ; i++) {
- let supplier = suppliersAll[i];
- if(supplier.name.includes($val)){
- this.suppliersFilter.push(supplier);
- }
- }
- }
- },
- selectedOwnerGroup:function (e) {
- let ownerGroups=this.ownerGroups;
- let ownerGroupsAll=this.ownerGroupsAll;
- let ownerGroupsList=this.ownerGroupsList;
- let isOwnerGroup=true;
- if (ownerGroups&&ownerGroupsAll) {
- for (let i = 0; i < ownerGroups.length; i++) {
- if (ownerGroups[i] == e.id) {
- ownerGroups.splice(i,1);
- ownerGroupsAll.every(function (ownerGroupAll) {
- if (ownerGroupAll.id == e.id) {
- ownerGroupAll.style = false;
- return false;
- }
- return true;
- });
- ownerGroupsList.every(function (ownerGroup,i) {
- if (ownerGroup.id==e.id){
- ownerGroupsList.splice(i,1);
- return false;
- }
- return true;
- });
- isOwnerGroup= false;
- break;
- }
- isOwnerGroup= true;
- }
- }
- if (isOwnerGroup || !ownerGroups){
- ownerGroups.push(e.id);
- ownerGroupsAll.every(function (ownerGroupAll) {
- if (ownerGroupAll.id==e.id){
- ownerGroupAll.style=true;
- ownerGroupsList.push({'id':ownerGroupAll.id,'name':ownerGroupAll.name});
- return false;
- }
- return true;
- });
- }
- setTimeout(function(){
- $(".tooltipTarget").tooltip({'trigger':'hover'});
- },10)
- },
- seekOwnerGroup:function (e) {
- let $val=e.target.value;
- let ownerGroupsAll=this.suppliersAll;
- let bool = false;
- ownerGroupsAll.every(function (ownerGroupAll) {
- let name=ownerGroupAll.name;
- if (name.includes($val)){
- bool = true;
- return false;
- }
- return true;
- });
- if($val === '' ){
- this.ownerGroupsFilter = this.ownerGroupsAll;
- }else if(bool){
- this.ownerGroupsFilter = [];
- for (let i = 0; i <ownerGroupsAll.length ; i++) {
- let ownerGroup = ownerGroupsAll[i];
- if(ownerGroup.name.includes($val)){
- this.ownerGroupsFilter.push(ownerGroup);
- }
- }
- }
- },
- },
- });
- </script>
- @endsection
|