Procházet zdrojové kódy

Merge branch 'dev' of http://git.echepei.com/tire-platform/Smart_platform_ui into dev

Qukatie před 1 měsícem
rodič
revize
5fb5e05a49

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 405 - 564
package-lock.json


+ 6 - 0
src/api/approveDataH/main.js

@@ -1,6 +1,12 @@
 import request from '@/router/axios';
 
 export function getList(current, size, params) {
+  if(params && Array.isArray(params.checkType)){
+    params.checkType = params.checkType.join(',');
+  }
+  if(params && Array.isArray(params.profitStatus)){
+    params.profitStatus = params.profitStatus.join(',');
+  }
   return request({
     url: '/api/blade-los/auditproecess/list',
     method: 'get',

+ 24 - 8
src/views/approveDataH/check.vue

@@ -1,12 +1,25 @@
 <template>
   <div>
-    <avue-form class="trading-form" :option="option" ref="form" v-model="form"> </avue-form>
-    <div class="dialogButton">
-      <el-button size="small" :loading="buttonLoading" @click="$emit('choceCheckFun')">关闭</el-button>
-      <el-button type="warning" :loading="buttonLoading" size="small" @click="submit(2)">审批驳回</el-button>
+<!--    <avue-form class="trading-form" :option="option" ref="form" v-model="form"> </avue-form>-->
+    <div class="dialogButton" style="padding: 4px;">
+      <el-button size="small" :loading="buttonLoading" @click="$emit('gotoRecord', false)">上一笔</el-button>
+      <el-button size="small" :loading="buttonLoading" @click="$emit('gotoRecord', true)">下一笔</el-button>
+
+      <el-button size="small" :loading="buttonLoading" @click="$emit('choceCheckFun', false)">关闭</el-button>
       <el-button type="primary" :loading="buttonLoading" size="small" @click="approved(1)">审批通过</el-button>
+      <el-button type="warning" :loading="buttonLoading" size="small" @click="submit(2)">审批驳回</el-button>
+
+      <el-input
+        style="width: 16em;margin-left: 1em;margin-right: 1em;"
+        v-model="form.auditMsg"
+        size="small"
+        autocomplete="off"
+        clearable
+        placeholder="审批意见"
+      >
+      </el-input>
     </div>
-    <mail-component ref="mail" @choceCheckFun="$emit('choceCheckFun')"></mail-component>
+    <mail-component ref="mail" @choceCheckFun="$emit('choceCheckFun', false)"></mail-component>
   </div>
 </template>
 
@@ -26,6 +39,9 @@ export default {
     choceCheckFun: {
       type: Function
     },
+    gotoRecord: {
+      type: Function
+    },
     checkDetail: {
       type: Boolean
     },
@@ -113,7 +129,7 @@ export default {
   },
   methods: {
     approved(operate) {
-      if (this.checkData.checkType == "HYCK-FFSQ") {
+      if (this.checkData.checkType == "FFSQ") {
         this.$refs.mail.openDialog(this.checkData,this.form,this.objMail)
       } else {
         this.submit(operate);
@@ -162,7 +178,7 @@ export default {
                       .then(res => {
                         if (res.data.success) {
                           this.$message.success("操作成功!");
-                          this.$emit("choceCheckFun");
+                          this.$emit("choceCheckFun", true);
                         }
                         if (!this.checkDetail) {
                           //关闭付费申请页面
@@ -194,7 +210,7 @@ export default {
             .then(res => {
               if (res.data.success) {
                 this.$message.success("操作成功!");
-                this.$emit("choceCheckFun");
+                this.$emit("choceCheckFun", true);
               }
               if (!this.checkDetail) {
                 //关闭付费申请页面

+ 357 - 359
src/views/approveDataH/configuration/mainList.json

@@ -1,361 +1,359 @@
 {
-    "lazy": true,
-    "tip": false,
-    "simplePage": true,
-    "searchShow": true,
-    "searchMenuSpan": 24,
-    "dialogWidth": "60%",
-    "align": "center",
-    "height": "auto",
-    "searchSpan": 6,
-    "searchMenuPosition": "right",
-    "border": true,
-    "index": true,
-    "selection": true,
-    "viewBtn": false,
-    "editBtn": false,
-    "delBtn": false,
-    "menuWidth": 70,
-    "stripe": true,
-    "dialogClickModal": false,
-    "searchLabelWidth": 120,
-    "searchIcon": true,
-    "searchIndex": 2,
-    "addBtn": false,
-    "headerAlign": "center",
-    "columnBtn-BAK": false,
-    "column": [
-        {
-            "label": "业务编号",
-            "prop": "billNo",
-            "overHidden": true,
-            "search": true,
-            "width": 140,
-            "index": 11,
-            "sortable": true
-        },
-        {
-            "label": "利润状态",
-            "prop": "customizeTwo",
-            "search": true,
-            "overHidden": true,
-            "width": 100,
-            "index": 4,
-            "sortable": true
-        },
-        {
-            "label": "自定义1",
-            "prop": "customizeOne",
-            "overHidden": true,
-            "search": true,
-            "width": 180,
-            "index": 3,
-            "sortable": true
-        },
-        {
-            "label": "自定义3",
-            "prop": "customizeThree",
-            "type": "date",
-            "format": "yyyy-MM-dd",
-            "valueFormat": "yyyy-MM-dd",
-            "search": true,
-            "unlinkPanels": true,
-            "searchRange": true,
-            "searchDefaultTime": [
-                "00:00:00",
-                "23:59:59"
-            ],
-            "searchProp": "customizeThreeList",
-            "overHidden": true,
-            "width": 100,
-            "index": 5,
-            "sortable": true
-        },
-        {
-            "label": "自定义4",
-            "prop": "customizeFour",
-            "overHidden": true,
-            "search": true,
-            "width": 160,
-            "index": 6,
-            "sortable": true
-        },
-        {
-            "label": "自定义5",
-            "prop": "customizeFive",
-            "overHidden": true,
-            "search": true,
-            "width": 160,
-            "index": 7,
-            "sortable": true
-        },
-        {
-            "label": "自定义6",
-            "prop": "customizeSix",
-            "search": true,
-            "overHidden": true,
-            "width": 160,
-            "index": 8,
-            "sortable": true
-        },
-        {
-            "label": "审核路径",
-            "prop": "levelName",
-            "overHidden": true,
-            "search": true,
-            "width": 160,
-            "index": 8,
-            "sortable": true
-        },
-        {
-            "label": "业务类型",
-            "prop": "processType",
-            "searchFilterable": true,
-            "type": "select",
-            "props": {
-                "label": "dictValue",
-                "value": "dictKey"
-            },
-            "dicData": [],
-            "search": true,
-            "overHidden": true,
-            "index": 1,
-            "width": 100,
-            "sortable": true
-        },
-        {
-            "label": "往来单位",
-            "prop": "corpId",
-            "search": false,
-            "hide": true,
-            "overHidden": true,
-            "width": 100,
-            "index": 9,
-            "sortable": true
-        },
-        {
-            "label": "往来单位",
-            "prop": "corpsName",
-            "overHidden": true,
-            "width": 100,
-            "index": 10,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "提单号",
-            "prop": "morderNo",
-            "overHidden": true,
-            "width": 100,
-            "index": 12,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "订舱代理",
-            "prop": "bookingAgentCnName",
-            "overHidden": true,
-            "width": 100,
-            "index": 13,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "参考号",
-            "prop": "referenceNumber",
-            "search": false,
-            "overHidden": true,
-            "width": 100,
-            "index": 14,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "开船日期",
-            "prop": "etd",
-            "search": false,
-            "searchProp": "etdList",
-            "type": "date",
-            "unlinkPanels": true,
-            "searchRange": true,
-            "format": "yyyy-MM-dd",
-            "valueFormat": "yyyy-MM-dd HH:mm:ss",
-            "searchDefaultTime": [
-                "00:00:00",
-                "23:59:59"
-            ],
-            "overHidden": true,
-            "width": 100,
-            "index": 15,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "业务员",
-            "prop": "srcCnName",
-            "search": false,
-            "type": "select",
-            "props": {
-                "label": "name",
-                "value": "name",
-                "sortable": true
-            },
-            "dicData": [],
-            "overHidden": true,
-            "width": 100,
-            "index": 16,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "请核人",
-            "prop": "sendUserId",
-            "overHidden": true,
-            "search": true,
-            "index": 17,
-            "width": 100,
-            "type": "select",
-            "props": {
-                "label": "name",
-                "value": "id"
-            },
-            "sortable": true
-        },
-        {
-            "label": "请核日期",
-            "prop": "sendTime",
-            "type": "datetime",
-            "format": "yyyy-MM-dd HH:mm",
-            "valueFormat": "yyyy-MM-dd HH:mm",
-            "search": false,
-            "overHidden": true,
-            "index": 18,
-            "width": 150,
-            "sortable": true
-        },
-        {
-            "label": "请核日期",
-            "prop": "sendTimeList",
-            "type": "datetime",
-            "format": "yyyy-MM-dd HH:mm",
-            "valueFormat": "yyyy-MM-dd HH:mm",
-            "unlinkPanels": true,
-            "searchRange": true,
-            "search": true,
-            "searchDefaultTime": [
-                "00:00:00",
-                "23:59:59"
-            ],
-            "overHidden": true,
-            "index": 18,
-            "width": 150,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "审核状态",
-            "prop": "auditStatus",
-            "type": "select",
-            "dicData": [],
-            "props": {
-                "label": "dictValue",
-                "value": "dictKey"
-            },
-            "search": true,
-            "searchValue": "S",
-            "overHidden": true,
-            "index": 1,
-            "width": 100,
-            "sortable": true
-        },
-        {
-            "label": "审核意见",
-            "prop": "auditMsg",
-            "search": false,
-            "overHidden": true,
-            "width": 180,
-            "index": 19,
-            "sortable": false
-        },
-        {
-            "label": "订单备注",
-            "prop": "orderRemark",
-            "search": false,
-            "overHidden": true,
-            "width": 100,
-            "index": 19,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "已审",
-            "prop": "level",
-            "overHidden": true,
-            "search": false,
-            "width": 100,
-            "index": 20,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "业务日期",
-            "prop": "billTime",
-            "type": "date",
-            "format": "yyyy-MM-dd",
-            "valueFormat": "yyyy-MM-dd HH:mm:ss",
-            "search": false,
-            "unlinkPanels": true,
-            "searchRange": true,
-            "overHidden": true,
-            "index": 21,
-            "width": 150,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "业务日期",
-            "prop": "billTimeList",
-            "type": "date",
-            "format": "yyyy-MM-dd HH:mm:ss",
-            "valueFormat": "yyyy-MM-dd HH:mm:ss",
-            "hide": true,
-            "unlinkPanels": true,
-            "searchRange": true,
-            "search": true,
-            "overHidden": true,
-            "index": 15,
-            "width": 150,
-            "sortable": true
-        },
-        {
-            "label": "应收金额",
-            "prop": "receivableAmount",
-            "overHidden": true,
-            "width": 100,
-            "search": false,
-            "index": 22,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "应付金额",
-            "prop": "payAmount",
-            "overHidden": true,
-            "width": 100,
-            "search": false,
-            "index": 23,
-            "hide": true,
-            "sortable": true
-        },
-        {
-            "label": "利润",
-            "prop": "grossProfit",
-            "overHidden": true,
-            "search": false,
-            "width": 100,
-            "index": 24,
-            "hide": true,
-            "sortable": true
-        }
-    ]
+  "lazy": true,
+  "tip": false,
+  "simplePage": true,
+  "searchShow": true,
+  "searchMenuSpan": 24,
+  "dialogWidth": "60%",
+  "align": "center",
+  "height": "auto",
+  "searchSpan": 6,
+  "searchMenuPosition": "right",
+  "border": true,
+  "index": true,
+  "selection": true,
+  "viewBtn": false,
+  "editBtn": false,
+  "delBtn": false,
+  "menuWidth": 70,
+  "stripe": true,
+  "dialogClickModal": false,
+  "searchLabelWidth": 120,
+  "searchIcon": true,
+  "searchIndex": 5,
+  "addBtn": false,
+  "headerAlign": "center",
+  "columnBtn-BAK": false,
+  "column": [
+    {
+      "label": "业务类型",
+      "prop-1": "processType",
+      "prop": "checkType",
+      "type": "select",
+      "props-1": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
+      "props": {
+        "label": "cnName",
+        "value": "code"
+      },
+      "dicData": [],
+      "search": true,
+      "searchIndex": 1,
+      "overHidden": true,
+      "index": 1,
+      "width": 140,
+      "sortable": true,
+      "multiple":true
+    },
+    {
+      "label": "请核人",
+      "prop": "sendUserId",
+      "overHidden": true,
+      "search": true,
+      "searchIndex": 2,
+      "index": 17,
+      "width": 100,
+      "type": "select",
+      "props": {
+        "label": "realName",
+        "value": "id"
+      },
+      "sortable": true
+    },
+    {
+      "label": "利润状态",
+      "prop": "profitStatus",
+      "search": true,
+      "searchIndex": 3,
+      "overHidden": true,
+      "width": 140,
+      "index": 4,
+      "sortable": true,
+      "type": "select",
+      "props": {
+        "label": "label",
+        "value": "value"
+      },
+      "dicData": [],
+      "multiple":true
+    },
+    {
+      "label": "业务编号",
+      "prop": "billNo",
+      "overHidden": true,
+      "search": true,
+      "searchIndex": 4,
+      "width": 140,
+      "index": 11,
+      "sortable": true
+    },
+    {
+      "label": "提单号",
+      "prop": "customizeOne",
+      "overHidden": true,
+      "search": true,
+      "width": 180,
+      "index": 3,
+      "sortable": true
+    },
+    {
+      "label": "日期(ETD/ETA)",
+      "prop": "customizeThree",
+      "type": "date",
+      "format": "yyyy-MM-dd",
+      "valueFormat": "yyyy-MM-dd",
+      "search": true,
+      "searchIndex": 5,
+      "unlinkPanels": true,
+      "searchRange": true,
+      "searchDefaultTime": ["00:00:00", "23:59:59"],
+      "searchProp": "customizeThreeList",
+      "overHidden": true,
+      "width": 140,
+      "index": 5,
+      "sortable": true
+    },
+    {
+      "label": "客户名称",
+      "prop": "customizeFour",
+      "overHidden": true,
+      "search": true,
+      "width": 160,
+      "index": 6,
+      "sortable": true
+    },
+    {
+      "label": "船公司",
+      "prop": "customizeFive",
+      "overHidden": true,
+      "search": true,
+      "width": 160,
+      "index": 7,
+      "sortable": true
+    },
+    {
+      "label": "场站",
+      "prop": "customizeSix",
+      "search": true,
+      "overHidden": true,
+      "width": 160,
+      "index": 8,
+      "sortable": true
+    },
+    {
+      "label": "审核路径",
+      "prop": "levelName",
+      "overHidden": true,
+      "search": true,
+      "width": 160,
+      "index": 8,
+      "sortable": true
+    },
+    {
+      "label": "往来单位",
+      "prop": "corpsName",
+      "overHidden": true,
+      "width": 100,
+      "index": 10,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "提单号",
+      "prop": "morderNo",
+      "overHidden": true,
+      "width": 100,
+      "index": 12,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "订舱代理",
+      "prop": "bookingAgentCnName",
+      "overHidden": true,
+      "width": 100,
+      "index": 13,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "参考号",
+      "prop": "referenceNumber",
+      "search": false,
+      "overHidden": true,
+      "width": 100,
+      "index": 14,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "开船日期",
+      "prop": "etd",
+      "search": false,
+      "searchProp": "etdList",
+      "type": "date",
+      "unlinkPanels": true,
+      "searchRange": true,
+      "format": "yyyy-MM-dd",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "searchDefaultTime": ["00:00:00", "23:59:59"],
+      "overHidden": true,
+      "width": 100,
+      "index": 15,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "业务员",
+      "prop": "srcCnName",
+      "search": false,
+      "type": "select",
+      "props": {
+        "label": "name",
+        "value": "name",
+        "sortable": true
+      },
+      "dicData": [],
+      "overHidden": true,
+      "width": 100,
+      "index": 16,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "请核日期",
+      "prop": "sendTime",
+      "type": "datetime",
+      "format": "yyyy-MM-dd HH:mm",
+      "valueFormat": "yyyy-MM-dd HH:mm",
+      "search": false,
+      "overHidden": true,
+      "index": 18,
+      "width": 150,
+      "sortable": true
+    },
+    {
+      "label": "请核日期",
+      "prop": "sendTimeList",
+      "type": "datetime",
+      "format": "yyyy-MM-dd HH:mm",
+      "valueFormat": "yyyy-MM-dd HH:mm",
+      "unlinkPanels": true,
+      "searchRange": true,
+      "search": true,
+      "searchDefaultTime": ["00:00:00", "23:59:59"],
+      "overHidden": true,
+      "index": 18,
+      "width": 150,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "审核状态",
+      "prop": "auditStatus",
+      "type": "select",
+      "dicData": [],
+      "props": {
+        "label": "dictValue",
+        "value": "dictKey"
+      },
+      "search": true,
+      "searchValue": "S",
+      "overHidden": true,
+      "index": 1,
+      "width": 100,
+      "sortable": true
+    },
+    {
+      "label": "审核意见",
+      "prop": "auditMsg",
+      "search": false,
+      "overHidden": true,
+      "width": 180,
+      "index": 19,
+      "sortable": false
+    },
+    {
+      "label": "订单备注",
+      "prop": "orderRemark",
+      "search": false,
+      "overHidden": true,
+      "width": 100,
+      "index": 19,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "已审",
+      "prop": "level",
+      "overHidden": true,
+      "search": false,
+      "width": 100,
+      "index": 20,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "业务日期",
+      "prop": "billTime",
+      "type": "date",
+      "format": "yyyy-MM-dd",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "search": false,
+      "unlinkPanels": true,
+      "searchRange": true,
+      "overHidden": true,
+      "index": 21,
+      "width": 150,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "业务日期",
+      "prop": "billTimeList",
+      "type": "date",
+      "format": "yyyy-MM-dd HH:mm:ss",
+      "valueFormat": "yyyy-MM-dd HH:mm:ss",
+      "hide": true,
+      "unlinkPanels": true,
+      "searchRange": true,
+      "search": true,
+      "overHidden": true,
+      "index": 15,
+      "width": 150,
+      "sortable": true
+    },
+    {
+      "label": "应收金额",
+      "prop": "receivableAmount",
+      "overHidden": true,
+      "width": 100,
+      "search": false,
+      "index": 22,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "应付金额",
+      "prop": "payAmount",
+      "overHidden": true,
+      "width": 100,
+      "search": false,
+      "index": 23,
+      "hide": true,
+      "sortable": true
+    },
+    {
+      "label": "利润",
+      "prop": "grossProfit",
+      "overHidden": true,
+      "search": false,
+      "width": 100,
+      "index": 24,
+      "hide": true,
+      "sortable": true
+    }
+  ]
 }

+ 177 - 111
src/views/approveDataH/index.vue

@@ -1,10 +1,12 @@
 <template>
   <basic-container>
+<!--    @on-load="onLoad"-->
     <avue-crud
       :option="option"
       :data="dataList"
       ref="crud"
       v-model="form"
+      :row-style="{ height: '30px', 'line-height': '30px' }"
       :page.sync="page"
       :search.sync="search"
       :table-loading="loading"
@@ -15,7 +17,6 @@
       @current-change="currentChange"
       @size-change="sizeChange"
       @refresh-change="refreshChange"
-      @on-load="onLoad"
       @resetColumn="resetColumn('crud', 'option', 'optionBack', 328.1)"
       @saveColumn="saveColumn('crud', 'option', 'optionBack', 328.1)"
     >
@@ -26,28 +27,25 @@
       <!--          </el-option>-->
       <!--        </el-select>-->
       <!--      </template>-->
+      <!--
       <template slot-scope="scope" slot="checkType">
         <span v-if="scope.row.checkType == 'HYCK-FFSQ'">付费申请</span>
-        <span v-if="scope.row.checkType == 'HYCK-FPSQ'">发票申请</span>
-        <span v-else-if="scope.row.checkType == 'HYCK-DJ'">海运出口</span>
+        <span v-else-if="scope.row.checkType == 'HYCK-FPSQ'">发票申请</span>
+        <span v-else-if="scope.row.checkType == 'HYCK'">海运出口</span>
         <span v-else-if="scope.row.checkType == 'HYCK-FY'">海运出口费用</span>
-        <span v-else-if="scope.row.checkType == 'HYJK-DJ'">海运进口</span>
+        <span v-else-if="scope.row.checkType == 'HYJK'">海运进口</span>
         <span v-else-if="scope.row.checkType == 'HYJK-FY'">海运进口费用</span>
-        <span v-else-if="scope.row.checkType == 'sea-approve'">海运出口AMEND</span>
-        <span v-else-if="scope.row.checkType == 'sia-approve'">海运进口AMEND</span>
-        <span v-else-if="scope.row.checkType == 'aea-approve'">空运出口AMEND</span>
-        <span v-else-if="scope.row.checkType == 'aia-approve'">空运进口AMEND</span>
-        <span v-else-if="scope.row.checkType == 'KYCK-DJ'">空运出口</span>
-        <span v-else-if="scope.row.checkType == 'KYJK-DJ'">空运进口</span>
+        <span v-else-if="scope.row.checkType == 'SEA'">海运出口AMEND</span>
+        <span v-else-if="scope.row.checkType == 'SIA'">海运进口AMEND</span>
+        <span v-else-if="scope.row.checkType == 'AEA'">空运出口AMEND</span>
+        <span v-else-if="scope.row.checkType == 'AIA'">空运进口AMEND</span>
+        <span v-else-if="scope.row.checkType == 'KYCK'">空运出口</span>
+        <span v-else-if="scope.row.checkType == 'KYJK'">空运进口</span>
         <span v-else-if="scope.row.checkType == 'BGSE'">海运出口报关</span>
         <span v-else-if="scope.row.checkType == 'BGSI'">海运进口报关</span>
         <span v-else-if="scope.row.checkType == 'BGAE'">空运出口报关</span>
-        <span v-else-if="scope.row.checkType == 'BGAI'">空运进口报关</span>
-        <span v-else-if="scope.row.checkType == 'FFSQ-SK'">贸易代理货款付费申请</span>
-        <span v-else-if="scope.row.checkType == 'MYDL'">贸易代理单据审核</span>
-        <span v-else-if="scope.row.checkType == 'YSQR-C'">贸易代理货款付费确认</span>
-        <span v-else-if="scope.row.checkType == 'YSQR-D'">贸易代理货款收费确认</span>
       </template>
+      -->
       <!-- 暂时屏蔽,不打开业务
             <template slot-scope="scope" slot="billNo">
                 <span style="color: #1e9fff;cursor: pointer;" @click="billNoDetails(scope.row)">{{
@@ -71,77 +69,77 @@
         <el-button
           type="text"
           size="small"
-          v-if="scope.row.checkType == 'HYCK-DJ'"
+          v-if="scope.row.checkType == 'HYCK'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'HYCK-DJ')"
+          @click.stop="printWindowfun(scope.row, 'HYCK')"
         >
           审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'HYJK-DJ'"
+          v-else-if="scope.row.checkType == 'HYJK'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'HYJK-DJ')"
+          @click.stop="printWindowfun(scope.row, 'HYJK')"
         >
           审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'KYCK-DJ'"
+          v-else-if="scope.row.checkType == 'KYCK'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'KYCK-DJ')"
+          @click.stop="printWindowfun(scope.row, 'KYCK')"
         >
           审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'KYJK-DJ'"
+          v-else-if="scope.row.checkType == 'KYJK'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'KYJK-DJ')"
+          @click.stop="printWindowfun(scope.row, 'KYJK')"
         >
           审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'HYCK-FFSQ'"
+          v-else-if="scope.row.checkType == 'FFSQ'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'HYCK-FFSQ')"
+          @click.stop="printWindowfun(scope.row, 'FFSQ')"
           >审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'sea-approve'"
+          v-else-if="scope.row.checkType == 'SEA'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'sea-approve')"
+          @click.stop="printWindowfun(scope.row, 'SEA')"
           >审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'sia-approve'"
+          v-else-if="scope.row.checkType == 'SIA'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'sia-approve')"
+          @click.stop="printWindowfun(scope.row, 'SIA')"
           >审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'aea-approve'"
+          v-else-if="scope.row.checkType == 'AEA'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'aea-approve')"
+          @click.stop="printWindowfun(scope.row, 'AEA')"
           >审批
         </el-button>
         <el-button
           type="text"
           size="small"
-          v-else-if="scope.row.checkType == 'aia-approve'"
+          v-else-if="scope.row.checkType == 'AIA'"
           :disabled="scope.row.auditStatus != 'S'"
-          @click.stop="printWindowfun(scope.row, 'aia-approve')"
+          @click.stop="printWindowfun(scope.row, 'AIA')"
           >审批
         </el-button>
         <el-button type="text" size="small" v-else :disabled="scope.row.auditStatus != 'S'" @click.stop="openCheck(scope.row)">审批</el-button>
@@ -174,11 +172,29 @@
       :close-on-press-escape="false"
       v-dialog-drag
     >
-      <check :checkData="checkData" :checkDetail="true" :idList="idList" @operationType="operationTypeFFSQ" @choceCheckFun="choceCheckFFSQ" :objMail="objMail"> </check>
+      <check
+        :checkData="checkData"
+        :checkDetail="true"
+        :idList="idList"
+        @operationType="operationTypeFFSQ"
+        @choceCheckFun="choceCheckFFSQ"
+        :objMail="objMail"
+      >
+      </check>
     </el-dialog>
     <!--报表+审批-->
     <reportContainerlos style="width: 100%; height: 100vh" ref="reportContainer">
-      <check :checkData="checkData" :checkDetail="true" :idList="idList" @operationType="operationType" @choceCheckFun="choceCheckFun"> </check>
+      <template slot-scope="scope">
+      <check
+        :checkData="checkData"
+        :checkDetail="true"
+        :idList="idList"
+        @operationType="operationType"
+        @choceCheckFun="choceCheckFun"
+        @gotoRecord="gotoRecord"
+      >
+      </check>
+      </template>
     </reportContainerlos>
     <!--<el-dialog-->
     <!--    title="打印"-->
@@ -214,6 +230,8 @@ import { reportsGetReportData } from "@/api/iosBasicData/reports";
 import reportformsList from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reportformsList.vue";
 import { getList as getreportsList } from "@/api/iosBasicData/reports";
 import { selectListLos } from "@/api/approval/processConfig";
+import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
+import { dateFormat, endDate, startDate } from "@/util/date";
 
 let previousRouterName = "";
 let checkRefresh = "";
@@ -222,7 +240,7 @@ export default {
     reportformsList,
     check,
     checkSchedule,
-    reportContainerlos
+    reportContainerlos,
   },
   data() {
     return {
@@ -233,7 +251,9 @@ export default {
       corpsList: [],
       loading: false,
       form: {},
-      search: {},
+      search: {
+        auditStatus: "S"
+      },
       show: true,
       checkDialog: false,
       checkId: "",
@@ -248,9 +268,11 @@ export default {
       idList: [],
       selectionList: [],
       page: {
-        pageSize: 10,
-        pagerCount: 5,
-        total: 0
+        pageSize: 1000,
+        // pagerCount: 5,
+        pageSizes: [10, 20, 50, 100, 200, 500, 1000], // 可选的分页大小
+        currentPage: 1, // 当前页码
+        total: 0,
       },
       query: {},
       configuration: {
@@ -261,12 +283,12 @@ export default {
         collapseTags: false,
         clearable: true,
         placeholder: "请点击右边按钮选择",
-        dicData: []
-      }
+        dicData: [],
+      },
     };
   },
-  created() {
-    getUserInfo().then(res => {
+  async created() {
+    getUserInfo().then(async (res) => {
       if (res.data.data.billType == 1) {
         this.option = option2;
       } else {
@@ -279,7 +301,7 @@ export default {
         } else {
           this.optionBack = JSON.parse(JSON.stringify(option));
 
-          isProcurement({ param: "business" }).then(async res => {
+          await isProcurement({ param: "business" }).then(async (res) => {
             this.business = res.data.data;
             if (res.data.data == 1) {
               this.optionBack.column.forEach((item, index) => {
@@ -297,22 +319,54 @@ export default {
                 }
               });
             }
-            this.option = await this.getColumnData(this.getColumnName(328.1), this.optionBack);;
+            let opt = await this.getColumnData(this.getColumnName(328.1), this.optionBack);
+
+            // "searchFilterable": true,
+            // "searchFilterable": true,
+            // "searchFilterable": true,
+            // "filters": true
+
+            // let col = this.findObject(opt.column, "customizeThree");
+            // col.searchValue = [startDate(), endDate()];
+
+            let col = this.findObject(opt.column, "auditStatus");
+            col.searchValue = "S";
+            this.option = opt;
           });
         }
       }
-      this.getWorkDicts("auditStatus").then(res => {
-        this.findObject(this.option.column, "auditStatus").dicData = res.data.data;
+      await this.getWorkDicts("auditStatus").then((res) => {
+        this.findObject(this.option.column, "auditStatus").dicData = res.data.data.filter((item) => "S,A,B".indexOf(item.dictKey) >= 0);
       });
-      gainUser().then(res => {
+      await gainUser().then((res) => {
         this.findObject(this.option.column, "sendUserId").dicData = res.data.data;
       });
+      /*
       this.getWorkDicts("tire_audit").then(res => {
         this.findObject(this.option.column, "processType").dicData = res.data.data;
       });
-      selectListLos("业务员").then(res => {
+      */
+      await bbusinesstypeList(1, 1000, { enableFee: "1" }).then((res) => {
+        this.findObject(this.option.column, "checkType").dicData = res.data.data.records;
+      });
+      await selectListLos("业务员").then((res) => {
         this.findObject(this.option.column, "srcCnName").dicData = res.data.data;
       });
+
+      this.findObject(this.option.column, "profitStatus").dicData = [
+        {value: "F", label: "正常"},
+        {value: "Z", label: "为零"},
+        {value: "D", label: "不成比例且过低"},
+        {value: "T", label: "不成比例且过高"},
+        {value: "H", label: "过高"},
+        {value: "L", label: "过低"},
+        {value: "M", label: "为负"},
+        {value: "U", label: "不成比例"},
+      ];
+
+      this.$nextTick(()=>{
+        this.onLoad(this.page, this.search);
+      })
     });
     // 供应商
     // corpsDescListAll({corpType: "GYS"}).then(res => {
@@ -330,92 +384,82 @@ export default {
   methods: {
     // 点击审核弹出打印表格
     printWindowfun(row, type) {
+      console.log("printWindowfun", row, type);
       // 当时选择的数据
       this.reportsData = row;
       this.checkData = row;
       let obj = {};
-      if (type == "HYCK-DJ") {
+      if (type == "HYCK") {
         obj = {
           businessType: "HYCK",
           classifyCode: "费用",
-          groupCode: "销售报告"
+          groupCode: "销售报告",
         };
-      } else if (type == "HYJK-DJ") {
+      } else if (type == "HYJK") {
         obj = {
           businessType: "HYJK",
           classifyCode: "费用",
-          groupCode: "销售报告"
+          groupCode: "销售报告",
         };
-      } else if (type == "KYCK-DJ") {
+      } else if (type == "KYCK") {
         obj = {
           businessType: "KYCK",
           classifyCode: "费用",
-          groupCode: "销售报告"
+          groupCode: "销售报告",
         };
-      } else if (type == "KYJK-DJ") {
+      } else if (type == "KYJK") {
         obj = {
           businessType: "KYJK",
           classifyCode: "费用",
-          groupCode: "销售报告"
+          groupCode: "销售报告",
         };
-      } else if (type == "HYCK-FFSQ") {
+      } else if (type == "FFSQ") {
         obj = {
           businessType: "FFSQ",
           classifyCode: "付费申请",
-          groupCode: "付费申请"
+          groupCode: "付费申请",
         };
-      } else if (type == "sea-approve") {
+      } else if (type == "SEA") {
         obj = {
           businessType: "AMEND",
           classifyCode: "AMENDSE",
-          groupCode: "SE"
+          groupCode: "SE",
         };
-      } else if (type == "sia-approve") {
+      } else if (type == "SIA") {
         obj = {
           businessType: "AMEND",
           classifyCode: "AMENDSI",
-          groupCode: "SI"
+          groupCode: "SI",
         };
-      } else if (type == "aea-approve") {
+      } else if (type == "AEA") {
         obj = {
           businessType: "AMEND",
           classifyCode: "AMENDAE",
-          groupCode: "AE"
+          groupCode: "AE",
         };
-      } else if (type == "aia-approve") {
+      } else if (type == "AIA") {
         obj = {
           businessType: "AMEND",
           classifyCode: "AMENDAI",
-          groupCode: "AI"
+          groupCode: "AI",
         };
       } else {
       }
-      getreportsList(1, 10, obj).then(res => {
+      getreportsList(1, 10, obj).then((res) => {
         this.reportRadio(res.data.data.records[0]);
+        if (!this.selectionList.includes(row)) {
+          this.$refs.crud.toggleRowSelection(row);
+        }
       });
-      // this.selectPrintingDialog = true
-      // let page = {
-      //     pageSize: 10,
-      //     currentPage: 1,
-      //     total: 0
-      // }
-      // this.$nextTick(()=>{
-      //     this.$refs.reportformsList.onLoad(page,{
-      //         businessType:'HYCK',
-      //         classifyCode:'费用',
-      //         groupCode:'销售报告'
-      //     })
-      // })
     },
     // 获取报表数据
     reportRadio(val) {
-      console.log(val, 240);
       reportsGetReportData({
         billId: this.reportsData.billId,
         reportCode: val.classifyCode,
         groupCode: val.groupCode,
-        type: val.businessType
-      }).then(res => {
+        type: val.businessType,
+      }).then((res) => {
         // 关闭弹窗
         this.selectPrintingDialog = false;
         this.handleReportPreview(val.url, res.data.data.data);
@@ -426,11 +470,10 @@ export default {
       done();
     },
     testMail(e) {
-        console.log(e,3333333333333)
       this.objMail = {
         attachments: e.fileName,
         fileType: e.formatName,
-        fileContent: e.data
+        fileContent: e.data,
       };
     },
     // 预览报表
@@ -463,11 +506,9 @@ export default {
 
       // viewer.onEmailReport = this.testMail;
       // 报表
-      console.log("创建一个报表实例");
       let report = new window.Stimulsoft.Report.StiReport();
 
       // 加载文件
-      console.log("从url加载报表");
       // report.loadFile("/reports/stimulsoft/demos/SimpleList.mrt");
       // report.load(row.url)
       report.load(url);
@@ -479,7 +520,6 @@ export default {
       // 从模版和数据加载报表
       // loadReport(report, '', {})
 
-
       this.$refs.reportContainer.showContainer(
         () => {
           setTimeout(() => {
@@ -494,8 +534,7 @@ export default {
       // });
       // // 为按钮控件添加“PrintReport”事件
       // printButton.events.add('PrintReport', handlePrintReport);
-      console.log("加载成功完成!");
-            viewer.report = report;
+      viewer.report = report;
     },
     // 报表的按钮
     createViewerButtons(viewer) {
@@ -509,8 +548,7 @@ export default {
       userButtonCell.appendChild(closeBtn);
 
       let that = this;
-      closeBtn.action = function() {
-        console.log(that.$refs.ReportContainer);
+      closeBtn.action = function () {
         if (that.$refs.reportContainer) that.$refs.reportContainer.hideContainer();
       };
     },
@@ -549,15 +587,15 @@ export default {
           this.$alert("" + row.pageLabel + "页面已存在,请关闭" + row.pageLabel + "页面再进行操作", "温馨提示", {
             confirmButtonText: "确定",
             type: "warning",
-            callback: action => {}
+            callback: (action) => {},
           });
         } else {
           this.$router.$avueRouter.closeTag(row.url);
           this.$router.push({
             path: row.url,
             query: {
-              billId: row.billId
-            }
+              billId: row.billId,
+            },
           });
         }
       } else {
@@ -569,7 +607,7 @@ export default {
       row.operate = operate;
       this.loading = true;
       approvePass(row)
-        .then(res => {
+        .then((res) => {
           this.$message.success("操作成功!");
           this.refreshChange();
         })
@@ -579,7 +617,7 @@ export default {
     },
     openCheck(row) {
       if (row.checkType == "CK") {
-        financingExcess({ id: row.corpId }).then(res => {
+        financingExcess({ id: row.corpId }).then((res) => {
           if (res.data.data == "操作成功") {
             this.batch = false; //单条操作
             this.checkDialog = true;
@@ -588,7 +626,7 @@ export default {
             this.$confirm(res.data.data, {
               confirmButtonText: "确定",
               cancelButtonText: "取消",
-              type: "warning"
+              type: "warning",
             }).then(() => {
               this.batch = false; //单条操作
               this.checkDialog = true;
@@ -602,14 +640,18 @@ export default {
         this.checkData = row;
       }
     },
-    choceCheckFun() {
+    choceCheckFun(reload) {
       // this.checkDialog = false;
       this.$refs.reportContainer.visible = false;
-      this.refreshChange();
+      if (reload === true) {
+        this.refreshChange();
+      }
     },
-    choceCheckFFSQ() {
+    choceCheckFFSQ(reload) {
       this.checkDialog = false;
-      this.refreshChange();
+      if (reload === true) {
+        this.refreshChange();
+      }
     },
     openCheckSchedule(row) {
       this.checkId = row.srcBillId;
@@ -626,10 +668,25 @@ export default {
     editOpen(row, status) {
       this.detailData = {
         id: row.id,
-        status: status
+        status: status,
       };
       this.show = false;
     },
+    gotoRecord(next) {
+      if (this.dataList.length <= 1) return;
+
+      let lastRow = this.checkData ? this.checkData : this.dataList[0];
+      let index = this.dataList.indexOf(lastRow);
+      index = next === true ? index + 1 : index - 1;
+      if (index < 0) {
+        return;
+      }
+      if (index >= this.dataList.length) {
+        return;
+      }
+      let row = this.dataList[index];
+      this.printWindowfun(row, row.checkType);
+    },
     //点击搜索按钮触发
     searchChange(params, done) {
       this.query = params;
@@ -638,7 +695,11 @@ export default {
       done();
     },
     searchReset() {
-      console.log("1");
+      this.search = {
+        // customizeThreeList: [startDate(), endDate()],
+        auditStatus: "S"
+      }
+      this.onLoad(this.page)
     },
     selectionChange(list) {
       this.idList = [];
@@ -646,9 +707,10 @@ export default {
     },
     currentChange(val) {
       this.page.currentPage = val;
+      this.onLoad(this.page);
     },
     sizeChange() {
-      console.log("1");
+      this.onLoad(this.page);
     },
     refreshChange(params) {
       this.onLoad(this.page, params);
@@ -669,7 +731,7 @@ export default {
         delete params.sendTime;
       }
       getList(page.currentPage, page.pageSize, params)
-        .then(res => {
+        .then((res) => {
           this.dataList = res.data.data.records;
           this.page.total = res.data.data.total;
         })
@@ -678,7 +740,7 @@ export default {
         });
     },
     cellStyle() {
-      return "padding:0;height:40px;";
+      return "padding:0;height:30px;";
     },
     //自定义列保存
     async saveColumn(ref, option, optionBack, code) {
@@ -705,8 +767,12 @@ export default {
         this.searchReset();
       }
     },
-  }
+  },
 };
 </script>
 
-<style scoped></style>
+<style scoped>
+::v-deep(.el-table__row) {
+  height: 30px;
+}
+</style>

+ 4 - 1
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -361,6 +361,8 @@
         <el-button type="primary" @click="AddToMainOrder">确 定</el-button>
       </span>
     </el-dialog>
+
+<!--    批量更改-->
     <update-batch-field ref="updateFieldRef"></update-batch-field>
 
     <!--导入模板-->
@@ -559,7 +561,8 @@ export default {
       page: {
         pageSize: 10,
         currentPage: 1,
-        total: 0
+        total: 0,
+        // pageSizes: [10, 20, 50, 100, 200, 'ALL'],
       },
       // 弹窗分页
       mawbPage: {

+ 9 - 3
src/views/iosBasicData/SeafreightExportF/bills/updateBatchField.vue

@@ -66,7 +66,7 @@
                                       :buttonIf="false"
                                       style="height: 100%"
                                       placeholder="请选择客户"
-                                      :forParameter="{ key: 'id', label: 'enName', value: 'enName' }"
+                                      :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
                                       @remoteMethod="getBcorpsListfun($event)"
                                       @corpChange="corpChange($event)"
                                       @corpFocus="getBcorpsListfun($event)">
@@ -278,6 +278,7 @@ export default {
                 return
             }
             console.log('提交数据:', this.formData);
+
             this.$confirm('确认要进行批量更改吗?', '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
@@ -290,7 +291,8 @@ export default {
                     background: 'rgba(0, 0, 0, 0.7)'
                 })
                 updateBatchField(this.formData).then(res => {
-                    this.$message.success(res.msg)
+                  console.log(res)
+                    // this.$message.success(res.msg)
                     this.dialogVisible = false;
                 }).finally(() => {
                     loading.close()
@@ -437,7 +439,7 @@ export default {
             this.formData.srcId = ''
             this.formData.srcCnName = ''
             this.formData.srcEnName = ''
-            let clickData = this.corpData.find(item => item.enName === value)
+            let clickData = this.corpData.find(item => item.cnName === value)
             console.info('corp data---', clickData)
             this.formData.corpCnName = clickData.cnName
             this.formData.corpEnName = clickData.enName
@@ -445,7 +447,9 @@ export default {
             this.formData.corpCode = clickData.code
             this.formData.shortName = clickData.shortName
             this.formData.corpSource = clickData.corpSource
+            console.info('corp business---', this.business)
             if (this.business == 1) {
+              console.info('agreementpriceList', {corpId: clickData.id, status: 0, validDate: getCurrentDate('date')})
                 agreementpriceList({corpId: clickData.id, status: 0, validDate: getCurrentDate('date')}).then(res => {
                     if (res.data.data.records.length) {
                         this.formData.accountPeriodType = res.data.data.records[0].accountPeriodType == '月结' ? '月结' : '票结有协议'
@@ -563,8 +567,10 @@ export default {
 .form-item >>> .el-input__inner,
 .form-item >>> .el-textarea__inner,
 .form-item >>> .el-select {
+  /*
     border-radius: 6px;
     border: 1px solid #dcdfe6;
+  */
     transition: all 0.3s;
 }
 

+ 2 - 0
src/views/iosBasicData/accounts/assembly/accountsDialog.vue

@@ -80,6 +80,8 @@
                         <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isDept">部门</el-checkbox>
                         <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isEmpl">职员</el-checkbox>
                         <!--<el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isStock">库存</el-checkbox>-->
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isManual" style="margin-left: 50px;">允许手工凭证使用</el-checkbox>
+                        <el-checkbox size="medium" :true-label="1" :false-label="0" v-model="form.isArAp">应收/应付科目</el-checkbox>
                     </el-form-item>
                 </el-col>
 

+ 36 - 0
src/views/iosBasicData/accounts/index.vue

@@ -327,6 +327,42 @@ import {
                 ]
             },
             {
+              label: "允许手工凭证使用",
+              prop: "isManual",
+              overHidden: true,
+              search: true,
+              type:'select',
+              width: 120,
+              dicData:[
+                {
+                  label:'否',
+                  value:'0',
+                },
+                {
+                  label:'是',
+                  value:'1',
+                }
+              ]
+            },
+            {
+              label: "应收/应付科目",
+              prop: "isArAp",
+              overHidden: true,
+              search: true,
+              type:'select',
+              width: 120,
+              dicData:[
+                {
+                  label:'否',
+                  value:'0',
+                },
+                {
+                  label:'是',
+                  value:'1',
+                }
+              ]
+            },
+            {
                 label: "上级科目",
                 prop: "parentCode",
                 overHidden: true,

+ 130 - 50
src/views/iosBasicData/finvouchers/assembly/fromtableDetails.vue

@@ -14,12 +14,12 @@
       :row-style="rowStyle"
       :row-class-name="rowClassName"
     >
-      <el-table-column fixed="left" type="selection" width="55"> </el-table-column>
-      <el-table-column type="index" width="55"> </el-table-column>
-      <el-table-column prop="descr" label="摘要" width="200px" style="padding: 0">
+      <el-table-column fixed="left" type="selection" width="50"> </el-table-column>
+      <el-table-column type="index" width="40" style="text-align: center"> </el-table-column>
+      <el-table-column prop="descr" label="摘要" width="auto" style="padding: 0">
         <template slot-scope="{ row }">
           <el-input
-            style="width: 100%;"
+            style="width: 100%"
             type="textarea"
             v-model="row.descr"
             size="small"
@@ -33,7 +33,7 @@
       </el-table-column>
       <el-table-column prop="accountCode" label="科目代码" width="400px">
         <template slot-scope="{ row }">
-          <div style="display: flex;align-items: center;justify-content: space-between">
+          <div style="display: flex; align-items: center; justify-content: space-between">
             <search-query
               style="width: 100%"
               :datalist="accountData"
@@ -50,18 +50,18 @@
               @corpChange="corpChange($event, 'accountId', row)"
             >
             </search-query>
-            <el-tooltip class="item" effect="dark" content="修改" placement="top">
+            <el-tooltip v-if="!disabled" class="item" effect="dark" content="修改" placement="top">
               <el-button size="mini" type="primary" icon="el-icon-edit" circle @click="auxiliaryAccountingfun(row)" :disabled="disabled"></el-button>
             </el-tooltip>
           </div>
-          <div style="display: flex;">
-<!--            _【职员】  _【部门】  _【客户】-->
+          <div style="display: flex">
+            <!--            _【职员】  _【部门】  _【客户】-->
             <span>{{
-                (row.accountFullName ? row.accountFullName : "") +
-                (row.isEmpl === 1 && row.emplName ? "/" + row.emplName : "") +
-                (row.isDept === 1 && row.deptName ? "/" + row.deptName : "") +
-                (row.isCorp === 1 && row.corpShortName ? "/" + row.corpShortName : "")
-              }}</span>
+              (row.accountCnName ? row.accountCnName : " ") +
+              (row.isEmpl === 1 && row.emplName ? "/" + row.emplName : "") +
+              (row.isDept === 1 && row.deptName ? "/" + row.deptName : "") +
+              (row.isCorp === 1 && row.corpShortName ? "/" + row.corpShortName : "")
+            }}</span>
           </div>
         </template>
       </el-table-column>
@@ -69,8 +69,8 @@
       <el-table-column prop="dc" label="方向" width="60px" style="padding: 0">
         <template slot-scope="{ row }">
           <el-input
-            style="width: 100%;text-align: center;"
-            v-text="row.dc=='D' ? '借' : '贷'"
+            style="width: 100%; text-align: center"
+            v-text="row.dc == 'D' ? '借' : '贷'"
             size="small"
             autocomplete="off"
             clearable
@@ -84,14 +84,15 @@
         <el-table-column prop="amountDr" label="借方" width="120px">
           <template slot-scope="{ row }">
             <el-input-number
-              style="width: 100%;"
+              style="width: 100%"
               v-model="row.amountDr"
               size="small"
               autocomplete="off"
               :disabled="!row.accountId || disabled"
               placeholder="请输入借方"
               :precision="2"
-              @blur="amountBlur(row, 'D')"
+              @change="amountBlur(row, 'D')"
+              @keydown.native="handleKeydown($event, row,'amountDr')"
               :controls="false"
             >
             </el-input-number>
@@ -100,14 +101,15 @@
         <el-table-column prop="amountCr" label="货方" width="120px">
           <template slot-scope="{ row }">
             <el-input-number
-              style="width: 100%;"
+              style="width: 100%"
               v-model="row.amountCr"
               size="small"
               autocomplete="off"
               :disabled="!row.accountId || disabled"
               placeholder="请输入货方"
               :precision="2"
-              @blur="amountBlur(row, 'C')"
+              @change="amountBlur(row, 'C')"
+              @keydown.native="handleKeydown($event, row,'amountCr')"
               :controls="false"
             >
             </el-input-number>
@@ -120,26 +122,26 @@
           <template slot-scope="{ row }">
             <el-input-number
               v-if="row.curCode == 'USD'"
-              style="width: 100%;"
+              style="width: 100%"
               v-model="row.exrate"
               size="small"
               autocomplete="off"
               clearable
               placeholder="请输入借方"
               :precision="4"
-              @blur="amountBlur(row, 'exrate')"
+              @change="amountBlur(row, 'exrate')"
               :disabled="disabled"
               :controls="false"
             >
             </el-input-number>
-<!--            {{ row.exrate }}-->
+            <!--            {{ row.exrate }}-->
             <span v-else></span>
           </template>
         </el-table-column>
         <el-table-column prop="amountDrUsd" label="借方" width="120px">
           <template slot-scope="{ row }">
             <el-input-number
-              style="width: 100%; text-align: right;"
+              style="width: 100%; text-align: right"
               v-model="row.amountDrUsd"
               size="small"
               autocomplete="off"
@@ -147,7 +149,7 @@
               clearable
               placeholder="请输入借方"
               :precision="2"
-              @blur="amountUSDBlur(row, 'Dusd')"
+              @change="amountUSDBlur(row, 'Dusd')"
               :controls="false"
             >
             </el-input-number>
@@ -156,7 +158,7 @@
         <el-table-column prop="amountCrUsd" label="货方" width="120px">
           <template slot-scope="{ row }">
             <el-input-number
-              style="width: 100%;"
+              style="width: 100%"
               v-model="row.amountCrUsd"
               size="small"
               autocomplete="off"
@@ -164,13 +166,14 @@
               clearable
               placeholder="请输入货方"
               :precision="2"
-              @blur="amountUSDBlur(row, 'Cusd')"
+              @change="amountUSDBlur(row, 'Cusd')"
               :controls="false"
             >
             </el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
+      <!--
       <el-table-column prop="remarks" label="备注" width="200px">
         <template slot-scope="{ row }">
           <el-input
@@ -186,7 +189,8 @@
           </el-input>
         </template>
       </el-table-column>
-      <el-table-column label="操作" fixed="right" width="100px">
+      -->
+      <el-table-column v-if="!disabled" label="操作" fixed="right" width="100px">
         <template slot-scope="scope">
           <el-tooltip class="item" effect="dark" content="添加" placement="top">
             <el-button
@@ -217,48 +221,58 @@
 <script>
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import { accountsList } from "@/api/iosBasicData/accounts";
+import { bcurrencyGetExrate } from "@/api/iosBasicData/rateManagement";
+import { dateFormat } from "@/util/date";
 
 export default {
   components: { SearchQuery },
   data() {
     return {
-      accountData: [] // 科目数据
+      accountData: [], // 科目数据
     };
   },
   props: {
+    assemblyForm: {
+      type: Object,
+      default: {},
+    },
     tableData: {
       type: Array,
-      default: []
+      default: [],
     },
     handleSelectionData: {
       type: Array,
-      default: []
+      default: [],
     },
     disabled: {
-      type: Blob,
-      default: false
-    }
+      type: Boolean,
+      default: false,
+    },
   },
   async created() {
     this.accountsListfun();
     // this.option = await this.getColumnData(this.getColumnName(321.1), this.optionBack);
   },
   methods: {
+    forceNumber(s, d){
+      let N = Number(s);
+      return isNaN(N) ? 0.00 : Number(N.toFixed(d));
+    },
     // 自定义合计
     summaryMethod(param) {
       const { columns, data } = param;
       const sums = [];
       columns.forEach((column, index) => {
-        if (index === 0) {
-          sums[index] = "总价";
+        if (index === 2) {
+          sums[index] = "合计";
           return;
         }
-        const values = data.map(item => Number(item[column.property]));
+        const values = data.map((item) => Number(item[column.property]));
         // 显示列的统计 金额
         let arr = ["amountDr", "amountCr", "amountDrUsd", "amountCrUsd"];
         // 判断是否有这个数据
         if (arr.indexOf(column.property) != -1) {
-          if (!values.every(value => isNaN(value))) {
+          if (!values.every((value) => isNaN(value))) {
             sums[index] = values.reduce((prev, curr) => {
               const value = Number(curr);
               if (!isNaN(value)) {
@@ -276,8 +290,40 @@ export default {
       });
       return sums;
     },
+    handleKeydown(e, row, name){
+      console.log("handleKeydown", e, name);
+      if(e.key === "="){
+        e.preventDefault();
+        // amountDr,amountCr
+        let amtDr = 0.00, amtCr = 0.00;
+        this.tableData.forEach((item) => {
+          if(item!==row){
+            amtDr = this.forceNumber(amtDr + item.amountDr, 2);
+            amtCr = this.forceNumber(amtCr + item.amountCr, 2);
+          }
+        })
+        if(name==='amountDr'){
+          this.$set(row, "amountCr", 0.00)
+          this.$set(row, name, this.forceNumber(amtCr - amtDr, 2))
+        }
+        if(name==='amountCr'){
+          this.$set(row, "amountDr", 0.00)
+          this.$set(row, name, this.forceNumber(amtDr - amtCr, 2))
+        }
+
+        if(row.curCode==="USD"){
+          if(row.exrate.toFixed(4)==='0.0000'){
+            row.exrate = 1
+          }
+
+          this.$set(row, "amountDrUsd", this.forceNumber(row.amountDr / row.exrate, 2))
+          this.$set(row, "amountCrUsd", this.forceNumber(row.amountCr / row.exrate, 2))
+        }
+      }
+    },
     // 借方/贷方 本币的计算
     amountBlur(row, name) {
+      console.log("amountBlur", row, name);
       if (name == "D") {
         this.$set(row, "amountCr", 0);
       }
@@ -301,6 +347,7 @@ export default {
     },
     // 外币的计算
     amountUSDBlur(row, name) {
+      console.log("amountUSDBlur", row, name);
       if (name == "Dusd") {
         this.$set(row, "amountCrUsd", 0);
       }
@@ -316,7 +363,8 @@ export default {
     },
     // 获取科目类型数据
     accountsListfun(code) {
-      accountsList(1, 10, { code, isDetail: 1 }).then(res => {
+      // isManual == 1 的允许手工添加
+      accountsList(1, 10, { code, isDetail: 1, isManual: 1 }).then((res) => {
         console.log(res.data.data.records);
         this.accountData = res.data.data.records;
       });
@@ -355,7 +403,7 @@ export default {
             this.$set(row, "dc", item.dc);
 
             // 币种
-            this.$set(row, "curCode", item.curCode);
+            this.$set(row, "curCode", item.curCode==="USD" ? item.curCode : "CNY");
             // 汇率
             this.$set(row, "exrate", item.exrate);
             // 其他
@@ -398,6 +446,37 @@ export default {
 
           this.$set(row, "exrate", 0);
         }
+
+        if (row.curCode === "USD") {
+          bcurrencyGetExrate({
+            date: this.assemblyForm.voucherDate ? this.assemblyForm.voucherDate.slice(0, 10) + " 00:00:00" : dateFormat(new Date(), "yyyy-MM-dd") + " 00:00:00", // 凭证日期
+            dc: row.dc,
+            type: 1,
+          }).then((res) => {
+            for (let item of res.data.data) {
+              if (item.code === row.curCode) {
+                this.$set(row, "exrate", this.forceNumber(item.exrate, 4));
+                this.$set(row, "amountDr", this.forceNumber(row.amountDr, 2))
+                this.$set(row, "amountCr", this.forceNumber(row.amountCr, 2))
+                this.$set(row, "amountDrUsd", this.forceNumber(row.amountDrUsd, 2))
+                this.$set(row, "amountCrUsd", this.forceNumber(row.amountCrUsd, 2))
+                if(row.amountDrUsd!==0.00){
+                  this.$set(row, "amountCrUsd", 0.00)
+                  this.$set(row, "amountCr", 0.00)
+                  this.$set(row, "amountDr", this.forceNumber(row.amountDrUsd * item.exrate, 2))
+                }else{
+                  this.$set(row, "amountDrUsd", 0.00)
+                  this.$set(row, "amountDr", 0.00)
+                  this.$set(row, "amountCr", this.forceNumber(row.amountCrUsd * item.exrate, 2))
+                }
+              }
+            }
+          });
+        } else {
+          this.$set(row, "exrate", 0);
+          this.$set(row, "amountDrUsd", 0.00);
+          this.$set(row, "amountCrUsd", 0.00);
+        }
       }
 
       console.log(row);
@@ -427,7 +506,7 @@ export default {
           refsElTable.toggleRowSelection(this.tableData[index], true);
         }
       } else {
-        let findRow = this.handleSelectionData.find(c => c.rowIndex == row.rowIndex); //找出当前选中行
+        let findRow = this.handleSelectionData.find((c) => c.rowIndex == row.rowIndex); //找出当前选中行
         //如果只有一行且点击的也是这一行则取消选择 否则清空再选中当前点击行
         if (findRow && this.handleSelectionData.length === 1) {
           refsElTable.toggleRowSelection(row, false);
@@ -445,7 +524,7 @@ export default {
         //给每一行添加不可枚举属性rowIndex来标识当前行
         value: rowIndex, // 设置age的值,不设置的话默认为undefined
         writable: true, // 表示属性的值true可以修改,false不可以被修改
-        enumerable: false // 设置为false表示不能通过 for-in 循环返回
+        enumerable: false, // 设置为false表示不能通过 for-in 循环返回
         // configurable: false, // configurable 设置为 false,意味着这个属性不能从对象上删除
       });
     },
@@ -467,22 +546,22 @@ export default {
       if (n > mx) {
         return {
           top: mi,
-          bottom: n
+          bottom: n,
         };
       } else if (n < mx && n > mi) {
         return {
           top: mi,
-          bottom: n
+          bottom: n,
         };
       } else if (n < mi) {
         return {
           top: n,
-          bottom: mx
+          bottom: mx,
         };
       } else if (n == mi || n == mx) {
         return {
           top: mi,
-          bottom: mx
+          bottom: mx,
         };
       }
     },
@@ -490,12 +569,12 @@ export default {
     // 判断方式也是通过判断rowIndex对比
     rowClassName({ row, rowIndex }) {
       let rowName = "",
-        findRow = this.handleSelectionData.find(c => c.rowIndex === row.rowIndex);
+        findRow = this.handleSelectionData.find((c) => c.rowIndex === row.rowIndex);
       if (findRow) {
         rowName = "current-row "; // elementUI 默认高亮行的class类 不用再样式了^-^,也可通过css覆盖改变背景颜色
       }
       return rowName; //也可以再加上其他类名 如果有需求的话
-    }
+    },
   },
   mounted() {
     // 按住ctrl实现多选 设置监听keydown事件,以及keyup事件,
@@ -520,8 +599,8 @@ export default {
       return this.handleSelectionData.reduce((start, end) => {
         return start.rowIndex < end.rowIndex ? start : end;
       });
-    }
-  }
+    },
+  },
 };
 </script>
 
@@ -538,4 +617,5 @@ export default {
 }
 ::v-deep .el-input-number .el-input__inner {
   text-align: right;
-}</style>
+}
+</style>

+ 109 - 41
src/views/iosBasicData/finvouchers/finvouchersitems.vue

@@ -6,7 +6,13 @@
       </div>
       <div class="add-customer-btn">
         <el-button type="primary" size="small" @click="addEdit()">新建财务凭证 </el-button>
-        <el-button size="small" type="success" style="margin-right: 8px" :loading="saveLoading" :disabled="form.voucherStatus == 1"
+        <el-button
+          size="small"
+          type="success"
+          style="margin-right: 8px"
+          :loading="saveLoading"
+          v-if="getVoucherCanModify"
+          :disabled="form.voucherStatus == 1"
           >凭证标错
         </el-button>
         <el-button
@@ -15,16 +21,22 @@
           style="margin-right: 8px"
           :loading="saveLoading"
           @click="finvouchersSubmitfun"
-          :disabled="form.voucherStatus == 1"
+          v-if="getVoucherCanModify"
+          :disabled="form.voucherStatus == 1 || form.voucherSource !== 'MANUAL'"
           >保 存
         </el-button>
       </div>
     </div>
     <div style="margin: 55px 5px 0px 5px;'">
+<!--      :style="{'text-align': 'center', 'line-height': '40px', 'background-color': 'white'}"-->
+      <div style="text-align: center; line-height: 40px; background-color: white;">
+        <span style="font-size: 24px;">{{form.voucherTypeName}}</span>
+      </div>
       <el-card class="box-card">
         <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
           <el-row>
-            <el-col :span="6">
+            <!--
+            <el-col :span="4">
               <el-form-item label="凭证类型" prop="voucherType">
                 <search-query
                   :datalist="voucherTypeData"
@@ -39,7 +51,7 @@
                 </search-query>
               </el-form-item>
             </el-col>
-            <el-col :span="6">
+            <el-col :span="4">
               <el-form-item label="凭证号" prop="voucherNo">
                 <el-input
                   style="width: 100%;"
@@ -53,7 +65,45 @@
                 </el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="6">
+            -->
+            <el-col :span="4">
+              <el-form :model="form" ref="form1">
+                <el-row>
+                <el-col :span="10">
+                  <el-form-item prop="voucherType">
+                    <search-query
+                      :datalist="voucherTypeData"
+                      :selectValue="form.voucherType"
+                      :clearable="false"
+                      :buttonIf="false"
+                      :disabled="!getVoucherCanModify"
+                      :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey' }"
+                      placeholder="请选择凭证类型"
+                      @corpChange="corpChange($event, 'voucherType')"
+                    >
+                    </search-query>
+                  </el-form-item>
+                </el-col>
+                  <el-col :span="4" style="line-height: 40px; text-align: center;">
+                      <span>字 第</span>
+                  </el-col>
+                <el-col :span="10">
+                  <el-form-item label="" prop="voucherNo">
+                    <el-input
+                      v-model="form.voucherNo"
+                      size="small"
+                      autocomplete="off"
+                      :disabled="true"
+                      clearable
+                      placeholder="凭证号"
+                    >
+                    </el-input>
+                  </el-form-item>
+                </el-col>
+                </el-row>
+              </el-form>
+            </el-col>
+            <el-col :span="4">
               <el-form-item label="凭证日期" prop="voucherDate">
                 <el-date-picker
                   v-model="form.voucherDate"
@@ -62,13 +112,27 @@
                   type="date"
                   size="small"
                   value-format="yyyy-MM-dd"
-                  :disabled="form.voucherStatus == 1"
+                  :disabled="!getVoucherCanModify"
                   placeholder="选择凭证日期"
                 >
                 </el-date-picker>
               </el-form-item>
             </el-col>
-            <el-col :span="6">
+            <el-col :span="4">
+              <el-form-item label="REF NO" prop="billNo">
+                <el-input
+                  style="width: 100%;"
+                  v-model="form.billNo"
+                  size="small"
+                  autocomplete="off"
+                  :disabled="true"
+                  clearable
+                  placeholder="保存后生成"
+                >
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
               <el-form-item label="凭证来源" prop="voucherSource">
                 <!--                              form.voucherStatus == 1-->
                 <search-query
@@ -76,7 +140,7 @@
                   :selectValue="form.voucherSource"
                   :clearable="true"
                   :buttonIf="false"
-                  :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey' }"
+                  :forParameter="{ key: 'code', label: 'cnName', value: 'code' }"
                   placeholder="请选择凭证凭证来源"
                   :disabled="true"
                   @corpChange="corpChange($event, 'voucherSource')"
@@ -84,21 +148,7 @@
                 </search-query>
               </el-form-item>
             </el-col>
-            <el-col :span="6">
-              <el-form-item label="REF NO" prop="billNo">
-                <el-input
-                  style="width: 100%;"
-                  v-model="form.billNo"
-                  size="small"
-                  autocomplete="off"
-                  :disabled="true"
-                  clearable
-                  placeholder="保存后生成"
-                >
-                </el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
+            <el-col :span="4">
               <el-form-item label="来源业务编号" prop="srcBlllNo">
                 <el-input
                   style="width: 100%;"
@@ -107,25 +157,25 @@
                   autocomplete="off"
                   :disabled="true"
                   clearable
-                  placeholder="来源业务编号"
+                  placeholder=""
                 >
                 </el-input>
               </el-form-item>
             </el-col>
-            <!--<el-col :span="6">-->
-            <!--    <el-form-item label="附件" prop="billNo">-->
-            <!--        <el-input type="" style="width: 100%;" v-model="form.billNo"-->
-            <!--                  size="small" autocomplete="off"-->
-            <!--                  clearable placeholder="请输入附件" >-->
-            <!--        </el-input>-->
-            <!--    </el-form-item>-->
-            <!--</el-col>-->
+            <el-col :span="4">
+                <el-form-item label="附件" prop="attachmentCount">
+                    <el-input type="number" style="width: 100%;" v-model="form.attachmentCount"
+                              size="small" autocomplete="off"
+                              clearable placeholder="请输入附件" >
+                    </el-input>
+                </el-form-item>
+            </el-col>
           </el-row>
         </el-form>
       </el-card>
 
       <el-card style="margin-top: 10px">
-        <div style="margin-bottom: 10px">
+        <div v-if="getVoucherCanModify" style="margin-bottom: 10px">
           <el-button
             size="small"
             type="primary"
@@ -160,9 +210,10 @@
                     -->
         </div>
         <fromtable-details
+          :assemblyForm="form"
           :tableData="form.finVouchersItemsList"
           :handleSelectionData="handleSelectionData"
-          :disabled="form.voucherStatus == 1"
+          :disabled="!getVoucherCanModify"
           @handleSelectionChange="handleSelectionChange"
           @addRowsfun="addRowsfun"
           @deletefun="deletefun"
@@ -326,7 +377,7 @@
                 </tree-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12" v-if="subjectAccount.isEmpl || subjectAccount.isCorp">
+            <el-col :span="12" v-if="subjectAccount.isEmpl">
               <!--<div>职员核算:</div>-->
               <el-form-item label="职员名称:" prop="emplName">
                 <search-query
@@ -391,6 +442,7 @@ import { getList as userGetList } from "@/api/system/user";
 import { baccitemstypeList } from "@/api/iosBasicData/baccitemstype";
 import bcorps from "@/views/iosBasicData/bcorps/index.vue";
 import { selectEmpls } from "@/api/approval/processConfig";
+import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 
 export default {
   components: { bcorps, TreeSelect, SearchQuery, fromtableDetails },
@@ -398,12 +450,13 @@ export default {
     return {
       pageLoading: false, // 整个的动画
       saveLoading: false, // 按钮动画
+      saberUserInfo: {}, // 当前登录人信息
       // 获取的数据
       form: {
         voucherSource: "MANUAL",
         voucherSourceName: "手工凭证",
         voucherType: "VOUNO-TRANS", // 凭证类型
-        voucherTypeName: "转账",
+        voucherTypeName: "转账凭证",
         voucherDate: getCurrentDate(),
         finVouchersItemsList: []
       },
@@ -420,8 +473,17 @@ export default {
     };
   },
   created() {
+    this.saberUserInfo = JSON.parse(localStorage.getItem("saber-userInfo")).content;
+    if(!this.saberUserInfo){
+      this.saberUserInfo = {}
+    }
     this.getWorkDictsfun();
   },
+  computed:{
+    getVoucherCanModify(){
+      return !this.form.id || (this.saberUserInfo.user_id==this.form.createUser && this.form.voucherStatus != 1 && this.form.voucherSource === 'MANUAL');
+    },
+  },
   methods: {
     addEdit() {
       if (this.form.voucherStatus == 1) {
@@ -549,6 +611,7 @@ export default {
     finvouchersSubmitfun(type) {
       this.form.businessTypeCode = "PZDH";
       this.form.billNoFormat = "BILL-NO";
+      this.form.attachmentCount = parseInt(this.forceNumber(this.form.attachmentCount))
       if (this.form.finVouchersItemsList.length < 2) {
         return this.$message.warning("请填写至少凭证两笔分录后再保存!");
       }
@@ -711,7 +774,7 @@ export default {
         for (let item of this.voucherTypeData) {
           if (item.dictKey == value) {
             found = true;
-            this.$set(this.form, "voucherTypeName", item.dictValue);
+            this.$set(this.form, "voucherTypeName", item.dictValue + "凭证");
           }
         }
         if (!found) {
@@ -773,13 +836,18 @@ export default {
         } else if (this.voucherTypeData.length > 0) {
           vt = this.voucherTypeData[0];
           this.$set(this.form, "voucherType", vt.dictKey);
-          this.$set(this.form, "voucherTypeName", vt.dictValue);
+          this.$set(this.form, "voucherTypeName", vt.dictValue + "凭证");
         }
         console.log(this.form);
       });
-      getWorkDicts("voucher_source_los").then(res => {
-        this.voucherSourceData = res.data.data;
-      });
+      bbusinesstypeList(1,100,{enableVoucher:'1'}).then(res => {
+        let data=[{id: 0, code: "MANUAL", cnName: "手工凭证"}].concat(res.data.data.records)
+        this.voucherSourceData = data;
+      })
+
+      // getWorkDicts("voucher_source_los").then(res => {
+      //   this.voucherSourceData = res.data.data;
+      // });
     },
     //返回列表
     backToList() {

+ 44 - 7
src/views/iosBasicData/finvouchers/index.vue

@@ -10,13 +10,21 @@
           @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 321)"
           @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 321)" @on-load="onLoad">
           <template slot="menuLeft">
+            <div style="margin-top: 0px; width: 260px">
+              <el-tabs type="card" v-model="query.voucherStatus" @tab-click="handleClick">
+                <el-tab-pane label="新建凭证" name="0"></el-tab-pane>
+                <el-tab-pane label="已记账凭证" name="1"></el-tab-pane>
+              </el-tabs>
+            </div>
+          </template>
+          <template slot="menuRight">
             <el-button type="primary" size="small" icon="el-icon-plus" @click="addbtnfun()">新建财务凭证
             </el-button>
             <el-button type="danger" size="small" icon="el-icon-delete" plain @click="handleDelete">删 除
             </el-button>
             <el-button type="success" size="small" plain @click.stop="voucherAccountingfun">凭证记账
             </el-button>
-            <el-button type="danger" size="small" plain @click="revokeFinVouchersfun">撤销记账
+            <el-button type="danger" size="small" style="margin-right: 40px" plain @click="revokeFinVouchersfun">撤销记账
             </el-button>
           </template>
           <template slot="menu" slot-scope="{row}">
@@ -50,13 +58,16 @@ import finvouchersitems from "@/views/iosBasicData/finvouchers/finvouchersitems.
 import finstlbillsDetails from "@/views/iosBasicData/finstlbills/finstlbillsDetails.vue";
 import { getWorkDicts } from "@/api/system/dictbiz";
 import CustomLoading from '@/views/iosBasicData/finvouchers/components/loading.vue'
+import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 export default {
   data() {
     return {
       datekey: Date.now(),
       isShow: true, // 详情弹窗
       form: {},
-      query: {},
+      query: {
+        voucherStatus: "0",
+      },
       loading: true,
       page: {
         pageSize: 10,
@@ -206,15 +217,27 @@ export default {
             search: true,
             type: 'select',
             dicData: [],
-            dicUrl: "/api/blade-system/dict-biz/dictionary?code=voucher_source_los",
+            // dicUrl: "/api/blade-system/dict-biz/dictionary?code=voucher_source_los",
             props: {
-              label: "dictValue",
-              value: "dictKey"
+              label: "cnName",
+              value: "code"
             },
             overHidden: true,
             width: 100,
           },
           {
+            label: "制单人",
+            prop: "createUserName",
+            overHidden: true,
+            width: 80,
+          },
+          {
+            label: "制单时间",
+            prop: "createTime",
+            overHidden: true,
+            width: 100,
+          },
+          {
             label: "复核人",
             prop: "checkUserName",
             overHidden: true,
@@ -309,9 +332,14 @@ export default {
         this.findObject(this.option.column, "isForeign").dicData = res.data.data;
         this.findObject(this.option.column, "isQuantity").dicData = res.data.data;
       })
-      getWorkDicts("voucher_source_los").then(res => {
-        this.findObject(this.option.column, "voucherSource").dicData = res.data.data;
+
+      bbusinesstypeList(1,100,{enableVoucher:'1'}).then(res => {
+        let data=[{id: 0, code: "MANUAL", cnName: "手工凭证"}].concat(res.data.data.records)
+        this.findObject(this.option.column, "voucherSource").dicData = data;
       })
+      // getWorkDicts("voucher_source_los").then(res => {
+      //   this.findObject(this.option.column, "voucherSource").dicData = res.data.data;
+      // })
     },
 
     // 凭证记账
@@ -509,6 +537,15 @@ export default {
     refreshChange() {
       this.onLoad(this.page, this.query);
     },
+    // tabs切换筛选
+    handleClick(tab, event) {
+      this.page = {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      };
+      this.onLoad(this.page, this.query);
+    },
     onLoad(page, params = {}) {
       this.loading = true;
       finvouchersList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {

+ 7 - 6
src/views/iosBasicData/report-container/report-container-los.vue

@@ -11,9 +11,10 @@
     class="el-dialogDeep"
     :fullscreen="true"
   >
-    <div id="reportContainer" style="width: 100%; height: 98vh; padding: 0"></div>
+<!--    height: 98vh;-->
+    <div id="reportContainer" style="width: 100%; padding: 0" class="element"></div>
       <div class="slotDiv" v-if="butShow">
-          <div style="background-color: #fff;width: 23vw;padding: 15px;box-sizing: border-box;box-shadow:1px 2px 8px rgba(0,0,0,.5);position: absolute;right: 10px;bottom: 10px;z-index: 999;">
+          <div style="background-color: #fff;width: 600px;padding: 0px;box-sizing: border-box;box-shadow:1px 2px 8px rgba(0,0,0,.5);position: absolute;right: 10px;bottom: 10px;z-index: 999;">
               <slot></slot>
           </div>
       </div>
@@ -57,15 +58,12 @@ export default {
       }
       this.refreshFun = refreshFun
       this.visible = true
-      console.log(window.reportContainer)
-      console.log('showContainer')
     },
     hideContainer() {
       if (typeof this.refreshFun == 'function') {
         this.refreshFun()
       }
       this.visible = false
-      console.log('hideContainer')
     }
   }
 }
@@ -76,7 +74,7 @@ export default {
 }
 .slotDiv {
     width: 100%;
-    margin: 10px 0;
+    // margin: 10px 0;
     // height: 20vh;
     // position: absolute;
     // bottom: 0;
@@ -87,4 +85,7 @@ export default {
     // justify-content: center;
     z-index: 999;
 }
+.element {
+  height: calc(100vh - 66px);
+}
 </style>

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů