suochencheng 7 лет назад
Родитель
Сommit
ac37bb1fbe

+ 235 - 0
src/main/vue/src/pages/ProductInfoTicket.vue

@@ -0,0 +1,235 @@
+<template>
+    <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="typeFlag" label="类型">
+                <template>
+                    <el-select v-model="formData.typeFlag" clearable placeholder="请选择" disabled>
+                        <el-option v-for="item in typeFlagOptions" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-form-item>
+            <!-- <el-form-item prop="useScope" label="使用范围">
+                <el-input v-model="formData.useScope" :disabled="'useScope'==subColumn"></el-input>
+            </el-form-item> -->
+            <el-form-item prop="landmarkId" label="地标Id">
+                <template>
+                    <el-select v-model="formData.landmarkId" clearable filterable placeholder="请选择" :disabled="'landmarkId'==subColumn">
+                        <el-option v-for="item in landmarkIdOptions" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </template>
+            </el-form-item>
+            <el-form-item prop="productName" label="名称">
+                <el-input v-model="formData.productName" :disabled="'productName'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="price" label="价格">
+                <el-input type="number" v-model="formData.price" :disabled="'price'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="image" label="图片">
+                <multi-upload v-model="formData.image" :disabled="'image'==subColumn"></multi-upload>
+            </el-form-item>
+            <el-form-item prop="productContent" label="详情">
+                <el-input v-model="formData.productContent" :disabled="'productContent'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="stockNum" label="数量">
+                <el-input type="number" v-model="formData.stockNum" :disabled="'stockNum'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="limitNum" label="限购数量">
+                <el-input type="number" v-model="formData.limitNum" :disabled="'limitNum'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="limitDate" label="有效期">
+                <template>
+                    <div class="block">
+                        <el-date-picker v-model="formData.limitDate" type="date" value-format="timestamp" placeholder="选择日期" :disabled="'limitDate'==subColumn">
+                        </el-date-picker>
+                    </div>
+                </template>
+            </el-form-item>
+            <el-form-item prop="ticketId" label="票ID">
+                <el-input v-model="formData.ticketId" :disabled="'ticketId'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="scenicId" label="景区ID">
+                <el-input v-model="formData.scenicId" :disabled="'scenicId'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="scenicName" label="景区">
+                <el-input v-model="formData.scenicName" :disabled="'scenicName'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="ticketName" label="票">
+                <el-input v-model="formData.ticketName" :disabled="'ticketName'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="webPrice" label="web价">
+                <el-input v-model="formData.webPrice" :disabled="'webPrice'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="salePrice" label="sale价">
+                <el-input v-model="formData.salePrice" :disabled="'salePrice'==subColumn"></el-input>
+            </el-form-item>
+            <!-- <el-form-item prop="priceLowFlag" label="价格预警">
+                <el-input v-model="formData.priceLowFlag" :disabled="'priceLowFlag'==subColumn"></el-input>
+            </el-form-item> -->
+            <el-form-item prop="remark" label="备注">
+                <el-input v-model="formData.remark" :disabled="'remark'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="shelfFlag" label="上架">
+                <el-switch v-model="formData.shelfFlag" active-color="#13ce66" inactive-color="#ff4949" :disabled="'shelfFlag'==subColumn">
+                </el-switch>
+            </el-form-item>
+            <!-- <el-form-item prop="packageIds" label="导航包ids">
+                <el-input v-model="formData.packageIds" :disabled="'packageIds'==subColumn"></el-input>
+            </el-form-item>
+            <el-form-item prop="productIds" label="商品Ids">
+                <el-input v-model="formData.productIds" :disabled="'productIds'==subColumn"></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>
+            </el-form-item>
+        </el-form>
+    </div>
+</template>
+<script>
+import formValidator from '../formValidator';
+
+export default {
+    created() {
+        if (this.$route.query.column) {
+            this.subColumn = this.$route.query.column.split(',')[1];
+            this.subValue = this.$route.query.column.split(',')[0];
+        }
+
+        if (this.$route.query.id) {
+            this.$http
+                .get({
+                    url: '/productInfo/getOne',
+                    data: {
+                        id: this.$route.query.id,
+                    },
+                })
+                .then(res => {
+                    if (res.success) {
+                        this.formData = res.data;
+
+                        if (this.$route.query.column) {
+                            this.formData[this.subColumn] = this.subValue;
+                        }
+
+                        this.formData.shelfFlag =
+                            this.formData.shelfFlag == 'Y' ? true : false;
+                    }
+                });
+        } else {
+            if (this.$route.query.column) {
+                this.formData[this.subColumn] = this.subValue;
+            }
+        }
+
+        this.$http
+            .get({
+                url: '/landMark/all',
+            })
+            .then(res => {
+                if (res.success) {
+                    if (res.data.length > 0) {
+                        res.data.forEach(item => {
+                            this.landmarkIdOptions.push({
+                                label: item.mapName,
+                                value: item.id,
+                            });
+                        });
+                    }
+                }
+            });
+    },
+    data() {
+        return {
+            saving: false,
+            formData: {
+                typeFlag: 0,
+            },
+            rules: {},
+            typeFlagOptions: [
+                {
+                    value: 0,
+                    label: '门票',
+                },
+                {
+                    value: 1,
+                    label: '导航包',
+                },
+                {
+                    value: 2,
+                    label: '实物券',
+                },
+                {
+                    value: 3,
+                    label: '优惠券',
+                },
+                {
+                    value: 4,
+                    label: '组合商品',
+                },
+            ],
+            landmarkIdOptions: [],
+            subColumn: '',
+            subValue: '',
+        };
+    },
+    methods: {
+        onSave() {
+            this.$refs.form.validate(valid => {
+                if (valid) {
+                    this.submit();
+                } else {
+                    return false;
+                }
+            });
+        },
+        submit() {
+            var data = JSON.parse(JSON.stringify(this.formData));
+
+            data.shelfFlag = this.formData.shelfFlag ? 'Y' : 'N';
+
+            this.$http
+                .post({
+                    url: this.formData.id
+                        ? '/productInfo/update'
+                        : '/productInfo/save',
+                    data: data,
+                })
+                .then(res => {
+                    if (res.success) {
+                        this.$message.success('成功');
+                        this.$router.go(-1);
+                    } else {
+                        this.$message.warning('失败');
+                    }
+                });
+        },
+        onDelete() {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', {
+                type: 'error',
+            })
+                .then(() => {
+                    return this.$http.post({
+                        url: '/productInfo/del',
+                        data: { id: this.formData.id },
+                    });
+                })
+                .then(() => {
+                    this.$message.success('删除成功');
+                    this.$router.go(-1);
+                })
+                .catch(action => {
+                    if (action === 'cancel') {
+                        this.$message.info('删除取消');
+                    } else {
+                        this.$message.error('删除失败');
+                    }
+                });
+        },
+    },
+};
+</script>
+<style lang="less" scoped>
+</style>

+ 590 - 565
src/main/vue/src/pages/ProductInfos.vue

@@ -1,7 +1,7 @@
 <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>
@@ -19,7 +19,7 @@
             </el-button>
             <el-dropdown trigger="click" size="medium" class="table-column-filter">
                 <span>
