Browse Source

基础设置

sunlupeng 8 months ago
parent
commit
2fd87af422

+ 49 - 0
src/api/express.js

@@ -0,0 +1,49 @@
+import request from '@/utils/request'
+
+export function listBrand(query) {
+  return request({
+    url: '/brand/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function createBrand(data) {
+  return request({
+    url: '/brand/create',
+    method: 'post',
+    data
+  })
+}
+
+export function readBrand(data) {
+  return request({
+    url: '/brand/read',
+    method: 'get',
+    data
+  })
+}
+
+export function updateBrand(data) {
+  return request({
+    url: '/brand/update',
+    method: 'post',
+    data
+  })
+}
+
+export function deleteBrand(data) {
+  return request({
+    url: '/brand/delete',
+    method: 'post',
+    data
+  })
+}
+
+export function setState(query) {
+  return request({
+    url: '/brand/status',
+    method: 'post',
+    params:query
+  })
+}

+ 41 - 0
src/api/store.js

@@ -0,0 +1,41 @@
+import request from '@/utils/request'
+
+export function listBrand(query) {
+  return request({
+    url: '/brand/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function createBrand(data) {
+  return request({
+    url: '/brand/create',
+    method: 'post',
+    data
+  })
+}
+
+export function readBrand(data) {
+  return request({
+    url: '/brand/read',
+    method: 'get',
+    data
+  })
+}
+
+export function updateBrand(data) {
+  return request({
+    url: '/brand/update',
+    method: 'post',
+    data
+  })
+}
+
+export function deleteBrand(data) {
+  return request({
+    url: '/brand/delete',
+    method: 'post',
+    data
+  })
+}

+ 34 - 0
src/api/supplier.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request'
+
+
+export function createItem(data) {
+  return request({
+    url: '/product/add',
+    method: 'post',
+    data
+  })
+}
+
+export function updateItem(query) {
+  return request({
+    url: '/product/edit',
+    method: 'post',
+    data:query
+  })
+}
+
+export function goodsList(query) {
+  return request({
+    url: '/product/page',
+    method: 'get',
+    params:query
+  })
+}
+
+export function removeItem(query) {
+  return request({
+    url: '/product/remove',
+    method: 'post',
+    params:query
+  })
+}

+ 41 - 0
src/api/warehouse.js

@@ -0,0 +1,41 @@
+import request from '@/utils/request'
+
+export function listBrand(query) {
+  return request({
+    url: '/brand/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function createBrand(data) {
+  return request({
+    url: '/brand/create',
+    method: 'post',
+    data
+  })
+}
+
+export function readBrand(data) {
+  return request({
+    url: '/brand/read',
+    method: 'get',
+    data
+  })
+}
+
+export function updateBrand(data) {
+  return request({
+    url: '/brand/update',
+    method: 'post',
+    data
+  })
+}
+
+export function deleteBrand(data) {
+  return request({
+    url: '/brand/delete',
+    method: 'post',
+    data
+  })
+}

+ 3 - 3
src/router/index.js

@@ -79,9 +79,9 @@ export const asyncRouterMap = [
     },
     children: [
       { path: 'supplier', component: _import('basicSetting/supplier'), name: 'supplier', meta: { title: '供应商管理', noCache: true }},
-      { path: 'warehouse', component: _import('basicSetting/supplier'), name: 'warehouse', meta: { title: '仓库管理', noCache: true }},
-      { path: 'express', component: _import('basicSetting/supplier'), name: 'express', meta: { title: '物流公司', noCache: true }},
-      { path: 'store', component: _import('basicSetting/supplier'), name: 'store', meta: { title: '门店管理', noCache: true }},
+      { path: 'warehouse', component: _import('basicSetting/warehouse'), name: 'warehouse', meta: { title: '仓库管理', noCache: true }},
+      { path: 'express', component: _import('basicSetting/express'), name: 'express', meta: { title: '物流公司', noCache: true }},
+      { path: 'store', component: _import('basicSetting/store'), name: 'store', meta: { title: '门店管理', noCache: true }},
     ]
   },
   {

+ 264 - 0
src/views/basicSetting/express.vue

@@ -0,0 +1,264 @@
+rookieCode<template>
+  <div class="app-container calendar-list-container">
+
+    <!-- 查询和其他操作 -->
+    <div class="filter-container">
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="物流公司名称" v-model="listQuery.logisticsName">
+      </el-input>
+      <el-select v-model="listQuery.status" clearable placeholder="状态" class="filter-item" style="width: 200px;">
+                <el-option :key="item.type" v-for="item in statusList" :label="item.name" :value="item.type">
+                </el-option>
+            </el-select>
+      <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleQuery">查找</el-button>
+      <el-button class="filter-item" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+      <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate">添加</el-button>
+      <el-button class="filter-item" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
+    </div>
+
+    <!-- 查询结果 -->
+    <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+      highlight-current-row>
+
+      <el-table-column type="index" label="序号" header-align="center" align="center">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="100px" label="物流公司名称" prop="logisticsName">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="快递查询代码" prop="queryCode">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="菜鸟代码" prop="rookieCode">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="50px" label="状态">
+          <template slot-scope="props">
+            <span v-if="props.row.status == 0" style="color: #67C23A;font-weight: bold;">启用</span>
+            <span v-if="props.row.status == 1" style="color: #E6A23C;font-weight: bold;">停用</span>
+          </template>
+      </el-table-column>
+      <!-- <el-table-column align="center" min-width="150px" label="备注" prop="remarks">
+      </el-table-column> -->
+
+      <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
+          <el-button v-if="scope.row.status == 0" type="success" size="small"
+                        @click="changeState(scope.row.id, 1)">启用</el-button>
+          <el-button v-if="scope.row.status == 1" type="warning" size="small"
+                        @click="changeState(scope.row.id, 0)">停用</el-button>
+          <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 分页 -->
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+        layout="total, sizes, prev, pager, next, jumper" :total="total">
+      </el-pagination>
+    </div>
+
+    <!-- 添加或修改对话框 -->
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
+      <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="110px">
+        <el-form-item label="物流公司名称" prop="logisticsName">
+          <el-input v-model="dataForm.logisticsName"></el-input>
+        </el-form-item>
+        <el-form-item label="快递查询代码" prop="queryCode">
+          <el-input v-model="dataForm.queryCode"></el-input>
+        </el-form-item>
+        <el-form-item label="菜鸟代码" prop="rookieCode">
+          <el-input v-model="dataForm.rookieCode"></el-input>
+        </el-form-item>
+        <!-- <el-form-item label="备注" prop="remarks">
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入"
+            v-model="dataForm.remarks">
+          </el-input>
+        </el-form-item> -->
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取消</el-button>
+        <el-button v-if="dialogStatus == 'create'" type="primary" @click="createData">确定</el-button>
+        <el-button v-else type="primary" @click="updateData">确定</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import { listBrand, createBrand, updateBrand, deleteBrand, setState } from '@/api/express'
+import waves from '@/directive/waves' // 水波纹指令
+
+export default {
+  directives: { waves },
+  data() {
+    return {
+      list: undefined,
+      total: undefined,
+      listLoading: true,
+      statusList: [
+                {
+                    type: 0,
+                    name: '启用'
+                },
+                {
+                    type: 1,
+                    name: '停用'
+                },
+            ],
+      listQuery: {
+        page: 1,
+        limit: 10,
+        logisticsName: undefined,
+        status: undefined,
+      },
+      dataForm: {
+        logisticsName: undefined,
+        queryCode: undefined,
+        rookieCode: undefined,
+        remarks: undefined,
+      },
+      dialogFormVisible: false,
+      dialogStatus: '',
+      textMap: {
+        update: '编辑',
+        create: '创建'
+      },
+      rules: {
+        logisticsName: [{ required: true, message: '物流公司名称不能为空', trigger: 'blur' }],
+        queryCode: [{ required: true, message: '快递查询代码不能为空', trigger: 'blur' }],
+        rookieCode: [{ required: true, message: '菜鸟代码不能为空', trigger: 'blur' }],
+      },
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.listQuery = {
+        page: 1,
+        limit: 10,
+        logisticsName: undefined,
+        status: undefined,
+      };
+      this.handleQuery();
+    },
+    getList() {
+      this.listLoading = true
+      listBrand(this.listQuery).then(response => {
+        this.list = response.data.data.items
+        this.total = response.data.data.total
+        this.listLoading = false
+      }).catch(() => {
+        this.list = []
+        this.total = 0
+        this.listLoading = false
+      })
+    },
+    handleQuery() {
+      this.listQuery.page = 1
+      this.getList()
+    },
+    handleSizeChange(val) {
+      this.listQuery.limit = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.page = val
+      this.getList()
+    },
+    resetForm() {
+      this.dataForm = {
+        logisticsName: undefined,
+        queryCode: undefined,
+        rookieCode: undefined,
+        remarks: undefined,
+      }
+    },
+    handleCreate() {
+      this.resetForm()
+      this.dialogStatus = 'create'
+      this.dialogFormVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
+    createData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          createBrand(this.dataForm).then(response => {
+            this.list.unshift(response.data.data)
+            this.dialogFormVisible = false
+            this.$notify({
+              title: '成功',
+              message: '创建成功',
+              type: 'success',
+              duration: 2000
+            })
+          })
+        }
+      })
+    },
+    handleUpdate(row) {
+      this.dataForm = Object.assign({}, row)
+      this.dialogStatus = 'update'
+      this.dialogFormVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
+    updateData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          updateBrand(this.dataForm).then(() => {
+            for (const v of this.list) {
+              if (v.id === this.dataForm.id) {
+                const index = this.list.indexOf(v)
+                this.list.splice(index, 1, this.dataForm)
+                break
+              }
+            }
+            this.dialogFormVisible = false
+            this.$notify({
+              title: '成功',
+              message: '更新成功',
+              type: 'success',
+              duration: 2000
+            })
+          })
+        }
+      })
+    },
+    handleDelete(row) {
+      deleteBrand(row).then(response => {
+        this.$notify({
+          title: '成功',
+          message: '删除成功',
+          type: 'success',
+          duration: 2000
+        })
+        const index = this.list.indexOf(row)
+        this.list.splice(index, 1)
+      })
+    },
+    handleDownload() {
+      window.location.href = process.env.BASE_API + '/product/export';
+    },
+    changeState(id, index) {
+            setState({ id: id, status: index }).then(response => {
+                this.$notify({
+                    title: '成功',
+                    message: '状态修改成功',
+                    type: 'success',
+                    duration: 2000
+                })
+                this.getList()
+            })
+        },
+  }
+}
+</script>

