瀏覽代碼

采购管理(L)>入库工单列表详情页面开发
基础资料(L)>商品bug修改
基础资料(L)>账户管理内容保存为空,列表不显示修改
基础资料(L)>账户管理列表删除报错修改
基础资料(L)>商品信息 缺少启用/停用 功能修改

cyang233 2 年之前
父節點
當前提交
5ebc735af5

+ 3 - 3
src/api/tirePartsMall/basicData/accountManagement/index.js

@@ -8,12 +8,12 @@ export const getList = (params) => {
   })
 }
 //删除
-export const remove = (ids) => {
+export const remove = (id) => {
   return request({
     url: '/api/blade-sales-part/accountManagement/update',
     method: 'post',
-    params: {
-      ids,
+    data: {
+      id,
     }
   })
 }

+ 52 - 0
src/api/tirePartsMall/basicData/warehouseEntryOrder/index.js

@@ -0,0 +1,52 @@
+import request from '@/router/axios';
+
+//入库订单列表查询
+export function entryOrderList(data) {
+  return request({
+    url: '/api/blade-sales-part/ship/list',
+    method: 'get',
+    params: data
+  })
+}
+
+//仓库列表修改和新增
+export function typeSave(data) {
+  return request({
+    url: '/api/blade-sales-part/ship/submit',
+    method: 'post',
+    data: data
+  })
+}
+//入库订单查看详情
+export function detail(data) {
+  return request({
+    url: '/api/blade-sales-part/ship/detail?id='+data,
+    method: 'get'
+  })
+}
+//入库订单列表删除
+export function deleteDetails(data) {
+  return request({
+    url: '/api/blade-sales-part/ship/update',
+    method: 'post',
+    data: {
+      id:data
+    }
+  })
+}
+//入库订单生成出库工单
+export function outboundWorkOrder(data) {
+    return request({
+      url: '/api/blade-sales-part/ship/outboundWorkOrder',
+      method: 'post',
+      data: data
+    })
+  }
+//入库订单出库完成
+export function outboundCompleted(data) {
+    return request({
+      url: '/api/blade-sales-part/ship/outboundCompleted ',
+      method: 'get',
+      params: data
+    })
+  }

+ 9 - 0
src/enums/column-name.js

@@ -1177,6 +1177,15 @@ const columnName = [{
 },{
   code: 273,
   name: '轮胎商城-基础资料-上架管理-列表列表'
+},{
+  code: 274,
+  name: '轮胎商城-基础资料-入库工单-列表'
+},{
+  code: 274.1,
+  name: '轮胎商城-基础资料-入库工单-入库明细列表'
+},{
+  code: 274.2,
+  name: '轮胎商城-基础资料-入库工单-订单信息列表'
 }]
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {

+ 9 - 13
src/views/tirePartsMall/basicData/accountManagement/detailsPage.vue

@@ -56,30 +56,26 @@ export default {
           }]
         }, {
           label: '账户类型',
-          prop: "let"
+          prop: "accountType"
         }, {
           label: '开户银行',
-          prop: "let"
+          prop: "bankDeposit"
         }, {
           label: '银行账号',
-          prop: "let"
+          prop: "bankAccount"
         }, {
           label: '开户人',
-          prop: "let"
+          prop: "accountHolder"
         }, {
           label: '公司名称',
-          prop: "let"
+          prop: "corporateName"
         }, {
           label: '币别',
-          prop: "let"
+          prop: "currency"
         }, {
           label: '账户余额',
-          prop: "let"
-        }, {
-          label: '系统统计',
-          prop: "let",
-          disabled: true
-        }, {
+          prop: "accountBalance"
+        },  {
           label: '备注',
           prop: "remarks",
           type: 'textarea',
@@ -112,7 +108,7 @@ export default {
         spinner: 'el-icon-loading',
         background: 'rgba(255,255,255,0.7)'
       })
-      detail(id).then(res => {
+      detail({id}).then(res => {
         this.form = res.data.data;
         loading.close()
       }).finally(() => {

+ 17 - 23
src/views/tirePartsMall/basicData/accountManagement/index.vue

@@ -137,7 +137,7 @@ export default {
         column: [{
           label: '账户名称',
           prop: "cname",
-          search: false,
+          search: true,
           overHidden: true,
         }, {
           label: '开户银行',
@@ -154,34 +154,28 @@ export default {
           prop: "accountType",
           search: true,
           overHidden: true,
-        }, {
+        },  {
+          label: '币别',
+          prop: "currency",
+          search: true,
+          overHidden: true,
+        },{
           label: '账户余额',
           prop: "accountBalance",
           search: false,
           overHidden: true,
         }, {
-          label: '状态',
-          prop: 'status',
-          search: true,
-        }
-          // , {
-          //   label: "业务员",
-          //   prop: "adminProfiles",
-          //   search: true,
-          //   type: "select",
-          //   props: {
-          //     label: "name",
-          //     value: "id"
-          //   },
-          //   dicUrl: "/api/blade-user/client/gainUser",
-          //   filterable: true,
-          //   overHidden: true
-          // }
-          , {
-            label: '备注',
-            prop: "remarks",
-            overHidden: true,
+          label: '是否启用',
+          prop: 'enableOrNot',
+          // search: true,
+          dicData: [{
+            label: '否',
+            value: 0
+          }, {
+            label: '是',
+            value: 1
           }]
+        } ]
       }
     }
   },

+ 7 - 1
src/views/tirePartsMall/basicData/brandPage/index.vue

@@ -135,7 +135,13 @@ export default {
           searchDefaultTime: ["00:00:00", "23:59:59"],
           format: "yyyy-MM-dd",
           valueFormat: "yyyy-MM-dd HH:mm:ss"
-        }]
+        },{
+          label: '是否启用',
+          prop: "enableOrNot",
+          search: false,
+          overHidden: true,
+          
+        },]
       }
     }
   },

