瀏覽代碼

新加仓库管理模块
新加商品管理模块

Qukatie 1 月之前
父節點
當前提交
e6a01364dd

+ 35 - 0
src/api/goodsManage/customerCategory.js

@@ -0,0 +1,35 @@
+import request from '@/router/axios';
+
+//商品类别列表查询
+export function customerList(data) {
+    return request({
+        url: '/api/gubersail-admin/goodsType/page',
+        method: 'get',
+        params: data
+    })
+}
+//商品类别列表修改和新增
+export function typeSave(data) {
+    return request({
+        url: '/api/gubersail-admin/goodsType/submit',
+        method: 'post',
+        data: data
+    })
+}
+//商品类别列表查看明细
+export function detail(data) {
+    return request({
+        url: '/api/gubersail-admin/goodsType/detail?id='+data,
+        method: 'get'
+    })
+}
+//商品类别列表修改和新增
+export function deleteDetails(data) {
+    return request({
+        url: '/api/gubersail-admin/goodsType/update',
+        method: 'post',
+        data: {
+            id:data
+        }
+    })
+}

+ 93 - 0
src/api/goodsManage/index.js

@@ -0,0 +1,93 @@
+import request from '@/router/axios';
+/**
+ * 商品管理分页查询
+ * @param {number} current - 当前页码
+ * @param {number} size - 每页大小     
+ * @param {any} params
+ */
+export const getList = (current, size, params) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/list',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size,
+        }
+    })
+}
+// 查询商品分类
+export function getGoodsTypeTree(data){
+  return request({
+    url:'/api/gubersail-admin/goodsType/tree',
+    method:'get',
+    params:data
+  })
+}
+
+/**
+ * 商品管理保存
+ * @param {any} data
+ */
+export const submit = (data) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/saveGoodsStock',
+        method: 'post',
+        data: data
+    })
+}
+/**
+ * 商品管理详情
+ * @param {any} params
+ */
+export const detail = (params) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/detail',
+        method: 'get',
+        params: params
+    })
+}
+/**
+ * 商品管理删除
+ * @param {any} data
+ */
+export const remove = (data) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/remove',
+        method: 'post',
+        params: data
+    })
+}
+/**
+ * 商品管理提交审批
+ * @param {any} data
+ */
+export const submitApprova = (data) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/submitGoodsStock',
+        method: 'post',
+        data: data
+    })
+}
+/**
+ * 商品管理提交审批
+ * @param {any} data
+ */
+export const revokeApproval = (data) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/revokeGoodsStock',
+         method: 'post',
+        data: data
+    })
+
+}/**
+ * 商品管理 禁用/启用
+ * @param {any} params
+ */
+export const disabledStock = (params) => {
+    return request({
+        url: '/api/gubersail-admin/stockDesc/disabledGoodsStock ',
+        method: 'get',
+        params: params
+    })
+}

+ 6 - 6
src/api/salesLead/index.js