+ 256 - 0
src/views/basicSetting/store.vue

@@ -0,0 +1,256 @@
+contactsId<template>
+  <div class="app-container calendar-list-container">
+
+    <!-- 查询和其他操作 -->
+    <div class="filter-container">
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="门店编号" v-model="listQuery.storeCode">
+      </el-input>
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="门店名称" v-model="listQuery.storeName">
+      </el-input>
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="联系人" v-model="listQuery.contactsId">
+      </el-input>
+      <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleQuery">查找</el-button>
+      <el-button class="filter-item" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+      <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate">添加</el-button>
+      <el-button class="filter-item" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
+    </div>
+
+    <!-- 查询结果 -->
+    <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+      highlight-current-row>
+
+      <el-table-column type="index" label="序号" header-align="center" align="center">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="100px" label="门店编号" prop="storeCode">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="100px" label="门店名称" prop="storeName">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="联系人" prop="contactsId">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="联系电话" prop="contactsPhone">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="200px" label="门店地址" prop="storeAddress">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="100px" label="创建时间" prop="createDate">
+      </el-table-column>
+
+      <!-- <el-table-column align="center" min-width="150px" label="备注" prop="remarks">
+      </el-table-column> -->
+
+      <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
+          <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 分页 -->
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+        layout="total, sizes, prev, pager, next, jumper" :total="total">
+      </el-pagination>
+    </div>
+
+    <!-- 添加或修改对话框 -->
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
+      <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="100px">
+        <el-form-item label="门店编号" prop="storeCode">
+          <el-input v-model="dataForm.storeCode"></el-input>
+        </el-form-item>
+        <el-form-item label="门店名称" prop="storeName">
+          <el-input v-model="dataForm.storeName"></el-input>
+        </el-form-item>
+        <el-form-item label="联系人" prop="contactsId">
+          <el-input v-model="dataForm.contactsId"></el-input>
+        </el-form-item>
+        <el-form-item label="联系电话" prop="contactsPhone">
+          <el-input v-model="dataForm.contactsPhone"></el-input>
+        </el-form-item>
+        <el-form-item label="门店地址" prop="storeAddress">
+          <el-input v-model="dataForm.storeAddress"></el-input>
+        </el-form-item>
+        <!-- <el-form-item label="备注" prop="remarks">
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入"
+            v-model="dataForm.remarks">
+          </el-input>
+        </el-form-item> -->
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取消</el-button>
+        <el-button v-if="dialogStatus == 'create'" type="primary" @click="createData">确定</el-button>
+        <el-button v-else type="primary" @click="updateData">确定</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import { listBrand, createBrand, updateBrand, deleteBrand } from '@/api/store'
+import waves from '@/directive/waves' // 水波纹指令
+
+export default {
+  directives: { waves },
+  data() {
+    return {
+      list: undefined,
+      total: undefined,
+      listLoading: true,
+      listQuery: {
+        page: 1,
+        limit: 10,
+        storeCode: undefined,
+        storeName: undefined,
+        contactsId: undefined,
+      },
+      dataForm: {
+        storeCode: undefined,
+        storeName: undefined,
+        contactsId: undefined,
+        contactsPhone: undefined,
+        storeAddress: undefined,
+        remarks: undefined,
+      },
+      dialogFormVisible: false,
+      dialogStatus: '',
+      textMap: {
+        update: '编辑',
+        create: '创建'
+      },
+      rules: {
+        storeCode: [{ required: true, message: '门店编号不能为空', trigger: 'blur' }],
+        storeName: [{ required: true, message: '门店名称不能为空', trigger: 'blur' }],
+        contactsId: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
+        contactsPhone: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
+        storeAddress: [{ required: true, message: '门店地址不能为空', trigger: 'blur' }]
+      },
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.listQuery = {
+        page: 1,
+        limit: 10,
+        storeCode: undefined,
+        storeName: undefined,
+        contactsId: undefined,
+      };
+      this.handleQuery();
+    },
+    getList() {
+      this.listLoading = true
+      listBrand(this.listQuery).then(response => {
+        this.list = response.data.data.items
+        this.total = response.data.data.total
+        this.listLoading = false
+      }).catch(() => {
+        this.list = []
+        this.total = 0
+        this.listLoading = false
+      })
+    },
+    handleQuery() {
+      this.listQuery.page = 1
+      this.getList()
+    },
+    handleSizeChange(val) {
+      this.listQuery.limit = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.page = val
+      this.getList()
+    },
+    resetForm() {
+      this.dataForm = {
+        storeCode: undefined,
+        storeName: undefined,
+        contactsId: undefined,
+        contactsPhone: undefined,
+        storeAddress: undefined,
+        remarks: undefined,
+      }
+    },
+    handleCreate() {
+      this.resetForm()
+      this.dialogStatus = 'create'
+      this.dialogFormVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
+    createData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          createBrand(this.dataForm).then(response => {
+            this.list.unshift(response.data.data)
+            this.dialogFormVisible = false
+            this.$notify({
+              title: '成功',
+              message: '创建成功',
+              type: 'success',
+              duration: 2000
+            })
+          })
+        }
+      })
+    },
+    handleUpdate(row) {
+      this.dataForm = Object.assign({}, row)
+      this.dialogStatus = 'update'
+      this.dialogFormVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
+    updateData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          updateBrand(this.dataForm).then(() => {
+            for (const v of this.list) {
+              if (v.id === this.dataForm.id) {
+                const index = this.list.indexOf(v)
+                this.list.splice(index, 1, this.dataForm)
+                break
+              }
+            }
+            this.dialogFormVisible = false
+            this.$notify({
+              title: '成功',
+              message: '更新成功',
+              type: 'success',
+              duration: 2000
+            })
+          })
+        }
+      })
+    },
+    handleDelete(row) {
+      deleteBrand(row).then(response => {
+        this.$notify({
+          title: '成功',
+          message: '删除成功',
+          type: 'success',
+          duration: 2000
+        })
+        const index = this.list.indexOf(row)
+        this.list.splice(index, 1)
+      })
+    },
+    handleDownload() {
+      window.location.href = process.env.BASE_API + '/product/export';
+    },
+  }
+}
+</script>

