Former-commit-id: 2d6b9e37b2bf3248fbcc6be841a4289178c47ff4
Former-commit-id: cae4c14b7c06fd6184ab440375a8424f29850585
TSXN
wanggang 5 years ago
parent 43a799c548
commit aea591d978

@ -165,4 +165,41 @@ function selectNode(e) {
else {
parent.prop("indeterminate", true);
}
}
}
//delete select
$(function () {
$(document).on('change', 'th :checkbox',function () {
if ($(this).is(':checked')) {
$(this).parents('table').find(':checkbox').not(':checked').prop("checked", true);
}
else {
$(this).parents('table').find(':checkbox').filter(':checked').prop("checked", false);
}
});
$(document).on('change','td :checkbox',function () {
var parent = $(this).parents('table').find('th :checkbox');
var children = $(this).parents('table').find('td :checkbox');
if ($(this).is(':checked')) {
if (parent.not(':checked')) {
if (children.not(':checked').length === 0) {
parent.prop("indeterminate", false);
parent.prop("checked", true);
}
else {
parent.prop("indeterminate", true);
}
}
}
else {
if (parent.is(':checked')) {
if (children.filter(':checked').length === 0) {
parent.prop("indeterminate", false);
parent.prop("checked", false);
}
else {
parent.prop("indeterminate", true);
}
}
}
});
});

@ -4,7 +4,8 @@ const store = new Vuex.Store({
token: {
accessToken: localStorage.getItem("accessToken"),
refreshToken: localStorage.getItem("refreshToken")
}
},
permissions:[]
},
mutations: {
setState(state,data) {

@ -2,16 +2,59 @@
<layout v-bind:title="title">
<h1>{{schema.title}}</h1>
<div class="row">
<table class="table table-bordered table-hover">
<tr>
<th v-for="item in schema.properties">{{item.title}}</th>
</tr>
<tr v-for="item in data.list">
<td v-for="(value,key,index) in schema.properties">{{item[key]}}</td>
</tr>
</table>
<div class="col-12">
<div class="card">
<div class="card-header">
</div>
<div class="card-body">
<div class="dataTables_wrapper dt-bootstrap4">
<div class="row" style="padding-bottom:10px;" v-if="hasPermissions()">
<div class="col-sm-12 col-md-6">
<button class="btn btn-default" v-if="hasPermission('Add')">新建</button>
<button class="btn btn-danger" v-if="hasPermission('Delete')">删除</button>
</div>
<div class="col-sm-12 col-md-6">
<div style="text-align:right;">
<a href="javascript:;" class="btn btn-primary" v-if="hasPermission('Read')">查询</a>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<table class="table table-bordered">
<thead>
<tr>
<th>
<input type="checkbox" class="select_all" />
</th>
<th v-for="(value,key,index) in schema.properties" v-if="key!=='id'">{{value.title}}</th>
<th v-if="hasPermission('Edit')">编辑</th>
<th v-if="hasPermission('Delete')">删除</th>
</tr>
</thead>
<tbody>
<tr v-for="item in data.list">
<td>
<input type="checkbox" name="list[]" :value="item.Id" />
</td>
<td v-for="(value,key,index) in schema.properties" v-if="key!=='id'">{{item[key]}}</td>
<td v-if="hasPermission('Edit')">
<a href="javascript:;" class="btn btn-sm btn-info">编辑</a>
</td>
<td v-if="hasPermission('Delete')">
<a href="javascript:;" class="btn btn-sm btn-danger">删除</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<pagination :nav="load" :index="data.pageIndex" :size="data.pageSize" :total="data.totalCount" />
</div>
</div>
</div>
</div>
</div>
<pagination :nav="load" :index="data.pageIndex" :size="data.pageSize" :total="data.totalCount" />
</layout>
</template>
<script>
@ -20,6 +63,7 @@
return {
title: '列表页',
url: '/IoTCenter/Admin/' + this.$route.query.entity + '/GetEditSchema',
entity: this.$route.query.entity,
schema: {},
data: {
list: []
@ -40,6 +84,13 @@
vm.data = response.data;
});
});
},
hasPermission: function (cmd) {
var permission = cmd + '-' + this.entity;
return Enumerable.from(store.state.permissions).any(o => o === permission);
},
hasPermissions: function () {
return this.hasPermission('Read') || this.hasPermission('Add') || this.hasPermission('Edit') || this.hasPermission('Delete');
}
}
}

@ -88,17 +88,19 @@
</div>
</div>
<section class="content">
<slot></slot>
<div class="container-fluid">
<slot></slot>
</div>
</section>
<a id="back-to-top" href="#" class="btn btn-primary back-to-top" role="button" aria-label="Scroll to top">
<!--<a id="back-to-top" href="#" class="btn btn-primary back-to-top" role="button" aria-label="Scroll to top">
<i class="fas fa-chevron-up"></i>
</a>
</a>-->
</div>
<footer class="main-footer">
<strong>
{{model.copyright.replace('{0}',new Date().getFullYear())}}
</strong>
<div class="float-right d-none d-sm-inline-block" style="padding-right:60px;">
<div class="float-right d-none d-sm-inline-block">
<b>version: {{model.version}}</b>
</div>
</footer>
@ -125,6 +127,7 @@
var vm = this;
axios.post(this.url).then(function (response) {
vm.model = response.data;
store.commit('setState', { key: 'permissions', value: response.data.permissions });
}).catch(function (error) {
console.log(error);
}).finally(function () {

@ -5,7 +5,7 @@
</div>
<div class="col-sm-12 col-md-7">
<div class="dataTables_paginate paging_simple_numbers">
<ul class="pagination">
<ul class="pagination" style="justify-content:flex-end;">
<li :class="'paginate_button page-item previous'+(hasPrev()?'':' disabled')">
<a href="javascript:;" class="page-link" v-on:click="nav(index-1,size)">上一页</a>
</li>

Loading…
Cancel
Save