-                  筛选数据<i class="el-icon-arrow-down el-icon--right"></i>
+                    筛选数据<i class="el-icon-arrow-down el-icon--right"></i>
                 </span>
                 <el-dropdown-menu slot="dropdown" class="table-column-filter-wrapper">
                     <el-checkbox v-for="item in tableColumns" :key="item.value" v-model="item.show">{{item.label}}
@@ -28,184 +28,183 @@
             </el-dropdown>
         </div>
         <el-table
-                :data="tableData"
-                :height="tableHeight"
-                row-key="id"
-                ref="table">
+                  :data="tableData"
+                  :height="tableHeight"
+                  row-key="id"
+                  ref="table">
+            <el-table-column
+                             v-if="multipleMode"
+                             align="center"
+                             type="selection"
+                             width="50">
+            </el-table-column>
+            <el-table-column
+                             type="index"
+                             min-width="50"
+                             align="center">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('id')"
+                             prop="id"
+                             label="ID"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('typeFlag')"
+                             prop="typeFlag"
+                             label="类型"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('useScope')"
+                             prop="useScope"
+                             label="使用范围"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('landmarkId')"
+                             prop="landmarkId"
+                             label="地标Id"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('productName')"
+                             prop="productName"
+                             label="名称"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('price')"
+                             prop="price"
+                             label="价格"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('image')"
+                             prop="image"
+                             label="图片"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('productContent')"
+                             prop="productContent"
+                             label="详情"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('stockNum')"
+                             prop="stockNum"
+                             label="数量"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('limitNum')"
+                             prop="limitNum"
+                             label="限购数量"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('limitDate')"
+                             prop="limitDate"
+                             label="有效期"
+                             :formatter="DateFormatter"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('ticketId')"
+                             prop="ticketId"
+                             label="票ID"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('scenicId')"
+                             prop="scenicId"
+                             label="景区ID"
+                             min-width="100">
+            </el-table-column>
+
             <el-table-column
-                    v-if="multipleMode"
-                    align="center"
-                    type="selection"
-                    width="50">
+                             v-if="isColumnShow('scenicName')"
+                             prop="scenicName"
+                             label="景区"
+                             min-width="100">
             </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('ticketName')"
+                             prop="ticketName"
+                             label="票"
+                             min-width="100">
+            </el-table-column>
+
             <el-table-column
-                    type="index"
-                    min-width="50"
-                    align="center">
+                             v-if="isColumnShow('webPrice')"
+                             prop="webPrice"
+                             label="web价"
+                             min-width="100">
             </el-table-column>
-                            
-                                            <el-table-column
-                                v-if="isColumnShow('id')"
-                                prop="id"
-                                label="ID"
-                                min-width="100">
-                        </el-table-column>
-                                                                                                                                                                                                            
-                                            <el-table-column
-                                v-if="isColumnShow('typeFlag')"
-                                prop="typeFlag"
-                                label="类型"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('useScope')"
-                                prop="useScope"
-                                label="使用范围"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('landmarkId')"
-                                prop="landmarkId"
-                                label="地标Id"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('productName')"
-                                prop="productName"
-                                label="名称"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('price')"
-                                prop="price"
-                                label="价格"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('image')"
-                                prop="image"
-                                label="图片"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('productContent')"
-                                prop="productContent"
-                                label="详情"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('stockNum')"
-                                prop="stockNum"
-                                label="数量"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('limitNum')"
-                                prop="limitNum"
-                                label="限购数量"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('limitDate')"
-                                prop="limitDate"
-                                label="有效期"
-                                :formatter="DateFormatter"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('ticketId')"
-                                prop="ticketId"
-                                label="票ID"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('scenicId')"
-                                prop="scenicId"
-                                label="景区ID"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('scenicName')"
-                                prop="scenicName"
-                                label="景区"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('ticketName')"
-                                prop="ticketName"
-                                label="票"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('webPrice')"
-                                prop="webPrice"
-                                label="web价"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('salePrice')"
-                                prop="salePrice"
-                                label="sale价"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('priceLowFlag')"
-                                prop="priceLowFlag"
-                                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('shelfFlag')"
-                                prop="shelfFlag"
-                                label="上架"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('packageIds')"
-                                prop="packageIds"
-                                label="导航包ids"
-                                min-width="100">
-                        </el-table-column>
-                                                                
-                                            <el-table-column
-                                v-if="isColumnShow('productIds')"
-                                prop="productIds"
-                                label="商品Ids"
-                                min-width="100">
-                        </el-table-column>
-                                                            <el-table-column
-                    label="操作"
-                    align="center"
-                    fixed="right"
-                    min-width="150"
-            >
+
+            <el-table-column
+                             v-if="isColumnShow('salePrice')"
+                             prop="salePrice"
+                             label="sale价"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('priceLowFlag')"
+                             prop="priceLowFlag"
+                             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('shelfFlag')"
+                             prop="shelfFlag"
+                             label="上架"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('packageIds')"
+                             prop="packageIds"
+                             label="导航包ids"
+                             min-width="100">
+            </el-table-column>
+
+            <el-table-column
+                             v-if="isColumnShow('productIds')"
+                             prop="productIds"
+                             label="商品Ids"
+                             min-width="100">
+            </el-table-column>
+            <el-table-column
+                             label="操作"
+                             align="center"
+                             fixed="right"
+                             min-width="150">
                 <template slot-scope="scope">
-                            <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
+                    <el-button @click="editRow(scope.row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="deleteRow(scope.row)" type="danger" size="mini" plain>删除</el-button>
                 </template>
             </el-table-column>
@@ -220,14 +219,14 @@
                 </el-button-group>
             </div>
             <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">
+                           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="showAdvancedQueryDialog">
@@ -322,423 +321,449 @@
     </div>
 </template>
 <script>