+ 85 - 101
src/views/basicSetting/supplier.vue

@@ -7,16 +7,14 @@ categoryOptions<template>
                 v-model="listQuery.supplier_name"></el-input>
                 <el-input clearable class="filter-item" style="width: 200px;" placeholder="供应商编号"
                 v-model="listQuery.supplier_num"></el-input>
-            <el-select class="filter-item" style="width: 200px" v-model="listQuery.brandId" filterable placeholder="供应商类别">
-                <el-option v-for="item in brandOptions" :key="item.value" :label="item.label" :value="item.value">
-                </el-option>
-            </el-select>
-            <el-select class="filter-item" style="width: 200px" v-model="listQuery.brandId" filterable placeholder="申请部门">
+            <el-select class="filter-item" style="width: 200px" v-model="listQuery.type_id" filterable placeholder="供应商类别">
                 <el-option v-for="item in brandOptions" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
             </el-select>
+            <treeselect class="filter-item" default-expand-all v-model="listQuery.responsibleDept" :options="categoryOptions"
+                :normalizer="normalizer" placeholder="申请部门" style="width: 200px" />
             
-            <el-select v-model="listQuery.status" clearable placeholder="是否启用" class="filter-item" style="width: 200px;">
+            <el-select v-model="listQuery.isEnable" clearable placeholder="是否启用" class="filter-item" style="width: 200px;">
                 <el-option :key="item.type" v-for="item in goodsStatusList" :label="item.name" :value="item.type">
                 </el-option>
             </el-select>