@@ -1,6 +1,6 @@
 import request from '@/router/axios';
 /**
- * 理赔分页查询
+ * 销售线索分页查询
  * @param {number} current - 当前页码
  * @param {number} size - 每页大小     
  * @param {any} params
@@ -17,7 +17,7 @@ export const getList = (current, size, params) => {
     })
 }
 /**
- * 理赔保存
+ * 销售线索保存
  * @param {any} data
  */
 export const submit = (data) => {
@@ -28,7 +28,7 @@ export const submit = (data) => {
     })
 }
 /**
- * 理赔详情
+ * 销售线索详情
  * @param {any} params
  */
 export const detail = (params) => {
@@ -39,7 +39,7 @@ export const detail = (params) => {
     })
 }
 /**
- * 理赔删除
+ * 销售线索删除
  * @param {any} data
  */
 export const remove = (data) => {
@@ -50,7 +50,7 @@ export const remove = (data) => {
     })
 }
 /**
- * 理赔提交审批
+ * 销售线索提交审批
  * @param {any} params
  */
 export const submitLead = (params) => {
@@ -61,7 +61,7 @@ export const submitLead = (params) => {
     })
 }
 /**
- * 理赔提交审批
+ * 销售线索提交审批
  * @param {any} params
  */
 export const revokeLead = (params) => {

+ 63 - 0
src/api/warehouse/index.js

@@ -0,0 +1,63 @@
+import request from '@/router/axios';
+
+//仓库列表全部查询
+export function customerListAll(data) {
+  return request({
+    url: '/api/gubersail-admin/storageDesc/listAll',
+    method: 'get',
+    params: data
+  })
+}
+//仓库列表查询
+export function getList(data) {
+  return request({
+    url: '/api/gubersail-admin/storageDesc/list',
+    method: 'get',
+    params: data
+  })
+}
+export const getDeptLazyTree = (parentId) => {
+  return request({
+    url: '/api/blade-client/storagetype/lazy-tree',
+    method: 'get',
+    params: {
+      parentId
+    }
+  })
+}
+
+export const getDeptTree = (parentId) => {
+  return request({
+    url: '/api/blade-client/storagetype/tree',
+    method: 'get',
+    params: {
+      parentId
+    }
+  })
+}
+
+//仓库列表修改和新增
+export function typeSave(data) {
+  return request({
+    url: '/api/gubersail-admin/storageDesc/submit',
+    method: 'post',
+    data: data
+  })
+}
+//仓库列表查看明细
+export function detail(data) {
+  return request({
+    url: '/api/gubersail-admin/storageDesc/detail?id='+data,
+    method: 'get'
+  })
+}
+//仓库列表删除
+export function deleteDetails(data) {
+  return request({
+    url: '/api/gubersail-admin/storageDesc/update',
+    method: 'post',
+    data: {
+      id:data
+    }
+  })
+}

+ 1 - 2
src/components/dicSelect/main.vue

@@ -45,7 +45,6 @@
           </el-option>
         </el-select>
       </el-tooltip>
-      <el-button v-if="searchShow" icon="el-icon-search" size="small" :disabled="disabled" @click="open()" />
     </div>
   </div>
 </template>
@@ -278,7 +277,7 @@ export default {
           .then(res => {
             if (this.res) {
               res.data.data[this.res].forEach(e => {
-                if (this.disablexdLabel.split(",").some(item => item == e[this.label])) {
+                if (this.disabledLabel.split(",").some(item => item == e[this.label])) {
                   e.disabled = true;
                 }
               });

+ 3 - 3
src/views/claimSettlement/detailsPage.vue

@@ -16,7 +16,7 @@
           type="success"
           size="small"
           :disabled="editDis"
-          @click="allCLick('提交审批')"
+          @click="allClick('提交审批')"
           >提交审批
         </el-button>
         <el-button
@@ -26,7 +26,7 @@
           type="danger"
           size="small"
           :disabled="editBtn"
-          @click="allCLick('撤销审批')"
+          @click="allClick('撤销审批')"
           >撤销审批
         </el-button>
       </div>
@@ -365,7 +365,7 @@ export default {
         this.optionForm.disabled = false;
       }
     },
-    allCLick(name) {
+    allClick(name) {
       if (name == "提交审批") {
         this.$confirm("是否提交审批?", "提示", {
           confirmButtonText: "确定",

+ 79 - 99
src/views/claimSettlement/index.vue

@@ -17,30 +17,11 @@
         @on-load="onLoad"
       >
         <template slot="menuLeft">
-          <el-button
-            type="primary"
-            size="small"
-            icon="el-icon-plus"
-            @click="addButton"
-            >创建单据
-          </el-button>
+          <el-button type="primary" size="small" icon="el-icon-plus" @click="addButton">创建单据 </el-button>
         </template>
         <template slot="menu" slot-scope="{ row, index }">
-          <el-button
-            size="small"
-            icon="el-icon-edit"
-            type="text"
-            @click="rowEdit(row)"
-            >编辑
-          </el-button>
-          <el-button
-            size="small"
-            icon="el-icon-delete"
-            type="text"
-            @click="rowDel(row, index)"
-            :disabled="row.auditStatus > 0"
-            >删 除
-          </el-button>
+          <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑 </el-button>
+          <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)" :disabled="row.auditStatus > 0">删 除 </el-button>
         </template>
         <template slot="contractNo" slot-scope="{ row }">
           <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">
@@ -49,18 +30,14 @@
         </template>
       </avue-crud>
     </basic-container>
-    <detailsPage
-      v-if="!isShow"
-      :detailData="detailData"
-      @goBack="goBack"
-    ></detailsPage>
+    <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
   </div>
 </template>
 
 <script>
-import { getList, remove } from '@/api/claimSettlement/index';
-import detailsPage from './detailsPage.vue';
-import { getToken } from '@/util/auth';
+import { getList, remove } from "@/api/claimSettlement/index";
+import detailsPage from "./detailsPage.vue";
+import { getToken } from "@/util/auth";
 export default {
   data() {
     return {
@@ -75,7 +52,7 @@ export default {
       },
       selectionList: [],
       option: {
-        height: 'auto',
+        height: "auto",
         calcHeight: 30,
         menuWidth: 120,
         tip: false,
@@ -89,155 +66,155 @@ export default {
         delBtn: false,
         selection: true,
         searchIcon: true,
-        align: 'center',
+        align: "center",
         searchIndex: 3,
         column: [
           {
-            label: '理赔单号',
-            prop: 'claimNo',
+            label: "理赔单号",
+            prop: "claimNo",
             search: true,
             overHidden: true
           },
           {
-            label: '来源类型',
-            prop: 'claimSourceType',
+            label: "来源类型",
+            prop: "claimSourceType",
             search: true,
-            type: 'select',
+            type: "select",
             dicData: [
               {
-                label: '经销商',
+                label: "经销商",
                 value: 1
               },
               {
-                label: '门店',
+                label: "门店",
                 value: 2
               },
               {
-                label: '终端消费者',
+                label: "终端消费者",
                 value: 3
               }
             ],
             overHidden: true
           },
           {
-            label: '来源方名称',
-            prop: 'sourceName',
+            label: "来源方名称",
+            prop: "sourceName",
             width: 90,
             search: true,
             overHidden: true
           },
           {
-            label: '消费者姓名',
-            prop: 'consumerName',
+            label: "消费者姓名",
+            prop: "consumerName",
             width: 90,
             search: true,
             overHidden: true
           },
           {
-            label: '消费者电话',
-            prop: 'consumerPhone',
+            label: "消费者电话",
+            prop: "consumerPhone",
             width: 90,
             overHidden: true
           },
           {
-            label: '胎号',
-            prop: 'tyreNo',
+            label: "胎号",
+            prop: "tyreNo",
             overHidden: true
           },
           {
-            label: '规格型号',
-            prop: 'tyreSpecs',
+            label: "规格型号",
+            prop: "tyreSpecs",
             overHidden: true
           },
           {
-            label: '购买日期',
-            prop: 'purchaseDate',
+            label: "购买日期",
+            prop: "purchaseDate",
             overHidden: true
           },
           {
-            label: '装车日期',
-            prop: 'mountDate',
+            label: "装车日期",
+            prop: "mountDate",
             overHidden: true
           },
           {
-            label: '行驶里程(km)',
-            prop: 'runMileage',
+            label: "行驶里程(km)",
+            prop: "runMileage",
             width: 100,
             overHidden: true
           },
           {
-            label: '理赔原因',
-            prop: 'claimReason',
+            label: "理赔原因",
+            prop: "claimReason",
             overHidden: true
           },
           {
-            label: '索赔金额',
-            prop: 'claimAmount',
+            label: "索赔金额",
+            prop: "claimAmount",
             overHidden: true
           },
           {
-            label: '审核状态',
-            prop: 'auditStatus',
-            type: 'select',
+            label: "审核状态",
+            prop: "auditStatus",
+            type: "select",
             dicData: [
               {
-                label: '待审核',
+                label: "待审核",
                 value: 0
               },
               {
-                label: '审核中',
+                label: "审核中",
                 value: 1
               },
               {
-                label: '已通过',
+                label: "已通过",
                 value: 2
               },
               {
-                label: '已拒绝',
+                label: "已拒绝",
                 value: 3
               }
             ],
             overHidden: true
           },
           {
-            label: '提交时间',
-            prop: 'submitTime',
+            label: "提交时间",
+            prop: "submitTime",
             overHidden: true
           },
           {
-            label: '备注',
-            prop: 'remark',
+            label: "备注",
+            prop: "remark",
             overHidden: true
           },
           {
-            label: '制单人',
-            prop: 'createUserName',
+            label: "制单人",
+            prop: "createUserName",
             overHidden: true,
             width: 80
           },
           {
-            label: '制单日期',
-            prop: 'createTime',
-            type: 'date',
+            label: "制单日期",
+            prop: "createTime",
+            type: "date",
             overHidden: true,
             width: 100,
-            format: 'yyyy-MM-dd',
-            valueFormat: 'yyyy-MM-dd HH:mm:ss'
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
           },
           {
-            label: '修改人',
-            prop: 'updateUserName',
+            label: "修改人",
+            prop: "updateUserName",
             overHidden: true,
             width: 80
           },
           {
-            label: '修改日期',
-            prop: 'updateTime',
-            type: 'date',
+            label: "修改日期",
+            prop: "updateTime",
+            type: "date",
             overHidden: true,
             width: 100,
-            format: 'yyyy-MM-dd',
-            valueFormat: 'yyyy-MM-dd HH:mm:ss'
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss"
           }
         ]
       },
@@ -247,8 +224,7 @@ export default {
   components: {
     detailsPage
   },
-  created() {
-  },
+  created() {},
   methods: {
     addButton() {
       this.isShow = false;
@@ -269,16 +245,16 @@ export default {
      */
     rowDel(row, index) {
       if (row.item == 1) {
-        return this.$message.error('存在明细不允许删除');
+        return this.$message.error("存在明细不允许删除");
       }
-      this.$confirm('确定将选择数据删除?', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
       }).then(() => {
         remove({ ids: row.id }).then(res => {
           this.onLoad(this.page, this.query);
-          this.$message.success('成功删除');
+          this.$message.success("成功删除");
         });
       });
     },
@@ -342,16 +318,16 @@ export default {
     // 详情的返回列表
     goBack() {
       // 初始化数据
-      if (JSON.stringify(this.$route.query) != '{}') {
+      if (JSON.stringify(this.$route.query) != "{}") {
         this.$router.$avueRouter.closeTag();
         this.$router.push({
-          path: '/claimSettlement/index'
+          path: "/claimSettlement/index"
         });
       }
       this.detailData = {};
       this.isShow = true;
       this.onLoad(this.page, this.query);
-    },
+    }
   }
 };
 </script>
@@ -360,7 +336,11 @@ export default {
 ::v-deep .el-col-md-8 {
   width: 24.33333%;
 }
-// ::v-deep .el-table .cell{
-//   display: flex;
-// }
+::v-deep .el-table .cell {
+  padding-right: 0px !important;
+}
+::v-deep .avue-crud .el-table .el-button.el-button--small {
+  padding: 0px !important;
+  margin-right: 0px !important;
+}
 </style>

+ 1 - 24
src/views/dealer/brand/detailsPage.vue

@@ -160,7 +160,7 @@ export default {
             if (num > 1) {
                 return this.$message.error("主图类型重复")
             }
-            this.$refs["form"].validate((valid, done) => {
+            this.$refs.form.validate((valid, done) => {
                 done();
                 if (valid) {
                     this.loadingBtn = true;
@@ -182,29 +182,6 @@ export default {
                 }
             });
         },
-        //自定义列保存
-        async saveColumnTwo(ref, option, optionBack, code) {
-            /**
-             * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-             * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-             * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-             */
-            const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
-            if (inSave) {
-                this.$message.success("保存成功");
-                //关闭窗口
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-            }
-        },
-        //自定义列重置
-        async resetColumnTwo(ref, option, optionBack, code) {
-            this[option] = this[optionBack];
-            const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
-            if (inSave) {
-                this.$message.success("重置成功");
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-            }
-        },
         backToList(type) {
             this.$emit("backToList", type);
         }

+ 2 - 39
src/views/dealer/brand/index.vue

@@ -13,8 +13,6 @@
                 @search-change="searchChange"
                 @row-del="rowDel"
                 @refresh-change="refreshChange"
-                @resetColumn="resetColumnTwo('crud','option','optionList',272)"
-                @saveColumn="saveColumnTwo('crud','option','optionList',272)"
                 :page.sync="page">
                 <template slot="enableOrNot" slot-scope="{row,index,disabled}">
                     <div v-if="row.enableOrNot === 1">是</div>
@@ -66,8 +64,7 @@ export default {
                 pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
             },
             key: 0,
-            option: {},
-            optionList: {
+            option: {
                 viewBtn: false,
                 editBtn: false,
                 delBtn: false,
@@ -166,18 +163,7 @@ export default {
             }
         }
     },
-    async created() {
-        this.option = this.optionList;
-        this.key++
-        let i = 0;
-        this.option.column.forEach(item => {
-            if (item.search) i++
-        })
-        if (i % 3 !== 0) {
-            const num = 3 - Number(i % 3)
-            this.option.searchMenuSpan = num * 8;
-            this.option.searchMenuPosition = "right";
-        }
+    created() {
     },
     methods: {
         check(row) {
@@ -235,29 +221,6 @@ export default {
                 this.loading = false
             })
         },
-        //自定义列保存
-        async saveColumnTwo(ref, option, optionBack, code) {
-            /**
-             * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-             * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-             * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-             */
-            const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
-            if (inSave) {
-                this.$message.success("保存成功");
-                //关闭窗口
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-            }
-        },
-        //自定义列重置
-        async resetColumnTwo(ref, option, optionBack, code) {
-            this[option] = this[optionBack];
-            const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
-            if (inSave) {
-                this.$message.success("重置成功");
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-            }
-        }
     }
 }
 </script>

+ 332 - 0
src/views/goodsManage/components/index.vue

@@ -0,0 +1,332 @@
+<template>
+  <el-dialog title="设置产品分类" v-dialogDrag :visible.sync="diaVisible" class="avue-dialog" width="80%" append-to-body @closed="diaClosed">
+    <span>
+      <avue-crud
+        v-if="diaVisible"
+        :option="option"
+        :data="dataList"
+        ref="crud"
+        v-model="form"
+        :page.sync="page"
+        @row-del="rowDel"
+        @row-update="rowUpdate"
+        :before-open="beforeOpen"
+        :before-close="beforeClose"
+        :table-loading="loading"
+        @row-save="rowSave"
+        :search.sync="search"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @selection-change="selectionChange"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        @tree-load="treeLoad"
+      >
+        <template slot-scope="scope" slot="menu">
+          <el-button type="text" icon="el-icon-circle-plus-outline" size="small" @click.stop="handleAdd(scope.row, scope.index)">新增子项 </el-button>
+        </template>
+      </avue-crud>
+    </span>
+    <div class="avue-dialog__footer">
+      <el-button @click="diaVisible = false" size="mini">取 消</el-button>
+      <el-button @click="submit" type="primary" size="mini">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { customerList, typeSave, detail, deleteDetails } from "@/api/goodsManage/customerCategory.js";
+
+export default {
+  name: "customerInformation",
+  data() {
+    return {
+      diaVisible: false,
+      form: {},
+      search: {},
+      option: {
+        headerAlign: "center",
+        align: "center",
+        border: true,
+        stripe: true,
+        index: true,
+        lazy: true,
+        tip: false,
+        searchShow: true,
+        searchMenuSpan: 6,
+        tree: true,
+        selection: true,
+        viewBtn: true,
+        rowKey: "id",
+        rowParentKey: "id",
+        menuWidth: 300,
+        column: [
+          {
+            label: "类型",
+            prop: "cname",
+            search: true,
+            index: 1,
+            rules: [
+              {
+                required: true,
+                message: "请输入客户类型",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "创建时间",
+            prop: "createTimeA",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            hide: true,
+            addDisplay: false,
+            viewDisplay: false,
+            editDisplay: false,
+            index: 2,
+            width: 100,
+            rules: [
+              {
+                required: true,
+                message: "请输入创建时间",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "上级类型",
+            prop: "parentId",
+            dicData: [],
+            type: "tree",
+            hide: true,
+            showColumn: false,
+            addDisabled: false,
+            props: {
+              label: "cname",
+              value: "id"
+            },
+            rules: [
+              {
+                required: false,
+                message: "请选择上级机构",
+                trigger: "click"
+              }
+            ]
+          },
+          {
+            label: "排序",
+            prop: "sort",
+            type: "number",
+            index: 5,
+            width: 60,
+            rules: [
+              {
+                required: true,
+                message: "请输入排序",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "状态",
+            type: "select",
+            prop: "status",
+            search: true,
+            index: 4,
+            width: 100,
+            value: 0,
+            dicData: [
+              {
+                label: "正常",
+                value: 0
+              },
+              {
+                label: "关闭",
+                value: 1
+              }
+            ],
+            rules: [
+              {
+                required: true,
+                message: "请输入状态",
+                trigger: "blur"
+              }
+            ]
+          }
+        ]
+      },
+      loading: false,
+      parentId: 0,
+      dataList: [],
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      query: {}
+    };
+  },
+  async created() {},
+  methods: {
+    openDialog() {
+      console.log("openDialog");
+      this.diaVisible = true;
+    },
+    submit() {
+      this.diaVisible = false;
+      this.$emit("update");
+    },
+    //删除列表后面的删除按钮触发触发(row, index, done)
+    rowDel(row, index, done) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return deleteDetails(row.id);
+        })
+        .then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          // 数据回调进行刷新
+          done(row);
+        });
+    },
+    //修改时的修改按钮点击触发
+    rowUpdate(row, index, done, loading) {
+      row.corpType = "SP";
+      typeSave(row).then(
+        () => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          // 数据回调进行刷新
+          done(row);
+          this.onLoad(this.page);
+        },
+        error => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    //新增修改时保存触发
+    rowSave(row, done, loading) {
+      console.log("测试");
+      row.corpType = "SP";
+      typeSave(row).then(
+        res => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done(row);
+          this.onLoad(this.page);
+        },
+        error => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    //查询全部
+    initData() {
+      customerList({ corpType: "SP" }).then(res => {
+        const column = this.findObject(this.option.column, "parentId");
+        column.dicData = res.data.data.records;
+      });
+    },
+    //新增子项触发
+    handleAdd(row) {
+      this.parentId = row.id;
+      const column = this.findObject(this.option.column, "parentId");
+      column.value = row.id;
+      column.addDisabled = true;
+      this.$refs.crud.rowAdd();
+    },
+    //新增子项和新增触发查询所有
+    beforeOpen(done, type) {
+      if (["add", "edit"].includes(type)) {
+        this.initData();
+      }
+      if (["edit", "view"].includes(type)) {
+        detail(this.form.id).then(res => {
+          this.form = res.data.data;
+        });
+      }
+      done();
+    },
+    //点击新增时触发
+    beforeClose(done) {
+      this.parentId = "";
+      const column = this.findObject(this.option.column, "parentId");
+      column.value = "";
+      column.addDisabled = false;
+      done();
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      params.parentId = 0;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      console.log("1");
+    },
+    selectionChange() {
+      console.log("1");
+    },
+    currentChange() {
+      console.log("1");
+    },
+    sizeChange() {
+      console.log("1");
+    },
+    refreshChange() {
+      console.log("1");
+    },
+    onLoad(page, params = {}) {
+      this.loading = true;
+      let values = {
+        ...params,
+        corpType: "SP",
+        parentId: 0,
+        size: this.page.pageSize,
+        current: this.page.currentPage
+      };
+      customerList(values)
+        .then(res => {
+          this.dataList = res.data.data.records;
+          this.page.total = res.data.data.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    //树桩列点击展开触发
+    treeLoad(tree, treeNode, resolve) {
+      const parentId = tree.id;
+      customerList({ parentId: parentId }).then(res => {
+        resolve(res.data.data.records);
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.8vh;
+}
+</style>

+ 146 - 228
src/views/goodsManage/detailsPage.vue

@@ -10,54 +10,80 @@
           >保 存
         </el-button>
         <el-button
-          v-if="form.id&&form.auditStatus == 0"
+          v-if="form.id && form.status == 0"
           class="el-button--small-yh"
           style="margin-left: 6px;"
           type="success"
           size="small"
           :disabled="editDis"
-          @click="allCLick('提交审批')"
-          >提交审批
+          @click="allClick('提交')"
+          >提交
         </el-button>
         <el-button
-          v-if="form.id&&form.auditStatus == 1"
+          v-if="form.id && form.status == 1"
           class="el-button--small-yh"
           style="margin-left: 6px;"
           type="danger"
           size="small"
           :disabled="editBtn"
-          @click="allCLick('撤销审批')"
-          >撤销审批
+          @click="allClick('撤销')"
+          >撤销
         </el-button>
       </div>
     </div>
     <div style="margin-top: 50px">
       <trade-card title="基础信息">
         <avue-form :option="optionForm" v-model="form" ref="form">
-          <tempalte slot="sourceName">
+          <tempalte slot="goodsTypeNameLabel">
+            <el-tooltip class="item" effect="dark" content="新建分类" placement="top">
+              <el-button type="text" @click.stop="allClick('新建分类')">分类</el-button>
+            </el-tooltip>
+          </tempalte>
+          <tempalte slot="goodsTypeName">
             <dic-select
-              v-model="form.sourceName"
-              placeholder="来源方名称"
-              label="cnName"
+              v-model="form.goodsTypeName"
+              placeholder="分类"
+              label="cname"
               res="records"
-              url="/gubersail-admin/fc/customer/list"
+              @selectChange="dicChange('goodsTypeName', $event)"
+              :disabled="optionForm.disabled"
+              url="/gubersail-admin/goodsType/page?current=1&size=5"
               :filterable="true"
               :remote="true"
-              dataName="cnName"
-              @selectChange="dicChange('stationCname', $event)"
-              :disabled="editDis"
-              :slotRight="true"
-              rightLabel="code"
+              dataName="cname"
+            ></dic-select>
+          </tempalte>
+          <tempalte slot="brandName">
+            <dic-select
+              v-model="form.brandName"
+              placeholder="品牌"
+              label="cname"
+              res="records"
+              @selectChange="dicChange('brandName', $event)"
+              :disabled="optionForm.disabled"
+              url="/gubersail-admin/brandDesc/list?current=1&size=5"
+              :filterable="true"
+              :remote="true"
+              dataName="cname"
+            ></dic-select>
+          </tempalte>
+          <tempalte slot="storageName">
+            <dic-select
+              v-model="form.storageName"
+              placeholder="仓库"
+              label="cname"
+              res="records"
+              @selectChange="dicChange('storageName', $event)"
+              :disabled="optionForm.disabled"
+              url="/gubersail-admin/storageDesc/list?current=1&size=5"
+              :filterable="true"
+              :remote="true"
+              dataName="cname"
             ></dic-select>
           </tempalte>
         </avue-form>
       </trade-card>
-      <trade-card title="文件中心">
-        <upload-file :data="form.claimAttachmentList" :disabled="editDis" @upDate="upDate"></upload-file>
-      </trade-card>
-      <trade-card title="反馈表">
-        <avue-crud :option="option" :data="form.bladeClaimAuditList" id="out-table" ref="crud" @selection-change="selectionChange"> </avue-crud>
-      </trade-card>
+      <goods-type ref="goodsType"></goods-type>
       <trade-card title="操作记录">
         <avue-form :option="optionForm2" v-model="form" ref="form2"> </avue-form>
       </trade-card>
@@ -66,8 +92,9 @@
 </template>
 
 <script>
-import { submit, detail, submitApprova, revokeApproval } from "@/api/claimSettlement/index";
+import { submit, detail, submitApprova, revokeApproval, disabledStock } from "@/api/goodsManage/index";
 import dicSelect from "@/components/dicSelect/main.vue";
+import goodsType from "./components/index.vue";
 export default {
   name: "detailsPage",
   data() {
@@ -85,122 +112,88 @@ export default {
         labelWidth: 100,
         column: [
           {
-            label: "理赔单号",
-            prop: "claimNo",
-            disabled: true
+            label: "商品名称",
+            prop: "cname",
+            span: 6
           },
           {
-            label: "来源类型",
-            prop: "claimSourceType",
-            type: "select",
-            dicData: [
-              {
-                label: "经销商",
-                value: 1
-              },
-              {
-                label: "门店",
-                value: 2
-              },
-              {
-                label: "终端消费者",
-                value: 3
-              }
-            ],
-            rules: [
-              {
-                required: true,
-                message: " ",
-                trigger: "blur"
-              }
-            ]
+            label: "商品编码",
+            prop: "code",
+            span: 6
           },
           {
-            label: "来源方名称",
-            prop: "sourceName"
+            label: "分类",
+            prop: "goodsTypeName",
+            span: 6
           },
           {
-            label: "消费者姓名",
-            prop: "consumerName"
+            label: "品牌",
+            prop: "brandName",
+            span: 6
           },
           {
-            label: "消费者电话",
-            prop: "consumerPhone"
+            label: "批次",
+            prop: "dot",
+            span: 6
           },
           {
-            label: "胎号",
-            prop: "tyreNo",
-            rules: [
-              {
-                required: true,
-                message: " ",
-                trigger: "blur"
-              }
-            ]
+            label: "花纹",
+            prop: "brandItem",
+            span: 6
           },
           {
             label: "规格型号",
-            prop: "tyreSpecs"
+            prop: "typeno",
+            span: 6,
+            row: true
           },
           {
-            label: "购买日期",
-            prop: "purchaseDate",
-            type: "date",
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd 00:00:00"
+            label: "售价1",
+            prop: "priceOne",
+            span: 6
           },
           {
-            label: "装车日期",
-            prop: "mountDate",
-            type: "date",
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd 00:00:00"
+            label: "售价2",
+            prop: "priceTwo",
+            span: 6
           },
           {
-            label: "行驶里程(km)",
-            prop: "runMileage"
+            label: "售价3",
+            prop: "priceThree",
+            span: 6
           },
           {
-            label: "索赔金额",
-            prop: "claimAmount"
-          }, 
+            label: "售价4",
+            prop: "priceFour",
+            span: 6
+          },
+          {
+            label: "仓库",
+            prop: "storageName",
+            span: 6
+          },
+          {
+            label: "库存数量",
+            prop: "balanceQuantity",
+            span: 6
+          },
           {
-            label: "审核状态",
-            prop: "auditStatus",
-            type: "select",
-            dicData: [
-              {
-                label: "待审核",
-                value: 0
-              },
-              {
-                label: "审核中",
-                value: 1
-              },
-              {
-                label: "已通过",
-                value: 2
-              },
-              {
-                label: "已拒绝",
-                value: 3
-              }
-            ],
+            label: "库存单价",
+            prop: "inventoryCostPrice",
+            span: 6
+          },
+          {
+            label: "库存金额",
+            prop: "inventoryAmount",
+            span: 6,
             disabled: true
           },
           {
-            label: "理赔原因",
-            prop: "claimReason",
+            label: "商品描述",
+            prop: "productDescription",
             type: "textarea",
             span: 12,
-            minRows: 2,
-            rules: [
-              {
-                required: true,
-                message: " ",
-                trigger: "blur"
-              }
-            ]
+            minRows: 2
           },
           {
             label: "备注",
@@ -238,114 +231,10 @@ export default {
             disabled: true
           }
         ]
-      },
-      option: {
-        maxHeight: 340,
-        calcHeight: 30,
-        index: true,
-        menu: false,
-        header: false,
-        column: [
-          {
-            label: "理赔单号",
-            prop: "claimNo",
-            overHidden: true
-          },
-          {
-            label: "审核结论",
-            prop: "auditResult",
-            overHidden: true
-          },
-          {
-            label: "核定赔付金额",
-            prop: "auditAmount",
-            overHidden: true
-          },
-          {
-            label: "详细审核说明",
-            prop: "reasonDetail",
-            overHidden: true
-          },
-          {
-            label: "审核人姓名",
-            prop: "auditorName",
-            overHidden: true
-          },
-          {
-            label: "审核时间",
-            prop: "auditTime",
-            overHidden: true
-          },
-          {
-            label: "反馈渠道",
-            prop: "feedbackChannel",
-            overHidden: true
-          },
-          {
-            label: "客户反馈内容",
-            prop: "feedbackDesc",
-            overHidden: true
-          },
-          {
-            label: "客户反馈时间",
-            prop: "feedbackTime",
-            overHidden: true
-          },
-          {
-            label: "申诉状态",
-            prop: "appealStatus",
-            overHidden: true
-          },
-          {
-            label: "申诉处理结果",
-            prop: "appealResult",
-            overHidden: true
-          },
-          {
-            label: "申诉处理时间",
-            prop: "appealTime",
-            overHidden: true
-          },
-          {
-            label: "制单人",
-            prop: "createUserName",
-            overHidden: true
-          },
-          {
-            label: "制单日期",
-            prop: "createTime",
-            type: "date",
-            overHidden: true,
-            width: 120,
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd HH:mm:ss"
-          },
-          {
-            label: "修改人",
-            prop: "updateUserName",
-            overHidden: true
-          },
-          {
-            label: "修改日期",
-            prop: "updateTime",
-            type: "date",
-            overHidden: true,
-            width: 120,
-            format: "yyyy-MM-dd",
-            valueFormat: "yyyy-MM-dd HH:mm:ss"
-          },
-          {
-            label: "备注",
-            prop: "remarks",
-            cell: true,
-            width: 150,
-            overHidden: true
-          }
-        ]
       }
     };
   },
-  components: { dicSelect },
+  components: { dicSelect, goodsType },
   props: {
     detailData: Object
   },
@@ -360,20 +249,49 @@ export default {
   methods: {
     inEdit() {
       this.editBtn = false;
-      if (this.form.auditStatus == 0) {
+      if (this.form.status == 0) {
         this.editDis = false;
         this.optionForm.disabled = false;
       }
     },
-    allCLick(name) {
-      if (name == "提交审批") {
-        this.$confirm("是否提交审批?", "提示", {
+    dicChange(name, row) {
+      if (name == "goodsTypeName") {
+        if (row) {
+          this.form.goodsTypeId = row.id;
+        } else {
+          this.form.goodsTypeId = null;
+          this.form.goodsTypeName = null;
+        }
+      }
+      if (name == "brandName") {
+        if (row) {
+          this.form.brandId = row.id;
+        } else {
+          this.form.brandId = null;
+          this.form.brandName = null;
+        }
+      }
+      if (name == "storageName") {
+        if (row) {
+          this.form.storageId = row.id;
+        } else {
+          this.form.storageId = null;
+          this.form.storageName = null;
+        }
+      }
+    },
+    allClick(name) {
+      if (name == "新建分类") {
+        this.$refs.goodsType.openDialog();
+      }
+      if (name == "提交") {
+        this.$confirm("是否提交?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
         }).then(() => {
           let obj = {
-            id: this.form.id
+            ...this.form
           };
           submitApprova(obj).then(res => {
             this.$message.success("操作成功");
@@ -381,14 +299,14 @@ export default {
           });
         });
       }
-      if (name == "撤销审批") {
-        this.$confirm("是否撤销审批?", "提示", {
+      if (name == "撤销") {
+        this.$confirm("是否撤销?", "提示", {
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning"
         }).then(() => {
           let obj = {
-            id: this.form.id
+            ...this.form
           };
           revokeApproval(obj).then(res => {
             this.$message.success("操作成功");
@@ -414,7 +332,7 @@ export default {
           submit(this.form)
             .then(res => {
               this.$message.success("保存成功");
-              this.getDetail(res.data.data.id);
+              this.getDetail(res.data.data);
             })
             .finally(() => {
               loading.close();
@@ -436,12 +354,12 @@ export default {
       });
       detail({ id: id })
         .then(res => {
-          if (res.data.data.auditStatus > 0) {
+          if (res.data.data.status > 0) {
             this.editBtn = true;
             this.editDis = true;
             this.optionForm.disabled = true;
           }
-           if (!this.editBtn&&res.data.data.auditStatus == 0) {
+          if (!this.editBtn && res.data.data.status == 0) {
             this.editDis = false;
             this.optionForm.disabled = false;
           }

+ 190 - 173
src/views/goodsManage/index.vue

@@ -1,66 +1,59 @@
 <template>
   <div>
     <basic-container v-if="isShow">
-      <avue-crud
-        ref="crud"
-        :option="option"
-        :table-loading="loading"
-        :data="data"
-        :page.sync="page"
-        :search.sync="query"
-        @search-change="searchChange"
-        @search-reset="searchReset"
-        @selection-change="selectionChange"
-        @current-change="currentChange"
-        @size-change="sizeChange"
-        @refresh-change="refreshChange"
-        @on-load="onLoad"
-      >
-        <template slot="menuLeft">
-          <el-button
-            type="primary"
-            size="small"
-            icon="el-icon-plus"
-            @click="addButton"
-            >创建单据
-          </el-button>
-        </template>
-        <template slot="menu" slot-scope="{ row, index }">
-          <el-button
-            size="small"
-            icon="el-icon-edit"
-            type="text"
-            @click="rowEdit(row)"
-            >编辑
-          </el-button>
-          <el-button
-            size="small"
-            icon="el-icon-delete"
-            type="text"
-            @click="rowDel(row, index)"
-            :disabled="row.auditStatus > 0"
-            >删 除
-          </el-button>
-        </template>
-        <template slot="contractNo" slot-scope="{ row }">
-          <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">
-            {{ row.contractNo }}
-          </span>
-        </template>
-      </avue-crud>
+      <el-row>
+        <el-col :span="4">
+          <avue-tree ref="tree" :option="treeOption" :data="treeData" @node-click="nodeClick" v-model="treeForm" style="height:77vh;">
+            <template slot="addBtn">
+              <el-tooltip class="item" effect="dark" content="新建分类" placement="top">
+                <i class="el-icon-setting" @click="allClick('新建分类')" style="font-size:18px;line-height: 1px;width: 20px;padding:10px;"></i>
+              </el-tooltip>
+            </template>
+          </avue-tree>
+        </el-col>
+        <el-col :span="20">
+          <avue-crud
+            ref="crud"
+            :option="option"
+            :table-loading="loading"
+            :data="data"
+            :page.sync="page"
+            :search.sync="query"
+            @search-change="searchChange"
+            @search-reset="searchReset"
+            @selection-change="selectionChange"
+            @current-change="currentChange"
+            @size-change="sizeChange"
+            @refresh-change="refreshChange"
+            @on-load="onLoad"
+          >
+            <template slot="menuLeft">
+              <el-button type="primary" size="small" icon="el-icon-plus" @click="addButton">创建单据 </el-button>
+              <el-button type="warning" icon="el-icon-download" size="small" @click="outExport">导出</el-button>
+            </template>
+            <template slot="menu" slot-scope="{ row, index }">
+              <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)">编辑</el-button>
+              <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row, index)" :disabled="row.auditStatus > 0">删除</el-button>
+            </template>
+            <template slot="contractNo" slot-scope="{ row }">
+              <span style="color: #1e9fff;cursor: pointer;" @click="rowEdit(row)">
+                {{ row.contractNo }}
+              </span>
+            </template>
+          </avue-crud>
+        </el-col>
+      </el-row>
     </basic-container>
-    <detailsPage
-      v-if="!isShow"
-      :detailData="detailData"
-      @goBack="goBack"
-    ></detailsPage>
+    <goods-type ref="goodsType" @update="getTree"></goods-type>
+    <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
   </div>
 </template>
 
 <script>
-import { getList, remove } from '@/api/claimSettlement/index';
-import detailsPage from './detailsPage.vue';
-import { getToken } from '@/util/auth';
+import { getList, remove, getGoodsTypeTree } from "@/api/goodsManage/index";
+import detailsPage from "./detailsPage.vue";
+import goodsType from "./components/index.vue";
+import { getToken } from "@/util/auth";
 export default {
   data() {
     return {
@@ -73,9 +66,22 @@ export default {
         currentPage: 1,
         total: 0
       },
+      corpTypeVisible: false,
+      treeForm: {},
+      treeData: [],
+      treeOption: {
+        addBtn: false,
+        menu: false,
+        size: "small",
+        props: {
+          labelText: "标题",
+          label: "title",
+          value: "value"
+        }
+      },
       selectionList: [],
       option: {
-        height: 'auto',
+        height: "auto",
         calcHeight: 30,
         menuWidth: 120,
         tip: false,
@@ -89,155 +95,118 @@ export default {
         delBtn: false,
         selection: true,
         searchIcon: true,
-        align: 'center',
+        align: "center",
         searchIndex: 3,
         column: [
           {
-            label: '理赔单号',
-            prop: 'claimNo',
+            label: "商品名称",
+            prop: "cname",
             search: true,
             overHidden: true
           },
           {
-            label: '来源类型',
-            prop: 'claimSourceType',
+            label: "商品编码",
+            prop: "code",
             search: true,
-            type: 'select',
-            dicData: [
-              {
-                label: '经销商',
-                value: 1
-              },
-              {
-                label: '门店',
-                value: 2
-              },
-              {
-                label: '终端消费者',
-                value: 3
-              }
-            ],
             overHidden: true
           },
           {
-            label: '来源方名称',
-            prop: 'sourceName',
-            width: 90,
+            label: "分类",
+            prop: "goodsTypeName",
             search: true,
             overHidden: true
           },
           {
-            label: '消费者姓名',
-            prop: 'consumerName',
-            width: 90,
+            label: "品牌",
+            prop: "brandName",
             search: true,
-            overHidden: true
-          },
-          {
-            label: '消费者电话',
-            prop: 'consumerPhone',
-            width: 90,
-            overHidden: true
-          },
-          {
-            label: '胎号',
-            prop: 'tyreNo',
-            overHidden: true
-          },
-          {
-            label: '规格型号',
-            prop: 'tyreSpecs',
-            overHidden: true
-          },
-          {
-            label: '购买日期',
-            prop: 'purchaseDate',
-            overHidden: true
+            overHidden: true,
+            filterable: true,
+            type: "select",
+            props: {
+              label: "cname",
+              value: "cname"
+            },
+            dicUrl: "/api/gubersail-admin/brandDesc/listAllV1?whetherIntegral=0",
+            width: 100
           },
           {
-            label: '装车日期',
-            prop: 'mountDate',
+            label: "批次",
+            prop: "dot",
             overHidden: true
           },
           {
-            label: '行驶里程(km)',
-            prop: 'runMileage',
-            width: 100,
+            label: "花纹",
+            prop: "brandItem",
             overHidden: true
           },
           {
-            label: '理赔原因',
-            prop: 'claimReason',
+            label: "规格型号",
+            prop: "typeno",
+            span: 6,
             overHidden: true
           },
           {
-            label: '索赔金额',
-            prop: 'claimAmount',
-            overHidden: true
+            label: "售价1",
+            prop: "priceOne",
+            cell: true,
+            overHidden: true,
+            width: 80
           },
           {
-            label: '审核状态',
-            prop: 'auditStatus',
-            type: 'select',
-            dicData: [
-              {
-                label: '待审核',
-                value: 0
-              },
-              {
-                label: '审核中',
-                value: 1
-              },
-              {
-                label: '已通过',
-                value: 2
-              },
-              {
-                label: '已拒绝',
-                value: 3
-              }
-            ],
-            overHidden: true
+            label: "售价2",
+            prop: "priceTwo",
+            cell: true,
+            overHidden: true,
+            width: 80
           },
           {
-            label: '提交时间',
-            prop: 'submitTime',
-            overHidden: true
+            label: "售价3",
+            prop: "priceThree",
+            cell: true,
+            overHidden: true,
+            width: 80
           },
           {
-            label: '备注',
-            prop: 'remark',
-            overHidden: true
+            label: "售价4",
+            prop: "priceFour",
+            cell: true,
+            overHidden: true,
+            width: 80
           },
+
           {
-            label: '制单人',
-            prop: 'createUserName',
+            label: "仓库",
+            prop: "storageName",
+            search: true,
             overHidden: true,
-            width: 80
+            hide: true,
+            type: "select",
+            props: {
+              label: "cname",
+              value: "cname",
+              res: "data.records"
+            },
+            dicUrl: "/api/gubersail-admin/storageDesc/list?current=1&size=5",
+            width: 100
           },
           {
-            label: '制单日期',
-            prop: 'createTime',
-            type: 'date',
+            label: "库存数量",
+            prop: "balanceQuantity",
             overHidden: true,
-            width: 100,
-            format: 'yyyy-MM-dd',
-            valueFormat: 'yyyy-MM-dd HH:mm:ss'
+            width: 100
           },
           {
-            label: '修改人',
-            prop: 'updateUserName',
+            label: "库存单价",
+            prop: "inventoryCostPrice",
             overHidden: true,
-            width: 80
+            width: 100
           },
           {
-            label: '修改日期',
-            prop: 'updateTime',
-            type: 'date',
+            label: "库存金额",
+            prop: "inventoryAmount",
             overHidden: true,
-            width: 100,
-            format: 'yyyy-MM-dd',
-            valueFormat: 'yyyy-MM-dd HH:mm:ss'
+            width: 100
           }
         ]
       },
@@ -245,11 +214,55 @@ export default {
     };
   },
   components: {
-    detailsPage
+    detailsPage,
+    goodsType
   },
   created() {
+    this.getTree();
   },
   methods: {
+    getTree() {
+      getGoodsTypeTree().then(res => {
+        this.treeData = res.data.data;
+      });
+    },
+    allClick(name) {
+      if (name == "新建分类") {
+        this.$refs.goodsType.openDialog();
+      }
+    },
+    // 导出
+    outExport() {
+      let config = { params: { ...this.query } };
+      if (config.params) {
+        for (const propName of Object.keys(config.params)) {
+          const value = config.params[propName];
+          if (value !== null && typeof value !== "undefined") {
+            if (value instanceof Array) {
+              for (const key of Object.keys(value)) {
+                let params = propName + "[" + key + "]";
+                config.params[params] = value[key];
+              }
+              delete config.params[propName];
+            }
+          }
+        }
+      }
+      const routeData = this.$router.resolve({
+        path: "/api/blade-sales-part/stockDesc/stockExport", //跳转目标下载地址
+        query: {
+          ...config.params
+        }
+      });
+      window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
+    },
+    //tree点击事件
+    nodeClick(data) {
+      console.log(data, this.treeForm);
+      this.query.goodsTypeId = data.value;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+    },
     addButton() {
       this.isShow = false;
     },
@@ -269,16 +282,16 @@ export default {
      */
     rowDel(row, index) {
       if (row.item == 1) {
-        return this.$message.error('存在明细不允许删除');
+        return this.$message.error("存在明细不允许删除");
       }
-      this.$confirm('确定将选择数据删除?', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
       }).then(() => {
         remove({ ids: row.id }).then(res => {
           this.onLoad(this.page, this.query);
-          this.$message.success('成功删除');
+          this.$message.success("成功删除");
         });
       });
     },
@@ -342,16 +355,16 @@ export default {
     // 详情的返回列表
     goBack() {
       // 初始化数据
-      if (JSON.stringify(this.$route.query) != '{}') {
+      if (JSON.stringify(this.$route.query) != "{}") {
         this.$router.$avueRouter.closeTag();
         this.$router.push({
-          path: '/claimSettlement/index'
+          path: "/claimSettlement/index"
         });
       }
       this.detailData = {};
       this.isShow = true;
       this.onLoad(this.page, this.query);
-    },
+    }
   }
 };
 </script>
@@ -360,7 +373,11 @@ export default {
 ::v-deep .el-col-md-8 {
   width: 24.33333%;
 }
-// ::v-deep .el-table .cell{
-//   display: flex;
-// }
+::v-deep .el-table .cell {
+  padding-right: 0px !important;
+}
+::v-deep .avue-crud .el-table .el-button.el-button--small {
+  padding: 0px !important;
+  margin-right: 0px !important;
+}
 </style>

+ 3 - 3
src/views/salesLead/detailsPage.vue

@@ -16,7 +16,7 @@
           type="success"
           size="small"
           :disabled="editDis"
-          @click="allCLick('提交')"
+          @click="allClick('提交')"
           >提交
         </el-button>
         <el-button
@@ -26,7 +26,7 @@
           type="danger"
           size="small"
           :disabled="editBtn"
-          @click="allCLick('撤销')"
+          @click="allClick('撤销')"
           >撤销
         </el-button>
       </div>
@@ -371,7 +371,7 @@ export default {
         this.optionForm.disabled = false;
       }
     },
-    allCLick(name) {
+    allClick(name) {
       if (name == "提交") {
         this.$confirm("是否提交审批?", "提示", {
           confirmButtonText: "确定",

+ 7 - 3
src/views/salesLead/index.vue

@@ -335,7 +335,11 @@ export default {
 ::v-deep .el-col-md-8 {
   width: 24.33333%;
 }
-// ::v-deep .el-table .cell{
-//   display: flex;
-// }
+::v-deep .el-table .cell {
+  padding-right: 0px !important;
+}
+::v-deep .avue-crud .el-table .el-button.el-button--small {
+  padding: 0px !important;
+  margin-right: 0px !important;
+}
 </style>

+ 304 - 0
src/views/warehouse/index.vue

@@ -0,0 +1,304 @@
+<template>
+  <basic-container class="page-crad">
+    <avue-crud
+      :option="option"
+      :data="dataList"
+      ref="crud"
+      v-model="form"
+      :table-loading="loading"
+      :page.sync="page"
+      @row-del="rowDel"
+      @row-update="rowUpdate"
+      :before-open="beforeOpen"
+      :before-close="beforeClose"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @on-load="onLoad"
+      @search-criteria-switch="searchCriteriaSwitch"
+      @tree-load="treeLoad"
+    >
+      <template slot-scope="{ type, size, row, $index }" slot="menuLeft">
+        <el-button icon="el-icon-plus" type="primary" :size="size" @click="addRow">新增</el-button>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import { getList, typeSave, detail, deleteDetails } from "@/api/warehouse/index.js";
+import { getUser } from "@/api/system/user";
+export default {
+  name: "customerInformation",
+  data() {
+    return {
+      form: {
+        positioner: []
+      },
+      option: {
+        loading: false,
+        addBtn: false,
+        headerAlign: "center",
+        align: "center",
+        border: true,
+        index: true,
+        // lazy: true,
+        stripe: true,
+        height: "auto",
+        tip: false,
+        simplePage: true,
+        searchShow: true,
+        tree: true,
+        searchMenuSpan: 16,
+        searchSpan: 8,
+        searchIcon: true,
+        searchIndex: 2,
+        selection: true,
+        viewBtn: false,
+        menuWidth: 140,
+        dialogClickModal: false,
+        column: [
+          {
+            label: "仓库编码",
+            prop: "code",
+            search: true,
+            overHidden: true,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "仓库名称",
+            prop: "cname",
+            search: true,
+            overHidden: true,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "联系人",
+            prop: "contacts",
+            search: true,
+            overHidden: true,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          {
+            label: "联系电话",
+            prop: "tel",
+            search: true,
+            overHidden: true,
+            rules: [
+              {
+                required: true,
+                message: " ",
+                trigger: "blur"
+              }
+            ]
+          },
+          // {
+          //   label: "库容",
+          //   prop: "storageCapacity",
+          //   search: true,
+          //   overHidden: true
+          // },
+          {
+            label: "备注",
+            prop: "remarks",
+            type: "textarea",
+            minRows: 3,
+            span: 24,
+            overHidden: true
+          }
+        ]
+      },
+      parentId: 0,
+      dataList: [],
+      page: {
+        pageSize: 20,
+        currentPage: 1,
+        total: 0,
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+      },
+      treeDeptId: "",
+      corpTypeListCk: [],
+      flag: false
+    };
+  },
+  created() {},
+  methods: {
+    //删除列表后面的删除按钮触发触发(row, index, done)
+    rowDel(row, index, done) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+        .then(() => {
+          return deleteDetails(row.id);
+        })
+        .then(() => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          // 数据回调进行刷新
+          done(row);
+        });
+    },
+    //修改时的修改按钮点击触发
+    rowUpdate(row, index, done, loading) {
+      if (row.positioner.length) {
+        row.longitude = row.positioner[0];
+        row.dimension = row.positioner[1];
+        row.address = row.positioner[2];
+      } else {
+        row.longitude = null;
+        row.dimension = null;
+        row.address = null;
+      }
+      typeSave(row).then(
+        () => {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          // 数据回调进行刷新
+          done(row);
+        },
+        error => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    //新增修改时保存触发
+    rowSave(row, done, loading) {
+      console.log(row);
+      if (row.positioner.length) {
+        row.longitude = row.positioner[0];
+        row.dimension = row.positioner[1];
+        row.address = row.positioner[2];
+      } else {
+        row.longitude = null;
+        row.dimension = null;
+        row.address = null;
+      }
+      typeSave(row).then(
+        res => {
+          console.log(res);
+          this.page.currentPage = 1;
+          this.onLoad(this.page, {});
+          done();
+        },
+        error => {
+          window.console.log(error);
+          loading();
+        }
+      );
+    },
+    //新增按钮触发
+    addRow(row) {
+      // @ts-ignore
+      getUser(JSON.parse(localStorage.getItem("saber-userInfo")).content.user_id).then(res => {
+        this.form.salesCompanyName = res.data.data.deptName;
+        this.form.salesCompanyId = res.data.data.deptId;
+      });
+      this.form.positioner = [];
+      this.$refs.crud.rowAdd();
+    },
+    //新增子项和新增触发查询所有
+    beforeOpen(done, type) {
+      if (["add", "edit"].includes(type)) {
+        this.option.column.forEach(e => {
+          if (e.prop == "storageTypeId") {
+            this.$set(this.option.column, 3, { ...e, value: this.treeDeptId });
+          }
+        });
+      }
+      if (["edit", "view"].includes(type)) {
+        detail(this.form.id).then(res => {
+          if (res.data.data.longitude && res.data.data.dimension && res.data.data.address) {
+            res.data.data.positioner = [Number(res.data.data.longitude), Number(res.data.data.dimension), res.data.data.address];
+          } else {
+            res.data.data.positioner = [];
+          }
+          this.form = res.data.data;
+        });
+      }
+      done();
+    },
+    //点击新增时触发
+    beforeClose(done) {
+      this.parentId = "";
+      done();
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.treeDeptId = "";
+      this.onLoad(this.page);
+    },
+    onLoad(page, params = { parentId: 0 }) {
+      let queryParams = Object.assign({}, params, {
+        size: page.pageSize,
+        current: page.currentPage,
+        parentId: 0,
+        storageTypeId: this.treeDeptId
+      });
+      this.loading = true;
+      getList(queryParams)
+        .then(res => {
+          this.dataList = res.data.data.records;
+          this.page.total = res.data.data.total;
+        })
+        .finally(() => {
+          this.loading = false;
+        });
+    },
+    searchCriteriaSwitch(type) {
+      // this.$refs.crud.doLayout();
+      // this.$refs.crud.getTableHeight();
+    },
+    //树桩列点击展开触发
+    treeLoad(tree, treeNode, resolve) {
+      const parentId = tree.id;
+      getList({ parentId: parentId }).then(res => {
+        resolve(res.data.data.records);
+      });
+    }
+  }
+};
+</script>
+
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+  height: 94.8vh;
+}
+::v-deep .el-table .cell {
+  padding-right: 0px !important;
+}
+::v-deep .avue-crud .el-table .el-button.el-button--small {
+  padding: 0px !important;
+  margin-right: 0px !important;
+}
+</style>