-    import {mapState} from 'vuex'
-    import {format} from 'date-fns'
-    import zh from 'date-fns/locale/zh_cn'
-
-    export default {
-        created() {
+import { mapState } from 'vuex';
+import { format } from 'date-fns';
+import zh from 'date-fns/locale/zh_cn';
+
+export default {
+    created() {
+        this.getData();
+    },
+    data() {
+        return {
+            totalNumber: 0,
+            totalPage: 10,
+            currentPage: 1,
+            pageSize: 20,
+            tableData: [],
+            filter1: '',
+            filter2: '',
+            tableColumns: [
+                {
+                    label: 'ID',
+                    value: 'id',
+                    show: true,
+                },
+                {
+                    label: '类型',
+                    value: 'typeFlag',
+                    show: true,
+                },
+                {
+                    label: '使用范围',
+                    value: 'useScope',
+                    show: true,
+                },
+                {
+                    label: '地标Id',
+                    value: 'landmarkId',
+                    show: true,
+                },
+                {
+                    label: '名称',
+                    value: 'productName',
+                    show: true,
+                },
+                {
+                    label: '价格',
+                    value: 'price',
+                    show: true,
+                },
+                {
+                    label: '图片',
+                    value: 'image',
+                    show: true,
+                },
+                {
+                    label: '详情',
+                    value: 'productContent',
+                    show: true,
+                },
+                {
+                    label: '数量',
+                    value: 'stockNum',
+                    show: true,
+                },
+                {
+                    label: '限购数量',
+                    value: 'limitNum',
+                    show: true,
+                },
+                {
+                    label: '有效期',
+                    value: 'limitDate',
+                    show: true,
+                },
+                {
+                    label: '票ID',
+                    value: 'ticketId',
+                    show: true,
+                },
+                {
+                    label: '景区ID',
+                    value: 'scenicId',
+                    show: true,
+                },
+                {
+                    label: '景区',
+                    value: 'scenicName',
+                    show: true,
+                },
+                {
+                    label: '票',
+                    value: 'ticketName',
+                    show: true,
+                },
+                {
+                    label: 'web价',
+                    value: 'webPrice',
+                    show: true,
+                },
+                {
+                    label: 'sale价',
+                    value: 'salePrice',
+                    show: true,
+                },
+                {
+                    label: '价格预警',
+                    value: 'priceLowFlag',
+                    show: true,
+                },
+                {
+                    label: '备注',
+                    value: 'remark',
+                    show: true,
+                },
+                {
+                    label: '上架',
+                    value: 'shelfFlag',
+                    show: true,
+                },
+                {
+                    label: '导航包ids',
+                    value: 'packageIds',
+                    show: true,
+                },
+                {
+                    label: '商品Ids',
+                    value: 'productIds',
+                    show: true,
+                },
+            ],
+            multipleMode: false,
+            showAdvancedQueryDialog: false,
+            advancedQueryFields: [],
+            showTableSortDialog: false,
+            tableSortFields: [],
+            searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
+            advancedQueryColumns: [
+                {
+                    label: 'ID',
+                    value: 'id',
+                },
+                {
+                    label: '类型',
+                    value: 'type_flag',
+                },
+                {
+                    label: '使用范围',
+                    value: 'use_scope',
+                },
+                {
+                    label: '地标Id',
+                    value: 'landmark_id',
+                },
+                {
+                    label: '名称',
+                    value: 'product_name',
+                },
+                {
+                    label: '价格',
+                    value: 'price',
+                },
+                {
+                    label: '图片',
+                    value: 'image',
+                },
+                {
+                    label: '详情',
+                    value: 'product_content',
+                },
+                {
+                    label: '数量',
+                    value: 'stock_num',
+                },
+                {
+                    label: '限购数量',
+                    value: 'limit_num',
+                },
+                {
+                    label: '有效期',
+                    value: 'limit_date',
+                },
+                {
+                    label: '票ID',
+                    value: 'ticket_id',
+                },
+                {
+                    label: '景区ID',
+                    value: 'scenic_id',
+                },
+                {
+                    label: '景区',
+                    value: 'scenic_name',
+                },
+                {
+                    label: '票',
+                    value: 'ticket_name',
+                },
+                {
+                    label: 'web价',
+                    value: 'web_price',
+                },
+                {
+                    label: 'sale价',
+                    value: 'sale_price',
+                },
+                {
+                    label: '价格预警',
+                    value: 'price_low_flag',
+                },
+                {
+                    label: '备注',
+                    value: 'remark',
+                },
+                {
+                    label: '上架',
+                    value: 'shelf_flag',
+                },
+                {
+                    label: '导航包ids',
+                    value: 'package_ids',
+                },
+                {
+                    label: '商品Ids',
+                    value: 'product_ids',
+                },
+            ],
+            advancedQuerySearchKey: '',
+            orderByStr: '',
+            imgSrc: '',
+            imageDialogVisible: false,
+        };
+    },
+    computed: {
+        ...mapState(['tableHeight']),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        },
+    },
+    methods: {
+        pageSizeChange(size) {
+            this.currentPage = 1;
+            this.pageSize = size;
             this.getData();
         },
-        data() {
-            return {
-                totalNumber: 0,
-                totalPage: 10,
-                currentPage: 1,
-                pageSize: 20,
-                tableData: [],
-                filter1: '',
-                filter2: '',
-                tableColumns: [
-                                                                        {
-                                label: 'ID',
-                                value: 'id',
-                                show: true
-                            },
-                                                                                                                                                                                                                                                                                                                            {
-                                label: '类型',
-                                value: 'typeFlag',
-                                show: true
-                            },
-                                                                                                {
-                                label: '使用范围',
-                                value: 'useScope',
-                                show: true
-                            },
-                                                                                                {
-                                label: '地标Id',
-                                value: 'landmarkId',
-                                show: true
-                            },
-                                                                                                {
-                                label: '名称',
-                                value: 'productName',
-                                show: true
-                            },
-                                                                                                {
-                                label: '价格',
-                                value: 'price',
-                                show: true
-                            },
-                                                                                                {
-                                label: '图片',
-                                value: 'image',
-                                show: true
-                            },
-                                                                                                {
-                                label: '详情',
-                                value: 'productContent',
-                                show: true
-                            },
-                                                                                                {
-                                label: '数量',
-                                value: 'stockNum',
-                                show: true
-                            },
-                                                                                                {
-                                label: '限购数量',
-                                value: 'limitNum',
-                                show: true
-                            },
-                                                                                                {
-                                label: '有效期',
-                                value: 'limitDate',
-                                show: true
-                            },
-                                                                                                {
-                                label: '票ID',
-                                value: 'ticketId',
-                                show: true
-                            },
-                                                                                                {
-                                label: '景区ID',
-                                value: 'scenicId',
-                                show: true
-                            },
-                                                                                                {
-                                label: '景区',
-                                value: 'scenicName',
-                                show: true
-                            },
-                                                                                                {
-                                label: '票',
-                                value: 'ticketName',
-                                show: true
-                            },
-                                                                                                {
-                                label: 'web价',
-                                value: 'webPrice',
-                                show: true
-                            },
-                                                                                                {
-                                label: 'sale价',
-                                value: 'salePrice',
-                                show: true
-                            },
-                                                                                                {
-                                label: '价格预警',
-                                value: 'priceLowFlag',
-                                show: true
-                            },
-                                                                                                {
-                                label: '备注',
-                                value: 'remark',
-                                show: true
-                            },
-                                                                                                {
-                                label: '上架',
-                                value: 'shelfFlag',
-                                show: true
-                            },
-                                                                                                {
-                                label: '导航包ids',
-                                value: 'packageIds',
-                                show: true
-                            },
-                                                                                                {
-                                label: '商品Ids',
-                                value: 'productIds',
-                                show: true
-                            },
-                                                            ],
-                multipleMode: false,
-                showAdvancedQueryDialog: false,
-                advancedQueryFields: [],
-                showTableSortDialog: false,
-                tableSortFields: [],
-                searchMethods: ['=', '!=', '>', '>=', '<', '<=', 'like'],
-                advancedQueryColumns: [
-                                                                        {
-                                label: 'ID',
-                                value: 'id'
-                            },
-                                                                                                                                                                                                                                                                                                                            {
-                                label: '类型',
-                                value: 'type_flag'
-                            },
-                                                                                                {
-                                label: '使用范围',
-                                value: 'use_scope'
-                            },
-                                                                                                {
-                                label: '地标Id',
-                                value: 'landmark_id'
-                            },
-                                                                                                {
-                                label: '名称',
-                                value: 'product_name'
-                            },
-                                                                                                {
-                                label: '价格',
-                                value: 'price'
-                            },
-                                                                                                {
-                                label: '图片',
-                                value: 'image'
-                            },
-                                                                                                {
-                                label: '详情',
-                                value: 'product_content'
-                            },
-                                                                                                {
-                                label: '数量',
-                                value: 'stock_num'
-                            },
-                                                                                                {
-                                label: '限购数量',
-                                value: 'limit_num'
-                            },
-                                                                                                {
-                                label: '有效期',
-                                value: 'limit_date'
-                            },
-                                                                                                {
-                                label: '票ID',
-                                value: 'ticket_id'
-                            },
-                                                                                                {
-                                label: '景区ID',
-                                value: 'scenic_id'
-                            },
-                                                                                                {
-                                label: '景区',
-                                value: 'scenic_name'
-                            },
-                                                                                                {
-                                label: '票',
-                                value: 'ticket_name'
-                            },
-                                                                                                {
-                                label: 'web价',
-                                value: 'web_price'
-                            },
-                                                                                                {
-                                label: 'sale价',
-                                value: 'sale_price'
-                            },
-                                                                                                {
-                                label: '价格预警',
-                                value: 'price_low_flag'
-                            },
-                                                                                                {
-                                label: '备注',
-                                value: 'remark'
-                            },
-                                                                                                {
-                                label: '上架',
-                                value: 'shelf_flag'
-                            },
-                                                                                                {
-                                label: '导航包ids',
-                                value: 'package_ids'
-                            },
-                                                                                                {
-                                label: '商品Ids',
-                                value: 'product_ids'
-                            },
-                                                            ],
-                advancedQuerySearchKey: '',
-                orderByStr: '',
-                imgSrc: '',
-                imageDialogVisible: false,
-            }
+        currentPageChange(page) {
+            this.currentPage = page;
+            this.getData();
         },
-        computed: {
-            ...mapState(['tableHeight']),
-            selection() {
-                return this.$refs.table.selection.map(i => i.id);
+        getData() {
+            var data = {
+                currentPage: this.currentPage,
+                pageNumber: this.pageSize,
+                searchKey: this.filter1,
+                advancedQuery: this.advancedQuerySearchKey,
+                orderByStr: this.orderByStr,
+            };
+
+            if (this.$route.query.column) {
+                var tempColumn = this.$route.query.column;
+                data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
             }
-        },
-        methods: {
-            pageSizeChange(size) {
-                this.currentPage = 1;
-                this.pageSize = size;
-                this.getData();
-            },
-            currentPageChange(page) {
-                this.currentPage = page;
-                this.getData();
-            },
-            getData() {
-
-                var data = {
-                    currentPage: this.currentPage,
-                    pageNumber: this.pageSize,
-                    searchKey: this.filter1,
-                    advancedQuery: this.advancedQuerySearchKey,
-                    orderByStr: this.orderByStr,
-                }
 
-                if (this.$route.query.column) {
-                    var tempColumn = this.$route.query.column;
-                    data[tempColumn.split(',')[1]] = tempColumn.split(',')[0];
-                }
-
-                this.$http.get({
+            this.$http
+                .get({
                     url: '/productInfo/page',
-                    data: data
-                }).then(res => {
+                    data: data,
+                })
+                .then(res => {
                     if (res.success) {
                         this.totalNumber = res.data.page.totalNumber;
                         this.tableData = res.data.pp;
                     }
-                })
-            },
-            isColumnShow(column) {
-                var row = this.tableColumns.find(i => i.value === column);
-                return row ? row.show : false;
-            },
-            toggleMultipleMode(multipleMode) {
-                this.multipleMode = multipleMode;
-                if (!multipleMode) {
-                    this.$refs.table.clearSelection();
-                }
-            },
-            editRow(row) {
+                });
+        },
+        isColumnShow(column) {
+            var row = this.tableColumns.find(i => i.value === column);
+            return row ? row.show : false;
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
+            }
+        },
+        editRow(row) {
+            console.log(row);
+            console.log(row.typeFlag);
+            if (row.typeFlag == 0) {
+                this.$router.push({
+                    path: '/productInfoTicket',
+                    query: {
+                        id: row.id,
+                        column: this.$route.query.column,
+                    },
+                });
+            } else {
                 this.$router.push({
                     path: '/productInfo',
                     query: {
                         id: row.id,
                         column: this.$route.query.column,
-                    }
-                })
-            },
-            operation1() {
-                this.$notify({
-                    title: '提示',
-                    message: this.selection
+                    },
                 });
-            },
-            operation2() {
-                this.$message('操作2');
-            },
-            addField() {
-                this.advancedQueryFields.push({
-                    link: 'AND',
-                    name: '',
-                    searchMethod: '=',
-                    value: '',
+            }
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection,
+            });
+        },
+        operation2() {
+            this.$message('操作2');
+        },
+        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);
+                    }
                 });
-            },
-            removeField(i) {
-                if (this.advancedQueryFields.length > 0) {
-                    this.advancedQueryFields.splice(i, 1);
-                }
-            },
-            advancedQuery() {
-
-                this.advancedQuerySearchKey = '';
 
-                if (this.advancedQueryFields.length > 0) {
-
-                    var templist = [];
+                if (templist.length > 0) {
+                    this.advancedQuerySearchKey = templist.join('_;');
+                }
+            }
 
-                    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);
-                        }
-                    })
+            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 (templist.length > 0) {
+            if (this.tableSortFields.length > 0) {
+                var templist = [];
 
-                        this.advancedQuerySearchKey = templist.join('_;');
+                this.tableSortFields.forEach(item => {
+                    if (item.name && item.order) {
+                        var tempItem = item.name + '_,' + item.order;
+                        templist.push(tempItem);
                     }
-                }
-
-                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('_;');
-                    }
+                if (templist.length > 0) {
+                    this.orderByStr = templist.join('_;');
                 }
+            }
 
-                this.getData();
-                this.showTableSortDialog = false;
-            },
-            exportExcel() {
-                window.location.href = this.$baseUrl + "/productInfo/exportExcel?searchKey="
-                        + this.filter1 + "&advancedQuery=" + this.advancedQuerySearchKey+"&orderByStr=" + this.orderByStr;
-            },
-            searchData() {
-                this.currentPage = 1;
-                this.getData();
-            },
-            deleteRow(row) {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
+            this.getData();
+            this.showTableSortDialog = false;
+        },
+        exportExcel() {
+            window.location.href =
+                this.$baseUrl +
+                '/productInfo/exportExcel?searchKey=' +
+                this.filter1 +
+                '&advancedQuery=' +
+                this.advancedQuerySearchKey +
+                '&orderByStr=' +
+                this.orderByStr;
+        },
+        searchData() {
+            this.currentPage = 1;
+            this.getData();
+        },
+        deleteRow(row) {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', {
+                type: 'error',
+            })
+                .then(() => {
                     return this.$http.post({
                         url: '/productInfo/del',
-                        data: {id: row.id}
-                    })
-                }).then(() => {
+                        data: { id: row.id },
+                    });
+                })
+                .then(() => {
                     this.$message.success('删除成功');
                     this.getData();
-                }).catch(action => {
+                })
+                .catch(action => {
                     if (action === 'cancel') {
                         this.$message.info('删除取消');
                     } else {
                         this.$message.error('删除失败');
                     }
-                })
-            },
-            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;
-            },
-
-        }
-    }
+                });
+        },
+        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;
+        },
+    },
+};
 </script>
 <style lang="less" scoped>
-
 </style>

+ 154 - 242
src/main/vue/src/router/index.js

@@ -1,710 +1,619 @@
-import Vue from 'vue'
-import Router from 'vue-router'
-import store from '../vuex'
-import axios from 'axios'
+import Vue from 'vue';
+import Router from 'vue-router';
+import store from '../vuex';
+import axios from 'axios';
 
 Vue.use(Router);
 
 const router = new Router({
-    routes: [{
+    routes: [
+        {
             path: '/',
-            component: () =>
-                import ('../pages/App'),
-            children: [{
+            component: () => import('../pages/App'),
+            children: [
+                {
                     path: '/',
-                    redirect: 'dashboard'
+                    redirect: 'dashboard',
                 },
                 {
                     path: '/404',
                     name: '404',
-                    component: () =>
-                        import ('../pages/404')
+                    component: () => import('../pages/404'),
                 },
                 {
                     path: '/dashboard',
                     name: 'dashboard',
-                    component: () =>
-                        import ('../pages/Dashboard')
+                    component: () => import('../pages/Dashboard'),
                 },
                 {
                     path: '/users',
                     name: 'users',
-                    component: () =>
-                        import ('../pages/Users')
+                    component: () => import('../pages/Users'),
                 },
                 {
                     path: '/user',
                     name: 'user',
-                    component: () =>
-                        import ('../pages/User')
+                    component: () => import('../pages/User'),
                 },
                 {
                     path: '/menus',
                     name: 'menus',
-                    component: () =>
-                        import ('../pages/Menus')
+                    component: () => import('../pages/Menus'),
                 },
                 {
                     path: '/roles',
                     name: 'roles',
-                    component: () =>
-                        import ('../pages/Roles')
+                    component: () => import('../pages/Roles'),
                 },
                 {
                     path: '/role',
                     name: 'role',
-                    component: () =>
-                        import ('../pages/Role')
+                    component: () => import('../pages/Role'),
                 },
                 {
                     path: '/api',
                     name: 'api',
-                    component: () =>
-                        import ('../pages/Api')
+                    component: () => import('../pages/Api'),
                 },
                 {
                     path: '/genCodes',
                     name: 'genCodes',
-                    component: () =>
-                        import ('../pages/GenCodes')
+                    component: () => import('../pages/GenCodes'),
                 },
                 {
                     path: '/genCode',
                     name: 'genCode',
-                    component: () =>
-                        import ('../pages/GenCode')
+                    component: () => import('../pages/GenCode'),
                 },
                 {
                     path: '/permissions',
                     name: 'permissions',
-                    component: () =>
-                        import ('../pages/Permissions')
+                    component: () => import('../pages/Permissions'),
                 },
                 {
                     path: '/permission',
                     name: 'permission',
-                    component: () =>
-                        import ('../pages/Permission')
+                    component: () => import('../pages/Permission'),
                 },
                 {
                     path: '/departs',
                     name: 'departs',
-                    component: () =>
-                        import ('../pages/Departs')
+                    component: () => import('../pages/Departs'),
                 },
                 {
                     path: '/lineChart',
                     name: 'lineChart',
-                    component: () =>
-                        import ('../pages/LineChart')
+                    component: () => import('../pages/LineChart'),
                 },
                 {
                     path: '/barChart',
                     name: 'barChart',
-                    component: () =>
-                        import ('../pages/BarChart')
+                    component: () => import('../pages/BarChart'),
                 },
                 {
                     path: '/polarAreaChart',
                     name: 'polarAreaChart',
-                    component: () =>
-                        import ('../pages/PolarAreaChart')
+                    component: () => import('../pages/PolarAreaChart'),
                 },
                 {
                     path: '/pieChart',
                     name: 'pieChart',
-                    component: () =>
-                        import ('../pages/PieChart')
+                    component: () => import('../pages/PieChart'),
                 },
                 {
                     path: '/radarChart',
                     name: 'radarChart',
-                    component: () =>
-                        import ('../pages/RadarChart')
+                    component: () => import('../pages/RadarChart'),
                 },
                 {
                     path: '/bubbleChart',
                     name: 'bubbleChart',
-                    component: () =>
-                        import ('../pages/BubbleChart')
+                    component: () => import('../pages/BubbleChart'),
                 },
                 {
                     path: '/processModels',
                     name: 'processModels',
-                    component: () =>
-                        import ('../pages/ProcessModels')
+                    component: () => import('../pages/ProcessModels'),
                 },
                 {
                     path: '/processDefinitions',
                     name: 'processDefinitions',
-                    component: () =>
-                        import ('../pages/ProcessDefinitions')
+                    component: () => import('../pages/ProcessDefinitions'),
                 },
                 {
                     path: '/myProcesses',
                     name: 'myProcesses',
-                    component: () =>
-                        import ('../pages/MyProcesses')
+                    component: () => import('../pages/MyProcesses'),
                 },
                 {
                     path: '/myTasks',
                     name: 'myTasks',
-                    component: () =>
-                        import ('../pages/MyTasks')
+                    component: () => import('../pages/MyTasks'),
                 },
                 {
                     path: '/completeTaskDynamic',
                     name: 'CompleteTaskDynamic',
-                    component: () =>
-                        import ('../pages/CompleteTaskDynamic')
+                    component: () => import('../pages/CompleteTaskDynamic'),
                 },
                 {
                     path: '/commonQuerys',
                     name: 'commonQuerys',
-                    component: () =>
-                        import ('../pages/CommonQuerys')
+                    component: () => import('../pages/CommonQuerys'),
                 },
                 {
                     path: '/commonQuery',
                     name: 'commonQuery',
-                    component: () =>
-                        import ('../pages/CommonQuery')
+                    component: () => import('../pages/CommonQuery'),
                 },
                 {
                     path: '/commonIframe',
                     name: 'commonIframe',
-                    component: () =>
-                        import ('../pages/CommonIframe')
+                    component: () => import('../pages/CommonIframe'),
                 },
                 {
                     path: '/queryConfigs',
                     name: 'queryConfigs',
-                    component: () =>
-                        import ('../pages/QueryConfigs')
+                    component: () => import('../pages/QueryConfigs'),
                 },
                 {
                     path: '/queryConfig',
                     name: 'queryConfig',
-                    component: () =>
-                        import ('../pages/QueryConfig')
+                    component: () => import('../pages/QueryConfig'),
                 },
                 {
                     path: '/dataSourceInfos',
                     name: 'dataSourceInfos',
-                    component: () =>
-                        import ('../pages/DataSourceInfos')
+                    component: () => import('../pages/DataSourceInfos'),
                 },
                 {
                     path: '/dataSourceInfo',
                     name: 'dataSourceInfo',
-                    component: () =>
-                        import ('../pages/DataSourceInfo')
+                    component: () => import('../pages/DataSourceInfo'),
                 },
                 {
                     path: '/deploySystem',
                     name: 'DeploySystem',
-                    component: () =>
-                        import ('../pages/DeploySystem')
+                    component: () => import('../pages/DeploySystem'),
                 },
                 {
                     path: '/myCanvas',
                     name: 'MyCanvas',
-                    component: () =>
-                        import ('../pages/MyCanvas')
+                    component: () => import('../pages/MyCanvas'),
                 },
                 {
                     path: '/drugArea',
                     name: 'drugArea',
-                    component: () =>
-                        import ('../pages/DrugAreaCanvas')
+                    component: () => import('../pages/DrugAreaCanvas'),
                 },
                 {
                     path: '/drugAreaCanvas',
                     name: 'drugAreaCanvas',
-                    component: () =>
-                        import ('../pages/DrugAreaCanvas')
+                    component: () => import('../pages/DrugAreaCanvas'),
                 },
                 {
                     path: '/drugContent',
                     name: 'drugContent',
-                    component: () =>
-                        import ('../pages/DrugContentCanvas')
+                    component: () => import('../pages/DrugContentCanvas'),
                 },
                 {
                     path: '/drugContentCanvas',
                     name: 'drugContentCanvas',
-                    component: () =>
-                        import ('../pages/DrugContentCanvas')
+                    component: () => import('../pages/DrugContentCanvas'),
                 },
                 {
                     path: '/arContentTemplate',
                     name: 'arContentTemplate',
-                    component: () =>
-                        import ('../pages/ArContentTemplate')
+                    component: () => import('../pages/ArContentTemplate'),
                 },
                 {
                     path: '/arContentTemplates',
                     name: 'arContentTemplates',
-                    component: () =>
-                        import ('../pages/ArContentTemplates')
+                    component: () => import('../pages/ArContentTemplates'),
                 },
                 {
                     path: '/marketMap',
                     name: 'MarketMap',
-                    component: () =>
-                        import ('../pages/MarketMap')
+                    component: () => import('../pages/MarketMap'),
                 },
                 {
                     path: '/marketMaps',
                     name: 'MarketMaps',
-                    component: () =>
-                        import ('../pages/MarketMaps')
+                    component: () => import('../pages/MarketMaps'),
                 },
                 {
                     path: '/marketMapBox',
                     name: 'MarketMapBox',
-                    component: () =>
-                        import ('../pages/MarketMapBox')
+                    component: () => import('../pages/MarketMapBox'),
                 },
                 {
                     path: '/marketMapBoxs',
                     name: 'MarketMapBoxs',
-                    component: () =>
-                        import ('../pages/MarketMapBoxs')
+                    component: () => import('../pages/MarketMapBoxs'),
                 },
                 {
                     path: '/marketMapBoxDes',
                     name: 'MarketMapBoxDes',
-                    component: () =>
-                        import ('../pages/MarketMapBoxDes')
+                    component: () => import('../pages/MarketMapBoxDes'),
                 },
                 {
                     path: '/marketMapBoxDess',
                     name: 'MarketMapBoxDess',
-                    component: () =>
-                        import ('../pages/MarketMapBoxDess')
+                    component: () => import('../pages/MarketMapBoxDess'),
                 },
                 {
                     path: '/guideTipImage',
                     name: 'GuideTipImage',
-                    component: () =>
-                        import ('../pages/GuideTipImage')
+                    component: () => import('../pages/GuideTipImage'),
                 },
                 {
                     path: '/guideTipImages',
                     name: 'GuideTipImages',
-                    component: () =>
-                        import ('../pages/GuideTipImages')
+                    component: () => import('../pages/GuideTipImages'),
                 },
                 {
                     path: '/marketAimPlace',
                     name: 'MarketAimPlace',
-                    component: () =>
-                        import ('../pages/MarketAimPlace')
+                    component: () => import('../pages/MarketAimPlace'),
                 },
                 {
                     path: '/marketAimPlaces',
                     name: 'MarketAimPlaces',
-                    component: () =>
-                        import ('../pages/MarketAimPlaces')
+                    component: () => import('../pages/MarketAimPlaces'),
                 },
                 {
                     path: '/landMark',
                     name: 'LandMark',
-                    component: () =>
-                        import ('../pages/LandMark')
+                    component: () => import('../pages/LandMark'),
                 },
                 {
                     path: '/landMarks',
                     name: 'LandMarks',
-                    component: () =>
-                        import ('../pages/LandMarks')
-                }, {
-
+                    component: () => import('../pages/LandMarks'),
+                },
+                {
                     path: '/landMarkCreate',
                     name: 'landMarkCreate',
-                    component: () =>
-                        import ('../pages/LandMarkCreate')
+                    component: () => import('../pages/LandMarkCreate'),
                 },
                 {
                     path: '/landMarkLevel',
                     name: 'LandMarkLevel',
-                    component: () =>
-                        import ('../pages/LandMarkLevel')
+                    component: () => import('../pages/LandMarkLevel'),
                 },
                 {
                     path: '/landMarkLevels',
                     name: 'LandMarkLevels',
-                    component: () =>
-                        import ('../pages/LandMarkLevels')
+                    component: () => import('../pages/LandMarkLevels'),
                 },
                 {
                     path: '/vuforiaImageGroup',
                     name: 'VuforiaImageGroup',
-                    component: () =>
-                        import ('../pages/VuforiaImageGroup')
+                    component: () => import('../pages/VuforiaImageGroup'),
                 },
                 {
                     path: '/vuforiaImageGroups',
                     name: 'VuforiaImageGroups',
-                    component: () =>
-                        import ('../pages/VuforiaImageGroups')
+                    component: () => import('../pages/VuforiaImageGroups'),
                 },
                 {
                     path: '/vuforiaImageType',
                     name: 'VuforiaImageType',
-                    component: () =>
-                        import ('../pages/VuforiaImageType')
+                    component: () => import('../pages/VuforiaImageType'),
                 },
                 {
                     path: '/vuforiaImageTypes',
                     name: 'VuforiaImageTypes',
-                    component: () =>
-                        import ('../pages/VuforiaImageTypes')
+                    component: () => import('../pages/VuforiaImageTypes'),
                 },
                 {
                     path: '/vuforiaImageInfo',
                     name: 'VuforiaImageInfo',
-                    component: () =>
-                        import ('../pages/VuforiaImageInfo')
+                    component: () => import('../pages/VuforiaImageInfo'),
                 },
                 {
                     path: '/vuforiaImageInfos',
                     name: 'VuforiaImageInfos',
-                    component: () =>
-                        import ('../pages/VuforiaImageInfos')
+                    component: () => import('../pages/VuforiaImageInfos'),
                 },
                 {
                     path: '/arContent',
                     name: 'ArContent',
-                    component: () =>
-                        import ('../pages/ArContent')
+                    component: () => import('../pages/ArContent'),
                 },
                 {
                     path: '/arContents',
                     name: 'ArContents',
-                    component: () =>
-                        import ('../pages/ArContents')
+                    component: () => import('../pages/ArContents'),
                 },
                 {
                     path: '/aimPlaceContent',
                     name: 'AimPlaceContent',
-                    component: () =>
-                        import ('../pages/AimPlaceContent')
+                    component: () => import('../pages/AimPlaceContent'),
                 },
                 {
                     path: '/aimPlaceContents',
                     name: 'AimPlaceContents',
-                    component: () =>
-                        import ('../pages/AimPlaceContents')
+                    component: () => import('../pages/AimPlaceContents'),
                 },
                 {
                     path: '/aimPlaceContentChild',
                     name: 'AimPlaceContentChild',
-                    component: () =>
-                        import ('../pages/AimPlaceContentChild')
+                    component: () => import('../pages/AimPlaceContentChild'),
                 },
                 {
                     path: '/aimPlaceContentChilds',
                     name: 'AimPlaceContentChilds',
-                    component: () =>
-                        import ('../pages/AimPlaceContentChilds')
+                    component: () => import('../pages/AimPlaceContentChilds'),
                 },
                 {
                     path: '/aimPlacePosition',
                     name: 'AimPlacePosition',
-                    component: () =>
-                        import ('../pages/AimPlacePosition')
+                    component: () => import('../pages/AimPlacePosition'),
                 },
                 {
                     path: '/aimPlacePositions',
                     name: 'AimPlacePositions',
-                    component: () =>
-                        import ('../pages/AimPlacePositions')
+                    component: () => import('../pages/AimPlacePositions'),
                 },
                 {
                     path: '/aimPlacePositionLevel',
                     name: 'AimPlacePositionLevel',
-                    component: () =>
-                        import ('../pages/AimPlacePositionLevel')
+                    component: () => import('../pages/AimPlacePositionLevel'),
                 },
                 {
                     path: '/aimPlacePositionLevels',
                     name: 'AimPlacePositionLevels',
-                    component: () =>
-                        import ('../pages/AimPlacePositionLevels')
+                    component: () => import('../pages/AimPlacePositionLevels'),
                 },
                 {
                     path: '/cityInfo',
                     name: 'CityInfo',
-                    component: () =>
-                        import ('../pages/CityInfo')
+                    component: () => import('../pages/CityInfo'),
                 },
                 {
                     path: '/cityInfos',
                     name: 'CityInfos',
-                    component: () =>
-                        import ('../pages/CityInfos')
+                    component: () => import('../pages/CityInfos'),
                 },
                 {
                     path: '/arContentChild',
                     name: 'ArContentChild',
-                    component: () =>
-                        import ('../pages/ArContentChild')
+                    component: () => import('../pages/ArContentChild'),
                 },
                 {
                     path: '/arContentChilds',
                     name: 'ArContentChilds',
-                    component: () =>
-                        import ('../pages/ArContentChilds')
+                    component: () => import('../pages/ArContentChilds'),
                 },
                 {
                     path: '/landmarkType',
                     name: 'LandmarkType',
-                    component: () =>
-                        import ('../pages/LandmarkType')
+                    component: () => import('../pages/LandmarkType'),
                 },
                 {
                     path: '/landmarkTypes',
                     name: 'LandmarkTypes',
-                    component: () =>
-                        import ('../pages/LandmarkTypes')
+                    component: () => import('../pages/LandmarkTypes'),
                 },
                 {
                     path: '/aimTemplate',
                     name: 'AimTemplate',
-                    component: () =>
-                        import ('../pages/AimTemplate')
+                    component: () => import('../pages/AimTemplate'),
                 },
                 {
                     path: '/aimTemplates',
                     name: 'AimTemplates',
-                    component: () =>
-                        import ('../pages/AimTemplates')
+                    component: () => import('../pages/AimTemplates'),
                 },
                 {
                     path: '/aimTemplateAim',
                     name: 'AimTemplateAim',
-                    component: () =>
-                        import ('../pages/AimTemplateAim')
+                    component: () => import('../pages/AimTemplateAim'),
                 },
                 {
                     path: '/aimTemplateAims',
                     name: 'AimTemplateAims',
-                    component: () =>
-                        import ('../pages/AimTemplateAims')
+                    component: () => import('../pages/AimTemplateAims'),
                 },
                 {
                     path: '/aimTemplateAr',
                     name: 'AimTemplateAr',
-                    component: () =>
-                        import ('../pages/AimTemplateAr')
+                    component: () => import('../pages/AimTemplateAr'),
                 },
                 {
                     path: '/aimTemplateArs',
                     name: 'AimTemplateArs',
-                    component: () =>
-                        import ('../pages/AimTemplateArs')
+                    component: () => import('../pages/AimTemplateArs'),
                 },
                 {
                     path: '/areaInfo',
                     name: 'AreaInfo',
-                    component: () =>
-                        import ('../pages/AreaInfo')
+                    component: () => import('../pages/AreaInfo'),
                 },
                 {
                     path: '/areaInfos',
                     name: 'AreaInfos',
-                    component: () =>
-                        import ('../pages/AreaInfos')
+                    component: () => import('../pages/AreaInfos'),
                 },
                 {
                     path: '/thingInfo',
                     name: 'ThingInfo',
-                    component: () =>
-                        import ('../pages/ThingInfo')
+                    component: () => import('../pages/ThingInfo'),
                 },
                 {
                     path: '/thingInfos',
                     name: 'ThingInfos',
-                    component: () =>
-                        import ('../pages/ThingInfos')
+                    component: () => import('../pages/ThingInfos'),
                 },
                 {
                     path: '/aimGroupInfo',
                     name: 'AimGroupInfo',
-                    component: () =>
-                        import ('../pages/AimGroupInfo')
+                    component: () => import('../pages/AimGroupInfo'),
                 },
                 {
                     path: '/aimGroupInfos',
                     name: 'AimGroupInfos',
-                    component: () =>
-                        import ('../pages/AimGroupInfos')
+                    component: () => import('../pages/AimGroupInfos'),
                 },
                 {
                     path: '/areaShowPoint',
                     name: 'AreaShowPoint',
-                    component: () =>
-                        import ('../pages/AreaShowPoint')
+                    component: () => import('../pages/AreaShowPoint'),
                 },
                 {
                     path: '/areaShowPoints',
                     name: 'AreaShowPoints',
-                    component: () =>
-                        import ('../pages/AreaShowPoints')
+                    component: () => import('../pages/AreaShowPoints'),
                 },
                 {
                     path: '/aimPlaceInfo',
                     name: 'AimPlaceInfo',
-                    component: () =>
-                        import ('../pages/AimPlaceInfo')
+                    component: () => import('../pages/AimPlaceInfo'),
                 },
                 {
                     path: '/aimPlaceInfos',
                     name: 'AimPlaceInfos',
-                    component: () =>
-                        import ('../pages/AimPlaceInfos')
+                    component: () => import('../pages/AimPlaceInfos'),
                 },
                 {
                     path: '/userFileInfo',
                     name: 'UserFileInfo',
-                    component: () =>
-                        import ('../pages/UserFileInfo')
+                    component: () => import('../pages/UserFileInfo'),
                 },
                 {
                     path: '/userFileInfos',
                     name: 'UserFileInfos',
-                    component: () =>
-                        import ('../pages/UserFileInfos')
+                    component: () => import('../pages/UserFileInfos'),
                 },
                 {
                     path: '/arContentType',
                     name: 'ArContentType',
-                    component: () =>
-                        import ('../pages/ArContentType')
+                    component: () => import('../pages/ArContentType'),
                 },
                 {
                     path: '/arContentTypes',
                     name: 'ArContentTypes',
-                    component: () =>
-                        import ('../pages/ArContentTypes')
+                    component: () => import('../pages/ArContentTypes'),
                 },
                 {
                     path: '/userUpdateLog',
                     name: 'UserUpdateLog',
-                    component: () => import('../pages/UserUpdateLog')
+                    component: () => import('../pages/UserUpdateLog'),
                 },
                 {
                     path: '/userUpdateLogs',
                     name: 'UserUpdateLogs',
-                    component: () => import('../pages/UserUpdateLogs')
+                    component: () => import('../pages/UserUpdateLogs'),
                 },
                 {
                     path: '/landMarkVersion',
                     name: 'LandMarkVersion',
-                    component: () => import('../pages/LandMarkVersion')
+                    component: () => import('../pages/LandMarkVersion'),
                 },
                 {
                     path: '/landMarkVersions',
                     name: 'LandMarkVersions',
-                    component: () => import('../pages/LandMarkVersions')
+                    component: () => import('../pages/LandMarkVersions'),
                 },
                 {
                     path: '/navigationPackage',
                     name: 'NavigationPackage',
-                    component: () => import('../pages/NavigationPackage')
+                    component: () => import('../pages/NavigationPackage'),
                 },
                 {
                     path: '/navigationPackages',
                     name: 'NavigationPackages',
-                    component: () => import('../pages/NavigationPackages')
+                    component: () => import('../pages/NavigationPackages'),
                 },
                 {
                     path: '/navigationPackageSelect',
                     name: 'NavigationPackageSelect',
-                    component: () => import('../pages/NavigationPackageSelect')
+                    component: () => import('../pages/NavigationPackageSelect'),
                 },
                 {
                     path: '/userOrder',
                     name: 'UserOrder',
-                    component: () => import('../pages/UserOrder')
+                    component: () => import('../pages/UserOrder'),
                 },
                 {
                     path: '/userOrders',
                     name: 'UserOrders',
-                    component: () => import('../pages/UserOrders')
+                    component: () => import('../pages/UserOrders'),
                 },
                 {
                     path: '/marketCodeLog',
                     name: 'MarketCodeLog',
-                    component: () => import('../pages/MarketCodeLog')
+                    component: () => import('../pages/MarketCodeLog'),
                 },
                 {
                     path: '/marketCodeLogs',
                     name: 'MarketCodeLogs',
-                    component: () => import('../pages/MarketCodeLogs')
+                    component: () => import('../pages/MarketCodeLogs'),
                 },
                 {
                     path: '/marketCode',
                     name: 'MarketCode',
-                    component: () => import('../pages/MarketCode')
+                    component: () => import('../pages/MarketCode'),
                 },
                 {
                     path: '/marketCodes',
                     name: 'MarketCodes',
-                    component: () => import('../pages/MarketCodes')
+                    component: () => import('../pages/MarketCodes'),
                 },
                 {
                     path: '/marketType',
                     name: 'MarketType',
-                    component: () => import('../pages/MarketType')
+                    component: () => import('../pages/MarketType'),
                 },
                 {
                     path: '/marketTypes',
                     name: 'MarketTypes',
-                    component: () => import('../pages/MarketTypes')
+                    component: () => import('../pages/MarketTypes'),
                 },
                 {
                     path: '/userComment',
                     name: 'UserComment',
-                    component: () => import('../pages/UserComment')
+                    component: () => import('../pages/UserComment'),
                 },
                 {
                     path: '/userComments',
                     name: 'UserComments',
-                    component: () => import('../pages/UserComments')
+                    component: () => import('../pages/UserComments'),
                 },
                 {
                     path: '/productInfo',
                     name: 'ProductInfo',
-                    component: () => import('../pages/ProductInfo')
+                    component: () => import('../pages/ProductInfo'),
+                },
+                {
+                    path: '/productInfoTicket',
+                    name: 'ProductInfoTicket',
+                    component: () => import('../pages/ProductInfoTicket'),
                 },
                 {
                     path: '/productInfos',
                     name: 'ProductInfos',
-                    component: () => import('../pages/ProductInfos')
+                    component: () => import('../pages/ProductInfos'),
                 },
                 {
                     path: '/userPackage',
                     name: 'UserPackage',
-                    component: () => import('../pages/UserPackage')
+                    component: () => import('../pages/UserPackage'),
                 },
                 {
                     path: '/userPackages',
                     name: 'UserPackages',
-                    component: () => import('../pages/UserPackages')
-                }
+                    component: () => import('../pages/UserPackages'),
+                },
                 /**INSERT_LOCATION**/
-            ]
+            ],
         },
         {
             path: '/login',
             name: 'login',
-            component: () =>
-                import ('../pages/Login')
-        }
-    ]
+            component: () => import('../pages/Login'),
+        },
+    ],
 });
 router.beforeEach((to, from, next) => {
     //console.log(to);
@@ -726,18 +635,21 @@ router.beforeEach((to, from, next) => {
         return;
     }
     if (!store.state.userInfo && to.path !== '/login') {
-        axios.get('/userInfo/getUserInfo').then(res => {
-            if (res.status === 200) {
-                if (res.data.success && res.data.data) {
-                    store.commit('updateUserInfo', res.data.data);
-                    next();
-                    return;
+        axios
+            .get('/userInfo/getUserInfo')
+            .then(res => {
+                if (res.status === 200) {
+                    if (res.data.success && res.data.data) {
+                        store.commit('updateUserInfo', res.data.data);
+                        next();
+                        return;
+                    }
                 }
-            }
-            next('/login');
-        }).catch(() => {
-            next('/login');
-        })
+                next('/login');
+            })
+            .catch(() => {
+                next('/login');
+            });
     } else if (!to.matched.length) {
         next('/404');
     } else {
@@ -748,4 +660,4 @@ router.afterEach((to, from) => {
     window.onresize();
 });
 
-export default router;
+export default router;

+ 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"><meta name=referrer content=origin><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><script src=/static/fontawesome-v5.2.0.js></script><link href=/static/css/admin.29b5b298e697b52006678afbc3cdfe1d.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.04960d783a66a8947536.js></script><script type=text/javascript src=/static/js/vendor.7594de9aaa3d9dda0ec6.js></script><script type=text/javascript src=/static/js/admin.63eaf567edecf4ea8a86.js></script></body></html>
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=origin><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><script src=/static/fontawesome-v5.2.0.js></script><link href=/static/css/admin.29b5b298e697b52006678afbc3cdfe1d.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.023cad1c26343dd67a84.js></script><script type=text/javascript src=/static/js/vendor.88b0e87da7ef33361a62.js></script><script type=text/javascript src=/static/js/admin.8ae21f16e8d74b39215c.js></script></body></html>

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

@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=origin><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><link href=/static/css/loginAdmin.46a5161090cd0d8998f220733fc576f0.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.04960d783a66a8947536.js></script><script type=text/javascript src=/static/js/vendor.7594de9aaa3d9dda0ec6.js></script><script type=text/javascript src=/static/js/loginAdmin.f71354eb64421d74f100.js></script></body></html>
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=origin><title>管理后台</title><link rel=icon href=/static/favicon.ico><script src=/static/polyfill.min.js></script><link href=/static/css/loginAdmin.46a5161090cd0d8998f220733fc576f0.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.023cad1c26343dd67a84.js></script><script type=text/javascript src=/static/js/vendor.88b0e87da7ef33361a62.js></script><script type=text/javascript src=/static/js/loginAdmin.2365ffe2667c728372ee.js></script></body></html>