1
0
xinmu_server 7 лет назад
Родитель
Сommit
ebc316f5fc
64 измененных файлов с 274 добавлено и 81 удалено
  1. 55 3
      src/main/java/com/izouma/awesomeadmin/dao/TestaaaoneMapper.xml
  2. 21 0
      src/main/java/com/izouma/awesomeadmin/model/Testaaaone.java
  3. 5 4
      src/main/java/com/izouma/awesomeadmin/web/TestaaaoneController.java
  4. 20 12
      src/main/vue/src/pages/Testaaaone.vue
  5. 168 59
      src/main/vue/src/pages/Testaaaones.vue
  6. 1 1
      src/main/webapp/WEB-INF/html/admin.html
  7. 2 0
      src/main/webapp/static/js/28.63ddf0e5b9c0233f3d81.js
  8. 0 0
      src/main/webapp/static/js/28.63ddf0e5b9c0233f3d81.js.map
  9. 0 0
      src/main/webapp/static/js/29.1488dedec1bcf53e3950.js
  10. 0 0
      src/main/webapp/static/js/29.1488dedec1bcf53e3950.js.map
  11. 0 0
      src/main/webapp/static/js/30.09d0198e503ad56f03ee.js
  12. 0 0
      src/main/webapp/static/js/30.09d0198e503ad56f03ee.js.map
  13. 0 0
      src/main/webapp/static/js/31.f3687049d1c954799e66.js
  14. 0 0
      src/main/webapp/static/js/31.f3687049d1c954799e66.js.map
  15. 0 0
      src/main/webapp/static/js/32.170d050ae3c00c0ba583.js
  16. 0 0
      src/main/webapp/static/js/32.170d050ae3c00c0ba583.js.map
  17. 0 0
      src/main/webapp/static/js/33.60c5b3aa42653a1b5938.js
  18. 0 0
      src/main/webapp/static/js/33.60c5b3aa42653a1b5938.js.map
  19. 0 0
      src/main/webapp/static/js/34.4a81425f916554ba955f.js
  20. 0 0
      src/main/webapp/static/js/34.4a81425f916554ba955f.js.map
  21. 2 2
      src/main/webapp/static/js/35.ff2dfa1ec6141f726df6.js
  22. 0 0
      src/main/webapp/static/js/35.ff2dfa1ec6141f726df6.js.map
  23. 0 0
      src/main/webapp/static/js/36.f55c8aefc7eb24079ee5.js
  24. 0 0
      src/main/webapp/static/js/36.f55c8aefc7eb24079ee5.js.map
  25. 0 0
      src/main/webapp/static/js/37.d3648d39a6e8181f9777.js
  26. 0 0
      src/main/webapp/static/js/37.d3648d39a6e8181f9777.js.map
  27. 0 0
      src/main/webapp/static/js/38.897d2fd2a195e782c18b.js
  28. 0 0
      src/main/webapp/static/js/38.897d2fd2a195e782c18b.js.map
  29. 0 0
      src/main/webapp/static/js/39.40868eaf5db92de752bb.js
  30. 0 0
      src/main/webapp/static/js/39.40868eaf5db92de752bb.js.map
  31. 0 0
      src/main/webapp/static/js/40.b792066796c1bfcfb027.js
  32. 0 0
      src/main/webapp/static/js/40.b792066796c1bfcfb027.js.map
  33. 0 0
      src/main/webapp/static/js/41.a3d3e30f1f45e92c888a.js
  34. 0 0
      src/main/webapp/static/js/41.a3d3e30f1f45e92c888a.js.map
  35. 0 0
      src/main/webapp/static/js/42.9d0c588f175181a2e9b4.js
  36. 0 0
      src/main/webapp/static/js/42.9d0c588f175181a2e9b4.js.map
  37. 0 0
      src/main/webapp/static/js/43.92426c72a666320fd487.js
  38. 0 0
      src/main/webapp/static/js/43.92426c72a666320fd487.js.map
  39. 0 0
      src/main/webapp/static/js/44.e3b54fbd288a1b68a865.js
  40. 0 0
      src/main/webapp/static/js/44.e3b54fbd288a1b68a865.js.map
  41. 0 0
      src/main/webapp/static/js/45.abf6ce52b363548d017e.js
  42. 0 0
      src/main/webapp/static/js/45.abf6ce52b363548d017e.js.map
  43. 0 0
      src/main/webapp/static/js/46.4fc0c86610f4895bf116.js
  44. 0 0
      src/main/webapp/static/js/46.4fc0c86610f4895bf116.js.map
  45. 0 0
      src/main/webapp/static/js/47.6e2ac9de21116842f0f1.js
  46. 0 0
      src/main/webapp/static/js/47.6e2ac9de21116842f0f1.js.map
  47. 0 0
      src/main/webapp/static/js/48.5fba355dd5d4ceab6060.js
  48. 0 0
      src/main/webapp/static/js/48.5fba355dd5d4ceab6060.js.map
  49. 0 0
      src/main/webapp/static/js/49.43618f6bf5b8e70f23f3.js
  50. 0 0
      src/main/webapp/static/js/49.43618f6bf5b8e70f23f3.js.map
  51. 0 0
      src/main/webapp/static/js/50.6e58fba33d786ee55533.js
  52. 0 0
      src/main/webapp/static/js/50.6e58fba33d786ee55533.js.map
  53. 0 0
      src/main/webapp/static/js/51.946523bc16f7f82a8872.js
  54. 0 0
      src/main/webapp/static/js/51.946523bc16f7f82a8872.js.map
  55. 0 0
      src/main/webapp/static/js/app.6eb065a9a9873d3f2122.js
  56. 0 0
      src/main/webapp/static/js/app.6eb065a9a9873d3f2122.js.map
  57. 0 0
      src/main/webapp/static/js/app.a253523b13478238c75b.js
  58. 0 0
      src/main/webapp/static/js/app.a253523b13478238c75b.js.map
  59. 0 0
      src/main/webapp/static/js/manifest.7bf3850dc1a0c3e43473.js
  60. 0 0
      src/main/webapp/static/js/manifest.7bf3850dc1a0c3e43473.js.map
  61. 0 0
      src/main/webapp/static/js/manifest.883ea509d15709b6de7a.js
  62. 0 0
      src/main/webapp/static/js/manifest.883ea509d15709b6de7a.js.map
  63. 0 0
      src/main/webapp/static/js/vendor.0f65db399569224904db.js
  64. 0 0
      src/main/webapp/static/js/vendor.0f65db399569224904db.js.map