@@ -74,124 +72,110 @@ categoryOptions<template>
             <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left"
                 label-width="100px" style='margin: 0 50px;'>
                 <el-tabs v-model="activeName" @tab-click="handleClick">
-                    <el-tab-pane label="基信息" name="first">
+                    <el-tab-pane label="基信息" name="first">
                         <el-form-item label="供应商名称" prop="supplier_name">
-                            <el-input v-model="dataForm.supplier_name" placeholder="请输入供应商名称"></el-input>
+                            <el-input v-model="dataForm.supplier_name" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item label="商编号" prop="supplier_num">
-                            <el-input placeholder="请输入商品编号" v-model="dataForm.supplier_num"></el-input>
+                        <el-form-item v-if="dataForm.supplier_num" label="供应商编号" prop="supplier_num">
+                            <el-input disabled v-model="dataForm.supplier_num"></el-input>
                         </el-form-item>
-                        <el-form-item label="商品简介" prop="supplier_num">
-                            <el-input v-model="dataForm.supplier_num" placeholder="请输入商品简介"></el-input>
-                        </el-form-item>
-
-
-                        <el-form-item label="商品类别" prop="categoryId">
-                            <treeselect default-expand-all v-model="dataForm.categoryId" :options="categoryOptions"
-                                :normalizer="normalizer" placeholder="请选择商品类别" />
-                        </el-form-item>
-
-                        <el-form-item label="品牌" prop="brandId">
-                            <el-select style="width: 100%" v-model="dataForm.brandId" filterable placeholder="品牌">
+                        <!-- <el-form-item label="供应商大类" prop="supplierClass">
+                            <el-select style="width: 100%" v-model="dataForm.supplierClass" filterable placeholder="请选择">
+                                <el-option v-for="item in brandOptions" :key="item.value" :label="item.label" :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item> -->
+                        <el-form-item label="类别" prop="type_id">
+                            <el-select style="width: 100%" v-model="dataForm.type_id" filterable placeholder="请选择">
                                 <el-option v-for="item in brandOptions" :key="item.value" :label="item.label" :value="item.value">
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item label="零售价(元)" prop="price">
-                            <el-input v-model="dataForm.price" placeholder="请输入零售价"></el-input>
-                        </el-form-item>
-                        <el-form-item label="销售价(元)" prop="salePrice">
-                            <el-input v-model="dataForm.salePrice" placeholder="请输入销售价"></el-input>
-                        </el-form-item>
-                        <el-form-item label="成本价(元)" prop="costPrice">
-                            <el-input v-model="dataForm.costPrice" placeholder="请输入成本价"></el-input>
+                        <el-form-item label="地域" prop="supplier_purchas_address">
+                            <el-input v-model="dataForm.supplier_purchas_address" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item label="重量(g)" prop="weight">
-                            <!-- <el-input v-model="dataForm.weight" placeholder="请输入重量" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"></el-input> -->
-                            <el-input-number v-model="dataForm.weight" :min="1" label="请输入重量"></el-input-number>
+                        <el-form-item label="注册资本金" prop="registered_capital">
+                            <el-input v-model="dataForm.registered_capital" placeholder="请输入注册资本金(万元)"></el-input>
                         </el-form-item>
-                        <el-form-item label="状态" prop="status">
-                            <el-radio-group v-model="dataForm.status">
-                                <el-radio :label="0">启用</el-radio>
-                                <el-radio :label="1">停用</el-radio>
-                            </el-radio-group>
+                        <el-form-item label="银行卡号" prop="bank_card_no">
+                            <el-input v-model="dataForm.bank_card_no" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item style="width: 800px" label="商品图片" prop="imgUrl">
-                            <el-upload :limit="1" :action="fileImgUrl" list-type="picture-card"
-                                :file-list="dataForm.images" :on-success="handleImgSucess" :on-exceed="handleExceed"
-                                :before-upload="beforeUploadImg" :on-remove="handleRemoveImg">
-                                <i class="el-icon-plus"></i>
-                            </el-upload>
+                        <el-form-item label="银行名称" prop="bank_card_name">
+                            <el-input v-model="dataForm.bank_card_name" placeholder="请输入"></el-input>
                         </el-form-item>
-
-                    </el-tab-pane>
-                    <el-tab-pane label="茶叶属性" name="second">
-                        <!-- <el-form-item label="茶叶品牌">
-                            <el-select v-model="dataForm.teaTypeId" filterable placeholder="请选择" style="width: 100%">
-                                <el-option :key="item.dictLabel" v-for="item in tea_type" :label="item.dictLabel"
-                                    :value="item.dictLabel">
-                                </el-option>
-                            </el-select>
-                        </el-form-item> -->
-                        <el-form-item label="茶叶级别">
-                            <el-select v-model="dataForm.teaLevel" filterable placeholder="请选择" style="width: 100%">
-                                <el-option :key="item.dictLabel" v-for="item in tea_level" :label="item.dictLabel"
-                                    :value="item.dictLabel">
-                                </el-option>
+                        <el-form-item label="纳税性质" prop="nature">
+                            <el-select style="width: 100%" v-model="dataForm.nature" filterable placeholder="请选择">
+                                <el-option value="一般纳税人">一般纳税人</el-option>
+                                <el-option value="小规模纳税人">小规模纳税人</el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item label="茶叶系列">
-                            <el-select v-model="dataForm.teaSeries" filterable placeholder="请选择" style="width: 100%">
-                                <el-option :key="item.dictLabel" v-for="item in tea_series" :label="item.dictLabel"
-                                    :value="item.dictLabel">
-                                </el-option>
+                        <el-form-item label="税率" prop="taxrate">
+                            <el-select style="width: 100%" v-model="dataForm.taxrate" filterable placeholder="请选择">
+                                <el-option value="'0%'">0%</el-option>
+                                <el-option value="'1%'">1%</el-option>
+                                <el-option value="'3%'">3%</el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item label="包装形式">
-                            <el-select v-model="dataForm.teaPackageFormat" filterable placeholder="请选择"
-                                style="width: 100%">
-                                <el-option :key="item.dictLabel" v-for="item in tea_package_format" :label="item.dictLabel"
-                                    :value="item.dictLabel">
-                                </el-option>
-                            </el-select>
+                        <el-form-item label="联系人" prop="supplier_contact">
+                            <el-input v-model="dataForm.supplier_contact" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item label="产地">
-                            <el-input v-model="dataForm.teaOrigin" placeholder="请输入产地"></el-input>
+                        <el-form-item label="联系电话" prop="supplier_phone">
+                            <el-input v-model="dataForm.supplier_phone" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item label="采摘季节">
-                            <el-radio-group v-model="dataForm.teaGetSeason">
-                                <el-radio v-for="item in tea_get_season" :key="item.dictLabel" :label="item.dictLabel"></el-radio>
-                            </el-radio-group>
+                        <el-form-item label="单位地址" prop="supplier_address">
+                            <el-input v-model="dataForm.supplier_address" placeholder="请输入"></el-input>
                         </el-form-item>
