1
0
suochencheng 7 жил өмнө
parent
commit
99ac13dbff

+ 18 - 0
src/main/java/com/izouma/awesomeadmin/dao/CommonQueryMapper.xml

@@ -43,6 +43,16 @@
 
             </if>
 
+
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="record.searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{record.searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
+
         </where>
 
         <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
@@ -99,6 +109,14 @@
 
             </if>
 
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
         </where>
 
         <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">

+ 17 - 0
src/main/java/com/izouma/awesomeadmin/dao/CommonQuerySqlServerMapper.xml

@@ -43,6 +43,15 @@
 
             </if>
 
+
+            <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="record.searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{record.searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
         </where>
 
         <if test="record.orderByStr != null and !&quot;&quot;.equals(record.orderByStr)">
@@ -99,6 +108,14 @@
 
             </if>
 
+            <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
+                <trim prefix="and (" suffix=")" prefixOverrides="OR">
+                    <foreach item="item" index="index" collection="searchColumn.split('_,')">
+                        OR ${item} LIKE concat('%',#{searchKey},'%')
+                    </foreach>
+                </trim>
+            </if>
+
         </where>
 
         <if test="orderByStr != null and !&quot;&quot;.equals(orderByStr)">

+ 46 - 0
src/main/java/com/izouma/awesomeadmin/dao/TestAaaMapper.xml

@@ -6,6 +6,8 @@
         <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="image_url" property="imageUrl" jdbcType="VARCHAR"/>
+        <result column="test_time" property="testTime" jdbcType="TIMESTAMP"/>
     </resultMap>
     <sql id="Base_Column_List">
         <trim suffixOverrides=",">
@@ -17,6 +19,10 @@
 
             remark,
 
+            image_url,
+
+            test_time,
+
         </trim>
     </sql>
     <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
@@ -45,6 +51,12 @@
             <if test="remark!= null">
                 remark,
             </if>
+            <if test="imageUrl!= null">
+                image_url,
+            </if>
+            <if test="testTime!= null">
+                test_time,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">
@@ -59,6 +71,12 @@
             <if test="remark != null">
                 #{remark,jdbcType=VARCHAR},
             </if>
+            <if test="imageUrl != null">
+                #{imageUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="testTime != null">
+                #{testTime,jdbcType=TIMESTAMP},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKeySelective" parameterType="com.izouma.awesomeadmin.model.TestAaa">
@@ -76,6 +94,12 @@
             <if test="remark != null">
                 remark= #{remark,jdbcType=VARCHAR},
             </if>
+            <if test="imageUrl != null">
+                image_url= #{imageUrl,jdbcType=VARCHAR},
+            </if>
+            <if test="testTime != null">
+                test_time= #{testTime,jdbcType=TIMESTAMP},
+            </if>
         </set>
         where id = #{id,jdbcType=INTEGER}
     </update>
@@ -97,11 +121,19 @@
             <if test="record.remark != null and !&quot;&quot;.equals(record.remark)">
                 and remark = #{record.remark}
             </if>
+            <if test="record.imageUrl != null and !&quot;&quot;.equals(record.imageUrl)">
+                and image_url = #{record.imageUrl}
+            </if>
+            <if test="record.testTime != null and !&quot;&quot;.equals(record.testTime)">
+                and test_time = #{record.testTime}
+            </if>
             <if test="record.searchKey != null and !&quot;&quot;.equals(record.searchKey)">
                 <trim prefix="and (" suffix=")" prefixOverrides="OR">
                     OR del_flag LIKE concat('%',#{record.searchKey},'%')
                     OR test_name LIKE concat('%',#{record.searchKey},'%')
                     OR remark LIKE concat('%',#{record.searchKey},'%')
+                    OR image_url LIKE concat('%',#{record.searchKey},'%')
+                    OR test_time LIKE concat('%',#{record.searchKey},'%')
                 </trim>
             </if>
 
@@ -161,11 +193,19 @@
             <if test="remark != null and !&quot;&quot;.equals(remark)">
                 and remark = #{remark}
             </if>
+            <if test="imageUrl != null and !&quot;&quot;.equals(imageUrl)">
+                and image_url = #{imageUrl}
+            </if>
+            <if test="testTime != null and !&quot;&quot;.equals(testTime)">
+                and test_time = #{testTime}
+            </if>
             <if test="searchKey != null and !&quot;&quot;.equals(searchKey)">
                 <trim prefix="and (" suffix=")" prefixOverrides="OR">
                     OR del_flag LIKE concat('%',#{searchKey},'%')
                     OR test_name LIKE concat('%',#{searchKey},'%')
                     OR remark LIKE concat('%',#{searchKey},'%')
+                    OR image_url LIKE concat('%',#{searchKey},'%')
+                    OR test_time LIKE concat('%',#{searchKey},'%')
                 </trim>
             </if>
             <if test="advancedQuery != null and !&quot;&quot;.equals(advancedQuery)">
@@ -223,6 +263,12 @@
             <if test="remark != null and !&quot;&quot;.equals(remark)">
                 and remark = #{remark}
             </if>
+            <if test="imageUrl != null and !&quot;&quot;.equals(imageUrl)">
+                and image_url = #{imageUrl}
+            </if>
+            <if test="testTime != null and !&quot;&quot;.equals(testTime)">
+                and test_time = #{testTime}
+            </if>
 
         </where>
         LIMIT 1

+ 2 - 2
src/main/java/com/izouma/awesomeadmin/interceptor/PageInterceptor.java

@@ -88,8 +88,8 @@ public class PageInterceptor implements Interceptor {
             String pageSql = sql + " limit " + page.getDbIndex() + "," + page.getDbNumber();
 
             if ("SqlServer".equals(getDataBaseType(connection))) {
-                if (sql.toUpperCase().lastIndexOf("ORDER") < 0) {
-                    sql += " ORDER BY id ";
+                if (sql.toUpperCase().lastIndexOf(" ORDER ") < 0) {
+                    sql += " ORDER BY 1 ";
                 }
                 //改造后带分页查询的SQL语句
                 pageSql = sql + " offset " + page.getDbIndex() + " row fetch next " + page.getDbNumber() + " row only ";

+ 23 - 0
src/main/java/com/izouma/awesomeadmin/model/CommonQuery.java

@@ -21,6 +21,13 @@ public class CommonQuery {
 
     private String databasetype;
 
+    private String searchKey;
+
+    /**
+     * column_name_,column_name_,column_name
+     */
+    private String searchColumn;
+
     public String getTableName() {
         return tableName;
     }
@@ -52,5 +59,21 @@ public class CommonQuery {
     public void setDatabasetype(String databasetype) {
         this.databasetype = databasetype;
     }
+
+    public String getSearchKey() {
+        return searchKey;
+    }
+
+    public void setSearchKey(String searchKey) {
+        this.searchKey = searchKey;
+    }
+
+    public String getSearchColumn() {
+        return searchColumn;
+    }
+
+    public void setSearchColumn(String searchColumn) {
+        this.searchColumn = searchColumn;
+    }
 }
 

+ 16 - 0
src/main/java/com/izouma/awesomeadmin/model/TestAaa.java

@@ -12,6 +12,8 @@ public class TestAaa{
     private String delFlag;
     private String testName;
     private String remark;
+    private String imageUrl;
+    private String testTime;
 
 private String searchKey;
 
@@ -48,6 +50,20 @@ private String advancedQuery;
     public void setRemark(String remark){
         this.remark = remark;
     }
+    public String getImageUrl(){
+        return this.imageUrl;
+    }
+
+    public void setImageUrl(String imageUrl){
+        this.imageUrl = imageUrl;
+    }
+    public String getTestTime(){
+        return this.testTime;
+    }
+
+    public void setTestTime(String testTime){
+        this.testTime = testTime;
+    }
 
 public String getSearchKey() {
     return searchKey;

+ 43 - 42
src/main/java/com/izouma/awesomeadmin/web/TestAaaController.java

@@ -18,18 +18,18 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * controller类
- */
+*  controller类
+*/
 @Controller
 @RequestMapping("/testAaa")
-public class TestAaaController extends BaseController {
+public class TestAaaController extends BaseController{
 
     @Autowired
     private TestAaaService testAaaService;
 
     /**
-     * <p>获取全部记录。</p>
-     */
+    * <p>获取全部记录。</p>
+    */
     @RequiresAuthentication
     @RequestMapping(value = "/all", method = RequestMethod.GET)
     @ResponseBody
@@ -39,8 +39,8 @@ public class TestAaaController extends BaseController {
     }
 
     /**
-     * <p>根据Id。</p>
-     */
+    * <p>根据Id。</p>
+    */
     @RequestMapping(value = "/getTestAaa", method = RequestMethod.GET)
     @ResponseBody
     public Result getTestAaa(@RequestParam(required = false, value = "id") String id) {
@@ -49,8 +49,8 @@ public class TestAaaController extends BaseController {
     }
 
     /**
-     * <p>根据条件获取。</p>
-     */
+    * <p>根据条件获取。</p>
+    */
     @RequestMapping(value = "/getOne", method = RequestMethod.GET)
     @ResponseBody
     public Result getOne(TestAaa record) {
@@ -60,14 +60,14 @@ public class TestAaaController extends BaseController {
 
 
     /**
-     * <p>分页查询。</p>
-     */
+    * <p>分页查询。</p>
+    */
     @RequestMapping(value = "/page", method = RequestMethod.GET)
     @ResponseBody
     public Result page(Page page, TestAaa record) {
         Map<String, Object> result = new HashMap<>();
 
-        List<TestAaa> pp = testAaaService.getTestAaaByPage(page, record);
+        List<TestAaa> pp =testAaaService.getTestAaaByPage(page, record);
 
         result.put(AppConstant.PAGE, page);
         result.put("pp", pp);
@@ -76,81 +76,82 @@ public class TestAaaController extends BaseController {
 
 
     /**
-     * <p>保存。</p>
-     */
+    * <p>保存。</p>
+    */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @ResponseBody
     public Result save(TestAaa record) {
         boolean num = testAaaService.createTestAaa(record);
         if (num) {
-            return new Result(true, record.getId());
+        return new Result(true, record.getId());
         }
         return new Result(false, "保存异常");
     }
 
     /**
-     * <p>更新信息。</p>
-     */
+    * <p>更新信息。</p>
+    */
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     @ResponseBody
     public Result updateTestAaa(TestAaa record) {
         boolean num = testAaaService.updateTestAaa(record);
         if (num) {
-            return new Result(true, "保存成功");
+        return new Result(true, "保存成功");
         }
         return new Result(false, "保存异常");
     }
 
     /**
-     * <p>删除。</p>
-     */
+    * <p>删除。</p>
+    */
     @RequestMapping(value = "/del", method = RequestMethod.POST)
     @ResponseBody
     public Result deleteTestAaa(@RequestParam(required = true, value = "id") String id) {
 
         boolean num = testAaaService.deleteTestAaa(id);
         if (num) {
-            return new Result(true, "删除成功");
+        return new Result(true, "删除成功");
         }
         return new Result(false, "删除异常");
     }
 
     /**
-     * 导出Excel
-     *
-     * @param request
-     * @param response
-     * @param record
-     * @throws Exception
-     */
+    * 导出Excel
+    * @param request
+    * @param response
+    * @param record
+    * @throws Exception
+    */
     @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
     @ResponseBody
     public void exportExcel(HttpServletRequest request, HttpServletResponse response, TestAaa record) throws Exception {
 
-        List<TestAaa> testAaas = testAaaService.getTestAaaList(record);
+    List<TestAaa> testAaas = testAaaService.getTestAaaList(record);
 
 
         String sheetName = "test_aaa";
-        String titleName = "测试aaa数据表";
-        String fileName = "测试aaa表";
-        int columnNumber = 4;
-        int[] columnWidth = {20, 20, 20, 20};
-        String[] columnName = {"id", "删除标识", "名字", "备注"};
-        String[][] dataList = new String[testAaas.size()][4];
+        String titleName = "test_aaa数据表";
+        String fileName = "test_aaa表";
+        int columnNumber = 6;
+        int[] columnWidth = { 20,  20,  20,  20,  20,  20 };
+        String[] columnName = {  "id" ,   "删除标识" ,   "名字" ,   "备注" ,   "image_url" ,   "test_time"  };
+        String[][] dataList = new String[testAaas.size()][6];
 
         for (int i = 0; i < testAaas.size(); i++) {
 
-            dataList[i][0] = testAaas.get(i).getId();
-            dataList[i][1] = testAaas.get(i).getDelFlag();
-            dataList[i][2] = testAaas.get(i).getTestName();
-            dataList[i][3] = testAaas.get(i).getRemark();
-        }
+                        dataList[i][0] = String.valueOf(testAaas.get(i).getId());
+                        dataList[i][1] = String.valueOf(testAaas.get(i).getDelFlag());
+                        dataList[i][2] = String.valueOf(testAaas.get(i).getTestName());
+                        dataList[i][3] = String.valueOf(testAaas.get(i).getRemark());
+                        dataList[i][4] = String.valueOf(testAaas.get(i).getImageUrl());
+                        dataList[i][5] = String.valueOf(testAaas.get(i).getTestTime());
+                    }
 
 
         ExportExcelUtil.ExportWithResponse(sheetName, titleName, fileName,
-                columnNumber, columnWidth, columnName, dataList, response);
+        columnNumber, columnWidth, columnName, dataList, response);
 
 
+        }
     }
-}
 

+ 4 - 4
src/main/resources/templates/ListTemplate.vm

@@ -126,15 +126,15 @@
                     </template>
                 </el-table-column>
                 <el-table-column width="60" align="center">
-                    <template slot-scope="{ row, column, $index }">
-                        <el-button @click="removeField($index)" size="small" type="text">删除</el-button>
+                    <template slot-scope="{ row, column, ${esc.d}index }">
+                        <el-button @click="removeField(${esc.d}index)" size="small" type="text">删除</el-button>
                     </template>
                 </el-table-column>
             </el-table>
 
             <span slot="footer" class="dialog-footer">
 
-                <el-button @click="advancedQuery" :loading="$store.state.fetchingData">确定</el-button>
+                <el-button @click="advancedQuery" :loading="${esc.d}store.state.fetchingData">确定</el-button>
             </span>
         </el-dialog>
 
@@ -281,7 +281,7 @@
                 this.showAdvancedQueryDialog = false;
             },
             exportExcel() {
-                window.location.href = this.$baseUrl + "/${display.uncapitalize($model.className)}/exportExcel?searchKey=" + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey
+                window.location.href = this.${esc.d}baseUrl + "/${display.uncapitalize($model.className)}/exportExcel?searchKey=" + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey
             },
 
         }

+ 175 - 6
src/main/vue/src/pages/CommonQuerys.vue

@@ -1,6 +1,15 @@
 <template>
     <div>
         <div class="filters-container">
+
+            <el-input placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
+
+            <el-button @click="getData" 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>
+
             <el-dropdown trigger="click" size="medium" class="table-column-filter">
                 <span>
                     筛选数据
@@ -12,21 +21,84 @@
                 </el-dropdown-menu>
             </el-dropdown>
         </div>
-        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table">
+        <el-table :data="tableData" :height="tableHeight" row-key="id" ref="table" @sort-change="changeTableSort">
             <el-table-column type="index" min-width="50" align="center">
             </el-table-column>
-            <el-table-column v-for="item in tableColumns" v-if="isColumnShow(item.value)" :prop="item.value" :label="item.label" min-width="100">
-            </el-table-column>
+            <template v-for="item in tableColumns" v-if="isColumnShow(item.value)">
+                <el-table-column v-if="item.type=='date'" :formatter="DateTimeFormatter" sortable="custom" :prop="item.value" :label="item.label" min-width="100">
+                </el-table-column>
+
+                <el-table-column v-else-if="item.type=='image'" sortable="custom" :prop="item.value" :label="item.label" min-width="100">
+                    <template slot-scope="{row}">
+                        <img :src="row[item.value]" @click="showImg(row[item.value])" style="width: 100px;height: 100px;vertical-align: middle;" />
+                    </template>
+                </el-table-column>
+                <el-table-column v-else-if="item.type=='text'" sortable="custom" :prop="item.value" :label="item.label" min-width="100">
+                </el-table-column>
+            </template>
         </el-table>
         <div class="pagination-wrapper">
             <el-pagination background @size-change="pageSizeChange" @current-change="currentPageChange" :current-page="currentPage" :page-sizes="[10, 20, 30, 40, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="totalNumber">
             </el-pagination>
         </div>
 
+        <el-dialog title="查看图片" :visible.sync="imageDialogVisible" size="small">
+            <img width="100%" :src="imgSrc" alt="">
+        </el-dialog>
+
+        <el-dialog title="高级查询" :visible.sync="showAdvancedQueryDialog">
+            <el-button @click="addField" type="text" icon="el-icon-plus">添加</el-button>
+            <el-table :data="advancedQueryFields">
+
+                <el-table-column prop="link" label="链接符" align="center">
+                    <template slot-scope="{row}">
+                        <el-select placeholder="链接" size="small" v-model="row.link" class="filter-item">
+                            <el-option label="AND" value="AND">
+                            </el-option>
+                            <el-option label="OR" value="OR">
+                            </el-option>
+                        </el-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="name" label="字段" align="center">
+                    <template slot-scope="{row}">
+                        <el-select v-model="row.name">
+
+                            <el-option v-for="item in tableColumns" :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-select>
+                    </template>
+                </el-table-column>
+                <el-table-column prop="value" label="参数" align="center">
+                    <template slot-scope="{row}">
+                        <el-input v-model="row.value"></el-input>
+                    </template>
+                </el-table-column>
+                <el-table-column width="60" align="center">
+                    <template slot-scope="{ row, column, $index }">
+                        <el-button @click="removeField($index)" size="small" type="text">删除</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+
+            <span slot="footer" class="dialog-footer">
+
+                <el-button @click="advancedQuery" :loading="$store.state.fetchingData">确定</el-button>
+            </span>
+        </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() {
@@ -44,7 +116,14 @@ export default {
             advancedQuerySearchKey: '',
             tableColumns: [],
             databasetype: 'Mysql',
-            tableName: ''
+            tableName: '',
+            imgSrc: '',
+            imageDialogVisible: false,
+            showAdvancedQueryDialog: false,
+            advancedQueryFields: [],
+            searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
+            searchColumn: '',
+            orderByStr: '',
 
         }
     },
@@ -76,17 +155,20 @@ export default {
 
                         var columns = tableColumnsStr.split('_;');
 
+
                         columns.forEach(element => {
                             var items = element.split('_,');
                             var temp = {
                                 label: items[0],
                                 value: items[1],
+                                type: items[2] ? items[2] : 'text',
                                 show: true
                             }
 
                             this.tableColumns.push(temp);
                         });
 
+
                         this.getData();
                     }
 
@@ -103,6 +185,26 @@ export default {
             this.getData();
         },
         getData() {
+
+            if (this.tableColumns.length > 0) {
+
+                var templist = [];
+
+                this.tableColumns.forEach(item => {
+                    if (item.type != 'date' && item.show) {
+                        templist.push(item.value);
+                    }
+                })
+
+                if (templist.length > 0) {
+
+                    this.searchColumn = templist.join('_,');
+
+                }
+            }
+
+
+
             this.$http.get({
                 url: '/commonQuery/page',
                 data: {
@@ -110,7 +212,10 @@ export default {
                     pageNumber: this.pageSize,
                     advancedQuery: this.advancedQuerySearchKey,
                     tableName: this.tableName,
-                    databasetype: this.databasetype
+                    databasetype: this.databasetype,
+                    searchColumn: this.searchColumn,
+                    searchKey: this.filter1,
+                    orderByStr: this.orderByStr
                 }
             }).then(res => {
                 if (res.success) {
@@ -124,13 +229,77 @@ export default {
             var row = this.tableColumns.find(i => i.value === column);
             return row ? row.show : false;
         },
+        DateTimeFormatter(row, column, cellValue) {
+            if (cellValue) {
+                return format(cellValue, 'YYYY/MM/DD HH:mm', { locale: zh })
+            }
+
+        },
+        showImg(img) {
+            this.imgSrc = img;
+            this.imageDialogVisible = true;
+        },
+
+        addField() {
+            this.advancedQueryFields.push({
+                link: 'AND',
+                name: '',
+                searchMethod: '=',
+                value: '',
+            });
+        },
+        removeField(i) {
+            if (this.advancedQueryFields.length > 0) {
+                this.advancedQueryFields.splice(i, 1);
+            }
+        },
+        advancedQuery() {
+
+            this.advancedQuerySearchKey = '';
+
+            if (this.advancedQueryFields.length > 0) {
+
+                var templist = [];
+
+                this.advancedQueryFields.forEach(item => {
+                    if (item.link && item.name && item.searchMethod && item.value) {
+                        var tempItem = item.link + '_,' + item.name + '_,' + item.searchMethod + '_,' + item.value;
+                        templist.push(tempItem);
+                    }
+                })
+
+                if (templist.length > 0) {
+
+                    this.advancedQuerySearchKey = templist.join('_;');
+                }
+            }
+
+            this.getData();
+            this.showAdvancedQueryDialog = false;
+        },
+        changeTableSort(column) {
+            if (column.prop) {
+
+                var order = 'asc'
+
+                if ('descending' == column.order) {
+                    order = 'desc';
+                }
+
+
+                this.orderByStr = column.prop + '_,' + order;
+
+                this.getData();
+            }
+        }
 
     },
     watch: {
         $route() {
             this.getTableBase()
         }
-    }
+    },
+
 }
 </script>
 <style lang="less" scoped>

+ 36 - 5
src/main/vue/src/pages/QueryConfig.vue

@@ -29,6 +29,14 @@
                             <el-input v-model="row.value"></el-input>
                         </template>
                     </el-table-column>
+                    <el-table-column prop="type" label="类型" width="150" align="center">
+                        <template slot-scope="{row}">
+                            <el-select v-model="row.type">
+                                <el-option v-for="item in columnTypes" :label="item.label" :value="item.value" :key="item.value"></el-option>
+                            </el-select>
+                        </template>
+                    </el-table-column>
+
                     <el-table-column width="60" align="center">
                         <template slot-scope="{ row, column, $index }">
                             <el-button @click="removeField($index)" size="small" type="text">删除</el-button>
@@ -58,6 +66,23 @@ export default {
             }).then(res => {
                 if (res.success) {
                     this.formData = res.data;
+
+                    this.tablecolumnsFields = [];
+                    var tableColumnsStr = res.data.tablecolumns;
+
+                    var columns = tableColumnsStr.split('_;');
+
+                    columns.forEach(element => {
+                        var items = element.split('_,');
+                        var temp = {
+                            label: items[0],
+                            value: items[1],
+                            type: items[2]
+                        }
+
+                        this.tablecolumnsFields.push(temp);
+                    });
+
                 }
             })
         }
@@ -73,7 +98,12 @@ export default {
 
             tablecolumnsFields: [
             ],
-            tablecoumnsStr: ''
+            tablecolumnsStr: '',
+            columnTypes: [
+                { label: '文本', value: 'text' },
+                { label: '日期', value: 'date' },
+                { label: '图片', value: 'image' },
+            ],
 
         }
     },
@@ -89,7 +119,7 @@ export default {
         },
         submit() {
 
-            this.tablecoumnsStr = '';
+            this.tablecolumnsStr = '';
 
             if (this.tablecolumnsFields.length > 0) {
 
@@ -97,16 +127,16 @@ export default {
 
                 this.tablecolumnsFields.forEach(item => {
                     if (item.label && item.value) {
-                        var tempItem = item.label + '_,' + item.value;
+                        var tempItem = item.label + '_,' + item.value + '_,' + item.type;
                         templist.push(tempItem);
                     }
                 })
 
                 if (templist.length > 0) {
 
-                    this.tablecoumnsStr = templist.join('_;');
+                    this.tablecolumnsStr = templist.join('_;');
 
-                    this.formData.tablecolumns = this.tablecoumnsStr;
+                    this.formData.tablecolumns = this.tablecolumnsStr;
 
                     var data = JSON.parse(JSON.stringify(this.formData));
                     this.$http.post({
@@ -131,6 +161,7 @@ export default {
             this.tablecolumnsFields.push({
                 label: '',
                 value: '',
+                type: 'text',
             });
         },
         removeField(i) {

+ 7 - 1
src/main/vue/src/pages/TestAaa.vue

@@ -10,6 +10,12 @@
             </el-form-item>
                                                                                                                                                                                                                                                                                                         <el-form-item prop="remark" label="备注">
                 <el-input v-model="formData.remark"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                        <el-form-item prop="imageUrl" label="image_url">
+                <el-input v-model="formData.imageUrl"></el-input>
+            </el-form-item>
+                                                                                                                                                                                                                                                                                                        <el-form-item prop="testTime" label="test_time">
+                <el-input v-model="formData.testTime"></el-input>
             </el-form-item>
                                                                                                                                                                                                                                                                     <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
@@ -41,7 +47,7 @@
                 saving: false,
                 formData: {},
                 rules: {
-                                                                                                                                    },
+                                                                                                                                                                                            },
         }
         },
         methods: {

+ 30 - 4
src/main/vue/src/pages/TestAaas.vue

@@ -3,12 +3,16 @@
         <div class="filters-container">
 
             <el-input placeholder="关键字" size="small" v-model="filter1" clearable class="filter-item"></el-input>
-            <!-- <el-select placeholder="性别" size="small" v-model="filter2" clearable class="filter-item">
-                <el-option label="女" value="item1">
+            <!--<el-select placeholder="性别" size="small" v-model="filter2" clearable class="filter-item">
+                <el-option
+                        label="女"
+                        value="item1">
                 </el-option>
-                <el-option label="男" value="item2">
+                <el-option
+                        label="男"
+                        value="item2">
                 </el-option>
-            </el-select> -->
+            </el-select>-->
             <el-button @click="showAdvancedQueryDialog = !showAdvancedQueryDialog" type="primary" size="small" icon="el-icon-search" class="filter-item">高级查询
             </el-button>
             <el-button @click="getData" type="primary" size="small" icon="el-icon-search" class="filter-item">搜索
@@ -41,6 +45,10 @@
             </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('imageUrl')" prop="imageUrl" label="image_url" min-width="100">
+            </el-table-column>
+            <el-table-column v-if="isColumnShow('testTime')" prop="testTime" label="test_time" min-width="100">
+            </el-table-column>
             <el-table-column label="操作" align="center" fixed="right">
                 <template slot-scope="scope">
                     <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
@@ -145,6 +153,16 @@ export default {
                     value: 'remark',
                     show: true
                 },
+                {
+                    label: 'image_url',
+                    value: 'imageUrl',
+                    show: true
+                },
+                {
+                    label: 'test_time',
+                    value: 'testTime',
+                    show: true
+                },
             ],
             multipleMode: false,
             showAdvancedQueryDialog: false,
@@ -167,6 +185,14 @@ export default {
                     label: '备注',
                     value: 'remark'
                 },
+                {
+                    label: 'image_url',
+                    value: 'image_url'
+                },
+                {
+                    label: 'test_time',
+                    value: 'test_time'
+                },
             ],
             advancedQuerySearchKey: '',
         }