+ 55 - 3
src/main/java/com/izouma/awesomeadmin/dao/TestaaaoneMapper.xml

@@ -6,6 +6,7 @@
                                         <result column="del_flag" property="delFlag" jdbcType="CHAR" />
                                 <result column="test_name" property="testName" jdbcType="VARCHAR" />
                                 <result column="remark" property="remark" jdbcType="VARCHAR" />
+                                <result column="multi_select" property="multiSelect" jdbcType="VARCHAR" />
             </resultMap>
     <sql id="Base_Column_List" >
         <trim  suffixOverrides="," >
@@ -17,6 +18,8 @@
 
             remark,
 
+            multi_select,
+
             </trim>
     </sql>
     <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
@@ -43,6 +46,9 @@
             </if>
                 <if test="remark!= null" >
                 remark,
+            </if>
+                <if test="multiSelect!= null" >
+                multi_select,
             </if>
             </trim>
         <trim prefix="values (" suffix=")" suffixOverrides="," >
@@ -57,6 +63,9 @@
             </if>
                     <if test="remark != null" >
                 #{remark,jdbcType=VARCHAR},
+            </if>
+                    <if test="multiSelect != null" >
+                #{multiSelect,jdbcType=VARCHAR},
             </if>
                 </trim>
     </insert>
@@ -74,6 +83,9 @@
             </if>
                      <if test="remark != null" >
                remark= #{remark,jdbcType=VARCHAR},
+            </if>
+                     <if test="multiSelect != null" >
+               multi_select= #{multiSelect,jdbcType=VARCHAR},
             </if>
                  </set>
         where id = #{id,jdbcType=INTEGER}
@@ -93,11 +105,15 @@
             </if>
                      <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
                 and  remark = #{record.remark}