-                        <el-form-item label="保质期">
-                            <el-input placeholder="数值" v-model="dataForm.tea_guarantee_number" class="input-with-select">
-                                <el-select style="width: 100px;" v-model="dataForm.tea_guarantee_unit" slot="prepend"
-                                    placeholder="请选择">
-                                    <el-option label="年" value="年"></el-option>
-                                    <el-option label="月" value="月"></el-option>
-                                    <el-option label="日" value="日"></el-option>
-                                </el-select>
+                        <el-form-item label="申请部门" prop="responsibleDept">
+                            <treeselect default-expand-all v-model="dataForm.responsibleDept" :options="categoryOptions"
+                                :normalizer="normalizer" placeholder="请选择" />
+                        </el-form-item>
+                        <el-form-item label="申请事由" prop="supplier_remark">
+                            <el-input
+                                type="textarea"
+                                :autosize="{ minRows: 2, maxRows: 4}"
+                                placeholder="请输入"
+                                v-model="dataForm.supplier_remark">
                             </el-input>
                         </el-form-item>
-                        <el-form-item label="生产日期">
-                            <el-date-picker style="width: 100%;" v-model="dataForm.product_date" type="date"
+                    </el-tab-pane>
+                    <el-tab-pane label="营业执照" name="second">
+                       
+                        <el-form-item label="名称" prop="Zqualified_name">
+                            <el-input v-model="dataForm.Zqualified_name" placeholder="请输入产地"></el-input>
+                        </el-form-item>
+                        <el-form-item label="开始日期" prop="Zstart_time">
+                            <el-date-picker style="width: 100%;" v-model="dataForm.Zstart_time" type="date"
+                                placeholder="选择日期"></el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="结束日期" prop="Zend_time">
+                            <el-date-picker style="width: 100%;" v-model="dataForm.Zend_time" type="date"
                                 placeholder="选择日期"></el-date-picker>
                         </el-form-item>
-                        <el-form-item label="陈华年份">
-                            <el-input v-model="dataForm.teaAgingYear" placeholder="输入陈华年份"></el-input>
+                        <el-form-item style="width: 800px" label="附件" prop="imgUrl">
+                            <el-upload :limit="1" :action="fileImgUrl" list-type="picture-card"
+                                :file-list="dataForm.images" :on-success="handleImgSucess" :on-exceed="handleExceed"
+                                :before-upload="beforeUploadImg" :on-remove="handleRemoveImg">
+                                <i class="el-icon-plus"></i>
+                            </el-upload>
                         </el-form-item>
-                        <el-form-item label="溯源信息" prop="teaFileUrl">
+                    </el-tab-pane>
+                    <el-tab-pane label="财务报表/审计报告" name="third">
+                        <el-form-item label="财务报表" prop="teaFileUrl">
                             <el-upload :limit="1" :action="fileImgUrl" :file-list="dataForm.files" :on-success="handleFileSuccess"
                                 :before-upload="beforeUploadFile" :on-remove="handleRemoveFile">
                                 <el-button size="small" type="primary">点击上传</el-button>
                             </el-upload>
                         </el-form-item>
-                        <el-form-item label="存储要求">
-                            <el-checkbox-group v-model="dataForm.teaStorageRequire">
-                                <el-checkbox v-for="item in tea_storage_require" :key="item.dictLabel" :label="item.dictLabel" name="type"></el-checkbox>
-                            </el-checkbox-group>
+                        <el-form-item label="审计报告" prop="teaFileUrl">
+                            <el-upload :limit="1" :action="fileImgUrl" :file-list="dataForm.files" :on-success="handleFileSuccess"
+                                :before-upload="beforeUploadFile" :on-remove="handleRemoveFile">
+                                <el-button size="small" type="primary">点击上传</el-button>
+                            </el-upload>
                         </el-form-item>
                     </el-tab-pane>
+                    <!-- <el-tab-pane label="供应商资质信息" name="fourth">
+                        
+                    </el-tab-pane> -->
                 </el-tabs>
 
             </el-form>
@@ -205,7 +189,7 @@ categoryOptions<template>
     </div>
 </template>
 <script>
-import { createItem, updateItem, goodsList, removeItem } from "@/api/goodsManage";
+import { createItem, updateItem, goodsList, removeItem } from "@/api/supplier";
 import { listDept } from "@/api/goodsTypeList";
 import { listBrand } from '@/api/brand';
 import Treeselect from "@riophae/vue-treeselect";
