Ver Fonte

新增发货单页面

lichao há 3 anos atrás
pai
commit
2161a7db0c

+ 167 - 0
src/views/importTrade/invoice/config/customerContact.json

@@ -0,0 +1,167 @@
+{
+  "lazy": true,
+  "tip": false,
+  "simplePage": true,
+  "searchShow": true,
+  "addBtn":false,
+  "editBtn":false,
+  "addRowBtn":true,
+  "cellBtn":false,
+  "cancelBtn":false,
+  "refreshBtn": false,
+  "searchMenuSpan": 6,
+  "dialogWidth": "60%",
+  "tree": true,
+  "border": true,
+  "index": true,
+  "selection": true,
+  "menuWidth": 300,
+  "dialogClickModal": false,
+  "addBtnText": "新增明细",
+  "column":[
+    {
+      "label": "提单号",
+      "prop": "sort",
+      "index": 1,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "合同号",
+      "prop": "cname",
+      "index": 1,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": true,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "货物品种",
+      "prop": "code",
+      "index": 2,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "货物详情",
+      "prop": "typeno",
+      "index": 3,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "件数",
+      "prop": "specificationAndModel",
+      "index": 4,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "发票净重(吨)",
+      "prop": "orderQuantity",
+      "index": 5,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "码单重量(吨)",
+      "prop": "actualQuantity",
+      "index": 6,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "单价",
+      "prop": "storageQuantity",
+      "index": 6,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "合同金额",
+      "prop": "price",
+      "index": 6,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "税率",
+      "prop": "amounts",
+      "index": 6,
+      "width":110,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    },{
+      "label": "备注",
+      "prop": "amount",
+      "index": 7,
+      "width":100,
+      "cell": true,
+      "rules": [
+        {
+          "required": false,
+          "message": " ",
+          "trigger": "blur"
+        }
+      ]
+    }
+  ]
+}

+ 40 - 0
src/views/importTrade/invoice/config/mainList.json

@@ -0,0 +1,40 @@
+{
+    "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,
+    "searchLabelWidth": 100,
+    "column":[
+        {
+            "label": "采购单号",
+            "prop": "sysNo",
+            "search": true,
+            "index": 1,
+            "width":100
+        },
+        {
+            "label": "订单号",
+            "prop": "orderNo",
+            "search": true,
+            "index": 2,
+            "width":100
+        },{
+            "label": "客户简称",
+            "prop": "corpId",
+            "search": true,
+            "index": 3,
+            "width":100
+        }
+    ]
+}

+ 299 - 0
src/views/importTrade/invoice/detailsPageEdit.vue