+            </if>
+                     <if test="record.multiSelect != null and !&quot;&quot;.equals(record.multiSelect)">
+                and  multi_select = #{record.multiSelect}
             </if>
                   <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
              <trim prefix="and (" suffix=")" prefixOverrides="OR" >
                                                                                                                                                                 OR  test_name LIKE concat('%',#{record.searchKey},'%')
                                                                                                     OR  remark LIKE concat('%',#{record.searchKey},'%')
+                                                                                                    OR  multi_select LIKE concat('%',#{record.searchKey},'%')
                                                              </trim>
          </if>
 
@@ -137,7 +153,21 @@
             </if>
 
         </where>
-        order by id desc
+        order by
+
+        <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="record.orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+        id desc
     </select>
     <select id="queryAllTestaaaone" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.Testaaaone">
         select <include refid="Base_Column_List"/> from test_aaa
@@ -154,11 +184,15 @@
             </if>
                     <if test="remark != null and !&quot;&quot;.equals(remark)">
                 and  remark = #{remark}
+            </if>
+                    <if test="multiSelect != null and !&quot;&quot;.equals(multiSelect)">
+                and  multi_select = #{multiSelect}
             </if>
                     <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
                 <trim prefix="and (" suffix=")" prefixOverrides="OR" >
                                                                                                                                                                                                                                                 OR  test_name LIKE concat('%',#{searchKey},'%')
                                                                                                                                                         OR  remark LIKE concat('%',#{searchKey},'%')
+                                                                                                                                                        OR  multi_select LIKE concat('%',#{searchKey},'%')
                                                                                         </trim>
             </if>
 <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
@@ -196,7 +230,22 @@
 
 </if>
         </where>
-        order by id desc
+        order by
+
+        <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">
+
+
+            <trim suffixOverrides=",">
+                <foreach item="item" index="index" separator="," collection="orderByStr.split('_;')">
+                    <foreach item="itemDetail" index="detailIndex" collection="item.split('_,')">
+                        ${itemDetail}
+                    </foreach>
+                </foreach>
+            </trim>
+            ,
+        </if>
+
+        id desc
     </select>
     <select id="queryTestaaaone" parameterType="java.util.Map" resultType="com.izouma.awesomeadmin.model.Testaaaone">
         select <include refid="Base_Column_List"/> from test_aaa
@@ -213,6 +262,9 @@
             </if>
                      <if test="remark != null and !&quot;&quot;.equals(remark)">
                 and remark = #{remark}
+            </if>
+                     <if test="multiSelect != null and !&quot;&quot;.equals(multiSelect)">
+                and multi_select = #{multiSelect}
             </if>
          
         </where>
@@ -228,7 +280,7 @@
         select <include refid="Base_Column_List"/> from test_aaa
         <where>
             and del_flag = 'N'
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </where>
         order by id desc
     </select>
 </mapper>

+ 21 - 0
src/main/java/com/izouma/awesomeadmin/model/Testaaaone.java

@@ -12,6 +12,7 @@ public class Testaaaone{
     private String delFlag;
     private String testName;
     private String remark;
+    private String multiSelect;
 
 private String searchKey;
 
@@ -20,6 +21,11 @@ private String searchKey;
 */
 private String advancedQuery;
 
+/**
+* column_name_,desc_;column_name_,asc
+*/
+private String orderByStr;
+
     public Integer getId(){
         return this.id;
     }
@@ -48,6 +54,13 @@ private String advancedQuery;
     public void setRemark(String remark){
         this.remark = remark;
     }
+    public String getMultiSelect(){
+        return this.multiSelect;
+    }
+
+    public void setMultiSelect(String multiSelect){
+        this.multiSelect = multiSelect;
+    }
 
 public String getSearchKey() {
     return searchKey;
@@ -65,5 +78,13 @@ public void setAdvancedQuery(String advancedQuery) {
     this.advancedQuery = advancedQuery;
 }
 
+public String getOrderByStr() {
+    return orderByStr;
+}
+
+public void setOrderByStr(String orderByStr) {
+    this.orderByStr = orderByStr;
+}
+
 }
 

+ 5 - 4
src/main/java/com/izouma/awesomeadmin/web/TestaaaoneController.java

@@ -132,10 +132,10 @@ public class TestaaaoneController extends BaseController{
         String sheetName = "test_aaa";
         String titleName = "Testaaaone数据表";
         String fileName = "Testaaaone表";
-        int columnNumber = 4;
-        int[] columnWidth = { 20,  20,  20,  20 };
-        String[] columnName = {  "" ,   "删除标识" ,   "名字" ,   "备注"  };
-        String[][] dataList = new String[testaaaones.size()][4];
+        int columnNumber = 5;
+        int[] columnWidth = { 20,  20,  20,  20,  20 };
+        String[] columnName = {  "" ,   "删除标识" ,   "名字" ,   "备注" ,   "多选"  };
+        String[][] dataList = new String[testaaaones.size()][5];
 
         for (int i = 0; i < testaaaones.size(); i++) {
 
@@ -143,6 +143,7 @@ public class TestaaaoneController extends BaseController{
                         dataList[i][1] = String.valueOf(testaaaones.get(i).getDelFlag());
                         dataList[i][2] = String.valueOf(testaaaones.get(i).getTestName());
                         dataList[i][3] = String.valueOf(testaaaones.get(i).getRemark());
+                        dataList[i][4] = String.valueOf(testaaaones.get(i).getMultiSelect());
                     }
 
 

+ 20 - 12
src/main/vue/src/pages/Testaaaone.vue

@@ -2,16 +2,16 @@
     <div>
         <el-form :model="formData" :rules="rules" ref="form" label-width="80px" label-position="right" size="small"
                  style="max-width: 500px;">
-                                                                                        <el-form-item prop="delFlag" label="删除标识">
-                <el-input v-model="formData.delFlag"></el-input>
-            </el-form-item>
-                                                                                                                                                                                                                                                                                                        <el-form-item prop="testName" label="名字">
+                                                                                                                    <el-form-item prop="testName" label="名字">
                 <el-input v-model="formData.testName"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                                                        <el-form-item prop="remark" label="备注">
+                                                                                                                                                                                                                                                                                                                            <el-form-item prop="remark" label="备注">
                 <el-input v-model="formData.remark"></el-input>
             </el-form-item>
-                                                                                                                                                                                                                                                                    <el-form-item>
+                                                                                                                                                                                                                                                                                                                            <el-form-item prop="multiSelect" label="多选">
+                <el-input v-model="formData.multiSelect"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                        <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
                 <el-button @click="onDelete" v-if="formData.id" type="danger">删除</el-button>
                 <el-button @click="$router.go(-1)">取消</el-button>
@@ -32,11 +32,14 @@
                     }
                 }).then(res => {
                     if (res.success) {
+
+                                                                                                                                                                                                                                                                                            
                         this.formData = res.data;
                     }
                 })
             }
-        },
+
+                                                                                                                                                                },
         data() {
             return {
                 saving: false,
@@ -44,14 +47,19 @@
                 rules: {
                                                                                                         testName:
                     [
-                        {required: true, message: '请输入 名字', trigger: 'blur'},
-                                            ],
+                                                {required: true, message: '请输入 名字', trigger: 'blur'},
+                                                                    ],
                                                                 remark:
                     [
-                        {required: true, message: '请输入 备注', trigger: 'blur'},
-                                            ],
+                                                {required: true, message: '请输入 备注', trigger: 'blur'},
+                                                                    ],
+                                                                multiSelect:
+                    [
+                                                {required: true, message: '请输入 多选', trigger: 'blur'},
+                                                                                                                                                                                                                                                                         formValidator.english,
+                                                                    ],
                                     },
-        }
+                                                }
         },
         methods: {
             onSave() {

+ 168 - 59
src/main/vue/src/pages/Testaaaones.vue

@@ -1,14 +1,18 @@
 <template>
     <div>
         <div class="filters-container">
-          
+        
             <el-input placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
-              <el-button @click="searchData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
-              </el-button>
-            <el-button @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small" icon="el-icon-search" class="filter-item">高级查询
+            <el-button @click="searchData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
             </el-button>
-
-            <el-button @click="$router.push('/testaaaone')" type="primary" size="small" icon="el-icon-edit"
+            <el-button @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small"
+                       icon="el-icon-search" class="filter-item">高级查询
+            </el-button>
+            <el-button @click="showTableSortDialog = !showTableSortDialog" type="primary" size="small"
+                       icon="el-icon-sort" class="filter-item">排序
+            </el-button>
+            <el-button @click="$router.push('/testaaaone')" type="primary"
+                       size="small" icon="el-icon-edit"
                        class="filter-item">添加
             </el-button>
             <el-button @click="exportExcel" type="primary" size="small" icon="el-icon-share" class="filter-item">导出EXCEL
@@ -39,25 +43,28 @@
                     min-width="50"
                     align="center">
             </el-table-column>
-                                                                    <el-table-column
-                    v-if="isColumnShow('delFlag')"
-                    prop="delFlag"
-                    label="删除标识"
-                    min-width="100">
-            </el-table-column>
-                                                        <el-table-column
-                    v-if="isColumnShow('testName')"
-                    prop="testName"
-                    label="名字"
-                    min-width="100">
-            </el-table-column>
-                                                        <el-table-column
-                    v-if="isColumnShow('remark')"
-                    prop="remark"
-                    label="备注"
-                    min-width="100">
-            </el-table-column>
-                                        <el-table-column
+                                                                                    
+                                            <el-table-column
+                                v-if="isColumnShow('testName')"
+                                prop="testName"
+                                label="名字"
+                                min-width="100">
+                        </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('remark')"
+                                prop="remark"
+                                label="备注"
+                                min-width="100">
+                        </el-table-column>
+                                                                
+                                            <el-table-column
+                                v-if="isColumnShow('multiSelect')"
+                                prop="multiSelect"
+                                label="多选"
+                                min-width="100">
+                        </el-table-column>
+                                                            <el-table-column
                     label="操作"
                     align="center"
                     fixed="right"
@@ -107,14 +114,16 @@
                     <template slot-scope="{row}">
                         <el-select v-model="row.name">
 
-                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value" :key="item.value"></el-option>
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
+                                       :key="item.value"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
                 <el-table-column prop="searchMethod" label="搜索方式" width="150" align="center">
                     <template slot-scope="{row}">
                         <el-select v-model="row.searchMethod">
-                            <el-option v-for="item in searchMethods" :label="item" :value="item" :key="item"></el-option>
+                            <el-option v-for="item in searchMethods" :label="item" :value="item"
+                                       :key="item"></el-option>
                         </el-select>
                     </template>
                 </el-table-column>
@@ -136,10 +145,52 @@
             </span>
         </el-dialog>
 
+        <el-dialog title="排序" :visible.sync="showTableSortDialog">
+            <el-button @click="addSortField" type="text" icon="el-icon-plus">添加</el-button>
+            <el-table :data="tableSortFields">
+
+                <el-table-column prop="name" label="字段" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.name">
+
+                            <el-option v-for="item in advancedQueryColumns" :label="item.label" :value="item.value"
+                                       :key="item.value"></el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="order" label="排序" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.order">
+                            <el-option label="降序" value="desc">
+                            </el-option>
+                            <el-option label="升序" value="asc">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column width="60" align="center">
+                    <template slot-scope="{ row, column, $index }">
+                        <el-button @click="removeSortField($index)" size="small" type="text">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+            <span slot="footer" class="dialog-footer">
+
+                <el-button @click="tableSortQuery" :loading="$store.state.fetchingData">确定</el-button>
+            </span>
+        </el-dialog>
+
+        <el-dialog title="查看图片" :visible.sync="imageDialogVisible" size="small">
+            <img width="100%" :src="imgSrc" alt="">
+        </el-dialog>
+
     </div>
 </template>
 <script>
     import {mapState} from 'vuex'
+    import {format} from 'date-fns'
+    import zh from 'date-fns/locale/zh_cn'
 
     export default {
         created() {
@@ -155,41 +206,46 @@
                 filter1: '',
                 filter2: '',
                 tableColumns: [
-                                                            {
-                        label: '删除标识',
-                        value: 'delFlag',
-                        show: true
-                    },
-                                                    {
-                        label: '名字',
-                        value: 'testName',
-                        show: true
-                    },
-                                                    {
-                        label: '备注',
-                        value: 'remark',
-                        show: true
-                    },
-                                    ],
+                                                                                                                                                                {
+                                label: '名字',
+                                value: 'testName',
+                                show: true
+                            },
+                                                                                                {
+                                label: '备注',
+                                value: 'remark',
+                                show: true
+                            },
+                                                                                                {
+                                label: '多选',
+                                value: 'multiSelect',
+                                show: true
+                            },
+                                                            ],
                 multipleMode: false,
                 showAdvancedQueryDialog: false,
                 advancedQueryFields: [],
+                showTableSortDialog: false,
+                tableSortFields: [],
                 searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
                 advancedQueryColumns: [
-                                                                                                                    {
-                                label: '删除标识',
-                                value: 'del_flag'
-                            },
-                                                                                                {
+                                                                                                                                                                {
                                 label: '名字',
                                 value: 'test_name'
                             },
                                                                                                 {
                                 label: '备注',
                                 value: 'remark'
+                            },
+                                                                                                {
+                                label: '多选',
+                                value: 'multi_select'
                             },
                                                             ],
                 advancedQuerySearchKey: '',
+                orderByStr: '',
+                imgSrc: '',
+                imageDialogVisible: false,
             }
         },
         computed: {
@@ -210,13 +266,14 @@
             },
             getData() {
                 this.$http.get({
-                url: '/testaaaone/page',
-                data: {
-                    currentPage: this.currentPage,
-                    pageNumber: this.pageSize,
-                    searchKey: this.filter1,
-                    advancedQuery: this.advancedQuerySearchKey,
-                }
+                    url: '/testaaaone/page',
+                    data: {
+                        currentPage: this.currentPage,
+                        pageNumber: this.pageSize,
+                        searchKey: this.filter1,
+                        advancedQuery: this.advancedQuerySearchKey,
+                        orderByStr: this.orderByStr,
+                    }
                 }).then(res => {
                     if (res.success) {
                         this.totalNumber = res.data.page.totalNumber;
@@ -288,18 +345,54 @@
                 this.getData();
                 this.showAdvancedQueryDialog = false;
             },
+            addSortField() {
+                this.tableSortFields.push({
+                    name: '',
+                    order: 'asc',
+                });
+            },
+            removeSortField(i) {
+                if (this.tableSortFields.length > 0) {
+                    this.tableSortFields.splice(i, 1);
+                }
+            },
+            tableSortQuery() {
+
+                this.orderByStr = '';
+
+                if (this.tableSortFields.length > 0) {
+
+                    var templist = [];
+
+                    this.tableSortFields.forEach(item => {
+                        if (item.name && item.order) {
+                            var tempItem = item.name + '_,' + item.order;
+                            templist.push(tempItem);
+                        }
+                    })
+
+                    if (templist.length > 0) {
+
+                        this.orderByStr = templist.join('_;');
+                    }
+                }
+
+                this.getData();
+                this.showTableSortDialog = false;
+            },
             exportExcel() {
-                window.location.href = this.$baseUrl + "/testaaaone/exportExcel?searchKey=" + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey
+                window.location.href = this.$baseUrl + "/testaaaone/exportExcel?searchKey="
+                        + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey+"&orderByStr=" + this.orderByStr;
             },
             searchData() {
                 this.currentPage = 1;
                 this.getData();
             },
             deleteRow(row) {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' }).then(() => {
+                this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
                     return this.$http.post({
-                    url: '/testaaaone/del',
-                    data: { id: row.id }
+                        url: '/testaaaone/del',
+                        data: {id: row.id}
                     })
                 }).then(() => {
                     this.$message.success('删除成功');
@@ -312,6 +405,22 @@
                     }
                 })
             },
+            DateTimeFormatter(row, column, cellValue) {
+                if (cellValue) {
+                    return format(cellValue, 'YYYY/MM/DD HH:mm', {locale: zh})
+                }
+
+            },
+            DateFormatter(row, column, cellValue) {
+                if (cellValue) {
+                    return format(cellValue, 'YYYY/MM/DD', {locale: zh})
+                }
+
+            },
+            showImg(img) {
+                this.imgSrc = img;
+                this.imageDialogVisible = true;
+            },
 
         }
     }