@@ -247,9 +231,9 @@ export default {
                 limit: 10,
                 supplier_name: '',
                 supplier_num: '',
-                categoryId: undefined,
-                brandId: '',
-                status: '',
+                type_id: '',
+                responsibleDept: undefined,
+                isEnable: '',
             },
             listBrandQuery: {
                 limit: 1000,
@@ -619,9 +603,9 @@ export default {
                 limit: 10,
                 supplier_name: '',
                 supplier_num: '',
-                categoryId: '',
-                brandId: '',
-                status: '',
+                type_id: '',
+                responsibleDept: '',
+                isEnable: '',
             };
             this.handleQuery();
         },

+ 253 - 0
src/views/basicSetting/warehouse.vue

@@ -0,0 +1,253 @@
+adminId<template>
+  <div class="app-container calendar-list-container">
+
+    <!-- 查询和其他操作 -->
+    <div class="filter-container">
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="仓库编号" v-model="listQuery.warehouseCode">
+      </el-input>
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="仓库名称" v-model="listQuery.warehouseName">
+      </el-input>
+      <el-input clearable class="filter-item" style="width: 200px;" placeholder="管理员" v-model="listQuery.adminId">
+      </el-input>
+      <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleQuery">查找</el-button>
+      <el-button class="filter-item" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+      <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate">添加</el-button>
+      <el-button class="filter-item" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
+    </div>
+
+    <!-- 查询结果 -->
+    <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+      highlight-current-row>
+
+      <el-table-column type="index" label="序号" header-align="center" align="center">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="100px" label="仓库编号" prop="warehouseCode">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="100px" label="仓库名称" prop="warehouseName">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="管理员" prop="adminId">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="80px" label="联系电话" prop="adminPhone">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="200px" label="仓库地址" prop="warehouseAddress">
+      </el-table-column>
+
+      <el-table-column align="center" min-width="150px" label="备注" prop="remarks">
+      </el-table-column>
+
+      <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
+          <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <!-- 分页 -->
+    <div class="pagination-container">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+        layout="total, sizes, prev, pager, next, jumper" :total="total">
+      </el-pagination>
+    </div>
+
+    <!-- 添加或修改对话框 -->
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
+      <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="100px">
+        <el-form-item label="仓库编号" prop="warehouseCode">
+          <el-input v-model="dataForm.warehouseCode"></el-input>
+        </el-form-item>
+        <el-form-item label="仓库名称" prop="warehouseName">
+          <el-input v-model="dataForm.warehouseName"></el-input>
+        </el-form-item>
+        <el-form-item label="管理员" prop="adminId">
+          <el-input v-model="dataForm.adminId"></el-input>
+        </el-form-item>
+        <el-form-item label="联系电话" prop="adminPhone">
+          <el-input v-model="dataForm.adminPhone"></el-input>
+        </el-form-item>
+        <el-form-item label="仓库地址" prop="warehouseAddress">
+          <el-input v-model="dataForm.warehouseAddress"></el-input>
+        </el-form-item>
+        <el-form-item label="备注" prop="remarks">
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入"
+            v-model="dataForm.remarks">
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogFormVisible = false">取消</el-button>
+        <el-button v-if="dialogStatus == 'create'" type="primary" @click="createData">确定</el-button>
+        <el-button v-else type="primary" @click="updateData">确定</el-button>
+      </div>
+    </el-dialog>
+
+  </div>
+</template>
+<script>
+import { listBrand, createBrand, updateBrand, deleteBrand } from '@/api/warehouse'
+import waves from '@/directive/waves' // 水波纹指令
+
+export default {
+  directives: { waves },
+  data() {
+    return {
+      list: undefined,
+      total: undefined,
+      listLoading: true,
+      listQuery: {
+        page: 1,
+        limit: 10,
+        warehouseCode: undefined,
+        warehouseName: undefined,
+        adminId: undefined,
+      },
+      dataForm: {
+        warehouseCode: undefined,
+        warehouseName: undefined,
+        adminId: undefined,
+        adminPhone: undefined,
+        warehouseAddress: undefined,
+        remarks: undefined,
+      },
+      dialogFormVisible: false,
+      dialogStatus: '',
+      textMap: {
+        update: '编辑',
+        create: '创建'
+      },
+      rules: {
+        warehouseCode: [{ required: true, message: '仓库编号不能为空', trigger: 'blur' }],
+        warehouseName: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],
+        adminId: [{ required: true, message: '管理员不能为空', trigger: 'blur' }],
+        adminPhone: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
+        warehouseAddress: [{ required: true, message: '仓库地址不能为空', trigger: 'blur' }]
+      },
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.listQuery = {
+        page: 1,
+        limit: 10,
+        warehouseCode: undefined,
+        warehouseName: undefined,
+        adminId: undefined,
+      };
+      this.handleQuery();
+    },
+    getList() {
+      this.listLoading = true
+      listBrand(this.listQuery).then(response => {
+        this.list = response.data.data.items
+        this.total = response.data.data.total
+        this.listLoading = false
+      }).catch(() => {
+        this.list = []
+        this.total = 0
+        this.listLoading = false
+      })
+    },
+    handleQuery() {
+      this.listQuery.page = 1
+      this.getList()
+    },
+    handleSizeChange(val) {
+      this.listQuery.limit = val
+      this.getList()
+    },
+    handleCurrentChange(val) {
+      this.listQuery.page = val
+      this.getList()
+    },
+    resetForm() {
+      this.dataForm = {
+        warehouseCode: undefined,
+        warehouseName: undefined,
+        adminId: undefined,
+        adminPhone: undefined,
+        warehouseAddress: undefined,
+        remarks: undefined,
+      }
+    },
+    handleCreate() {
+      this.resetForm()
+      this.dialogStatus = 'create'
+      this.dialogFormVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
+    createData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          createBrand(this.dataForm).then(response => {
+            this.list.unshift(response.data.data)
+            this.dialogFormVisible = false
+            this.$notify({
+              title: '成功',
+              message: '创建成功',
+              type: 'success',
+              duration: 2000
+            })
+          })
+        }
+      })
+    },
+    handleUpdate(row) {
+      this.dataForm = Object.assign({}, row)
+      this.dialogStatus = 'update'
+      this.dialogFormVisible = true
+      this.$nextTick(() => {
+        this.$refs['dataForm'].clearValidate()
+      })
+    },
+    updateData() {
+      this.$refs['dataForm'].validate((valid) => {
+        if (valid) {
+          updateBrand(this.dataForm).then(() => {
+            for (const v of this.list) {
+              if (v.id === this.dataForm.id) {
+                const index = this.list.indexOf(v)
+                this.list.splice(index, 1, this.dataForm)
+                break
+              }
+            }
+            this.dialogFormVisible = false
+            this.$notify({
+              title: '成功',
+              message: '更新成功',
+              type: 'success',
+              duration: 2000
+            })
+          })
+        }
+      })
+    },
+    handleDelete(row) {
+      deleteBrand(row).then(response => {
+        this.$notify({
+          title: '成功',
+          message: '删除成功',
+          type: 'success',
+          duration: 2000
+        })
+        const index = this.list.indexOf(row)
+        this.list.splice(index, 1)
+      })
+    },
+    handleDownload() {
+      window.location.href = process.env.BASE_API + '/product/export';
+    },
+  }
+}
+</script>