+ 15 - 15
src/views/tirePartsMall/basicData/commodityInformation/index.vue

@@ -6,15 +6,15 @@
           <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" style="height:82vh;">
             <template slot="addBtn">
               <i class="el-icon-setting" @click="goodsTypeVisible = true"
-                 style="font-size:18px;line-height: 30px;width: 20px;padding: 0 10px;"></i>
+                style="font-size:18px;line-height: 30px;width: 20px;padding: 0 10px;"></i>
             </template>
           </avue-tree>
         </el-col>
         <el-col :span="20">
           <avue-crud ref="crud" :option="option" :data="dataList" :page.sync="page" :search.sync="search"
-                     @search-change="searchChange" @current-change="currentChange" @size-change="sizeChange"
-                     @refresh-change="refreshChange" @on-load="onLoad" :table-loading="loading" @saveColumn="saveColumn"
-                     @resetColumn="resetColumn" :cell-style="cellStyle" @search-criteria-switch="searchCriteriaSwitch">
+            @search-change="searchChange" @current-change="currentChange" @size-change="sizeChange"
+            @refresh-change="refreshChange" @on-load="onLoad" :table-loading="loading" @saveColumn="saveColumn"
+            @resetColumn="resetColumn" :cell-style="cellStyle" @search-criteria-switch="searchCriteriaSwitch">
             <template slot="menuLeft">
               <el-button type="primary" size="mini" @click.stop="newAdd()">新建产品
               </el-button>
@@ -29,7 +29,7 @@
             </template>
             <template slot-scope="{ row, index }" slot="menu">
               <el-tooltip class="item" effect="dark" content="删除" placement="top">
-                <i class="tradingIcon icon-del" @click.stop="rowDel(row, index)" v-if="row.status != 0"/>
+                <i class="tradingIcon icon-del" @click.stop="rowDel(row, index)" v-if="row.status != 0" />
               </el-tooltip>
               <!-- <el-tooltip class="item" effect="dark" content="新建销售订单" placement="top">
             <i class="tradingIcon icon-add" />
@@ -57,9 +57,9 @@
         </el-col>
       </el-row>
     </basic-container>
-    <details-page v-if="!show" @goBack="goBack()" :detailData="detailData"/>
-    <el-dialog title="设置产品分类" v-dialogDrag :visible.sync="goodsTypeVisible" class="avue-dialog" width="80%"
-               append-to-body @closed="goodsTypeClosed">
+    <details-page v-if="!show" @goBack="goBack()" :detailData="detailData" />
+    <el-dialog title="设置产品分类" v-dialogDrag :visible.sync="goodsTypeVisible" class="avue-dialog" width="80%" append-to-body
+      @closed="goodsTypeClosed">
       <span>
         <!--<goods-type></goods-type>-->
         <corp-type></corp-type>
@@ -88,9 +88,9 @@
 
 <script>
 import detailsPage from "./detailsPage";
-import {option} from "./js/optionList";
-import {getList, remove, getCorpType} from "@/api/tirePartsMall/basicData/commodityInformation";
-import {getToken} from "@/util/auth";
+import { option } from "./js/optionList";
+import { getList, remove, getCorpType } from "@/api/tirePartsMall/basicData/commodityInformation";
+import { getToken } from "@/util/auth";
 // import goodsType from '@/components/goodsType/index'
 import corpType from './components/index'
 