+ 1 - 1
src/main/webapp/WEB-INF/html/admin.html

@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>管理后台</title><link rel=icon href=static/favicon.ico><script src=static/fontawesome-v5.2.0.js></script><link href=/static/css/app.44f99e2bf654117e6c2403eeafaa8870.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.7bf3850dc1a0c3e43473.js></script><script type=text/javascript src=/static/js/vendor.3f86866ebafed14d9794.js></script><script type=text/javascript src=/static/js/app.6eb065a9a9873d3f2122.js></script></body></html>
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>管理后台</title><link rel=icon href=static/favicon.ico><script src=static/fontawesome-v5.2.0.js></script><link href=/static/css/app.44f99e2bf654117e6c2403eeafaa8870.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.883ea509d15709b6de7a.js></script><script type=text/javascript src=/static/js/vendor.0f65db399569224904db.js></script><script type=text/javascript src=/static/js/app.a253523b13478238c75b.js></script></body></html>

+ 2 - 0
src/main/webapp/static/js/28.63ddf0e5b9c0233f3d81.js

@@ -0,0 +1,2 @@
+webpackJsonp([28],{AbBF:function(t,e){},zc2C:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=a("mvHQ"),n=a.n(r),s=(a("ftAF"),{created:function(){var t=this;this.$route.query.id&&this.$http.get({url:"/testgit/getOne",data:{id:this.$route.query.id}}).then(function(e){e.success&&(t.formData=e.data)})},data:function(){return{saving:!1,formData:{},rules:{}}},methods:{onSave:function(){var t=this;this.$refs.form.validate(function(e){if(!e)return!1;t.submit()})},submit:function(){var t=this,e=JSON.parse(n()(this.formData));this.$http.post({url:this.formData.id?"/testgit/update":"/testgit/save",data:e}).then(function(e){e.success?(t.$message.success("成功"),t.$router.go(-1)):t.$message.warning("失败")})},onDelete:function(){var t=this;this.$alert("删除将无法恢复,确认要删除么?","警告",{type:"error"}).then(function(){return t.$http.post({url:"/testgit/del",data:{id:t.formData.id}})}).then(function(){t.$message.success("删除成功"),t.$router.go(-1)}).catch(function(e){"cancel"===e?t.$message.info("删除取消"):t.$message.error("删除失败")})}}}),i={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-form",{ref:"form",staticStyle:{"max-width":"500px"},attrs:{model:t.formData,rules:t.rules,"label-width":"80px","label-position":"right",size:"small"}},[a("el-form-item",[a("el-button",{attrs:{loading:t.$store.state.fetchingData,type:"primary"},on:{click:t.onSave}},[t._v("保存")]),t._v(" "),t.formData.id?a("el-button",{attrs:{type:"danger"},on:{click:t.onDelete}},[t._v("删除")]):t._e(),t._v(" "),a("el-button",{on:{click:function(e){t.$router.go(-1)}}},[t._v("取消")])],1)],1)],1)},staticRenderFns:[]};var o=a("VU/8")(s,i,!1,function(t){a("AbBF")},"data-v-5fd6757b",null);e.default=o.exports}});
+//# sourceMappingURL=28.63ddf0e5b9c0233f3d81.js.map

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/28.63ddf0e5b9c0233f3d81.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/29.1488dedec1bcf53e3950.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/29.1488dedec1bcf53e3950.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/30.09d0198e503ad56f03ee.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/30.09d0198e503ad56f03ee.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/31.f3687049d1c954799e66.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/31.f3687049d1c954799e66.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/32.170d050ae3c00c0ba583.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/32.170d050ae3c00c0ba583.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/33.60c5b3aa42653a1b5938.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/33.60c5b3aa42653a1b5938.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/34.4a81425f916554ba955f.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/34.4a81425f916554ba955f.js.map


+ 2 - 2
src/main/webapp/static/js/34.89120440b2618ed564c4.js → src/main/webapp/static/js/35.ff2dfa1ec6141f726df6.js

@@ -1,2 +1,2 @@
-webpackJsonp([34],{Wh3M:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("el-form",{ref:"form",staticStyle:{"max-width":"500px"},attrs:{model:e.formData,rules:e.rules,"label-width":"80px","label-position":"right",size:"small"}},[a("el-form-item",{attrs:{prop:"dataruleName",label:"权限名称"}},[a("el-input",{model:{value:e.formData.dataruleName,callback:function(t){e.$set(e.formData,"dataruleName",t)},expression:"formData.dataruleName"}})],1),e._v(" "),a("el-form-item",{attrs:{prop:"permission",label:"权限标识"}},[a("el-input",{model:{value:e.formData.permission,callback:function(t){e.$set(e.formData,"permission",t)},expression:"formData.permission"}})],1),e._v(" "),a("el-form-item",[a("el-button",{attrs:{loading:e.$store.state.fetchingData,type:"primary"},on:{click:e.onSave}},[e._v("保存")]),e._v(" "),a("el-button",{on:{click:function(t){e.$router.go(-1)}}},[e._v("取消")])],1)],1)],1)},staticRenderFns:[]};var s=a("VU/8")({created:function(){var e=this;this.$route.query.id&&this.$http.get({url:"/sysDatarule/getOne",data:{id:this.$route.query.id}}).then(function(t){t.success&&(e.formData=t.data)})},data:function(){return{saving:!1,formData:{},rules:{dataruleName:[{required:!0,message:"请填写权限名称",trigger:"blur"}],permission:[{required:!0,message:"请填写权限标识",trigger:"blur"}]},menus:[]}},methods:{onSave:function(){var e=this;this.$refs.form.validate(function(t){if(!t)return!1;e.submit()})},submit:function(){var e=this;this.$http.post({url:this.formData.id?"/sysDatarule/update":"/sysDatarule/save",data:this.formData}).then(function(t){t.success?(e.$message.success("成功"),e.$router.go(-1)):e.$message.warning("失败")})}}},r,!1,function(e){a("awIv")},"data-v-3d1f3150",null);t.default=s.exports},awIv:function(e,t){}});
-//# sourceMappingURL=34.89120440b2618ed564c4.js.map
+webpackJsonp([35],{Wh3M:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("el-form",{ref:"form",staticStyle:{"max-width":"500px"},attrs:{model:e.formData,rules:e.rules,"label-width":"80px","label-position":"right",size:"small"}},[a("el-form-item",{attrs:{prop:"dataruleName",label:"权限名称"}},[a("el-input",{model:{value:e.formData.dataruleName,callback:function(t){e.$set(e.formData,"dataruleName",t)},expression:"formData.dataruleName"}})],1),e._v(" "),a("el-form-item",{attrs:{prop:"permission",label:"权限标识"}},[a("el-input",{model:{value:e.formData.permission,callback:function(t){e.$set(e.formData,"permission",t)},expression:"formData.permission"}})],1),e._v(" "),a("el-form-item",[a("el-button",{attrs:{loading:e.$store.state.fetchingData,type:"primary"},on:{click:e.onSave}},[e._v("保存")]),e._v(" "),a("el-button",{on:{click:function(t){e.$router.go(-1)}}},[e._v("取消")])],1)],1)],1)},staticRenderFns:[]};var s=a("VU/8")({created:function(){var e=this;this.$route.query.id&&this.$http.get({url:"/sysDatarule/getOne",data:{id:this.$route.query.id}}).then(function(t){t.success&&(e.formData=t.data)})},data:function(){return{saving:!1,formData:{},rules:{dataruleName:[{required:!0,message:"请填写权限名称",trigger:"blur"}],permission:[{required:!0,message:"请填写权限标识",trigger:"blur"}]},menus:[]}},methods:{onSave:function(){var e=this;this.$refs.form.validate(function(t){if(!t)return!1;e.submit()})},submit:function(){var e=this;this.$http.post({url:this.formData.id?"/sysDatarule/update":"/sysDatarule/save",data:this.formData}).then(function(t){t.success?(e.$message.success("成功"),e.$router.go(-1)):e.$message.warning("失败")})}}},r,!1,function(e){a("awIv")},"data-v-3d1f3150",null);t.default=s.exports},awIv:function(e,t){}});
+//# sourceMappingURL=35.ff2dfa1ec6141f726df6.js.map

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/35.ff2dfa1ec6141f726df6.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/36.f55c8aefc7eb24079ee5.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/36.f55c8aefc7eb24079ee5.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/37.d3648d39a6e8181f9777.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/37.d3648d39a6e8181f9777.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/38.897d2fd2a195e782c18b.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/38.897d2fd2a195e782c18b.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/39.40868eaf5db92de752bb.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/39.40868eaf5db92de752bb.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/40.b792066796c1bfcfb027.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/40.b792066796c1bfcfb027.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/41.a3d3e30f1f45e92c888a.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/41.a3d3e30f1f45e92c888a.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/42.9d0c588f175181a2e9b4.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/42.9d0c588f175181a2e9b4.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/43.92426c72a666320fd487.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/43.92426c72a666320fd487.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/44.e3b54fbd288a1b68a865.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/44.e3b54fbd288a1b68a865.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/45.abf6ce52b363548d017e.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/45.abf6ce52b363548d017e.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/46.4fc0c86610f4895bf116.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/46.4fc0c86610f4895bf116.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/47.6e2ac9de21116842f0f1.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/47.6e2ac9de21116842f0f1.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/48.5fba355dd5d4ceab6060.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/48.5fba355dd5d4ceab6060.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/49.43618f6bf5b8e70f23f3.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/49.43618f6bf5b8e70f23f3.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/50.6e58fba33d786ee55533.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/50.6e58fba33d786ee55533.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/51.946523bc16f7f82a8872.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/51.946523bc16f7f82a8872.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/app.6eb065a9a9873d3f2122.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/app.6eb065a9a9873d3f2122.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/app.a253523b13478238c75b.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/app.a253523b13478238c75b.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/manifest.7bf3850dc1a0c3e43473.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/manifest.7bf3850dc1a0c3e43473.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/manifest.883ea509d15709b6de7a.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/manifest.883ea509d15709b6de7a.js.map


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/vendor.0f65db399569224904db.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/main/webapp/static/js/vendor.0f65db399569224904db.js.map


Некоторые файлы не были показаны из-за большого количества измененных файлов