+ 76 - 124
src/views/goodsManage/brand.vue

@@ -10,11 +10,13 @@
       <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleQuery">查找</el-button>
       <el-button class="filter-item" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
       <el-button class="filter-item" type="primary" icon="el-icon-plus" @click="handleCreate">添加</el-button>
-      <el-button class="filter-item" v-waves icon="el-icon-download" @click="handleDownload" :loading="downloadLoading">导出</el-button>
+      <el-button class="filter-item" v-waves icon="el-icon-download" @click="handleDownload"
+        :loading="downloadLoading">导出</el-button>
     </div>
 
     <!-- 查询结果 -->
-    <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row>
+    <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+      highlight-current-row>
 
       <el-table-column type="index" label="序号" header-align="center" align="center">
       </el-table-column>
@@ -33,104 +35,66 @@
 
       <el-table-column align="center" min-width="100px" label="是否显示" prop="isShow">
         <template slot-scope="scope">
-          <el-tag :type="scope.row.isShow ? 'success' : 'error' ">{{scope.row.isShow ? '可显示' : '不显示'}}</el-tag>
+          <el-tag :type="scope.row.isShow ? 'success' : 'error'">{{ scope.row.isShow ? '可显示' : '不显示' }}</el-tag>
         </template>
       </el-table-column>
 
-      <el-table-column align="center" min-width="100px" label="是否新上" prop="isNew"  :formatter="judgeIsnew">
-      </el-table-column>       
+      <el-table-column align="center" min-width="100px" label="是否新上" prop="isNew" :formatter="judgeIsnew">
+      </el-table-column>
 
       <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button type="primary" size="small" @click="handleUpdate(scope.row)">编辑</el-button>
-          <el-button type="danger" size="small"  @click="handleDelete(scope.row)">删除</el-button>
+          <el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
 
     <!-- 分页 -->
     <div class="pagination-container">
-      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.page"
-        :page-sizes="[10,20,30,50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+        :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+        layout="total, sizes, prev, pager, next, jumper" :total="total">
       </el-pagination>
     </div>
 
     <!-- 添加或修改对话框 -->
-    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
-      <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="100px" style='width: 500px; margin-left:50px;'>
+    <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" width="600px">
+      <el-form :rules="rules" ref="dataForm" :model="dataForm" status-icon label-position="left" label-width="100px">
         <el-form-item label="品牌商名称" prop="name">
-          <el-input v-model="dataForm.name" ></el-input>
+          <el-input v-model="dataForm.name"></el-input>
         </el-form-item>
         <el-form-item label="介绍" prop="simpleDesc">
-          <el-input type="textarea" v-model="dataForm.simpleDesc"  autosize></el-input>
-        </el-form-item>
-        <!-- 
-        <el-form-item label="品牌商图片" prop="picUrl">
-          <el-input v-model="dataForm.picUrl"></el-input>
-          <el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadPicUrl">
-            <el-button size="small" type="primary">点击上传</el-button>
-          </el-upload>          
+          <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入"
+            v-model="dataForm.simpleDesc">
+          </el-input>
         </el-form-item>
-         -->
         <el-form-item label="品牌商图片" style="display: block !important; margin-left: 10px">
           <el-tooltip content="建议图片规格:375*145 图片宽度扩大两倍,高度等比例扩大" placement="top-start">
-          <el-upload
-            class="avatar-uploader"
-            :action="fileImgUrl"
-            :show-file-list="false"
-            :on-success="handleBrandSuccess"
-            :before-upload="beforeBrandUpload">
-            <img v-if="dataForm.picUrl" :src="dataForm.picUrl" class="avatar">
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-          </el-upload>
+            <el-upload class="avatar-uploader" :action="fileImgUrl" :show-file-list="false"
+              :on-success="handleBrandSuccess" :before-upload="beforeBrandUpload">
+              <img v-if="dataForm.picUrl" :src="dataForm.picUrl" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
           </el-tooltip>
-          <!--<span class="imgspefi">上传图片规格:375*145 图片宽度扩大两倍,高度等比例扩大</span>-->
         </el-form-item>
-        
-        <!--
-        <el-form-item label="宣传图片" prop="listPicUrl"> 
-          <el-input v-model="dataForm.listPicUrl"></el-input>
-          <el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadListPicUrl">
-            <el-button size="small" type="primary">点击上传</el-button>
-          </el-upload>
-        </el-form-item> 
-        -->
         <el-form-item label="宣传图片" style="display: block !important; margin-left: 10px">
           <el-tooltip content="建议图片规格:375*145 图片宽度扩大两倍,高度等比例扩大" placement="top-start">
-          <el-upload
-            class="avatar-uploader"
-            :action="fileImgUrl"
-            :show-file-list="false"
-            :on-success="handlePublicitySuccess"
-            :before-upload="beforePublicityUpload">
-            <img v-if="dataForm.listPicUrl" :src="dataForm.listPicUrl" class="avatar">
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-          </el-upload>
+            <el-upload class="avatar-uploader" :action="fileImgUrl" :show-file-list="false"
+              :on-success="handlePublicitySuccess" :before-upload="beforePublicityUpload">
+              <img v-if="dataForm.listPicUrl" :src="dataForm.listPicUrl" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
           </el-tooltip>