@@ -215,7 +215,7 @@ export default {
       // getAllgoods().then(res => {
       //   this.findObject(this.option.column, "cname").dicData = res.data.data
       // });
-      getCorpType({corpType: 'SP'}).then(res => {
+      getCorpType({ corpType: 'SP' }).then(res => {
         this.treeData = res.data.data;
         // this.findObject(this.option2.column, "parentId").dicData = res.data.data;
       });
@@ -235,8 +235,8 @@ export default {
         }=${getToken()}`
       );
     },
-        //导出
-        outExport() {
+    //导出
+    outExport() {
       let config = { params: { ...this.search } }
       if (config.params) {
         for (const propName of Object.keys(config.params)) {
@@ -345,7 +345,7 @@ export default {
         cancelButtonText: "取消",
         type: "warning"
       }).then(() => {
-        remove({id: row.id}).then(res => {
+        remove({ id: row.id }).then(res => {
           if (res.data.code == 200) {
             this.$message({
               type: "success",

+ 8 - 1
src/views/tirePartsMall/basicData/listingManagement/index.vue

@@ -244,9 +244,16 @@ export default {
         {
           label: "共享公司",
           prop: "sharedCompany",
-          hide: true,
+          // hide: true,
+          search: false,
           showColumn: false,
           overHidden: true,
+          type: 'select',
+          props: {
+            label: 'cname',
+            value: 'id'
+          },
+          dicUrl: '/api/blade-sales-part/storageDesc/listAll',
         },
         {
           label: "详情附件",

+ 12 - 5
src/views/tirePartsMall/basicData/warehouse/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <basic-container class="page-crad">
+  <basic-container class="page-crad" v-if="flag">
     <avue-crud :option="option" :data="dataList" ref="crud" v-model="form" :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"
@@ -17,7 +17,9 @@ import {
   detail,
   deleteDetails
 } from "@/api/tirePartsMall/basicData/warehouse";
-
+import {
+  customerListAll
+} from "@/api/tirePartsMall/basicData/warehouse";
 export default {
   name: "customerInformation",
   data() {
@@ -29,7 +31,7 @@ export default {
         align: "center",
         border: true,
         index: true,
-        lazy: true,
+        // lazy: true,
         stripe: true,
         height: "auto",
         tip: false,
@@ -136,11 +138,11 @@ export default {
           overHidden: true,
           // width: 120,
           type: 'select',
-          dicUrl: "/api/blade-sales-part/storageDesc/listAll",
           props: {
             label: 'cname',
             value: 'id'
           },
+          dicUrl: '/api/blade-sales-part/storageDesc/listAll',
           rules: [
             {
               required: true,
@@ -185,7 +187,9 @@ export default {
         total: 0,
         pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
       },
-      treeDeptId: ""
+      treeDeptId: "",
+      corpTypeListCk: [],
+      flag:false,
     };
   },
   async created() {
@@ -200,6 +204,9 @@ export default {
       this.option.searchMenuSpan = num * 8;
       this.option.searchMenuPosition = "right";
     }
+    setTimeout(()=>{
+      this.flag = true
+    },200)
   },
   methods: {
     //删除列表后面的删除按钮触发触发(row, index, done)

+ 93 - 0
src/views/tirePartsMall/salesManagement/warehouseEntryOrder/config/customerContact.json

@@ -0,0 +1,93 @@
+{
+  "align": "center",
+  "addBtn": false,
+  "refreshBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "border": true,
+  "menuWidth": 120,
+  "stripe": true,
+  "index": true,
+  "indexSlot": true,
+  "columnBtn":false,
+  "menu":false,
+  "column": [{
+    "prop": "itemId",
+    "label": "物料编码",
+    "type": "select",
+    "props": {
+      "label": "cname",
+      "value": "id"
+    },
+    "dicData": [],
+    "overHidden": true,
+    "filterable":true
+  },{
+    "prop": "length",
+    "label": "商品名称",
+    "overHidden": true
+  },
+    {
+      "prop": "thickness",
+      "label": "品牌",
+      "overHidden": true
+    },
+    {
+      "prop": "billNo",
+      "label": "规格型号",
+      "overHidden": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入",
+          "trigger": "blur"
+        }
+      ]
+      
+    },{
+      "prop": "storageInQuantity",
+      "label": "花纹",
+      "overHidden": true
+    },{
+      "prop": "price",
+      "label": "商品描述",
+      "overHidden": true
+    },{
+      "prop": "storageAmount",
+      "label": "批次号",
+      "overHidden": true
+    },{
+      "prop": "unit",
+      "label": "单位",
+      "overHidden": true,
+      "type": "select",
+      "props": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
+      "dicData": []
+    },{
+      "prop": "grade",
+      "label": "入库数量",
+      "overHidden": true
+    },
+    {
+      "prop": "storageId",
+      "label": "实际数量",
+      "overHidden": true,
+      "type": "select",
+      "props": {
+        "label": "cname",
+        "value": "id"
+      },
+      "dicData": [],
+      "filterable":true
+    },
+    {
+      "prop": "remarks",
+      "label": "备注",
+      "overHidden": true,
+      "cell": true
+    }
+  ]
+}

+ 72 - 0
src/views/tirePartsMall/salesManagement/warehouseEntryOrder/config/customerContactTwo.json

@@ -0,0 +1,72 @@
+{
+  "align": "center",
+  "addBtn": false,
+  "refreshBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "border": true,
+  "menuWidth": 120,
+  "stripe": true,
+  "index": true,
+  "columnBtn":false,
+  "menu":false,
+  "column": [
+    {
+      "prop": "mainBillNo",
+      "label": "入库单号",
+      "overHidden": true
+    },
+    {
+      "prop": "containerNo",
+      "label": "来源单号"
+    },
+    {
+      "prop": "stockTime",
+      "label": "业务来源",
+      "type": "date",
+      "searchRange": true,
+      "searchDefaultTime": [
+        "00:00:00",
+        "23:59:59"
+      ],
+      "format": "yyyy-MM-dd",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "overHidden": true
+    },
+    {
+      "prop": "itemId",
+      "label": "地址",
+      "type": "select",
+      "props": {
+        "label": "cname",
+        "value": "id"
+      },
+      "dicData": [],
+      "overHidden": true,
+      "filterable": true,
+      "rules": [
+        {
+          "required": true,
+          "message": "请选择",
+          "trigger": "blur"
+        }
+      ]
+    },
+    {
+      "prop": "length",
+      "label": "联系人",
+      "overHidden": true
+    },
+    {
+      "prop": "thickness",
+      "label": "电话",
+      "overHidden": true
+    },
+    {
+      "prop": "remarks",
+      "label": "备注",
+      "overHidden": true,
+      "cell": true
+    }
+  ]
+}

+ 199 - 0
src/views/tirePartsMall/salesManagement/warehouseEntryOrder/config/mainList.json

@@ -0,0 +1,199 @@
+{
+  "searchShow": true,
+  "searchMenuSpan": 24,
+  "border": true,
+  "index": true,
+  "viewBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "addBtn": false,
+  "headerAlign": "center",
+  "menuWidth": "70",
+  "showSummary": true,
+  "searchIcon": true,
+  "searchIndex": 2,
+  "selection": true,
+  "tip": false,
+  "summaryText": "合计",
+  "sumColumnList": [
+    {
+      "name": "storageQuantity",
+      "type": "sum",
+      "decimals": 3
+    },
+    {
+      "name": "purchaseQuantity",
+      "type": "sum",
+      "decimals": 3
+    },
+    {
+      "name": "storageAmount",
+      "type": "sum",
+      "decimals": 2
+    }
+  ],
+  "column": [
+    {
+      "label": "货权人",
+      "prop": "purchaserId",
+      "index": 1,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "提单号",
+      "prop": "billNo",
+      "index": 3,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "箱号",
+      "prop": "caseNo",
+      "index": 4,
+      "width": 100,
+      "search": true,
+      "disabled": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "车船号",
+      "prop": "vehicleShipNumber",
+      "index": 11,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "司机",
+      "prop": "otherCorpAttn",
+      "index": 12,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "仓库",
+      "prop": "storageId",
+      "type": "cascader",
+      "props": {
+        "label": "title",
+        "value": "value"
+      },
+      "dicData": [],
+      "checkStrictly": true,
+      "showAllLevels": false,
+      "emitPath": false,
+      "index": 10,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "出库单号",
+      "prop": "sysNo",
+      "index": 2,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "出库日期",
+      "prop": "stockTime",
+      "index": 9,
+      "width": 120,
+      "type": "date",
+      "format": "yyyy-MM-dd",
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "供应商",
+      "prop": "corpId",
+      "index": 7,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "业务类型",
+      "prop": "businessType",
+      "index": 17,
+      "width": 120,
+      "type": "select",
+      "props": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
+      "dicData": [],
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    },{
+      "label": "实际出库数量",
+      "prop": "storageQuantity",
+      "index": 6,
+      "width": 120
+    },{
+      "label": "实际品名",
+      "prop": "specialRemarks",
+      "index": 5,
+      "width": 120
+    },{
+      "label": "计划出库数量",
+      "prop": "purchaseQuantity",
+      "index": 13,
+      "width": 120
+    },{
+      "label": "计划品名",
+      "prop": "planGoodsName",
+      "index": 14,
+      "width": 120
+    },
+    {
+      "label": "制单人",
+      "prop": "salesName",
+      "index": 15,
+      "width": 120,
+      "overHidden": true
+    },
+    {
+      "label": "创建时间",
+      "prop": "createTime",
+      "index": 16,
+      "width": 120,
+      "overHidden": true
+    },
+    {
+      "label": "审核状态",
+      "prop": "status",
+      "index": 8,
+      "width": 120,
+      "type": "select",
+      "dataType": "number",
+      "props": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
+      "dicData": [],
+      "overHidden": true
+    },{
+      "label": "明细件数",
+      "prop": "issueNumber",
+      "index": 18,
+      "width": 80,
+      "overHidden": true
+    },
+    {
+      "label": "备注",
+      "prop": "orderRemark",
+      "index": 19,
+      "width": 120,
+      "search": true,
+      "searchSpan": 8,
+      "overHidden": true
+    }
+  ]
+}

+ 405 - 0
src/views/tirePartsMall/salesManagement/warehouseEntryOrder/detailsPage.vue

@@ -0,0 +1,405 @@
+<template>
+    <div class="borderless" v-loading="pageLoading">
+      <div class="customer-head">
+        <div class="customer-back">
+          <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+            @click="backToList">返回列表
+          </el-button>
+        </div>
+        <div class="add-customer-btn">
+          <el-button type="primary" @click="editCustomer" :loading="subLoading" v-if="detailData.status != 3"
+            size="small">保存数据
+          </el-button>
+        </div>
+      </div>
+      <div class="customer-main" v-loading="subLoading">
+        <trade-card title="基础信息">
+          <avue-form ref="form" class="trading-form" v-model="form" :option="option">
+            <template slot="goodsTypeId">
+              <div style="display:flex;">
+                <avue-cascader :emit-path="false" check-strictly :show-all-levels="false" v-model="form.goodsTypeId"
+                  placeholder="请选择产品分类" :dic="goodsTypeList" :props="props"></avue-cascader>
+              </div>
+            </template>
+            <template slot="storageId">
+              <el-cascader v-model="form.storageId" :options="storagetreeList" :show-all-levels="false"
+                :disabled="detailData.status == 1" :props="{ checkStrictly: true, emitPath: false, label: 'title' }"
+                clearable @change="storagetreeChange">
+              </el-cascader>
+            </template>
+          </avue-form>
+        </trade-card>
+        <trade-card title="入库明细">
+          <avue-crud ref="crud" :data="tableList" :option="tableOption" :cell-style="cellStyle"
+            @search-change="searchChange(1)">
+          </avue-crud>
+        </trade-card>
+        <trade-card title="订单信息">
+          <avue-crud ref="crudTwo" :data="tableListTwo" :option="tableOptionTwo" :cell-style="cellStyle"
+            @search-change="searchChange(2)">
+          </avue-crud>
+        </trade-card>
+        <trade-card title="历史记录">
+          <avue-crud ref="crudThree" :data="tableListThree" :option="tableOptionThree" :cell-style="cellStyle"
+            @search-change="searchChange(3)">
+          </avue-crud>
+        </trade-card>
+      </div>
+    </div>
+  </template>
+  
+  <script>
+  import {
+    getStoragetree,
+    getStorage,
+    scanningCodeAddPc,
+  } from "@/api/purchasingManagement/inStock";
+  import { customerList} from "@/api/tirePartsMall/basicData/commodityInformation"
+  import {
+    typeSave,
+    detail,
+  } from "@/api/tirePartsMall/basicData/warehouseEntryOrder";
+  import tableOption from "./config/customerContact.json";
+  import tableOptionTwo from "./config/customerContactTwo.json";
+  import { getToken } from "@/util/auth";
+  import { dateFormat, getCurrentDate } from "@/util/date";
+  
+  export default {
+    name: "detailsOrderEdit",
+    data() {
+      return {
+        activeName: 'searchList',
+        props: {
+          label: 'cname',
+          value: 'id'
+        },
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        pageTwo: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        pageThree: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        loading: false,
+        form: {},
+        tableOption: {},
+        tableOptionTwo: {},
+        tableOptionThree: {
+          align: "center",
+          addBtn: false,
+          refreshBtn: false,
+          editBtn: false,
+          delBtn: false,
+          border: true,
+          menuWidth: 120,
+          stripe: true,
+          menu: false,
+          columnBtn: false,
+          column: [{
+            prop: "mainBillNo",
+            label: "操作人",
+            overHidden: true,
+            showColumn: false,
+            width: 120,
+          }, {
+            prop: "statusName",
+            label: "状态",
+            overHidden: true,
+          }, {
+            prop: "containerNo",
+            label: "时间",
+            overHidden: true,
+            searchDefaultTime: ["00:00:00", "23:59:59"],
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd HH:mm:ss",
+          },]
+        },
+        option: {
+          disabled: false,
+          menuBtn: false,
+          labelWidth: 100,
+          columnBtn: false,
+          span: 6,
+          column: [
+            {
+              label: "入库单号",
+              prop: "ordNo",
+              rules: [
+                {
+                  required: true,
+                  message: "",
+                  trigger: "blur"
+                }
+              ],
+            },
+            {
+              label: "来源单号",
+              prop: "srcOrdNo",
+              blur: (data) => {
+                for (let item of this.itemsVOList) {
+                  item.containerNo = data.value
+                }
+              }
+            }, {
+              label: "业务对象",
+              prop: "customerName",
+              search: true,
+              overHidden: true,
+              // width: 120,
+              rules: [
+                {
+                  required: true,
+                  message: " ",
+                  trigger: "blur"
+                }
+              ]
+            }, {
+              label: "仓库",
+              prop: "storageName",
+              search: true,
+              overHidden: true,
+              // width: 120,
+              overHidden: true,
+              // width: 120,
+              type: 'select',
+              dicUrl: "/api/blade-sales-part/storageDesc/listAll",
+              props: {
+                label: 'cname',
+                value: 'id'
+              },
+              rules: [
+                {
+                  required: true,
+                  message: " ",
+                  trigger: "blur"
+                }
+              ]
+            }, {
+              label: "商品种类",
+              prop: "goodsTypeId",
+              dicData: [],
+              search: false,
+              type: 'select',
+              overHidden: true,
+              // width: 120,
+              rules: [
+                {
+                  required: true,
+                  message: " ",
+                  trigger: "blur"
+                }
+              ]
+            }, {
+              label: "商品数量",
+              prop: "goodsTotalNum",
+              search: false,
+              overHidden: true,
+              // width: 120,
+              rules: [
+                {
+                  required: true,
+                  message: " ",
+                  trigger: "blur"
+                }
+              ]
+            }, {
+              label: "状态",
+              prop: "statusName",
+              search: true,
+              overHidden: true,
+              // width: 120,
+            }, {
+              label: "业务日期",
+              prop: "createTime",
+              type: "datetime",
+              value: dateFormat(new Date(), 'yyyy-MM-dd hh:mm:ss'),
+              format: "yyyy-MM-dd HH:mm",
+              valueFormat: "yyyy-MM-dd HH:mm:ss",
+              rules: [
+                {
+                  required: true,
+                  message: "",
+                  trigger: "blur"
+                }
+              ],
+              span: 6
+            }, {
+              label: "库管",
+              prop: "remarks",
+              search: true,
+              overHidden: true,
+              // width: 200
+            }
+          ]
+        },
+        itemsVOList: [],
+        subLoading: false,
+        pageLoading: false,
+        storagetreeList: [],
+        tableList: [],
+        tableListTwo: [],
+        tableListThree: [],
+        goodsTypeList: [],
+      };
+    },
+    props: {
+      detailData: {
+        type: Object
+      }
+    },
+  
+    async created() {
+      if (this.detailData.status == 3) {
+        this.option.disabled = true;
+      }
+      if (this.detailData.status == 1) {
+        this.option.disabled = true;
+      }
+      console.log(this.detailData)
+      if (this.detailData.id) {
+        this.getDetail(this.detailData.id);
+      }
+      this.tableOption = await this.getColumnData(this.getColumnName(274.1), tableOption);
+      this.tableOptionTwo = await this.getColumnData(this.getColumnName(274.2), tableOptionTwo);
+      getStoragetree().then(res => {
+        this.storagetreeList = res.data.data;
+      })
+      this.getAllWorkDicts()
+    },
+    methods: {
+      getAllWorkDicts() {
+        customerList({ corpType: "SP" }).then(res => {
+          this.goodsTypeList = res.data.data.records;
+          console.log(111, this.goodsTypeList)
+        });
+  
+      },
+      cellStyle() {
+        return "padding:0;height:40px;";
+      },
+      getStorage() {
+        getStorage({ storageTypeId: this.form.storageId }).then(res => {
+          this.findObject(this.tableOption.column, "storageId").dicData = res.data;
+        })
+      },
+      storagetreeChange(row) {
+        for (let item of this.storagetreeList) {
+          if (item.id === row) {
+            this.form.isScanning = item.isScanningCode
+          }
+        }
+      },
+      getDetail(id) {
+        this.pageLoading = true;
+        detail(id)
+          .then(res => {
+            this.form = res.data.data;
+            this.oldform = this.deepClone(res.data.data);
+            this.getStorage()
+          })
+          .finally(() => {
+            this.pageLoading = false;
+          });
+      },
+      searchChange(params, type, done) {
+        done();
+        page = type == 1 ? this.page : type == 2 ? pageTwo : pageThree
+        this.onLoad(page, params, type)
+      },
+      onLoad(page, params = {}, type) {
+        params = {
+          ...params,
+          current: page.currentPage,
+          size: page.pageSize,
+          corpType: "GYS",
+          ...Object.assign(params, this.search)
+        }
+        this.loading = true
+        getList(params).then(res => {
+          if (type == 1) {
+            this.tableList = res.data.data.records
+            this.page.total = res.data.data.total
+          } else if (type == 2) {
+            this.tableListTwo = res.data.data.records
+            this.pageTwo.total = res.data.data.total
+          } else {
+            this.tableListThree = res.data.data.records
+            this.pageThree.total = res.data.data.total
+          }
+          this.loading = false
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+  
+      //修改提交触发
+      editCustomer(status) {
+        this.$refs["form"].validate((valid, done) => {
+          done();
+          if (valid) {
+            this.subLoading = true;
+            let data = {
+              ...this.form,
+  
+            };
+            typeSave(data).then(res => {
+              this.form = res.data.data;
+              this.$message({
+                type: "success",
+                message: "保存成功!"
+              });
+              if (status == "goBack") {
+                this.$emit("goBack");
+              }
+              if (!this.detailData.id) {
+                this.detailData.id = res.data.data.id
+              }
+              this.getDetail(res.data.data.id)
+            }).finally(() => {
+              this.subLoading = false;
+            });
+          } else {
+            return false;
+          }
+        });
+      },
+  
+      //返回列表
+      backToList() {
+        this.$emit("goBack");
+  
+      },
+    }
+  };
+  </script>
+  
+  <style lang="scss" scoped>
+  .trading-form ::v-deep .el-form-item {
+    margin-bottom: 8px !important;
+  }
+  
+  ::v-deep .el-form-item__error {
+    display: none !important;
+  }
+  
+  ::v-deep .select-component {
+    display: flex !important;
+  }
+  
+  ::v-deep .el-table .cell {
+    padding: 0 2px !important;
+  }
+  
+  ::v-deep .avue-crud .el-table .el-form-item__label {
+    left: -1px;
+  }
+  </style>
+  

+ 355 - 0
src/views/tirePartsMall/salesManagement/warehouseEntryOrder/index.vue

@@ -0,0 +1,355 @@
+<!-- 采购管理(L) - 入库工单 -->
+<template>
+    <div>
+        <basic-container class="page-crad" v-if="show">
+            <avue-crud :option="option" :data="dataList" ref="crud" v-model="form" :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"
+                @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 274)"
+                @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 274)"
+                @search-criteria-switch="searchCriteriaSwitch">
+
+                <template slot-scope="{ row, index }" slot="cname">
+                    <span style="color: #409EFF;cursor: pointer" @click.stop="editOpen(row, 2)">{{ row.cname }}
+                    </span>
+                </template>
+            </avue-crud>
+        </basic-container>
+        <details-page v-if="!show" @goBack="goBack()" :detailData="detailData" />
+    </div>
+</template>
+  
+<script>
+import detailsPage from "./detailsPage";
+
+import { getList, remove } from "@/api/tirePartsMall/basicData/brandPage";
+import { dateFormat, getCurrentDate } from "@/util/date";
+import {
+    entryOrderList,
+    typeSave,
+    detail,
+    deleteDetails
+} from "@/api/tirePartsMall/basicData/warehouseEntryOrder";
+
+export default {
+    name: "customerInformation",
+    data() {
+        return {
+            show: true,
+            detailData: {},
+            form: {},
+            option: { addBtn: false, },
+            optionBack: {
+                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,
+                viewBtn: false,
+                menuWidth: 140,
+                addBtn: false,
+                column: [{
+                    label: "入库单号",
+                    prop: "ordNo",
+                    // billno
+                    search: true,
+                    overHidden: true,
+                    // width: 120,
+                    rules: [
+                        {
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }
+                    ]
+                }, {
+                    label: "来源单号",
+                    prop: "srcOrdNo",
+                    search: true,
+                    overHidden: true,
+                    // width: 120,
+                    rules: [
+                        {
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }
+                    ]
+                }, {
+                    label: "业务对象",
+                    prop: "customerName",
+                    search: true,
+                    overHidden: true,
+                    // width: 120,
+                    rules: [
+                        {
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }
+                    ]
+                }, {
+                    label: "仓库",
+                    prop: "storageName",
+                    search: true,
+                    overHidden: true,
+                    // width: 120,
+                    type: 'select',
+                    dicUrl: "/api/blade-sales-part/storageDesc/listAll",
+                    props: {
+                        label: 'cname',
+                        value: 'id'
+                    },
+                    rules: [
+                        {
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }
+                    ]
+                }, {
+                    label: "商品种类",
+                    prop: "goodsTypeId",
+                    search: false,
+                    overHidden: true,
+                    // width: 120,
+                    rules: [
+                        {
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }
+                    ]
+                }, {
+                    label: "商品数量",
+                    prop: "goodsTotalNum",
+                    search: false,
+                    overHidden: true,
+                    // width: 120,
+                }, {
+                    label: "状态",
+                    prop: "statusName",
+                    search: true,
+                    overHidden: true,
+                    // width: 120,
+                }, {
+                    label: "业务日期",
+                    prop: "createTime",
+                    search: true,
+                    overHidden: true,
+                    prop: "createTime",
+                    type: "datetime",
+                    value: dateFormat(new Date(), 'yyyy-MM-dd hh:mm:ss'),
+                    format: "yyyy-MM-dd HH:mm",
+                    valueFormat: "yyyy-MM-dd HH:mm:ss",
+                    // width: 200
+                }, {
+                    label: "库管",
+                    prop: "remarks",
+                    search: true,
+                    overHidden: true,
+                    // width: 200
+                }]
+            },
+            parentId: 0,
+            dataList: [],
+            page: {
+                pageSize: 20,
+                currentPage: 1,
+                total: 0,
+                pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
+            },
+        };
+    },
+    components: {
+        detailsPage,
+    },
+    async created() {
+        this.option = await this.getColumnData(this.getColumnName(274), this.optionBack);
+        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";
+        }
+    },
+    methods: {
+        newAdd() {
+            this.show = false;
+        },
+        editOpen(row, status) {
+            this.detailData = {
+                id: row.id,
+                status: status
+            };
+            this.show = false;
+        },
+        //删除列表后面的删除按钮触发触发(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) {
+            typeSave(row).then(
+                () => {
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    // 数据回调进行刷新
+                    done(row);
+                },
+                error => {
+                    window.console.log(error);
+                    loading();
+                }
+            );
+        },
+        //新增修改时保存触发
+        rowSave(row, done, loading) {
+            console.log(row);
+            typeSave(row).then(
+                res => {
+                    console.log(res);
+                    this.page.currentPage = 1;
+                    this.onLoad(this.page, {});
+                    done();
+                },
+                error => {
+                    window.console.log(error);
+                    loading();
+                }
+            );
+        },
+        //新增子项触发
+        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.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 => {
+                    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.page.currentPage = 1;
+            this.onLoad(this.page, params);
+            done();
+        },
+        searchReset() {
+            this.query = {};
+            this.treeDeptId = "";
+            this.onLoad(this.page);
+        },
+        onLoad(page, params = {}) {
+            let queryParams = Object.assign({}, params, {
+                size: page.pageSize,
+                current: page.currentPage,
+                bizTypeName: 'SHGD'
+            });
+            // entryOrderList
+
+            // getList
+            entryOrderList(queryParams).then(res => {
+                this.dataList = res.data.data.records;
+                this.page.total = res.data.data.total;
+            });
+        },
+        searchCriteriaSwitch(type) {
+            this.$refs.crud.doLayout();
+            this.$refs.crud.getTableHeight();
+        },
+        //返回列表
+        goBack() {
+            this.detailData = this.$options.data().detailData;
+            this.show = true;
+            this.onLoad(this.page, this.search);
+        },
+        //自定义列保存
+        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;
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                });
+            }
+        }
+    }
+};
+</script>
+  
+<style scoped>
+.page-crad ::v-deep .basic-container__card {
+    height: 94.8vh;
+}
+</style>
+  

+ 1 - 1
vue.config.js

@@ -32,7 +32,7 @@ module.exports = {
       '/api': {
         //本地服务接口地址
         // target: 'http://192.168.3.64:1080',
-        target: 'http://192.168.8.105:1080',
+        target: 'http://192.168.0.106:1080',
         // 打包地址
         // target: 'http://121.37.83.47:10004',//服务器ip
         // target: 'http://trade.tubaosoft.com:10004',//服务器域名