Browse Source

修改基础资料已知问题

caojunjie 3 years ago
parent
commit
ef64356c6c

+ 2 - 1
.eslintrc.js

@@ -9,7 +9,8 @@ module.exports = {
   ],
   rules: {
     'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
-    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
+    'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
+    "no-unused-vars":"off" //关闭声明后未被使用的变量或参数
   },
   parserOptions: {
     parser: 'babel-eslint'

+ 1 - 1
src/api/basicData/basicStorageDesc.js

@@ -3,7 +3,7 @@ import request from '@/router/axios';
 //客户类别列表查询
 export function customerList(data) {
     return request({
-        url: '/api/blade-client/storagedesc/page',
+        url: '/api/blade-client/storagedesc/list',
         method: 'get',
         params: data
     })

+ 2 - 0
src/views/basicData/basicFeesDesc/index.vue

@@ -127,6 +127,8 @@ export default {
       console.log(row)
       row.feesTypeId = row.feesTypeId.join(',')
       typeSave(row).then(res => {
+        this.page.currentPage = 1;
+        this.onLoad(this.page, {parentId: 0});
         console.log(res)
         done()
       })

+ 2 - 2
src/views/basicData/basicFeesType/configuration/mainList.json

@@ -14,7 +14,7 @@
   "menuWidth": 300,
   "column": [
     {
-      "label": "商品名称",
+      "label": "费用名称",
       "prop": "cname",
       "search": true,
       "index": 1,
@@ -22,7 +22,7 @@
       "rules": [
         {
           "required": true,
-          "message": "请输入商品名称",
+          "message": "请输入费用名称",
           "trigger": "blur"
         }
       ]

+ 2 - 0
src/views/basicData/basicFeesType/index.vue

@@ -91,6 +91,8 @@ export default {
     //新增修改时保存触发
     rowSave(row, done, loading) {
       typeSave(row).then(res => {
+        this.page.currentPage = 1;
+        this.onLoad(this.page, {parentId: 0});
         done()
       }, error => {
         window.console.log(error);

+ 7 - 3
src/views/basicData/basicStorageDesc/configuration/mainList.json

@@ -108,9 +108,8 @@
       "prop": "storageTypeId",
       "dicData": [],
       "type": "tree",
-      "hide": true,
       "addDisabled": false,
-      "multiple": true,
+      "multiple": false,
       "props": {
         "label": "title"
       },
@@ -118,7 +117,12 @@
         "required": true,
         "message": " ",
         "trigger": "click"
-      }]
+      }],
+      "dicUrl": "/api/blade-system/tenant/select",
+      "hide": "!website.tenantMode",
+      "addDisplay": "website.tenantMode",
+      "editDisplay": "website.tenantMode",
+      "viewDisplay": "website.tenantMode"
     },{
       "label": "备注",
       "prop": "remarks",

+ 1 - 0
src/views/basicData/basicStorageDesc/index.vue

@@ -198,6 +198,7 @@ export default {
       customerList(queryParams).then(res => {
         this.dataList = res.data.data.records
         this.page.total = res.data.data.total
+        this.initData()
       })
     },
     //树桩列点击展开触发

+ 2 - 0
src/views/basicData/commodityCategory/index.vue

@@ -92,6 +92,8 @@ export default {
     rowSave(row, done, loading) {
       typeSave(row).then(res => {
         console.log(res)
+        this.page.currentPage = 1;
+        this.onLoad(this.page, {parentId: 0});
         done()
       })
     },

+ 11 - 2
src/views/basicData/commodityType/configuration/mainList.json

@@ -100,9 +100,18 @@
       "slot": true
     },
     {
-      "label": "图片",
+      "label": "系统背景",
       "prop": "url",
-      "slot": true
+      "type": "upload",
+      "listType": "picture-img",
+      "dataType": "string",
+      "action": "/api/blade-resource/oss/endpoint/put-file",
+      "propsHttp": {
+        "res": "data",
+        "url": "link"
+      },
+      "hide": true,
+      "span": 24
     },
     {
       "label": "备注",

+ 77 - 0
src/views/businessManagement/salesOrder/configuration/advantageProject.json

@@ -0,0 +1,77 @@
+{
+  "lazy": true,
+  "tip": false,
+  "simplePage": true,
+  "searchShow": true,
+  "searchMenuSpan": 6,
+  "dialogWidth": "60%",
+  "tree": true,
+  "border": true,
+  "index": true,
+  "selection": true,
+  "menuWidth": 300,
+  "dialogClickModal": false,
+  "column":[
+    {
+      "label": "编号",
+      "prop": "code",
+      "index": 1,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入编号",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "名称",
+      "prop": "cname",
+      "index": 2,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入名称",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "价格",
+      "prop": "price",
+      "index": 3,
+      "width":100,
+      "rules": [
+        {
+          "required": false,
+          "message": "请输入价格",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "单位",
+      "prop": "unit",
+      "index": 4,
+      "width":100,
+      "rules": [
+        {
+          "required": false,
+          "message": "请输入单位",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "备注",
+      "prop": "remarks",
+      "index": 5,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入备注",
+          "trigger": "blur"
+        }
+      ]
+    }
+  ]
+}

+ 77 - 0
src/views/businessManagement/salesOrder/configuration/bankOfDeposit.json

@@ -0,0 +1,77 @@
+{
+  "lazy": true,
+  "tip": false,
+  "simplePage": true,
+  "searchShow": true,
+  "searchMenuSpan": 6,
+  "dialogWidth": "60%",
+  "tree": true,
+  "border": true,
+  "index": true,
+  "selection": true,
+  "menuWidth": 300,
+  "dialogClickModal": false,
+  "column":[
+    {
+      "label": "账户名称",
+      "prop": "accountName",
+      "index": 1,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入账户名称",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "开户银行",
+      "prop": "accountBank",
+      "index": 2,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入开户银行",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "银行账号",
+      "prop": "accountNo",
+      "index": 3,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入银行账号",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "币别",
+      "prop": "fcyno",
+      "index": 4,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入币别",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "备注",
+      "prop": "remarks",
+      "index": 5,
+      "width":100,
+      "rules": [
+        {
+          "required": false,
+          "message": "请输入备注",
+          "trigger": "blur"
+        }
+      ]
+    }
+  ]
+}

+ 89 - 0
src/views/businessManagement/salesOrder/configuration/customerContact.json

@@ -0,0 +1,89 @@
+{
+  "lazy": true,
+  "tip": false,
+  "simplePage": true,
+  "searchShow": true,
+  "searchMenuSpan": 6,
+  "dialogWidth": "60%",
+  "tree": true,
+  "border": true,
+  "index": true,
+  "selection": true,
+  "menuWidth": 300,
+  "dialogClickModal": false,
+  "column":[
+    {
+      "label": "编号",
+      "prop": "code",
+      "index": 1,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入编号",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "名称",
+      "prop": "cname",
+      "index": 2,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入名称",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "联系方式",
+      "prop": "attn",
+      "index": 3,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入联系方式",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "电话",
+      "prop": "tel",
+      "index": 4,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入电话",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "岗位",
+      "prop": "positoin",
+      "index": 5,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入岗位",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "公司地址",
+      "prop": "addr",
+      "index": 6,
+      "width":100,
+      "rules": [
+        {
+          "required": true,
+          "message": "请输入公司地址",
+          "trigger": "blur"
+        }
+      ]
+    }
+  ]
+}

+ 125 - 0
src/views/businessManagement/salesOrder/configuration/mainList.json

@@ -0,0 +1,125 @@
+{
+    "lazy": true,
+    "tip": false,
+    "simplePage": true,
+    "searchShow": true,
+    "searchMenuSpan": 6,
+    "dialogWidth": "60%",
+    "tree": true,
+    "border": true,
+    "index": true,
+    "selection": true,
+    "viewBtn": false,
+    "editBtn": false,
+    "delBtn": false,
+    "menuWidth": 300,
+    "dialogClickModal": false,
+    "column":[
+        {
+            "label": "系统编号",
+            "prop": "sysNo",
+            "search": true,
+            "index": 1,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入系统编号",
+                    "trigger": "blur"
+                }
+            ]
+        },
+        {
+            "label": "销售订单号",
+            "prop": "orderNo",
+            "search": true,
+            "index": 1,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入销售订单号",
+                    "trigger": "blur"
+                }
+            ]
+        },{
+            "label": "主订单号",
+            "prop": "mOrderNo",
+            "search": true,
+            "index": 2,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入主订单号",
+                    "trigger": "blur"
+                }
+            ]
+        },{
+            "label": "发货地址",
+            "prop": "shippingAddress",
+            "search": true,
+            "index": 4,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入发货地址",
+                    "trigger": "blur"
+                }
+            ]
+        },{
+            "label": "到货地址",
+            "prop": "arrivalAddress",
+            "search": true,
+            "index": 5,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入到货地址",
+                    "trigger": "blur"
+                }
+            ]
+        },{
+            "label": "付款方式",
+            "prop": "attn",
+            "search": true,
+            "index": 6,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入付款方式",
+                    "trigger": "blur"
+                }
+            ]
+        },{
+            "label": "包装要求",
+            "prop": "packageRemarks",
+            "search": true,
+            "index": 7,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入包装要求",
+                    "trigger": "blur"
+                }
+            ]
+        },{
+            "label": "运费",
+            "prop": "creditLevel",
+            "search": true,
+            "index": 8,
+            "width":100,
+            "rules": [
+                {
+                    "required": true,
+                    "message": "请输入运费",
+                    "trigger": "blur"
+                }
+            ]
+        }
+    ]
+}