-          <!--<span class="imgspefi">上传图片规格:375*145 图片宽度扩大两倍,高度等比例扩大</span>-->
         </el-form-item>
-
-        <!--
-        <el-form-item label="APP宣传图片" prop="appListPicUrl">
-          <el-input v-model="dataForm.appListPicUrl"></el-input>          
-          <el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadAppListPicUrl">
-            <el-button size="small" type="primary">点击上传</el-button>
-          </el-upload>
-        </el-form-item> 
-        -->
         <el-form-item label="APP宣传图片" style="display: block !important; margin-left: 10px">
           <el-tooltip content="建议图片规格:375*145 图片宽度扩大两倍,高度等比例扩大" placement="top-start">
-          <el-upload
-            class="avatar-uploader"
-            :action="fileImgUrl"
-            :show-file-list="false"
-            :on-success="handleAppcitySuccess"
-            :before-upload="beforeAppcityUpload">
-            <img v-if="dataForm.appListPicUrl" :src="dataForm.appListPicUrl" class="avatar">
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-          </el-upload>
+            <el-upload class="avatar-uploader" :action="fileImgUrl" :show-file-list="false"
+              :on-success="handleAppcitySuccess" :before-upload="beforeAppcityUpload">
+              <img v-if="dataForm.appListPicUrl" :src="dataForm.appListPicUrl" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
           </el-tooltip>
-          <!--<span class="imgspefi">上传图片规格:375*145 图片宽度扩大两倍,高度等比例扩大</span>-->
         </el-form-item>
 
 
@@ -138,7 +102,7 @@
           <el-input v-model="dataForm.floorPrice"></el-input>
         </el-form-item>
         <el-form-item label="是否显示" prop="isShow">
-          <el-select v-model="dataForm.isShow" placeholder="请选择" style="width: 400px;">
+          <el-select v-model="dataForm.isShow" placeholder="请选择" style="width: 100%;">
             <el-option label="显示" :value="true">
             </el-option>
             <el-option label="不显示" :value="false">
@@ -146,7 +110,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="是否新上" prop="isNew">
-          <el-select v-model="dataForm.isNew" placeholder="请选择" style="width: 400px;">
+          <el-select v-model="dataForm.isNew" placeholder="请选择" style="width: 100%;">
             <el-option label="新上" :value="true">
             </el-option>
             <el-option label="不是新上" :value="false">
@@ -154,7 +118,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="新上宣传图片" prop="newPicUrl" v-if="dataForm.isNew === 'true'">
-          <el-input v-model="dataForm.newPicUrl"></el-input>          
+          <el-input v-model="dataForm.newPicUrl"></el-input>
           <el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadNewPicUrl">
             <el-button size="small" type="primary">点击上传</el-button>
           </el-upload>
@@ -162,7 +126,7 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取消</el-button>
-        <el-button v-if="dialogStatus=='create'" type="primary" @click="createData">确定</el-button>
+        <el-button v-if="dialogStatus == 'create'" type="primary" @click="createData">确定</el-button>
         <el-button v-else type="primary" @click="updateData">确定</el-button>
       </div>
     </el-dialog>
@@ -171,63 +135,51 @@
 </template>
 
 <style>
-  .demo-table-expand {
-    font-size: 0;
-  }
-  .demo-table-expand label {
-    width: 200px;
-    color: #99a9bf;
-  }
-  .demo-table-expand .el-form-item {
-    margin-right: 0;
-    margin-bottom: 0;
-  }
-  .avatar-uploader .el-upload {
-    border: 1px dashed #d9d9d9;
-    border-radius: 6px;
-    cursor: pointer;
-    position: relative;
-    overflow: hidden;
-  }
-  .avatar-uploader .el-upload:hover {
-    border-color: #409EFF;
-  }
-  .avatar-uploader-icon {
-    font-size: 28px;
-    color: #8c939d;
-    width: 178px;
-    height: 178px;
-    line-height: 178px;
-    text-align: center;
-  }
-  .avatar {
-    width: 178px;
-    height: 178px;
-    display: block;
-  }
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
 
-  .imgspefi{
-    color:#F00;
-    vertical-align: top;
-    line-height: 50px;
-    margin-left: 20px;
-  }
-  .avatar-uploader{
-    display: inline-block;
-  }
+.avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}
+
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 178px;
+  height: 178px;
+  line-height: 178px;
+  text-align: center;
+}
 
+.avatar {
+  width: 178px;
+  height: 178px;
+  display: block;
+}
+
+.imgspefi {
+  color: #F00;
+  vertical-align: top;
+  line-height: 50px;
+  margin-left: 20px;
+}
+
+.avatar-uploader {
+  display: inline-block;
+}
 </style>
 
 <script>
 import { listBrand, createBrand, updateBrand, deleteBrand } from '@/api/brand'
 import { createStorage } from '@/api/storage'
 import waves from '@/directive/waves' // 水波纹指令
-import BackToTop from '@/components/BackToTop'
-import Tinymce from '@/components/Tinymce'
-
 export default {
   name: 'Brand',
-  components: { BackToTop, Tinymce },
   directives: { waves },
   data() {
     return {
@@ -278,11 +230,11 @@ export default {
         id: undefined,
         name: undefined,
         sort: '+id'
-        };
-        this.handleQuery();
+      };
+      this.handleQuery();
     },
-    judgeIsnew(data){
-        return data.isNew=='1' ? '是' : '不是'
+    judgeIsnew(data) {
+      return data.isNew == '1' ? '是' : '不是'
     },
     getList() {
       this.listLoading = true
@@ -433,7 +385,7 @@ export default {
         this.downloadLoading = false
       })
     },
-    
+
     //图片上传开始
     //品牌商图片
     handleBrandSuccess(res, file) {