|
|
@@ -0,0 +1,263 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
|
|
+<head>
|
|
|
+ <th:block th:include="include :: header('今日热门列表')" />
|
|
|
+</head>
|
|
|
+<body class="gray-bg">
|
|
|
+ <input type="hidden" id="mercProdId" value=""/>
|
|
|
+ <input type="hidden" id="sort" value=""/>
|
|
|
+ <div class="container-div">
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-sm-12 search-collapse">
|
|
|
+ <form id="formPopularProd">
|
|
|
+ <div class="select-list">
|
|
|
+ <ul>
|
|
|
+ <li>
|
|
|
+ <label>商品名称:</label>
|
|
|
+ <input type="text" name="prodName"/>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <label>属性名称:</label>
|
|
|
+ <input type="text" name="attrName"/>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search('formPopularProd','mercProd-table')"><i class="fa fa-search"></i> 搜索</a>
|
|
|
+ <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('formPopularProd','mercProd-table')"><i class="fa fa-refresh"></i> 重置</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="btn-group-sm" id="toolbar" role="group">
|
|
|
+ <a class="btn btn-success" onclick="selectMerchantProd()" shiro:hasPermission="business:popularProd:add">
|
|
|
+ <i class="fa fa-plus"></i> 添加
|
|
|
+ </a>
|
|
|
+ <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="business:popularProd:remove">
|
|
|
+ <i class="fa fa-remove"></i> 删除
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ <div class="col-sm-12 select-table table-striped">
|
|
|
+ <table id="mercProd-table" data-use-row-attr-func="true" data-reorderable-rows="true">
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 商品选择区域 -->
|
|
|
+ <script id="selectMerchantProdDiv" type="text/template">
|
|
|
+ <div>
|
|
|
+ <div class="col-sm-12 search-collapse">
|
|
|
+ <form id="formSelectMerchant">
|
|
|
+ <div class="select-list" style="margin-left: 20px;">
|
|
|
+ <ul>
|
|
|
+ <li>
|
|
|
+ <label>商户名称:</label>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <input type="text" class="form-control" name="mercName"/>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search('formSelectMerchant', 'merchant-table')"><i class="fa fa-search"></i> 搜索</a>
|
|
|
+ <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('formSelectMerchant', 'merchant-table')"><i class="fa fa-refresh"></i> 重置</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <div class="btn-group-sm" id="subToolbar" style="display: none">
|
|
|
+ </div>
|
|
|
+ <div class="col-sm-11 select-table table-striped">
|
|
|
+ <table id="merchant-prod-table"></table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </script>
|
|
|
+ <th:block th:include="include :: footer" />
|
|
|
+ <th:block th:include="include :: bootstrap-table-reorder-rows-js" />
|
|
|
+ <script th:inline="javascript">
|
|
|
+ var editFlag = [[${@permission.hasPermi('business:popularProd:edit')}]];
|
|
|
+ var removeFlag = [[${@permission.hasPermi('business:popularProd:remove')}]];
|
|
|
+ var shelfFlags = [[${@dict.getType('shelf_flag')}]];
|
|
|
+ var prefix = ctx + "business/popularProd";
|
|
|
+
|
|
|
+ $(function() {
|
|
|
+ var options = {
|
|
|
+ id: "mercProd-table",
|
|
|
+ url: prefix + "/list",
|
|
|
+ createUrl: prefix + "/add",
|
|
|
+ updateUrl: prefix + "/edit/{id}",
|
|
|
+ removeUrl: prefix + "/remove",
|
|
|
+ exportUrl: prefix + "/export",
|
|
|
+ modalName: "今日热门",
|
|
|
+ onReorderRow: function (dataRows, newRow, oldRow, el) {
|
|
|
+ var datas = [];
|
|
|
+ var sort = 1;
|
|
|
+ dataRows.forEach(row => {
|
|
|
+ var data= {
|
|
|
+ "id": row.id,
|
|
|
+ "sort": sort++,
|
|
|
+ }
|
|
|
+ datas.push(data);
|
|
|
+ });
|
|
|
+ $.ajax({
|
|
|
+ url: prefix + "/editSort",
|
|
|
+ contentType: 'application/json',
|
|
|
+ data: JSON.stringify(datas),
|
|
|
+ type: "post",
|
|
|
+ processData: false,
|
|
|
+ success: function(result) {
|
|
|
+ $.operate.successCallback(result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ $("#" + table.options.id).bootstrapTable('load', {
|
|
|
+ total: el._xhr.responseJSON.total,
|
|
|
+ rows: dataRows
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ },
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ checkbox: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'id',
|
|
|
+ title: '主键',
|
|
|
+ visible: false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '商品名称',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ return row.prodName + "(" + row.attrName + ")";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'rowIndex',
|
|
|
+ title: '排序',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ var sort;
|
|
|
+ if (!$("#sort").val()) {
|
|
|
+ sort = 0;
|
|
|
+ } else {
|
|
|
+ sort = $("#sort").val()*1;
|
|
|
+ }
|
|
|
+ if ((index + 1) >= sort) {
|
|
|
+ $("#sort").val(index + 1);
|
|
|
+ }
|
|
|
+ return index + 1;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ align: 'center',
|
|
|
+ formatter: function(value, row, index) {
|
|
|
+ var actions = [];
|
|
|
+ actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
|
|
|
+ return actions.join('');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ $.table.init(options);
|
|
|
+ });
|
|
|
+
|
|
|
+ function selectMerchantProd() {
|
|
|
+ console.log($("#sort").val());
|
|
|
+ var rows = $.map($("#mercProd-table").bootstrapTable('getData'), function (row) {
|
|
|
+ return $.common.getItemField(row, "mercProdId");
|
|
|
+ });
|
|
|
+ var content = $('#selectMerchantProdDiv').html();
|
|
|
+ layer.open({
|
|
|
+ type: 1,
|
|
|
+ fix: false,
|
|
|
+ maxmin: false,
|
|
|
+ shade: 0.3,
|
|
|
+ area: ['800px', '690px'],
|
|
|
+ title: '选择商户商品',
|
|
|
+ // 弹层外区域关闭
|
|
|
+ shadeClose: true,
|
|
|
+ success: function (layero, index) {
|
|
|
+ var merchantOptions = {
|
|
|
+ id: "merchant-prod-table",
|
|
|
+ formId: "formSelectMerchant",
|
|
|
+ url: ctx + "master/merchant/prod/list",
|
|
|
+ modalName: "选择商户商品",
|
|
|
+ showSearch: false,
|
|
|
+ showColumns: false,
|
|
|
+ showRefresh: false,
|
|
|
+ showExport: false,
|
|
|
+ showToggle: false,
|
|
|
+ singleSelect: true,
|
|
|
+ clickToSelect: true,
|
|
|
+ toolbar: "subToolbar",
|
|
|
+ pageSize: 10,
|
|
|
+ pageList: [10, 20, 50],
|
|
|
+ queryParams: queryParams,
|
|
|
+ onCheck: onCheck,
|
|
|
+ columns: [
|
|
|
+ {
|
|
|
+ checkbox: true,
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ var isExists = false;
|
|
|
+ rows.forEach(prodId => {
|
|
|
+ if (row.mercProdId === prodId) {
|
|
|
+ isExists = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (isExists) {
|
|
|
+ return {
|
|
|
+ disabled: true
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'mercName',
|
|
|
+ title: '商户名称'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'prodName',
|
|
|
+ title: '商品名称'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'attrName',
|
|
|
+ title: '属性名称'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: 'shelfFlag',
|
|
|
+ title: '上架状态',
|
|
|
+ formatter: function (value, row, index) {
|
|
|
+ return $.table.selectDictLabel(shelfFlags, value);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ $.table.init(merchantOptions);
|
|
|
+ },
|
|
|
+ content: content,
|
|
|
+ btn: ['<i class="fa fa-check"></i> 确定', '<i class="fa fa-remove"></i> 关闭'],
|
|
|
+ btn1: function () {
|
|
|
+ var data = {
|
|
|
+ "mercProdId": $("#mercProdId").val(),
|
|
|
+ "sort": $("#sort").val() * 1 + 1,
|
|
|
+ };
|
|
|
+ $.operate.post(prefix + "/add", data, refreshTab);
|
|
|
+ layer.closeAll();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function queryParams(params) {
|
|
|
+ var search = $.table.queryParams(params);
|
|
|
+ search.shelfFlag = '1';
|
|
|
+ return search;
|
|
|
+ }
|
|
|
+
|
|
|
+ function onCheck(row) {
|
|
|
+ $("#mercProdId").val(row.mercProdId);
|
|
|
+ }
|
|
|
+
|
|
|
+ function refreshTab() {
|
|
|
+ location.reload();
|
|
|
+ }
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|