+ 573 - 0
src/views/businessManagement/salesOrder/detailsPage.vue

@@ -0,0 +1,573 @@
+<template>
+  <div class="borderless">
+    <div class="customer-head">
+      <div class="customer-back">
+        <!--        <i class="back-icon el-icon-arrow-left"></i><i style="font-style:normal">返回管理列表</i>-->
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                   @click="backToList">返回列表
+        </el-button>
+      </div>
+      <el-button
+          class="el-button--small-yh add-customer-btn"
+          type="primary"
+          @click="editCustomer"
+      >{{form.id?'确认修改':'确认新增'}}
+      </el-button>
+    </div>
+    <div style="margin-top: 60px">
+      <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
+        <containerTitle title="基础资料"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="item in basicData.column" :span="item.span?item.span:8">
+              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                <avue-input-tree disabled v-if="item.prop === 'companytype'" leaf-only multiple :props="{label:'title'}" v-model="form[item.prop]" placeholder="请选择内容" type="tree" :dic="dic"></avue-input-tree>
+                <el-input type="age" disabled v-else v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </basic-container>
+        <containerTitle title="联系方式"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="item in contactInformation.column" :span="item.span?item.span:8">
+              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                <el-input type="age" disabled v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </basic-container>
+        <containerTitle title="财务资料"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="item in financialInformation.column" :span="item.span?item.span:8">
+              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                <el-switch
+                    disabled
+                    v-if="item.prop === 'creditstatus'"
+                    v-model="form[item.prop]"
+                    active-text="开启"
+                    inactive-text="关闭">
+                </el-switch>
+                <el-input v-else type="age" disabled v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </basic-container>
+        <containerTitle title="客户联系人"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <avue-crud
+              :option="customerContact"
+              v-model="contactsForm"
+              :data="contactsData"
+              @row-save="rowSave"
+              @row-update="rowUpdate"
+              @row-del="rowDel"
+          ></avue-crud>
+        </basic-container>
+        <containerTitle title="客户优势项目"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <avue-crud
+              :option="advantageProject"
+              v-model="advantageProjectForm"
+              :data="advantageProjectData"
+              @row-save="rowSaveProject"
+              @row-update="rowUpdateProject"
+              @row-del="rowDelProject"
+          ></avue-crud>
+        </basic-container>
+        <containerTitle title="客户开户行"></containerTitle>
+        <basic-container style="margin-bottom: 40px">
+          <avue-crud
+              :option="bankOfDeposit"
+              v-model="bankOfDepositForm"
+              :data="bankOfDepositData"
+              @row-save="rowSaveBankOfDeposit"
+              @row-update="rowUpdateBankOfDeposit"
+              @row-del="rowDelBankOfDeposit"
+          ></avue-crud>
+        </basic-container>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import {customerList, typeSave, detail, deleteDetails,
+  corpstypeTree,
+  corpsattn,
+  corpsbank,
+  corpsfiles,
+  corpsitem} from "@/api/basicData/customerInformation"
+import customerContact from "./configuration/customerContact.json"
+import advantageProject from "./configuration/advantageProject.json"
+import bankOfDeposit from "./configuration/bankOfDeposit.json"
+export default {
+  name: "detailsPage",
+  data() {
+    return {
+      form: {},
+      contactsForm: {},
+      advantageProjectForm: {},
+      bankOfDepositForm: {},
+      contactsData: [],
+      advantageProjectData: [],
+      bankOfDepositData: [],
+      dic:[],
+      customerContact:customerContact,
+      advantageProject:advantageProject,
+      bankOfDeposit:bankOfDeposit,
+      contactInformation: {
+        column: [
+          {
+            label: '联系人',
+            prop: 'attn',
+            rules: [
+              {
+                required: false,
+                message: '请输入联系人',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '联系电话',
+            prop: 'tel',
+            rules: [
+              {
+                required: false,
+                message: '请输入联系电话',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '职位',
+            prop: 'positoin',
+            rules: [
+              {
+                required: false,
+                message: '请输入联系电话',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '单位地址',
+            prop: 'addr',
+            rules: [
+              {
+                required: false,
+                message: '请输入单位地址',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '仓库地址',
+            prop: 'storageAddr',
+            rules: [
+              {
+                required: false,
+                message: '请输入仓库地址',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '分仓地址',
+            prop: 'subStorageAddr',
+            rules: [
+              {
+                required: false,
+                message: '请输入分仓地址',
+                trigger: 'blur'
+              }
+            ]
+          }
+        ]
+      },
+      financialInformation: {
+        column: [
+          {
+            label: '账户名称',
+            prop: 'accountName',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '开户银行',
+            prop: 'accountBank',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '银行帐号',
+            prop: 'accountNo',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '外币账户名称',
+            prop: 'accountNameFcy',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '外币开户银行',
+            prop: 'accountBankFcy',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '外币银行账号',
+            prop: 'accountNoFcy',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信状态',
+            prop: 'creditstatus',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信等级',
+            prop: 'creditLevel',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信额度',
+            prop: 'creditGrant',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信天数',
+            prop: 'creditDay',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信利率',
+            prop: 'creditRate',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }
+        ]
+      },
+      basicData: {
+        column: [
+          {
+            label: '客户编码',
+            prop: 'code',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '代理品牌',
+            prop: 'goodtypes',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '所属公司',
+            prop: 'belongtocompany',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '客户名称',
+            prop: 'cname',
+          }, {
+            label: '企业类型',
+            prop: 'companytype',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: "代理区域",
+            span: 24,
+            prop: "belongtoarea",
+            mock: {
+              type: 'county'
+            }
+          }
+        ]
+      }
+    }
+  },
+  created() {
+    this.customerContact.menu = false
+    this.customerContact.addBtn = false
+    this.advantageProject.menu = false
+    this.advantageProject.addBtn = false
+    this.bankOfDeposit.menu = false
+    this.bankOfDeposit.addBtn = false
+    this.bankOfDeposit.viewBtn = false
+    this.bankOfDeposit.editBtn = false
+    this.bankOfDeposit.delBtn = false
+    corpstypeTree().then(res=>{
+      console.log(res)
+      this.dic = res.data.data
+    })
+    if (this.$route.query.id){
+      detail(this.$route.query.id).then(res => {
+        console.log(res.data.data)
+        this.form = res.data.data;
+        this.contactsData = this.form.corpsAttnList
+        this.bankOfDepositData = this.form.corpsBankList
+        this.advantageProjectData = this.form.corpsItems
+        delete this.form.corpsAttnList
+        delete this.form.corpsBankList
+        delete this.form.corpsItems
+      });
+    }
+  },
+  watch:{
+    '$route'(to,from) {
+      console.log(to,from);
+      if (this.$route.query.id){
+        detail(this.$route.query.id).then(res => {
+          console.log(res.data.data)
+          this.form = res.data.data;
+        });
+      }else {
+        this.form = {}
+      }
+    }
+  },
+  methods: {
+    //新增客户联系人保存触发
+    rowSave(row, done, loading){
+      console.log(row,done,loading)
+      this.contactsData.push(row)
+      done()
+    },
+    //修改客户联系人触发
+    rowUpdate(row, index, done, loading) {
+      done(row);
+    },
+    //删除客户联系人触发
+    rowDel(row, index, donerowDel) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        // 数据回调进行刷新
+        if (row.id){
+          corpsattn(row.id).then(res=>{
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.contactsData.splice(index, 1);
+          })
+        }else {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.contactsData.splice(index, 1);
+        }
+      })
+    },
+    //新增客户优势项目保存触发
+    rowSaveProject(row, done, loading){
+      console.log(row,done,loading)
+      this.advantageProjectData.push(row)
+      done()
+    },
+    //修改客户优势项目触发
+    rowUpdateProject(row, index, done, loading) {
+      done(row);
+    },
+    //删除客户优势项目触发
+    rowDelProject(row, index, donerowDel) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        if (row.id){
+          corpsitem(row.id).then(res=>{
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.advantageProjectData.splice(index, 1);
+          })
+        }else {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.advantageProjectData.splice(index, 1);
+        }
+      })
+    },
+    //新增客户优势项目保存触发
+    rowSaveBankOfDeposit(row, done, loading){
+      console.log(row,done,loading)
+      this.bankOfDepositData.push(row)
+      done()
+    },
+    //修改客户优势项目触发
+    rowUpdateBankOfDeposit(row, index, done, loading) {
+      done(row);
+    },
+    //删除客户优势项目触发
+    rowDelBankOfDeposit(row, index, donerowDel) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        if (row.id){
+          corpsbank(row.id).then(res=>{
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.bankOfDepositData.splice(index, 1);
+          })
+        }else {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.bankOfDepositData.splice(index, 1);
+        }
+      })
+    },
+    //修改提交触发
+    editCustomer() {
+      console.log(this.form)
+      this.$refs["form"].validate((valid) => {
+        console.log(valid)
+        if (valid) {
+          this.form.corpsAttnList = this.contactsData
+          this.form.corpsBankList = this.bankOfDepositData
+          this.form.corpsItems = this.advantageProjectData
+          this.form.corpsTypeId = this.form.companytype.replace(/[\[\]]/g,"")
+          typeSave(this.form).then(res => {
+            console.log(res.data)
+            this.$message({
+              type: "success",
+              message: this.form.id ? "修改成功!" : "新增成功!"
+            });
+          })
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    backToList() {
+      // this.$router.$avueRouter.closeTag();
+      console.log(this.$router.$avueRouter)
+      this.$router.push({
+        path: '/basicData/customerInformation/index',
+        query: {}
+      });
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.customer-head {
+  position: fixed;
+  top: 105px;
+  width: 100%;
+  margin-left: -10px;
+  height: 62px;
+  background: #ffffff;
+  box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);
+  z-index: 999;
+  /* display: flex;
+  justify-content: left; */
+}
+
+.customer-back {
+  cursor: pointer;
+  line-height: 62px;
+  font-size: 16px;
+  color: #323233;
+  font-weight: 400;
+}
+
+.back-icon {
+  line-height: 64px;
+  font-size: 20px;
+  margin-right: 8px;
+}
+
+.add-customer-btn {
+  position: fixed;
+  right: 36px;
+  top: 115px;
+}
+
+::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+</style>

+ 592 - 0
src/views/businessManagement/salesOrder/detailsPageEdit.vue

@@ -0,0 +1,592 @@
+<template>
+  <div class="borderless">
+    <div class="customer-head">
+      <div class="customer-back">
+        <!--        <i class="back-icon el-icon-arrow-left"></i><i style="font-style:normal">返回管理列表</i>-->
+        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                   @click="backToList">返回列表
+        </el-button>
+      </div>
+      <el-button
+          class="el-button--small-yh add-customer-btn"
+          type="primary"
+          @click="editCustomer"
+      >{{form.id?'确认修改':'确认新增'}}
+      </el-button>
+    </div>
+    <div style="margin-top: 60px">
+      <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
+        <containerTitle title="基础资料"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="item in basicData.column" :span="item.span?item.span:8">
+              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                <avue-input-tree v-if="item.prop === 'corpsTypeId'"  leaf-only multiple :props="{label:'title'}" v-model="form[item.prop]" placeholder="请选择内容" type="tree" :dic="dic"
+                ></avue-input-tree>
+                <el-input type="age" v-else v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </basic-container>
+        <containerTitle title="联系方式"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="item in contactInformation.column" :span="item.span?item.span:8">
+              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                <el-input type="age" v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </basic-container>
+        <containerTitle title="财务资料"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="item in financialInformation.column" :span="item.span?item.span:8">
+              <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                <el-switch
+                    v-if="item.prop === 'creditstatus'"
+                    v-model="form[item.prop]"
+                    active-value="0"
+                    inactive-value="1"
+                    active-text="开启"
+                    inactive-text="关闭">
+                </el-switch>
+                <el-input v-else type="age" v-model="form[item.prop]" size="small" autocomplete="off"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </basic-container>
+        <containerTitle title="客户联系人"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <avue-crud
+              :option="customerContact"
+              v-model="contactsForm"
+              :data="contactsData"
+              @row-save="rowSave"
+              @row-update="rowUpdate"
+              @row-del="rowDel"
+          ></avue-crud>
+        </basic-container>
+        <containerTitle title="客户优势项目"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <avue-crud
+              :option="advantageProject"
+              v-model="advantageProjectForm"
+              :data="advantageProjectData"
+              @row-save="rowSaveProject"
+              @row-update="rowUpdateProject"
+              @row-del="rowDelProject"
+          ></avue-crud>
+        </basic-container>
+        <containerTitle title="客户开户行"></containerTitle>
+        <basic-container style="margin-bottom: 40px">
+          <avue-crud
+              :option="bankOfDeposit"
+              v-model="bankOfDepositForm"
+              :data="bankOfDepositData"
+              @row-save="rowSaveBankOfDeposit"
+              @row-update="rowUpdateBankOfDeposit"
+              @row-del="rowDelBankOfDeposit"
+          ></avue-crud>
+        </basic-container>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import {customerList, typeSave, detail, deleteDetails,
+  corpstypeTree,
+  corpsattn,
+  corpsbank,
+  corpsfiles,
+  corpsitem} from "@/api/basicData/customerInformation"
+import customerContact from "./configuration/customerContact.json"
+import advantageProject from "./configuration/advantageProject.json"
+import bankOfDeposit from "./configuration/bankOfDeposit.json"
+export default {
+  name: "detailsPage",
+  data() {
+    return {
+      form: {},
+      contactsForm: {},
+      advantageProjectForm: {},
+      bankOfDepositForm: {},
+      contactsData: [],
+      advantageProjectData: [],
+      bankOfDepositData: [],
+      dic:[],
+      customerContact:customerContact,
+      advantageProject:advantageProject,
+      bankOfDeposit:bankOfDeposit,
+      contactInformation: {
+        column: [
+          {
+            label: '联系人',
+            prop: 'attn',
+            rules: [
+              {
+                required: false,
+                message: '请输入联系人',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '联系电话',
+            prop: 'tel',
+            rules: [
+              {
+                required: false,
+                message: '请输入联系电话',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '职位',
+            prop: 'positoin',
+            rules: [
+              {
+                required: false,
+                message: '请输入联系电话',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '单位地址',
+            prop: 'addr',
+            rules: [
+              {
+                required: false,
+                message: '请输入单位地址',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '仓库地址',
+            prop: 'storageAddr',
+            rules: [
+              {
+                required: false,
+                message: '请输入仓库地址',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '分仓地址',
+            prop: 'subStorageAddr',
+            rules: [
+              {
+                required: false,
+                message: '请输入分仓地址',
+                trigger: 'blur'
+              }
+            ]
+          }
+        ]
+      },
+      financialInformation: {
+        column: [
+          {
+            label: '账户名称',
+            prop: 'accountName',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '开户银行',
+            prop: 'accountBank',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '银行帐号',
+            prop: 'accountNo',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '外币账户名称',
+            prop: 'accountNameFcy',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '外币开户银行',
+            prop: 'accountBankFcy',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '外币银行账号',
+            prop: 'accountNoFcy',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信状态',
+            prop: 'creditstatus',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信等级',
+            prop: 'creditLevel',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信额度',
+            prop: 'creditGrant',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信天数',
+            prop: 'creditDay',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '授信利率',
+            prop: 'creditRate',
+            rules: [
+              {
+                required: false,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }
+        ]
+      },
+      basicData: {
+        column: [
+          {
+            label: '客户编码',
+            prop: 'code',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '代理品牌',
+            prop: 'goodtypes',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '所属公司',
+            prop: 'belongtocompany',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '客户名称',
+            prop: 'cname',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '客户类别',
+            prop: 'corpsTypeId',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '企业类型',
+            prop: 'companytype',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: "代理区域",
+            span: 24,
+            prop: "belongtoarea",
+            mock: {
+              type: 'county'
+            }
+          }
+        ]
+      }
+    }
+  },
+  created() {
+    corpstypeTree().then(res=>{
+      this.dic = res.data.data
+    })
+    if (this.$route.query.id){
+      let id = this.$route.query.id.replace(/\"/g, "")
+      // let id = parseInt(this.$route.query.id)
+      detail(id).then(res => {
+        console.log(res.data.data)
+        this.form = res.data.data;
+        this.contactsData = this.form.corpsAttnList
+        this.bankOfDepositData = this.form.corpsBankList
+        this.advantageProjectData = this.form.corpsItems
+        delete this.form.corpsAttnList
+        delete this.form.corpsBankList
+        delete this.form.corpsItems
+      });
+    }
+  },
+  watch:{
+    '$route'(to,from) {
+      console.log(to,from);
+      if (this.$route.query.id){
+        let id = JSON.parse(this.$route.query.id).replace(/\"/g, "")
+        detail(id).then(res => {
+          console.log(res.data.data)
+          this.form = res.data.data;
+        });
+      }else {
+        this.form = {}
+      }
+    }
+  },
+  methods: {
+    //新增客户联系人保存触发
+    rowSave(row, done, loading){
+      console.log(row,done,loading)
+      this.contactsData.push(row)
+      done()
+    },
+    //修改客户联系人触发
+    rowUpdate(row, index, done, loading) {
+      done(row);
+    },
+    //删除客户联系人触发
+    rowDel(row, index, donerowDel) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        // 数据回调进行刷新
+        if (row.id){
+          corpsattn(row.id).then(res=>{
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.contactsData.splice(index, 1);
+          })
+        }else {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.contactsData.splice(index, 1);
+        }
+      })
+    },
+    //新增客户优势项目保存触发
+    rowSaveProject(row, done, loading){
+      console.log(row,done,loading)
+      this.advantageProjectData.push(row)
+      done()
+    },
+    //修改客户优势项目触发
+    rowUpdateProject(row, index, done, loading) {
+      done(row);
+    },
+    //删除客户优势项目触发
+    rowDelProject(row, index, donerowDel) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        if (row.id){
+          corpsitem(row.id).then(res=>{
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.advantageProjectData.splice(index, 1);
+          })
+        }else {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.advantageProjectData.splice(index, 1);
+        }
+      })
+    },
+    //新增客户优势项目保存触发
+    rowSaveBankOfDeposit(row, done, loading){
+      console.log(row,done,loading)
+      this.bankOfDepositData.push(row)
+      done()
+    },
+    //修改客户优势项目触发
+    rowUpdateBankOfDeposit(row, index, done, loading) {
+      done(row);
+    },
+    //删除客户优势项目触发
+    rowDelBankOfDeposit(row, index, donerowDel) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        if (row.id){
+          corpsbank(row.id).then(res=>{
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.bankOfDepositData.splice(index, 1);
+          })
+        }else {
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          this.bankOfDepositData.splice(index, 1);
+        }
+      })
+    },
+    //修改提交触发
+    editCustomer() {
+      console.log(this.form)
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          this.form.corpsAttnList = this.contactsData
+          this.form.corpsBankList = this.bankOfDepositData
+          this.form.corpsItems = this.advantageProjectData
+          // console.log(typeof(this.form.companytype))
+          // this.form.corpsTypeId = JSON.stringify(this.form.corpsTypeId).replace(/[\[\]]/g,"")
+          // console.log(typeof this.form.corpsTypeId)
+          if (typeof this.form.corpsTypeId == 'object'){
+            this.form.corpsTypeId = this.form.corpsTypeId.join(",")
+          }
+          typeSave(this.form).then(res => {
+            console.log(res.data)
+            this.$message({
+              type: "success",
+              message: this.form.id ? "修改成功!" : "新增成功!"
+            });
+            this.$router.$avueRouter.closeTag();
+            this.$router.push({
+              path: '/basicData/customerInformation/index',
+              query: {}
+            });
+          })
+        } else {
+          return false;
+        }
+      });
+    },
+    backToList() {
+      this.$router.$avueRouter.closeTag();
+      this.$router.push({
+        path: '/basicData/customerInformation/index',
+        query: {}
+      });
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.customer-head {
+  position: fixed;
+  top: 105px;
+  width: 100%;
+  margin-left: -10px;
+  height: 62px;
+  background: #ffffff;
+  box-shadow: 0 4px 12px 0px rgba(232, 232, 235, 1);
+  z-index: 999;
+  /* display: flex;
+  justify-content: left; */
+}
+
+.customer-back {
+  cursor: pointer;
+  line-height: 62px;
+  font-size: 16px;
+  color: #323233;
+  font-weight: 400;
+}
+
+.back-icon {
+  line-height: 64px;
+  font-size: 20px;
+  margin-right: 8px;
+}
+
+.add-customer-btn {
+  position: fixed;
+  right: 36px;
+  top: 115px;
+}
+
+::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+</style>

+ 238 - 0
src/views/businessManagement/salesOrder/index.vue

@@ -0,0 +1,238 @@
+<template>
+  <el-row>
+    <el-col :span="5">
+      <div class="box">
+        <el-scrollbar>
+          <basic-container>
+            <avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick"/>
+          </basic-container>
+        </el-scrollbar>
+      </div>
+    </el-col>
+    <el-col :span="19">
+      <basic-container>
+        <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"
+                   @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-view"
+                size="small"
+                @click.stop="beforeOpenPage(scope.row,scope.index)"
+            >查看
+            </el-button>
+            <el-button
+                type="text"
+                icon="el-icon-edit"
+                size="small"
+                @click.stop="editOpen(scope.row,scope.index)"
+            >编辑
+            </el-button>
+            <el-button
+                type="text"
+                icon="el-icon-delete"
+                size="small"
+                @click.stop="rowDel(scope.row,scope.index)"
+            >删除
+            </el-button>
+          </template>
+        </avue-crud>
+      </basic-container>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import option from "./configuration/mainList.json";
+import {customerList, typeSave,detail,deleteDetails,getDeptLazyTree} from "@/api/basicData/customerInformation"
+
+export default {
+  name: "customerInformation",
+  data() {
+    return {
+      form: {},
+      option: option,
+      parentId:0,
+      dataList: [],
+      treeOption: {
+        nodeKey: 'id',
+        lazy: true,
+        treeLoad: function (node, resolve) {
+          const parentId = (node.level === 0) ? 0 : node.data.id;
+          getDeptLazyTree(parentId).then(res => {
+            resolve(res.data.data.map(item => {
+              return {
+                ...item,
+                leaf: !item.hasChildren
+              }
+            }))
+          });
+        },
+        addBtn: false,
+        menu: false,
+        size: 'small',
+        props: {
+          labelText: '标题',
+          label: 'title',
+          value: 'value',
+          children: 'children'
+        }
+      },
+      page: {
+        pageSize: 10,
+        pagerCount: 5,
+        total: 0,
+      }
+    }
+  },
+  created() {
+    console.log('wangbadan')
+    // this.onLoad()
+  },
+  methods: {
+    nodeClick(data) {
+      this.treeDeptId = data.id;
+      this.page.currentPage = 1;
+      this.onLoad(this.page);
+    },
+    //删除列表后面的删除按钮触发触发(row, index, done)
+    rowDel(row, index, done) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return deleteDetails(row.id);
+      }).then(() => {
+        this.$message({
+          type: "success",
+          message: "操作成功!"
+        });
+        this.page.currentPage = 1;
+        this.onLoad(this.page, {parentId:0});
+      });
+    },
+    //修改时的修改按钮点击触发
+    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) {
+      typeSave(row).then(res => {
+        console.log(res)
+        done()
+      })
+    },
+    //查询全部
+    initData(){
+      customerList().then(res => {
+        console.log(this.form);
+        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();
+    },
+    //查看跳转页面
+    beforeOpenPage(row,index) {
+      this.$router.push({
+        path: "/detailsPageEdit",
+        query: { id: JSON.stringify(row.id) },
+      });
+    },
+    //新增跳转页面
+    beforeOpen(row,index) {
+      this.$router.push({
+        path: "/detailsPageEdit",
+        query: { id: JSON.stringify(row.id) },
+      });
+    },
+    editOpen(row,index){
+      this.$router.push({
+        path: "/detailsPageEdit",
+        query: { id: JSON.stringify(row.id) },
+      });
+    },
+    //点击新增时触发
+    beforeClose(done) {
+      this.parentId = "";
+      const column = this.findObject(this.option.column, "parentId");
+      column.value = "";
+      column.addDisabled = false;
+      done();
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      console.log(params)
+      this.page.currentPage = 1;
+      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 = {parentId:0}) {
+      let queryParams = Object.assign({}, params, {pageSize: page.pageSize, pageNum: page.currentPage,corpsTypeId:this.treeDeptId})
+      customerList(queryParams).then(res => {
+        this.dataList = res.data.data.records
+        this.page.total = res.data.data.total
+      })
+    },
+    //树桩列点击展开触发
+    treeLoad(tree, treeNode, resolve) {
+      const parentId = tree.id;
+      customerList({parentId:parentId}).then(res => {
+        resolve(res.data.data.records);
+      });
+    },
+  }
+}
+</script>
+
+<style scoped>
+
+</style>