@@ -0,0 +1,299 @@
+<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"
+        :disabled="disabled"
+        @click="editCustomer"
+      >{{ form.id ? '确认修改' : '确认新增' }}
+      </el-button>
+    </div>
+    <div style="margin-top: 60px">
+      <el-form :model="form" ref="form" label-width="130px" class="demo-ruleForm">
+        <containerTitle title="基础信息"></containerTitle>
+        <basic-container style="margin-bottom: 10px">
+          <el-row>
+            <el-col v-for="(item,index) in basicData.column" :key="index" :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"/>-->
+                <el-date-picker v-if="item.type === 'datetime'" style="width: 100%;" v-model="form[item.prop]" size="small" type="datetime" placeholder="选择日期" value-format="yyyy-MM-dd HH:mm:ss"/>
+                <el-select v-else-if="item.type === 'select'" style="width: 100%" size="small" placeholder="请选择" clearable filterable></el-select>
+                <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">
+          <avue-crud
+            :option="customerContact"
+            v-model="contactsForm"
+            :data="contactsData"
+            ref="crudContact"
+            @row-save="rowSave"
+            @row-click="handleRowClick"
+            @row-update="rowUpdate"
+            @row-del="rowDel">
+            <template slot="code" slot-scope="{row,index}">
+            </template>
+            <template slot-scope="{row,index}" slot="menu">
+              <el-button
+                type="text"
+                size="small"
+                @click="rowCell(row,index)"
+              >{{ row.$cellEdit ? '保存' : '修改' }}
+              </el-button>
+            </template>
+          </avue-crud>
+        </basic-container>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import customerContact from "./config/customerContact.json"
+
+export default {
+  name: "detailsPageEdit",
+  data() {
+    return {
+      form: {},
+      disabled: false,
+      customerContact: customerContact,
+      contactsForm: {},
+      contactsData: [],
+      basicData: {
+        column: [
+          {
+            label: '系统号',
+            prop: 'sysNo',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '合同号',
+            prop: 'orderNo',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '发货日期',
+            prop: 'corpId',
+            type:'datetime',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '业务员',
+            prop: 'corpId',
+            type:'select',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '销售公司',
+            prop: 'corpId',
+            type:'select',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '工厂/贸易商名称',
+            prop: 'corpId',
+            type:'select',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '仓库名称',
+            prop: 'corpId',
+            type:'select',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '销售单价',
+            prop: 'corpId',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '发票重量',
+            prop: 'corpId',
+            rules: [
+              {
+                required: true,
+                message: ' ',
+                trigger: 'blur'
+              }
+            ]
+          }, {
+            label: '备注',
+            prop: 'remark',
+            span: 24,
+            mock: {
+              type: 'county'
+            }
+          }
+        ]
+      },
+    }
+  },
+  methods: {
+    //新增商品信息保存触发
+    rowSave(row, done, loading) {
+      console.log(row)
+      console.log(this.contactsData)
+      // this.contactsData.push(row)
+      done()
+    },
+    //点击行可编辑
+    handleRowClick(row, event, column) {
+      console.log(row.$index)
+    },
+    //商品编辑
+    rowCell(row, index) {
+      console.log(row)
+      this.$refs.crudContact.rowCell(row, index)
+    },
+    //修改商品信息触发
+    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);
+        }
+      })
+    },
+    //修改提交触发
+    editCustomer() {
+      console.log(this.form)
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+        } else {
+          return false;
+        }
+      });
+    },
+    //返回列表
+    backToList() {
+      this.$router.$avueRouter.closeTag();
+      this.$router.push({
+        path: '/importTrade/invoice/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;
+}
+
+.el-dialogDeep {
+  ::v-deep .el-dialog {
+    margin: 1vh auto 0 !important;
+    padding-bottom: 10px !important;
+
+    .el-dialog__body, .el-dialog__footer {
+      padding-bottom: 0 !important;
+      padding-top: 0 !important;
+    }
+  }
+}
+</style>

+ 202 - 0
src/views/importTrade/invoice/index.vue

@@ -0,0 +1,202 @@
+<template>
+  <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>
+</template>
+
+<script>
+import option from "./config/mainList.json";
+import {customerList, typeSave, deleteDetails} from "@/api/basicData/configuration"
+
+export default {
+  name: "customerInformation",
+  data() {
+    return {
+      form: {},
+      option: option,
+      parentId: 0,
+      dataList: [],
+      page: {
+        pageSize: 10,
+        pagerCount: 5,
+        total: 0,
+      }
+    }
+  },
+  created() {
+    console.log('wangbadan')
+    // this.onLoad()
+  },
+  methods: {
+    //删除列表后面的删除按钮触发触发(row, index, done)
+    rowDel(row, index, done) {
+      this.$confirm("确定将选择数据删除?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return deleteDetails(row.id);
+      }).then(() => {
+        this.$message({
+          type: "success",
+          message: "操作成功!"
+        });
+        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: "/importInvoice_detailsPage",
+        query: {id: JSON.stringify(row.id)},
+      });
+    },
+    //新增跳转页面
+    beforeOpen(row, index) {
+      console.log(row)
+      this.$router.push({
+        path: "/importInvoice_detailsPage",
+        query: {id: JSON.stringify(row.id)},
+      });
+    },
+    editOpen(row, index) {
+      this.$router.push({
+        path: "/importInvoice_detailsPage",
+        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, {
+        size: page.pageSize,
+        current: page.currentPage,
+        billType:'CG',
+        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>