| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- /** EasyWeb spa v3.1.7 date:2020-03-11 License By http://easyweb.vip */
- layui.config({
- version: true, // 更新组件缓存,设为true不缓存,也可以设一个固定值
- base: 'assets/module/'
- }).extend({
- dropdown: 'dropdown/dropdown',
- notice: 'notice/notice',
- cascader: 'cascader/cascader',
- fileChoose: 'fileChoose/fileChoose',
- step: 'step-lay/step',
- treeTable: 'treeTable/treeTable',
- tagsInput: 'tagsInput/tagsInput',
- Split: 'Split/Split',
- Cropper: 'Cropper/Cropper',
- Equencing: 'Equencing/Equencing',
- CKEDITOR: 'ckeditor/ckeditor',
- citypicker: 'city-picker/city-picker',
- zTree: 'zTree/zTree',
- sku: 'sku/sku',
- authTree: 'authTree/authtree',
- xmSelect: 'xmSelect',
- introJs: 'introJs/introJs',
- TMap: 'TMap/TMap'
- }).use(['layer', 'setter', 'layRouter','contextMenu','element', 'index', 'form','table', 'admin', 'notice', 'fileChoose'], function () {
- var $ = layui.jquery;
- var layer = layui.layer;
- var layRouter = layui.layRouter;
- var contextMenu = layui.contextMenu;
- var element = layui.element;
- var setter = layui.setter;
- var index = layui.index;
- var form = layui.form;
- var table = layui.table;
- var admin = layui.admin;
- var notice = layui.notice;
- var fileChoose = layui.fileChoose;
- // 默认错误路由注册
- layRouter.reg('#/error/error-403');
- layRouter.reg('#/error/error-404');
- layRouter.reg('#/error/error-500');
- // 检查是否登录
- if (!setter.getToken()) {
- return window.location.href = '/agent/pages/login.html';
- }
- var func = {
- /**
- * 解析json字符串
- * @param str 字符串
- * @returns JSON
- */
- jsonParse: function (str) {
- var json = str;
- for (var i in "string" == typeof str && (json = new Function("return " + str)() || {}), json) null != json[i] && "" != json[i] && (0 == json[i].toString().indexOf("function") ? json[i] = new Function("return " + json[i])() : "object" == typeof json[i] && (json[i] = this.jsonParse(json[i])));
- return json
- },
- /**
- * 普通事件请求
- * @param o this元素
- * @returns {boolean}
- */
- request: function (o) {
- var t = $(o),
- d = func.jsonParse(t.attr('event-data')),
- f = function () {
- admin.req(d.url, (r) => {
- if (r.code === 10000){
- notice.msg(r.message, {icon: 1}, function () {
- (t.attr('refresh')) ?
- // 刷新页面
- admin.refresh() :
- // 刷新表
- table.reload('dataTable', {});
- })
- }else {
- notice.msg(r.message, {icon: 2});
- }
- }, d.action || 'get');
- };
- if (!d) {
- notice.msg('请设置event-data参数!', {icon: 3});
- return false;
- }
- // 确认操作
- if (typeof (t.attr('confirm')) == 'undefined') {
- f();
- } else {
- layer.confirm(t.attr('confirm') || '你确定要执行操作吗?', {title: false, closeBtn: 0}, function (index) {
- f();
- // 关闭消息弹出
- layer.close(index);
- });
- }
- }
- };
- /**
- * 注册应用事件
- *
- */
- func.events = {
- /**
- * 点击请求
- * @param o
- * @returns {boolean}
- */
- request: function (o) {
- func.request(o);
- },
- /* 打开修改密码弹窗 */
- psw: function () {
- var url = $(this).data('url');
- admin.open({
- id: 'layer-psw',
- title: '修改密码',
- shade: 0,
- url: url ? url : 'pages/tpl/password.html'
- });
- },
- /* 退出登录 */
- logout: function () {
- admin.unlockScreen();
- var url = $(this).data('url');
- var confirm = $(this).data('confirm');
- if (false === confirm || 'false' === confirm) {
- setter.clearCache(); //20200322 清除本地缓存
- url ? location.replace(url) : location.reload();
- return;
- }
- layer.confirm('确定要退出登录吗?', {
- title: '温馨提示',
- skin: 'layui-layer-admin'
- }, function (){
- setter.clearCache(); //20200322 清除本地缓存
- url ? location.replace(url) : location.reload();
- });
- },
- };
- /**
- * 应用事件监听
- */
- $(document).on("click", "*[app-event]", function () {
- var n = $(this).attr("app-event");
- var o = func.events[n];
- o && o.call(this, $(this))
- });
- table.set({
- response: {
- statusName: 'code' //规定数据状态的字段名称,默认:code
- , statusCode: 10000 //规定成功的状态码,默认:0
- , countName: 'total' //规定数据总数的字段名称,默认:count
- },
- parseData: (res) => { //res 即为原始返回的数据
- let ret = {code: 10000, msg: 'OK!', total: 0, data: []};
- if (typeof (res.errcode) != 'undefined') {
- if (res.errcode === 30001) {
- setter.removeToken();
- notice.msg('用户失效,请重新登录!', {icon: 2}, function () {
- location.reload();
- });
- }
- ret.msg = res.errmsg
- } else {
- ret.code = res.code;
- ret.msg = res.message;
- ret.total = res.data.total;
- ret.data = res.data.list
- }
- return ret;
- }
- });
- // 初始化请求token
- // 2020/04/01 刷新token
- $.ajaxSetup({
- headers: {
- Authorization: setter.getToken() // 默认值
- },
- complete: function(xhr, status) {
- var token = xhr.getResponseHeader('Authorization');
- if (token !== null) {
- setter.putToken(token);
- $.ajaxSetup({
- headers: {
- Authorization: token // 更新
- }
- });
- for (var t = Date.now(); Date.now() - t <= 200;) ;
- }
- }
- });
- // 配置
- admin.req('config', (res) => {
- if (10000 === res.code) {
- setter.setCache('config', res.data);
- } else {
- notice.msg(res.message, {icon: 2});
- }
- }, 'GET');
- // 获取用户信息/包括自己的权限
- admin.req('person', (res) => {
- if (10000 === res.code) {
- setter.putUser(res.data);
- admin.renderPerm(); // 移除没有权限的元素
- $('#huName').text(res.data.username);
- //
- var headerHtml = '',
- headerSubHtml = '<li class="layui-nav-item layui-hide-sm layui-show-xs-inline-block" lay-unselect>\n' +
- ' <a>更多</a>\n' +
- ' <dl class="layui-nav-child">',
- // 树形菜单处理
- permissions = setter.lists2tree(res.data.permissions,'subMenus');
- // 渲染侧边栏
- for (var i = 0; i < permissions.length; i++) {
- index.renderSide(permissions[i].subMenus, sideNav.innerHTML, function (html) {
- html = '<ul nav-id="' + permissions[i].url + '" class="layui-nav layui-nav-tree" lay-shrink="all" lay-filter="admin-side-nav">' + html;
- html += '</ul>';
- $('.layui-layout-admin .layui-side .layui-side-scroll').append(html);
- });
- headerHtml += '<li class="layui-nav-item layui-hide-xs" lay-unselect><a nav-bind="' + permissions[i].url + '"><i style="margin-right: 6px;" class="layui-icon ' + permissions[i].icon + '"></i>' + permissions[i].name + '</a></li>';
- headerSubHtml += '<dd lay-unselect><a nav-bind="' + permissions[i].url + '">' + permissions[i].name + '</a></dd>'
- }
- headerSubHtml += '</dl></li>'
- // 渲染头部
- var $header = $('.layui-layout-admin .layui-header .layui-layout-left');
- $header.find('.layui-nav-bar').remove();
- $header.append(headerHtml);
- $header.append(headerSubHtml);
- element.render('nav');
- index.regRouter(permissions); // 注册路由
- // 加载主页
- index.loadHome({
- url: '/agent/#/workplace',
- name: '<i class="layui-icon layui-icon-home"></i>'
- });
- // 移除loading
- admin.removeLoading();
- } else {
- notice.msg(res.message, {icon: 2});
- }
- }, 'GET');
- /**
- * 划过图片事件监听
- */
- $(document).on("mouseover", ".input-img-preview", (function (e) {
- var t = $(this), opt = t.attr("options") ? func.jsonParse(t.attr("options")) : {width: "600px", height: "100%"},
- d = "<div id='input-img-preview' class='input-img-preview' style='z-index: 999999999;background: #3c9'><img src='" + this.src + "' width='" + (opt.width || "") + "' height='" + (opt.height || "") + "' /></div>";
- $("body").append(d);
- })).on("mouseout", ".input-img-preview", (function () {
- $("#input-img-preview").remove();
- })).on("mousemove", ".input-img-preview", (function (e) {
- $("#input-img-preview").css({position: "absolute", left: e.pageX + 10, top: e.pageY + 10});
- }));
- //todo 等待优化文件选择单选
- $(document).on('click', '#btnDialogFileChoose', function () {
- var showImg = $('#upShowImg');
- var imgInput = $('#upInput');
- fileChoose.open({
- headers: {
- 'Authorization': setter.getToken()
- },
- listUrl: setter.baseServer + 'system/annex',
- uploadUrl: setter.baseServer + 'system/annex/upload',
- operaUrl: setter.baseServer + 'system/annex/operation',
- num: 1,
- dialog: {
- offset: '60px'
- },
- response: {
- code: 10000,
- smUrl: 'thumbs'
- },
- onChoose: function (choose) {
- var chooseUrl = choose[0].url;
- // 赋值图片显示
- showImg[0].src = chooseUrl;
- imgInput[0].value = chooseUrl;
- }
- });
- });
- //todo 等待优化文件选择
- $(document).on('click', '.dialog-file-choose', function () {
- var t = $(this),
- s =t.attr('data-input'),
- c =t.attr('data-count') || 0,
- e =t.attr('data-type') || 'img',
- i = $('input[name='+ s +']'),
- j = $('.'+ s);
- fileChoose.open({
- headers: {
- 'Authorization': setter.getToken()
- },
- listUrl: setter.baseServer + 'system/annex',
- uploadUrl: setter.baseServer + 'system/annex/upload',
- operaUrl: setter.baseServer + 'system/annex/operation',
- num: (c > 1) ? c : 1,
- dialog: {
- offset: '60px'
- },
- response: {
- code: 10000,
- smUrl: 'thumbs'
- },
- onChoose: function (choose) {
- // 是否是多选
- if (c > 1){
- var urls = [];
- // 清空
- j.empty();
- $.each(choose,(i,t) => {
- urls.push(t.url);
- j.append('<img class="input-img-preview" src="' + t.url + '" style="height: 100px;margin: 8px;"/>');
- })
- i[0].value = JSON.stringify(urls);
- }else {
- i[0].value = j.children('.input-' + e +'-preview')[0].src = choose[0].url;
- }
- }
- });
- });
- /**
- * 列表页批量操作按钮组
- * @attr href 操作地址
- * @attr data-table table容器ID
- * @class confirm 类似系统confirm
- * @attr tips confirm提示内容
- */
- $(document).on('click', '.table-toolbar-btn', function () {
- var t = $(this),
- q = '',
- d = func.jsonParse(t.attr('table-data')),
- f = function (q) {
- admin.req(d.url, $.extend({}, d.param, {ids: q}), function (r) {
- if (r.code === 10000){
- notice.msg(r.message, {icon: 1}, function () {
- (t.attr('refresh')) ?
- // 刷新页面
- admin.refresh() :
- // 刷新表
- table.reload(d.table ? d.table :'dataTable', {});
- })
- }else {
- notice.msg(r.message, {icon: 2});
- }
- }, d.action || 'get');
- };
- if (!d) {
- notice.msg('请设置table-data参数', {icon: 3});
- return false;
- }
- if ($('.checkbox-ids:checked').length <= 0) {
- var checkStatus = table.checkStatus(d.table ? d.table :'dataTable'); // 动态传参
- if (checkStatus.data.length <= 0) {
- notice.msg('请选择要操作的数据', {icon: 3});
- return false;
- }
- for (var i in checkStatus.data) {
- if (i > 0) {
- q += ',';
- }
- q += checkStatus.data[i].id
- }
- } else {
- if (t.parents('form')[0]) {
- q = t.parents('form').serialize();
- } else {
- q = $('#pageListForm').serialize();
- }
- }
- if (typeof (t.attr('confirm')) == 'undefined') {
- f(q);
- } else {
- layer.confirm('您确定要执行此操作吗?', {title: false, closeBtn: 0}, function (index) {
- f(q);
- layer.close(index);
- });
- }
- return false;
- });
- /**
- * input编辑更新
- * @attr data-value 修改前的值
- * @attr focus-data 参数
- */
- $(document).on('focusout', '.focus-input,.table-focus-input', function () {
- var t = $(this),
- v = t.val(),
- c = t.attr('data-value'),
- d = func.jsonParse(t.attr('focus-data'));
- if (!d) {
- notice.msg('请设置focus-data参数!', {icon: 3});
- return false;
- }
- // 动态覆盖原始值
- d.param[t.attr('name')] = v;
- // 没有改变值
- if (c == v) return false;
- admin.req(d.url, d.param, (r) => {
- if (r.code === 10000){
- notice.msg(r.message, {icon: 1}, function () {
- (t.attr('refresh')) ?
- // 刷新页面
- admin.refresh() :
- // 刷新表
- table.reload('dataTable', {});
- })
- }else {
- notice.msg(r.message, {icon: 2});
- }
- }, d.action);
- });
- /**
- * 数据列状态修改
- */
- form.on('switch(ckDataTableState)', function (obj) {
- var t = $(this),
- v = obj.elem.checked ? 1 : 0,
- d = func.jsonParse(t.attr('switch-data'));
- if (!d) {
- notice.msg('请设置switch-data参数!', {icon: 3});
- return false;
- }
- admin.req(d.url, {status: v}, (r) => {
- if (r.code === 10000){
- notice.msg(r.message, {icon: 1}, function () {
- (t.attr('refresh')) ?
- // 刷新页面
- admin.refresh() :
- // 刷新表
- table.reload('dataTable', {});
- })
- }else {
- notice.msg(r.message, {icon: 2});
- $(obj.elem).prop('checked', !obj.elem.checked);
- }
- }, d.action);
- });
- });
|