Browse Source

活动、政策、轮播、消息模块初次提交

shanxin 4 years ago
parent
commit
56131f0a33

+ 6 - 5
src/views/modules/activity/activity.vue

@@ -453,7 +453,7 @@
       },
       // 绑定物料
       bindingMaterial () {
-        if (this.dataListSelections.length != 1){
+        if (this.dataListSelections.length !== 1) {
           this.$message({
             message: '请选择一条活动记录进行操作!',
             type: 'error',
@@ -483,8 +483,9 @@
             method: 'post',
             data: this.$http.adornData(activityId, false)
           }).then(({data}) => {
+            console.log(data)
             if (data && data.code === 0) {
-              for (let i = 0; i < data.actAreas.length; i++ ){
+              for (let i = 0; i < data.actAreas.length; i++ ) {
                 this.checkboxGroup1.push(data.actAreas[i].provinceName)
               }
             }
@@ -492,13 +493,13 @@
           // 打开弹窗
           this.bindingAreaVisible = true
         }
-      },// 关闭绑定地区窗口
+      },
+      // 关闭绑定地区窗口
       closeArea () {
         this.checkboxGroup1 = []
         this.bindingAreaVisible = false
       },
       handleCloseArea (done) {
-        console.log("123")
         this.$confirm('确认关闭?')
           .then(_ => {
             this.checkboxGroup1 = []
@@ -523,7 +524,7 @@
           method: 'post'
         }).then(({data}) => {
           if (data && data.code === 0) {
-            for (let i = 0; i < data.list.length; i++ ){
+            for (let i = 0; i < data.list.length; i++) {
               this.cities[i] = data.list[i].label
             }
           }

+ 2 - 1
src/views/modules/activity/activityMatch-add-or-update.vue

@@ -97,7 +97,8 @@
             })
           }
         })
-      },// 获取品牌下拉
+      },
+      // 获取品牌下拉
       getBrandOptions () {
         this.$http({
           url: this.$http.adornUrl('/appconfig/configBrand/list'),

+ 2 - 1
src/views/modules/activity/activityMatch.vue

@@ -247,7 +247,8 @@
             }
           })
         }).catch(() => {})
-      },// 获取品牌下拉
+      },
+      // 获取品牌下拉
       getBrandOptions () {
         this.$http({
           url: this.$http.adornUrl('/appconfig/configBrand/list'),

+ 243 - 0
src/views/modules/appconfig/appConfigArticle-add-or-update.vue

@@ -0,0 +1,243 @@
+
+<template>
+  <el-dialog
+    :title="!dataForm.mainId ? '新增' : '修改'"
+    :close-on-click-modal="false"
+    width="800px"
+    :visible.sync="visible">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px">
+
+      <el-row>
+        <el-col :span="24">
+          <el-form-item label="标题" prop="title">
+            <el-input v-model="dataForm.title" placeholder="标题" type="textarea"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="24">
+          <el-form-item label="简介" prop="summarys">
+            <el-input v-model="dataForm.summarys" placeholder="简介" type="textarea"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="排序" prop="orderIndex">
+            <el-input v-model="dataForm.orderIndex" placeholder="排序" type="number"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="作者" prop="author">
+            <el-input v-model="dataForm.author" placeholder="作者"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="发布时间" prop="pubTime">
+              <el-date-picker
+                value-format="yyyy-MM-dd HH:mm:ss"
+                v-model="dataForm.pubTime"
+                type="datetime"
+                style="width: 100%"
+                placeholder="发布时间">
+              </el-date-picker>
+              <!--<el-input v-model="dataForm.beginDate" placeholder="开始日期"></el-input>-->
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="显示类型" prop="displayType">
+            <!--<el-input v-model="dataForm.displayType" placeholder="显示类型(0车主/1门店/2经销商)"></el-input>-->
+            <el-select v-model="dataForm.displayType" placeholder="请选择">
+              <el-option
+                v-for="item in typeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="是否默认展示" prop="flagDefault">
+            <el-switch
+              v-model="dataForm.flagDefault"
+              active-value="1"
+              inactive-value="0"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+            >
+            </el-switch>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="状态" prop="nstatus">
+            <el-switch
+              v-model="dataForm.nstatus"
+              active-value="1"
+              inactive-value="0"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+            >
+            </el-switch>
+          </el-form-item>
+        </el-col>
+      </el-row>
+
+      <el-form-item label="备注" prop="description">
+        <el-input v-model="dataForm.description" placeholder="备注"></el-input>
+      </el-form-item>
+
+      <el-form-item label="文章内容" prop="contentDetail" style="height: 400px;">
+        <!--<el-input v-model="dataForm.contentDetail" placeholder="contentDetail"></el-input>-->
+        <quill-editor
+          v-model="dataForm.contentDetail"
+          class="editor"
+          ref="myTextEditor"
+          :options="editorOption"
+          style="height: 300px"
+        />
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+import 'quill/dist/quill.core.css'
+import 'quill/dist/quill.snow.css'
+import 'quill/dist/quill.bubble.css'
+
+import {quillEditor} from 'vue-quill-editor'
+import {quillRedefine} from 'vue-quill-editor-upload'
+
+const token = localStorage.getItem('token') // 要保证取到
+export default {
+  components: {
+    quillEditor,
+    quillRedefine
+  },
+  props: {
+    dataForm: {
+      type: Object,
+      require: false,
+      flagDefault: 0,
+      nstatus: 0
+    }
+  },
+  data () {
+    return {
+      editorOption: {
+        modules: {
+          toolbar: [
+            ['bold', 'italic', 'underline', 'strike'],
+            ['blockquote', 'code-block'],
+            [{ header: 1 }, { header: 2 }],
+            [{ list: 'ordered' }, { list: 'bullet' }],
+            [{ script: 'sub' }, { script: 'super' }],
+            [{ indent: '-1' }, { indent: '+1' }],
+            [{ direction: 'rtl' }],
+            [{ size: ['small', false, 'large', 'huge'] }],
+            [{ header: [1, 2, 3, 4, 5, 6, false] }],
+            [{ font: [] }],
+            [{ color: [] }, { background: [] }],
+            [{ align: [] }],
+            ['clean'],
+            ['link', 'image', 'video']
+          ],
+          syntax: {
+            // highlight: text => hljs.highlightAuto(text).value
+            highlight: text => this.highlightAuto(text).value
+          }
+        }
+      },
+      visible: false,
+      dataRule: {
+        // 需要验证的字段名,下面的只是栗子,有些不能同时存在一个验证内
+        title: [
+          { required: true, message: '标题不能为空', trigger: 'blur' }
+        ],
+        orderIndex: [
+          { required: true, message: '排序不可为空', trigger: 'blur' }
+        ],
+        pubTime: [
+          { required: true, message: '发布时间不可为空', trigger: 'blur' }
+        ],
+        displayType: [
+          { required: true, message: '展示类型不可为空', trigger: 'blur' }
+        ],
+        contentDetail: [
+          { required: true, message: '文章内容不能为空', trigger: 'blur' }
+        ]
+      },
+      typeOptions: [
+        {
+          value: '0',
+          label: '车主'
+        }, {
+          value: '1',
+          label: '门店'
+        }, {
+          value: '2',
+          label: '经销商'
+        }
+      ]
+    }
+  },
+  created () {
+    let that = this
+    that.upLoadUrl = '/api/sys/appconfig/configArticle/uploadFile' + '/?width=300'
+    that.editorOption = quillRedefine({
+      uploadConfig: {
+        action: '/api/sys/appconfig/configArticle/uploadFile',
+        token: token,
+        res: respnse => {
+          const path = respnse.data // 这里return你的图片地址即可
+          return path
+        },
+        name: 'file'
+      }
+    })
+  },
+  methods: {
+    init () {
+      this.visible = true
+    },
+    // 表单提交
+    dataFormSubmit () {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          this.$http({
+            url: this.$http.adornUrl(`/appconfig/configArticle/${!this.dataForm.mainId ? 'save' : 'update'}`),
+            method: 'post',
+            data: this.$http.adornData(this.dataForm)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.visible = false
+                  this.$emit('refreshDataList')
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }
+      })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+</style>

+ 311 - 0
src/views/modules/appconfig/appConfigArticle.vue

@@ -0,0 +1,311 @@
+<template>
+  <div class="mod-appConfigArticle">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item>
+        <!--<el-button @click="getDataList()">查询</el-button>-->
+        <el-button v-if="isAuth('appconfig:configArticle:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      @selection-change="selectionChangeHandle"
+      style="width: 100%;">
+      <el-table-column
+        type="selection"
+        header-align="center"
+        align="center"
+        width="50">
+      </el-table-column>
+      <el-table-column
+        prop="title"
+        header-align="center"
+        align="center"
+        label="标题">
+      </el-table-column>
+      <el-table-column
+        prop="author"
+        header-align="center"
+        align="center"
+        label="作者">
+      </el-table-column>
+      <!--
+      <el-table-column
+        prop="viceTitle"
+        header-align="center"
+        align="center"
+        label="副标题">
+      </el-table-column>
+      <el-table-column
+        prop="summarys"
+        header-align="center"
+        align="center"
+        label="简介">
+      </el-table-column>
+      <el-table-column
+        prop="imagePath"
+        header-align="center"
+        align="center"
+        label="图片">
+      </el-table-column>
+      <el-table-column
+        prop="isSys"
+        header-align="center"
+        align="center"
+        label="是否系统文章">
+      </el-table-column>
+      <el-table-column
+        prop="isOuterlink"
+        header-align="center"
+        align="center"
+        label="是否外链">
+      </el-table-column>
+      <el-table-column
+        prop="url"
+        header-align="center"
+        align="center"
+        label="url">
+      </el-table-column>
+      <el-table-column
+        prop="fileUrl"
+        header-align="center"
+        align="center"
+        label="附件地址">
+      </el-table-column>
+      <el-table-column
+        prop="typeId"
+        header-align="center"
+        align="center"
+        label="文章类别">
+      </el-table-column>
+      <el-table-column
+        prop="contentDetail"
+        header-align="center"
+        align="center"
+        label="文章内容">
+      </el-table-column>
+      -->
+      <el-table-column
+        prop="pubTime"
+        header-align="center"
+        align="center"
+        label="发布时间">
+      </el-table-column>
+      <el-table-column
+        prop="nstatus"
+        header-align="center"
+        align="center"
+        :formatter="flagNstatus"
+        label="状态">
+      </el-table-column>
+      <el-table-column
+        prop="orderIndex"
+        header-align="center"
+        align="center"
+        label="排序">
+      </el-table-column>
+      <el-table-column
+        prop="displayType"
+        header-align="center"
+        align="center"
+        :formatter="flagDisplayType"
+        label="显示类型">
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        header-align="center"
+        align="center"
+        label="创建时间">
+      </el-table-column>
+      <el-table-column
+        prop="flagDefault"
+        header-align="center"
+        align="center"
+        :formatter="flagDefaultShow"
+        label="是否默认">
+      </el-table-column>
+      <el-table-column
+        prop="description"
+        header-align="center"
+        align="center"
+        label="备注">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button v-if="isAuth('appconfig:configArticle:edit')" type="text" size="small" @click="addOrUpdateHandle(scope.row)">修改</el-button>
+          <el-button v-if="isAuth('appconfig:configArticle:delete')" type="text" size="small" @click="deleteHandle(scope.row.mainId)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="dataForm.current"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="dataForm.size"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <!-- 弹窗, 新增 / 修改 -->
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" :dataForm="editModel"></add-or-update>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './appConfigArticle-add-or-update'
+  export default {
+    data () {
+      return {
+        dataForm: {
+          current: 1,
+          size: 10
+        },
+        editModel: {},
+        dataList: [],
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: [],
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+      AddOrUpdate
+    },
+    activated () {
+      this.getDataList()
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/appconfig/configArticle/page'),
+          method: 'get',
+          params: this.$http.adornParams(this.dataForm)
+        }).then(({data}) => {
+          if (data && data.code === 0) {
+            this.dataList = data.page.records
+            this.totalPage = data.page.total
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.dataForm.size = val
+        this.dataForm.current = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.dataForm.current = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 新增 / 修改
+      addOrUpdateHandle (row) {
+        this.addOrUpdateVisible = true
+        if (row) {
+          this.editModel = row
+        } else {
+          this.editModel = {
+            mainId: null,
+            title: null,
+            viceTitle: null,
+            keywords: null,
+            author: null,
+            summarys: null,
+            imagePath: null,
+            isSys: null,
+            isOuterlink: null,
+            url: null,
+            fileUrl: null,
+            pubTime: null,
+            nstatus: null,
+            orderIndex: null,
+            description: null,
+            displayType: null,
+            typeId: null,
+            contentDetail: null,
+            createTime: null,
+            flagDefault: null
+          }
+        }
+        this.$nextTick(() => {
+          this.$refs.addOrUpdate.init()
+        })
+      },
+      // 删除
+      deleteHandle (id) {
+        var appConfigArticleIds = id ? [id] : this.dataListSelections.map(item => {
+          return item.userId
+        })
+        this.$confirm(`确定对[id=${appConfigArticleIds.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$http({
+            url: this.$http.adornUrl('/appconfig/configArticle/delete'),
+            method: 'post',
+            data: this.$http.adornData(appConfigArticleIds, false)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.getDataList()
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }).catch(() => {})
+      },
+      flagNstatus (row, col) {
+        if (row.nstatus === 1) {
+          return '启用'
+        } else if (row.nstatus === 0) {
+          return '禁用'
+        } else {
+          return '数据异常'
+        }
+      },
+      flagDisplayType (row, col) {
+        if (row.displayType === '1') {
+          return '门店'
+        } else if (row.displayType === '0') {
+          return '车主'
+        } else if (row.displayType === '2') {
+          return '经销商'
+        } else {
+          return '数据异常'
+        }
+      },
+      flagDefaultShow (row, col) {
+        if (row.flagDefault === 0) {
+          return '不默认'
+        } else if (row.flagDefault === 1) {
+          return '默认显示'
+        } else {
+          return '数据异常'
+        }
+      }
+    }
+  }
+</script>

+ 169 - 0
src/views/modules/appconfig/configBanner-add-or-update.vue

@@ -0,0 +1,169 @@
+<template>
+  <el-dialog
+    :title="!dataForm.mainId ? '新增' : '修改'"
+    :close-on-click-modal="false"
+    :visible.sync="visible">
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="120px">
+
+      <el-form-item label="展示位置" prop="showPosition">
+        <el-select v-model="dataForm.showPosition" placeholder="请选择">
+          <el-option
+            v-for="item in showPositionOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="可见品牌" prop="brand">
+        <!--<el-input v-model="dataForm.brand" placeholder="可见品牌"></el-input>-->
+        <el-select  v-model="dataForm.brandCode" placeholder="品牌" filterable>
+          <el-option
+            v-for="item in brandOptions"
+            :key="item.brandCode"
+            :label="item.brandName"
+            :value="item.brandCode">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="BANNER描述" prop="bannerName">
+        <el-input v-model="dataForm.bannerName" placeholder="banner描述"></el-input>
+      </el-form-item>
+      <el-form-item label="图片" prop="imgPath">
+        <!--<el-input v-model="dataForm.imgPath" placeholder="banner图片"></el-input>-->
+        <el-upload
+          class="upload-demo"
+          :limit="1"
+          :multiple="false"
+          :action="uploadURL"
+          :on-preview="handlePreview"
+          :on-remove="handleRemove"
+          :file-list="fileList"
+          :headers = "uploadHeaders"
+          :on-success="handleSuccess"
+          list-type="picture">
+          <el-button size="small" type="primary">点击上传</el-button>
+          <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
+        </el-upload>
+      </el-form-item>
+      <el-form-item label="排序" prop="orderIndex">
+        <el-input type="number" v-model="dataForm.orderIndex" placeholder="排序"></el-input>
+      </el-form-item>
+      <el-form-item label="备注" prop="remark">
+        <el-input type="textarea" v-model="dataForm.remark" placeholder="备注"></el-input>
+      </el-form-item>
+
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  import Vue from "vue";
+
+  const token = localStorage.getItem('token')
+  export default {
+   props: {
+      dataForm: {
+          type: Object,
+          require: false
+        }
+      },
+    data () {
+      return {
+        uploadHeaders: {
+          token: Vue.cookie.get('token')
+        },
+        visible: false,
+        showPositionOptions: [{
+          value: '0',
+          label: '门店APP'
+        }, {
+          value: '1',
+          label: '小程序'
+        }, {
+          value: '2',
+          label: '通商APP'
+        }],
+        dataRule: {
+          showPosition: [
+            { required: true, message: '展示位置不可为空', trigger: 'blur' }
+          ],
+          brandCode: [
+            { required: true, message: '品牌名称不可为空', trigger: 'blur' }
+          ],
+          bannerName: [
+            { required: true, message: '轮播名不可为空', trigger: 'blur' }
+          ],
+          orderIndex: [
+            { required: true, message: '排序值不可为空', trigger: 'blur' }
+          ],
+          remark: [
+            { required: true, message: '备注描述不可为空', trigger: 'blur' }
+          ],
+        },
+        brandOptions: [],
+        uploadURL: '/api/sys/appconfig/configBrand/uploadFile',
+        fileList: []
+      }
+    },
+    methods: {
+      init () {
+        this.visible = true
+        this.getBrandOptions()
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl(`/appconfig/configBanner/${!this.dataForm.mainId ? 'save' : 'update'}`),
+              method: 'post',
+              data: this.$http.adornData(this.dataForm)
+            }).then(({data}) => {
+              if (data && data.code === 0) {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.visible = false
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      } ,
+      // 获取品牌下拉
+      getBrandOptions () {
+        this.$http({
+          url: this.$http.adornUrl('/appconfig/configBrand/list'),
+          method: 'get'
+        }).then(({data}) => {
+          if (data && data.code === 0) {
+            this.brandOptions = data.list
+          } else {
+            this.brandOptions = []
+          }
+        })
+      },
+      handlePreview (file) {
+        console.log(file)
+      },
+      handleSuccess (response) {
+        this.dataForm.imgPath = response.data
+      },
+      handleRemove (file, fileList) {
+        console.log(file, fileList)
+        this.dataForm.imgPath = ''
+      }
+    }
+  }
+</script>

+ 249 - 0
src/views/modules/appconfig/configBanner.vue

@@ -0,0 +1,249 @@
+<template>
+  <div class="mod-configBanner">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+
+      <el-form-item>
+        <el-button @click="getDataList()">查询</el-button>
+        <el-button v-if="isAuth('appconfig:configBanner:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
+        <el-button v-if="isAuth('appconfig:configBanner:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      @selection-change="selectionChangeHandle"
+      style="width: 100%;">
+      <el-table-column
+        type="selection"
+        header-align="center"
+        align="center"
+        width="50">
+      </el-table-column>
+      <el-table-column
+        prop="bannerName"
+        header-align="center"
+        align="center"
+        label="名称描述">
+      </el-table-column>
+      <el-table-column
+        prop="brandCode"
+        header-align="center"
+        align="center"
+        label="可见品牌">
+      </el-table-column>
+      <!--<el-table-column
+        prop="path"
+        header-align="center"
+        align="center"
+        label="链接">
+      </el-table-column>-->
+      <!--<el-table-column
+        prop="imgPath"
+        header-align="center"
+        align="center"
+        label="banner">
+      </el-table-column>-->
+      <el-table-column prop="" label="图片展示" width="280">
+        <!--加入下面的内容,scope.row代表这一行,img是显示这一行的哪个字段,我的是img,你的自己看下-->
+        <template slot-scope="scope">
+          <img :src="scope.row.imgPath" alt="" width="40%" height="40%">
+        </template>
+      </el-table-column>
+
+
+      <el-table-column
+        prop="orderIndex"
+        header-align="center"
+        align="center"
+        label="排序">
+      </el-table-column>
+      <el-table-column
+        prop="remark"
+        header-align="center"
+        align="center"
+        label="备注">
+      </el-table-column>
+      <el-table-column
+        prop="flagDel"
+        header-align="center"
+        align="center"
+        :formatter="flagUseStatus"
+        label="是否有效">
+      </el-table-column>
+      <el-table-column
+        prop="showPosition"
+        header-align="center"
+        align="center"
+        :formatter="showPositionFormatter"
+        label="展示位置">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button v-if="isAuth('appconfig:configBanner:edit')" type="text" size="small" @click="addOrUpdateHandle(scope.row)">修改</el-button>
+          <el-button v-if="isAuth('appconfig:configBanner:delete')" type="text" size="small" @click="deleteHandle(scope.row.mainId)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="dataForm.current"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="dataForm.size"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <!-- 弹窗, 新增 / 修改 -->
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" :dataForm="editModel"></add-or-update>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './configBanner-add-or-update'
+  export default {
+    data () {
+      return {
+        dataForm: {
+          current: 1,
+          size: 10
+        },
+        editModel: {},
+        dataList: [],
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: [],
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+      AddOrUpdate
+    },
+    activated () {
+      this.getDataList()
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/appconfig/configBanner/page'),
+          method: 'get',
+          params: this.$http.adornParams(this.dataForm)
+        }).then(({data}) => {
+          if (data && data.code === 0) {
+            this.dataList = data.page.records
+            this.totalPage = data.page.total
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.dataForm.size = val
+        this.dataForm.current = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.dataForm.current = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 新增 / 修改
+      addOrUpdateHandle (row) {
+        this.addOrUpdateVisible = true
+        if (row) {
+          this.editModel = row
+        } else {
+          this.editModel = {
+            mainId: null,
+            bannerName: null,
+            brand: null,
+            path: null,
+            imgPath: null,
+            type: null,
+            orderIndex: null,
+            remark: null,
+            flagDel: null,
+            width: null,
+            height: null,
+            showPosition: null,
+            createTime: null,
+            updateTime: null,
+            createBy: null,
+            brandCode: null,
+            appType: null,
+            msgTitle: null,
+            contentType: null,
+            modelType: null,
+          }
+        }
+        this.$nextTick(() => {
+          this.$refs.addOrUpdate.init()
+        })
+      },
+      // 删除
+      deleteHandle (id) {
+        var configBannerIds = id ? [id] : this.dataListSelections.map(item => {
+          return item.userId
+        })
+        this.$confirm(`确定对[id=${configBannerIds.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$http({
+            url: this.$http.adornUrl('/appconfig/configBanner/delete'),
+            method: 'post',
+            data: this.$http.adornData(configBannerIds, false)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.getDataList()
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }).catch(() => {})
+      },
+      flagUseStatus (row, col) {
+        if (row.flagDel === 1) {
+          return '有效'
+        } else if (row.flagDel === 0) {
+          return '无效'
+        } else {
+          return '数据异常'
+        }
+      },
+      showPositionFormatter (row, col) {
+        if (row.showPosition === 0) {
+          return '门店APP'
+        } else if (row.showPosition === 1) {
+          return '小程序'
+        } else if (row.showPosition === 2) {
+          return '通商APP'
+        } else {
+          return '数据异常'
+        }
+      }
+    }
+  }
+</script>

+ 3 - 3
src/views/modules/appconfig/configBrand.vue

@@ -161,13 +161,13 @@
       },
       // 每页数
       sizeChangeHandle (val) {
-        this.pageSize = val
-        this.pageIndex = 1
+        this.dataForm.size = val
+        this.dataForm.current = 1
         this.getDataList()
       },
       // 当前页
       currentChangeHandle (val) {
-        this.pageIndex = val
+        this.dataForm.current = val
         this.getDataList()
       },
       // 多选

+ 97 - 0
src/views/modules/appconfig/configNotice-add-or-update.vue

@@ -0,0 +1,97 @@
+
+<template>
+  <el-dialog
+    :title="!dataForm.mainId ? '新增' : '修改'"
+    :close-on-click-modal="false"
+    :visible.sync="visible"
+    width="600px"
+  >
+    <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()" label-width="100px">
+
+      <el-form-item label="消息类型" prop="contentType">
+        <!--<el-input v-model="dataForm.contentType" placeholder=""></el-input>-->
+        <el-select v-model="dataForm.contentType" placeholder="请选择">
+          <el-option
+            v-for="item in contentTypeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="消息内容" prop="msgContent">
+        <el-input type="textarea" v-model="dataForm.msgContent" placeholder="消息内容"></el-input>
+      </el-form-item>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()">确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+   props: {
+      dataForm: {
+          type: Object,
+          require: false
+        }
+      },
+    data () {
+      return {
+        visible: false,
+        dataRule: {
+          contentType: [
+            { required: true, message: '类型不能为空', trigger: 'blur' }
+          ],
+          msgContent: [
+            { required: true, message: '消息内容不能为空', trigger: 'blur' }
+          ]
+        },
+        contentTypeOptions: [{
+          value: '0',
+          label: '系统消息'
+        }, {
+          value: '1',
+          label: '门店消息'
+        }, {
+          value: '2',
+          label: '经销商消息'
+        }]
+      }
+    },
+    methods: {
+      init () {
+        this.visible = true
+      },
+      // 表单提交
+      dataFormSubmit () {
+        this.$refs['dataForm'].validate((valid) => {
+          if (valid) {
+            this.$http({
+              url: this.$http.adornUrl(`/appconfig/configNotice/${!this.dataForm.mainId ? 'save' : 'update'}`),
+              method: 'post',
+              data: this.$http.adornData(this.dataForm)
+            }).then(({data}) => {
+              if (data && data.code === 0) {
+                this.$message({
+                  message: '操作成功',
+                  type: 'success',
+                  duration: 1500,
+                  onClose: () => {
+                    this.visible = false
+                    this.$emit('refreshDataList')
+                  }
+                })
+              } else {
+                this.$message.error(data.msg)
+              }
+            })
+          }
+        })
+      }
+    }
+  }
+</script>

+ 195 - 0
src/views/modules/appconfig/configNotice.vue

@@ -0,0 +1,195 @@
+<template>
+  <div class="mod-configNotice">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item>
+        <el-button @click="getDataList()">查询</el-button>
+        <el-button v-if="isAuth('appconfig:configNotice:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
+        <el-button v-if="isAuth('appconfig:configNotice:delete')" type="danger" @click="deleteHandle()" :disabled="dataListSelections.length <= 0">批量删除</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="dataList"
+      border
+      v-loading="dataListLoading"
+      @selection-change="selectionChangeHandle"
+      style="width: 100%;">
+      <el-table-column
+        type="selection"
+        header-align="center"
+        align="center"
+        width="50">
+      </el-table-column>
+      <el-table-column
+        prop="msgContent"
+        header-align="center"
+        align="center"
+        label="消息内容">
+      </el-table-column>
+
+      <el-table-column
+        prop="contentType"
+        header-align="center"
+        align="center"
+        :formatter="noticeFormatter"
+        label="消息类型">
+      </el-table-column>
+      <el-table-column
+        prop="createTime"
+        header-align="center"
+        align="center"
+        label="创建时间">
+      </el-table-column>
+      <el-table-column
+        prop="createUser"
+        header-align="center"
+        align="center"
+        label="创建人ID">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button v-if="isAuth('appconfig:configNotice:edit')" type="text" size="small" @click="addOrUpdateHandle(scope.row)">修改</el-button>
+          <el-button v-if="isAuth('appconfig:configNotice:delete')" type="text" size="small" @click="deleteHandle(scope.row.mainId)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="dataForm.current"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="dataForm.size"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <!-- 弹窗, 新增 / 修改 -->
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" :dataForm="editModel"></add-or-update>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './configNotice-add-or-update'
+  export default {
+    data () {
+      return {
+        dataForm: {
+          current: 1,
+          size: 10
+        },
+        editModel: {},
+        dataList: [],
+        totalPage: 0,
+        dataListLoading: false,
+        dataListSelections: [],
+        addOrUpdateVisible: false
+      }
+    },
+    components: {
+      AddOrUpdate
+    },
+    activated () {
+      this.getDataList()
+    },
+    methods: {
+      // 获取数据列表
+      getDataList () {
+        this.dataListLoading = true
+        this.$http({
+          url: this.$http.adornUrl('/appconfig/configNotice/page'),
+          method: 'get',
+          params: this.$http.adornParams(this.dataForm)
+        }).then(({data}) => {
+          if (data && data.code === 0) {
+            this.dataList = data.page.records
+            this.totalPage = data.page.total
+          } else {
+            this.dataList = []
+            this.totalPage = 0
+          }
+          this.dataListLoading = false
+        })
+      },
+      // 每页数
+      sizeChangeHandle (val) {
+        this.pageSize = val
+        this.pageIndex = 1
+        this.getDataList()
+      },
+      // 当前页
+      currentChangeHandle (val) {
+        this.pageIndex = val
+        this.getDataList()
+      },
+      // 多选
+      selectionChangeHandle (val) {
+        this.dataListSelections = val
+      },
+      // 新增 / 修改
+      addOrUpdateHandle (row) {
+        this.addOrUpdateVisible = true
+        if (row) {
+          this.editModel = row
+        } else {
+          this.editModel = {
+            mainId: null,
+            msgContent: null,
+            createTime: null,
+            contentType: null,
+            createUser: null,
+            msgTitle: null,
+          }
+        }
+        this.$nextTick(() => {
+          this.$refs.addOrUpdate.init()
+        })
+      },
+      // 删除
+      deleteHandle (id) {
+        var configNoticeIds = id ? [id] : this.dataListSelections.map(item => {
+          return item.userId
+        })
+        this.$confirm(`确定对[id=${configNoticeIds.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.$http({
+            url: this.$http.adornUrl('/appconfig/configNotice/delete'),
+            method: 'post',
+            data: this.$http.adornData(configNoticeIds, false)
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 1500,
+                onClose: () => {
+                  this.getDataList()
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        }).catch(() => {})
+      },
+      noticeFormatter (row, col) {
+        if (row.contentType === 0) {
+          return '系统消息'
+        } else if (row.contentType === 1) {
+          return '门店消息'
+        } else if (row.contentType === 2) {
+          return '经销商消息'
+        } else if (row.contentType === 3) {
+          return '车主消息'
+        } else {
+          return '数据异常'
+        }
+      }
+    }
+  }
+</script>

+ 1 - 3
src/views/modules/appconfig/configSignLv-add-or-update.vue

@@ -56,12 +56,10 @@
         }
       }
     },
-    mounted (){
-      this.getBrandList()
-    },
     methods: {
       init () {
         this.visible = true
+        this.getBrandList()
       },
       // 表单提交
       dataFormSubmit () {

+ 3 - 3
src/views/modules/appconfig/configSignLv.vue

@@ -113,13 +113,13 @@
       },
       // 每页数
       sizeChangeHandle (val) {
-        this.pageSize = val
-        this.pageIndex = 1
+        this.dataForm.size = val
+        this.dataForm.current = 1
         this.getDataList()
       },
       // 当前页
       currentChangeHandle (val) {
-        this.pageIndex = val
+        this.dataForm.current = val
         this.getDataList()
       },
       // 多选