Kaynağa Gözat

货代发送EDI菜单 2023-12-4

caojunjie 1 yıl önce
ebeveyn
işleme
0be90371a2

+ 1 - 0
public/MP_verify_5RjDSJ1rd9kpkdYc.txt

@@ -0,0 +1 @@
+5RjDSJ1rd9kpkdYc

+ 50 - 0
src/api/iosBasicData/editypes.js

@@ -0,0 +1,50 @@
+import request from '@/router/axios';
+
+export const editypesList = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/editypes/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+
+export const editypesDetail = (id) => {
+  return request({
+    url: '/api/blade-los/editypes/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const editypesRemove = (ids) => {
+  return request({
+    url: '/api/blade-los/editypes/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const editypesSubmit = (row) => {
+  return request({
+    url: '/api/blade-los/editypes/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-los/editypes/submit',
+    method: 'post',
+    data: row
+  })
+}
+

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

@@ -1498,6 +1498,10 @@ const columnName = [{
     code: 324,
     name: '货运代理-财务管理-计算中心'
   },
+  {
+    code: 325,
+    name: '货运代理-基础资料-发送EDI'
+  },
 ]
 export const getColumnName = (key) => {
   for (let index = 0; index < columnName.length; index++) {

+ 41 - 25
src/views/billM/billingCenter/index.vue

@@ -52,31 +52,7 @@
         <!--  </el-button>-->
       </template>
       <template slot="billNo" slot-scope="scope" @click="billNoDetails(scope.row)">
-        <avue-text-ellipsis :text="scope.row.billNo"
-                            style="color: #1e9fff;cursor: pointer"
-                            :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="mblno" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.mblno" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="hblno" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.hblno" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="voucherNo" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.voucherNo" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="remarks" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.remarks" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
+          <span style="color: #1e9fff;cursor: pointer" >{{scope.row.billNo}}</span>
       </template>
     </avue-crud>
   </basic-container>
@@ -121,6 +97,7 @@
               prop: "billNo",
               search: true,
               width:"180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入账单编号",
@@ -134,6 +111,7 @@
               width:"100",
               valueFormat:'yyyy-MM-dd',
               format: 'yyyy-MM-dd',
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入账单日期",
@@ -152,6 +130,7 @@
                 label:'应付',
                 value:'C'
               }],
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入账单属性",
@@ -165,6 +144,7 @@
               width:"100",
               valueFormat:'yyyy-MM-dd',
               format: 'yyyy-MM-dd',
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入财务日期",
@@ -181,6 +161,7 @@
                   format:'yyyy-MM-dd',
                   valueFormat:'yyyy-MM-dd',
                   searchRange: true,
+                  overHidden:true,
                   rules: [{
                       required: true,
                       message: "请输入财务日期",
@@ -198,6 +179,7 @@
                 label:'海运进口',
                 value:'SI'
               }],
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入业务类型",
@@ -209,6 +191,7 @@
               prop: "businessBillNo",
               search: true,
               width:"180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入业务单据编号",
@@ -222,6 +205,7 @@
               width:"180",
               valueFormat:'yyyy-MM-dd',
               format: 'yyyy-MM-dd',
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入业务单据日期",
@@ -234,6 +218,7 @@
                   search: true,
                   hide: true,
                   width:"100",
+                  overHidden:true,
                   type: 'daterange',
                   format:'yyyy-MM-dd',
                   valueFormat:'yyyy-MM-dd',
@@ -248,6 +233,7 @@
               label: "付款方式",
               prop: "paymode",
               type: 'select',
+              overHidden:true,
               dicData:[{
                 label:'预付',
                 value:'PP'
@@ -306,6 +292,7 @@
               prop: "mblno",
               search: true,
               width:"180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入MB/L NO",
@@ -317,6 +304,7 @@
               prop: "hblno",
               width:"180",
               search: true,
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入HB/L NO",
@@ -328,6 +316,7 @@
               prop: "refno",
               search: true,
               width:"180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入Reference NO",
@@ -337,6 +326,7 @@
             {
               label: "CNY应收",
               prop: "amountDr",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入本位币应收(CNY)",
@@ -346,6 +336,7 @@
             {
               label: "CNY应付",
               prop: "amountCr",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入本位币应付(CNY)",
@@ -356,6 +347,7 @@
               label: "综合USD应收",
               prop: "amountDrUsd",
               width:"120",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入综合 USD 应收(USD) - 非 USD 外币转换为 USD",
@@ -366,6 +358,7 @@
               label: "综合USD应付",
               prop: "amountCrUsd",
               width:"120",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入综合 USD 应付(USD) - 非 USD 外币转换为 USD",
@@ -376,6 +369,7 @@
               label: "合计CNY应收",
               prop: "amountDrLoc",
               width:"120",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入合计本位币应收(CNY )",
@@ -386,6 +380,7 @@
               label: "合计CNY应付",
               prop: "amountCrLoc",
               width:"120",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入合计本位币应付(CNY)",
@@ -396,6 +391,7 @@
               label: "结算单据编号",
               prop: "stlBillNo",
               width:"180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入结算单据编号",
@@ -409,6 +405,7 @@
               width:"100",
               valueFormat:'yyyy-MM-dd',
               format: 'yyyy-MM-dd',
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入结算日期",
@@ -419,6 +416,7 @@
               label: "已结算CNY应收",
               prop: "stlAmountDr",
               width:"120",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入已结算本位币应收(CNY)",
@@ -429,6 +427,7 @@
               label: "已结算CNY应付",
               prop: "stlAmountCr",
               width:"120",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入已结算本位币应付(CNY)",
@@ -439,6 +438,7 @@
               label: "已结算综合USD应收",
               prop: "stlAmountDrUsd",
               width:"140",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入已结算综合 USD 应收(USD) - 非 USD 外币转换为 USD",
@@ -449,6 +449,7 @@
               label: "已结算综合USD应付",
               prop: "stlAmountCrUsd",
               width:"140",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入已结算综合 USD 应付(USD) - 非 USD 外币转换为 USD",
@@ -459,6 +460,7 @@
               label: "已结算合计CNY应收",
               prop: "stlAmountDrLoc",
               width:"140",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入已结算合计本位币应收(CNY )",
@@ -469,6 +471,7 @@
               label: "已结算合计CNY应付",
               prop: "stlAmountCrLoc",
               width:"140",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入已结算合计本位币应付(CNY)",
@@ -478,6 +481,7 @@
             {
               label: "发票号",
               prop: "invoiceNo",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入发票号",
@@ -491,6 +495,7 @@
               width:"100",
               valueFormat:'yyyy-MM-dd',
               format: 'yyyy-MM-dd',
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入发票日期",
@@ -498,9 +503,15 @@
               }]
             },
             {
+                label: "开票CNY",
+                prop: "invoiceNo",
+                overHidden:true,
+            },
+            {
               label: "凭证号",
               prop: "voucherNo",
               width:"180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入凭证号",
@@ -514,6 +525,7 @@
               width:"100",
               valueFormat:'yyyy-MM-dd',
               format: 'yyyy-MM-dd',
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入凭证日期",
@@ -531,6 +543,7 @@
                 label:'已对账',
                 value:1
               }],
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入是否对账",
@@ -551,6 +564,7 @@
                 label:'销账',
                 value:9
               }],
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入是否销账",
@@ -568,6 +582,7 @@
                 label:'已完成',
                 value:1
               }],
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入账单状态",
@@ -578,6 +593,7 @@
               label: "备注",
               prop: "remarks",
               width: "180",
+              overHidden:true,
               rules: [{
                 required: true,
                 message: "请输入备注",

+ 4 - 0
src/views/iosBasicData/ComputationCenter/settlementDetails.vue

@@ -547,6 +547,7 @@ export default {
                 this.form.businessTypeCode = 'STL'
                 this.form.businessType = 'STL' // 结算单
                 this.form.businessTypes = this.form.businessTypes?this.form.businessTypes.join(','):'' // 业务类型
+                this.form.settlementType = this.settlementType
                 this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
                     if (item.currentStlCurCode == 'CNY') {
                         item.currentStlAmount = item.currentStlAmountRMB
@@ -611,6 +612,9 @@ export default {
         // 结算按钮
         generateFinStlBillsfun(id,dc){
             this.pageLoading = true
+            if (dc == 'C' || dc == 'D') {
+                this.settlementType = dc
+            }
             generateFinStlBills({
                 billId:id,
                 dc:dc

+ 1 - 1
src/views/iosBasicData/PaymentApplication/finstlbillsDetails.vue

@@ -19,7 +19,7 @@
                 <el-button  size="small" type="warning" plain  style="margin-right: 8px" :disabled="!form.id" v-if="form.status == '1'"
                             :loading="saveLoading" @click="revokeSettlementApprovefun">撤销申请
                 </el-button>
-                <span v-if="form.status == '3'" style="font-size: 12px;padding-right: 10px;" >申请通过</span>
+                <span v-if="form.status == '3'" style="font-size: 12px;padding-right: 10px;" >审核通过</span>
                 <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="!(form.status == '0' || form.status == '4')" v-if="editSave"
                             :loading="saveLoading" @click="editHandle">编 辑
                 </el-button>

+ 4 - 4
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -26,14 +26,14 @@
                         </el-form-item>
                     </el-col>
                     <el-col :span="6">
-                        <el-form-item label="EDI" prop="ediEmail" >
+                        <el-form-item label="箱型箱量" prop="containers" >
                             <span slot="label">
-                                <span style="color: #1e9fff">EDI</span>
+                                <span style="color: #1e9fff">箱型箱量</span>
                             </span>
-                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.ediEmail"
+                            <el-input type="age" style="width: 100%;" v-model="assemblyForm.containers"
                                       size="small" autocomplete="off"
                                       disabled
-                                      clearable placeholder="EDI" ></el-input>
+                                      clearable placeholder="箱型箱量" ></el-input>
                         </el-form-item>
                     </el-col>
                     <el-col :span="6">

+ 0 - 7
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -1318,13 +1318,6 @@ import {popupReminder} from "@/util/messageReminder";
                     for(let item of this.form.containersList) {
                         item.edit = false
                     }
-                    // 配箱最下面的
-                    for(let item of this.form.waitingBoxList) {
-                        this.$set(item,'editQuantity',item.quantity)
-                        this.$set(item,'editGrossWeight',item.grossWeight)
-                        this.$set(item,'editMeasurement',item.measurement)
-                        this.$set(item,'edit',false)
-                    }
                     // 先把状态改成可以编辑,然后判断是否可以编辑
                     this.generateBillsfalse = false
                     // 应收

+ 541 - 0
src/views/iosBasicData/editypes/index.vue

@@ -0,0 +1,541 @@
+<template>
+  <div>
+      <basic-container>
+          <avue-crud :option="option"
+                     :table-loading="loading"
+                     :data="data"
+                     :page.sync="page"
+                     :permission="permissionList"
+                     :before-open="beforeOpen"
+                     v-model="form"
+                     ref="crud"
+                     id="out-table"
+                     :header-cell-class-name="headerClassName"
+                     @row-update="rowUpdate"
+                     @row-save="rowSave"
+                     @row-del="rowDel"
+                     @search-change="searchChange"
+                     @search-reset="searchReset"
+                     @selection-change="selectionChange"
+                     @current-change="currentChange"
+                     @size-change="sizeChange"
+                     @refresh-change="refreshChange"
+                     @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 325)"
+                     @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 325)"
+                     @on-load="onLoad">
+              <template slot="menuLeft">
+                  <el-button type="success"
+                             size="small"
+                             icon="el-icon-plus"
+                             plain
+                             @click="addfun">新建
+                  </el-button>
+                  <el-button type="danger"
+                             size="small"
+                             icon="el-icon-delete"
+                             plain
+                             @click="handleDelete">删 除
+                  </el-button>
+              </template>
+              <template slot="corpCnNameForm">
+                  <search-query :datalist="corpData"
+                                :selectValue="form.corpCnName"
+                                :clearable="true"
+                                :filterable="true"
+                                :remote="true"
+                                :buttonIf="false"
+                                :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
+                                @corpChange="corpChange($event,'corpCnName')"
+                                @remoteMethod="corpBcorpsListfun"
+                                @corpFocus="corpBcorpsListfun" >
+                  </search-query>
+              </template>
+              <template slot="addressForm">
+                  <el-button type="success"
+                             size="small"
+                             icon="el-icon-plus"
+                             plain
+                             @click="ressButton" >发送
+                  </el-button>
+              </template>
+              <template slot="userlistForm">
+                  <search-query :datalist="userData"
+                                :selectValue="form.userlist"
+                                :clearable="true"
+                                :multiple="true"
+                                :collapseTags="false"
+                                :buttonIf="false"
+                                :forParameter="{ key:'id', label:'roleName', value:'id'}"
+                                @corpChange="corpChange($event,'userlist')"
+                                @corpFocus="getRoleListfun" >
+                  </search-query>
+              </template>
+              <template slot="menu" slot-scope="{row}">
+                  <el-button type="text"
+                             size="small"
+                             @click="editFun(row)">编辑
+                  </el-button>
+                  <el-button type="text"
+                             size="small"
+                             @click="rowDel(row)">删除
+                  </el-button>
+              </template>
+          </avue-crud>
+      </basic-container>
+      <el-dialog title="title" :visible.sync="ressVisible" width="70%" top="5vh" append-to-body
+                 class="el-dialogDeep" :close-on-click-modal="false" v-dialog-drag>
+          <div>
+              <avue-crud :option="ressOption" :data="tableData"
+                         id="out-table"
+                         :header-cell-class-name="headerClassName"
+                         @row-update="ressRowupdate"
+                         @row-save="ressRowsave" ></avue-crud>
+          </div>
+          <span slot="footer" class="dialog-footer">
+            <el-button @click="ressVisible = false;form.address = JSON.stringify(tableData)">取 消</el-button>
+            <el-button type="primary" @click="ressVisible = false;form.address = JSON.stringify(tableData)">确 定</el-button>
+          </span>
+      </el-dialog>
+  </div>
+</template>
+
+<script>
+  import {editypesList, editypesDetail, editypesSubmit, editypesRemove} from "@/api/iosBasicData/editypes";
+  import {mapGetters} from "vuex";
+  import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+  import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
+  import {getList as getRoleList} from "@/api/system/role"
+
+  export default {
+      components: {SearchQuery},
+    data() {
+      return {
+        form: {
+            userlist:[],
+        },
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        selectionList: [],
+        option:{},
+        optionBack: {
+          height:'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+            menuWidth:140,
+          column: [
+            {
+              label: "edi编码",
+              prop: "code",
+              overHidden:true,
+              rules: [{
+                required: true,
+                message: "请输入edi 编码,唯一",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "edi名称",
+              prop: "cnName",
+              overHidden:true,
+              rules: [{
+                required: true,
+                message: "请输入edi 中文名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "edi英文",
+              prop: "enName",
+              overHidden:true,
+              rules: [{
+                required: true,
+                message: "请输入edi 英文名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "客户名称",
+              prop: "corpCnName",
+              overHidden:true,
+              rules: [{
+                  required: true,
+                  message: "请输入客户 id",
+                  trigger: "blur"
+              }]
+            },
+            {
+              label: "客户英文名称",
+              prop: "corpEnName",
+              display:false,
+              overHidden:true,
+            },
+            {
+              label: "发送ftp/邮件",
+              prop: "address",
+              overHidden:true,
+            },
+            {
+              label: "权限用户",
+              prop: "userlist",
+              overHidden:true,
+            },
+            {
+              label: "状态",
+              prop: "status",
+              overHidden:true,
+            },
+            {
+                label: "创建人",
+                prop: "createUserName",
+                overHidden:true,
+                display:false,
+            },
+            {
+                label: "创建部门",
+                prop: "createDeptName",
+                overHidden:true,
+                display:false,
+            },
+            {
+                label: "创建时间",
+                prop: "createTime",
+                overHidden:true,
+                display:false,
+            },
+            {
+                label: "修改人",
+                prop: "updateUserName",
+                overHidden:true,
+                display:false,
+            },
+            {
+                label: "修改时间",
+                prop: "updateTime",
+                overHidden:true,
+                display:false,
+            },
+            {
+              label: "备注",
+              prop: "remarks",
+              overHidden:true,
+              type: "textarea",
+              minRows: 3,
+            },
+          ]
+        },
+        data: [],
+          corpData:[], // 客户下拉数据
+          userData:[], // 权限用户数据
+          ressVisible:false, // 弹窗
+          tableData:[], // 弹窗表格
+          // 弹窗表格的配置
+          ressOption:{
+              border: true,
+              index: true,
+              refreshBtn:false,
+              columnBtn:false,
+              addBtn:false,
+              addRowBtn:true,
+              cellBtn:true,
+              rowKey:'$index',
+              menuWidth:140,
+              column:[{
+                  label:'title',
+                  prop: 'title',
+                  cell: true,
+              },{
+                  label:'mode',
+                  prop: 'mode',
+                  cell: true,
+                  type: "select",
+                  dicData: [
+                      {
+                          label:'ftp',
+                          value:'ftp'
+                      },
+                      {
+                          label:'email',
+                          value:'email'
+                      }
+                  ],
+                  rules: [{
+                      required: true,
+                      message: "",
+                      trigger: "blur"
+                  }],
+              },{
+                  label:'address',
+                  prop: 'address',
+                  cell: true,
+              },{
+                  label:'host',
+                  prop: 'host',
+                  cell: true,
+              },{
+                  label:'userName',
+                  prop: 'userName',
+                  cell: true,
+              },{
+                  label:'password',
+                  prop: 'password',
+                  cell: true,
+              },{
+                  label:'path',
+                  prop: 'path',
+                  cell: true,
+              }]
+          }
+      };
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.editypes_add, false),
+          viewBtn: this.vaildData(this.permission.editypes_view, false),
+          delBtn: this.vaildData(this.permission.editypes_delete, false),
+          editBtn: this.vaildData(this.permission.editypes_edit, false)
+        };
+      },
+      ids() {
+        let ids = [];
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id);
+        });
+        return ids.join(",");
+      }
+    },
+    async created() {
+        this.option = await this.getColumnData(this.getColumnName(325), this.optionBack);
+        this.getRoleListfun()
+    },
+    methods: {
+      // 添加
+      addfun(){
+          this.$refs.crud.rowAdd()
+      },
+      // 编辑
+      editFun(row){
+          this.$refs.crud.rowEdit(row,row.$index)
+      },
+      // 下拉回调
+      corpChange(value,name){
+          if (name == 'corpCnName') {
+              for (let item of this.corpData) {
+                  if (item.cnName == value) {
+                      this.$set(this.form,'corpId',item.id)
+                      this.$set(this.form,'corpCnName',item.cnName)
+                      this.$set(this.form,'corpEnName',item.enName)
+                  }
+              }
+          }else {
+              this.$set(this.form,name,value)
+          }
+
+      },
+      // 获取结算单位数据
+      corpBcorpsListfun(cnName){
+          getBcorpslistByType(1,10,{cnName}).then(res=>{
+              this.corpData = res.data.data.records
+          })
+      },
+      // 获取权限用户数据
+      getRoleListfun(){
+          getRoleList(1,50,).then(res=>{
+              this.userData = res.data.data
+          })
+      },
+      // 点击弹出表格
+      ressButton(){
+          this.tableData = JSON.parse(this.form.address?this.form.address:'[]')
+          this.ressVisible = true
+      },
+        // 弹窗表格的添加保存
+      ressRowsave(row,done,loading){
+          done(row)
+      },
+        // 弹窗表格的修改保存
+      ressRowupdate(row,index,done,loading){
+          done(row)
+      },
+      // 新增
+      rowSave(row, done, loading) {
+          console.log(row,237)
+          row.userlist = JSON.stringify(row.userlist)
+        editypesSubmit(row).then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        }, error => {
+          loading();
+          window.console.log(error);
+        });
+      },
+      rowUpdate(row, index, done, loading) {
+          row.userlist = JSON.stringify(row.userlist)
+        editypesSubmit(row).then(() => {
+          this.onLoad(this.page);
+          this.$message({
+            type: "success",
+            message: "操作成功!"
+          });
+          done();
+        }, error => {
+          loading();
+          console.log(error);
+        });
+      },
+      rowDel(row) {
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            return editypesRemove(row.id);
+          })
+          .then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+          });
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("请选择至少一条数据");
+          return;
+        }
+        this.$confirm("确定将选择数据删除?", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        })
+          .then(() => {
+            return editypesRemove(this.ids);
+          })
+          .then(() => {
+            this.onLoad(this.page);
+            this.$message({
+              type: "success",
+              message: "操作成功!"
+            });
+            this.$refs.crud.toggleSelection();
+          });
+      },
+      beforeOpen(done, type) {
+        if (["edit", "view"].includes(type)) {
+          editypesDetail(this.form.id).then(res => {
+            this.form = res.data.data;
+            this.form.userlist = JSON.parse(this.form.userlist)
+          });
+        }
+        done();
+      },
+      searchReset() {
+        this.query = {};
+        this.onLoad(this.page);
+      },
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+        done();
+      },
+      selectionChange(list) {
+        this.selectionList = list;
+      },
+      selectionClear() {
+        this.selectionList = [];
+        this.$refs.crud.toggleSelection();
+      },
+      currentChange(currentPage){
+        this.page.currentPage = currentPage;
+      },
+      sizeChange(pageSize){
+        this.page.pageSize = pageSize;
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      onLoad(page, params = {}) {
+        this.loading = true;
+        editypesList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records;
+          this.loading = false;
+          this.selectionClear();
+        });
+      },
+
+      //自定义列保存
+      async saveColumnTwo(ref, option, optionBack, code) {
+          /**
+           * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+           * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+           * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+           */
+          const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+          if (inSave) {
+              this.$message.success("保存成功");
+              //关闭窗口
+              this.$refs[ref].$refs.dialogColumn.columnBox = false;
+          }
+      },
+      //自定义列重置
+      async resetColumnTwo(ref, option, optionBack, code) {
+          this[option] = this[optionBack];
+          const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+          if (inSave) {
+              this.$message.success("重置成功");
+              this.$refs[ref].$refs.dialogColumn.columnBox = false;
+          }
+      },
+      // 更改表格颜色
+      headerClassName(tab) {
+          //颜色间隔
+          let back = ""
+          if (tab.columnIndex >= 0 && tab.column.level === 1) {
+              if (tab.columnIndex % 2 === 0) {
+                  back = "back-one"
+              } else if (tab.columnIndex % 2 === 1) {
+                  back = "back-two"
+              }
+          }
+          return back;
+      },
+      // 表头样式
+      tableHeaderCellStyle({row,column,rowIndex, columnIndex}){
+          return "padding:4px 0px;fontSize:12px;color:#000;background:#ecf5ff"
+      },
+
+
+    }
+  };
+</script>
+
+<style scoped>
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+}
+::v-deep#out-table .back-two {
+    background: #ecf5ff !important;
+}
+</style>

+ 1 - 1
src/views/iosBasicData/fininvoices/assembly/fininvoicesitems.vue

@@ -363,7 +363,7 @@
     text-overflow: ellipsis;
 }
 ::v-deep.current-row {
-    background: red;
+    background: #ecf3ff;
 }
 .textHide {
     width: 100%;

+ 1 - 1
src/views/iosBasicData/fininvoicesApplyfor/assembly/fininvoicesitems.vue

@@ -318,7 +318,7 @@
     text-overflow: ellipsis;
 }
 ::v-deep.current-row {
-    background: red;
+    background: #ecf3ff;
 }
 .textHide {
     width: 100%;

+ 1 - 0
src/views/iosBasicData/fininvoicesApplyfor/fininvoicesDetails.vue

@@ -984,6 +984,7 @@ export default {
                         item.accDate = item.createTime
                         item.currentCurCode = item.curCode
                         item.currentExrate = item.exrate
+                        item.dc = item.accountDc
                         if (item.currentCurCode == 'CNY') {
                             // 本次发票金额
                             item.currentAmountCNY = (Number(item.amount) - Number(item.appliedInvoiceAmount)).toFixed(2)

+ 1 - 1
src/views/iosBasicData/fininvoicesOutput/assembly/fininvoicesitems.vue

@@ -370,7 +370,7 @@
     text-overflow: ellipsis;
 }
 ::v-deep.current-row {
-    background: red;
+    background: #ecf3ff;
 }
 .textHide {
     width: 100%;

+ 43 - 22
src/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue

@@ -3,7 +3,6 @@
         <!--:row-style="{height:'20px',padding:'0px',fontSize:'12px'}"-->
         <el-table
             ref="tableRef"
-            :cell-style="{padding:'0px',fontSize:'12px'}"
             :header-cell-style="tableHeaderCellStyle"
             :data="tableData"
             border
@@ -12,6 +11,7 @@
             @row-click="rowClick"
             :row-style="rowStyle"
             :row-class-name="rowClassName"
+            :cell-style="cellStyle"
             @expand-change="expandChange" >
             <el-table-column
                 v-if="brfalse"
@@ -35,11 +35,19 @@
                 label="行号" width="50px">
             </el-table-column>
             <el-table-column
-                prop="lineNo"
+                prop="dc"
+                label="收付" width="50px">
+                <template slot-scope="{row}">
+                    {{row.dc}}
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="billNo"
                 label="原业务编号" width="120px">
                 <template slot-scope="{ row }">
-                    <span class="textHide" v-if="row.businessBillDivideNo">{{row.businessBillDivideNo}}</span>
-                    <span class="textHide" v-else>{{row.businessBillNo}}</span>
+                    <span>{{row.billNo}}</span>
+                    <!--<span class="textHide" v-if="row.businessBillDivideNo">{{row.businessBillDivideNo}}</span>-->
+                    <!--<span class="textHide" v-else>{{row.businessBillNo}}</span>-->
                 </template>
             </el-table-column>
             <el-table-column
@@ -77,19 +85,20 @@
                 label="本次币种"
                 prop="currentStlCurCode" width="100">
                 <template slot-scope="{row}">
-                    <search-query v-if="!editSave"
-                                  :datalist="curCodeData"
-                                  :selectValue="row.currentStlCurCode"
-                                  :filterable="true"
-                                  :clearable="true"
-                                  :remote="true"
-                                  :buttonIf="false"
-                                  :forParameter="{key:'id',label:'code',value:'code'}"
-                                  @remoteMethod="getRateListfun"
-                                  @corpChange="corpChange($event,row)"
-                                  @corpFocus="getRateListfun">
-                    </search-query>
-                    <span v-else>{{row.currentStlCurCode}}</span>
+                    <!--<search-query v-if="!editSave"-->
+                    <!--              :datalist="curCodeData"-->
+                    <!--              :selectValue="row.currentStlCurCode"-->
+                    <!--              :filterable="true"-->
+                    <!--              :clearable="true"-->
+                    <!--              :remote="true"-->
+                    <!--              :buttonIf="false"-->
+                    <!--              :forParameter="{key:'id',label:'code',value:'code'}"-->
+                    <!--              @remoteMethod="getRateListfun"-->
+                    <!--              @corpChange="corpChange($event,row)"-->
+                    <!--              @corpFocus="getRateListfun">-->
+                    <!--</search-query>-->
+                    <!--<span v-else>{{row.currentStlCurCode}}</span>-->
+                    <span>{{row.currentStlCurCode}}</span>
                 </template>
             </el-table-column>
             <el-table-column label="本次结算金额">
@@ -97,7 +106,7 @@
                 <!--currentStlAmount-->
                 <el-table-column
                     prop="currentStlAmountRMB"
-                    label="CNY" width="60">
+                    label="CNY" width="80">
                     <template slot-scope="scope">
                         <!--<el-input style="width: 100%;" v-model="scope.row.currentStlAmountRMB" v-if="brfalse"-->
                         <!--          size="mini" autocomplete="off"-->
@@ -109,7 +118,7 @@
                 </el-table-column>
                 <el-table-column
                     prop="currentStlAmountUSD"
-                    label="USD" width="60">
+                    label="USD" width="80">
                     <template slot-scope="scope">
                         <!--<el-input style="width: 100%;" v-model="scope.row.currentStlAmountUSD" v-if="brfalse"-->
                         <!--          size="mini" autocomplete="off"-->
@@ -527,12 +536,24 @@
             // 判断方式也是通过判断rowIndex对比
             rowClassName({ row,  rowIndex }) {
                 let rowName = "",
-                    findRow = this.handleSelectionData.find(c => c.rowIndex === row.rowIndex);
+                    findRow = this.handleSelectionData.find(c => {
+                        return c.rowIndex === row.rowIndex
+                    });
                 if (findRow) {
                     rowName = "current-row "; // elementUI 默认高亮行的class类 不用再样式了^-^,也可通过css覆盖改变背景颜色
                 }
                 return rowName; //也可以再加上其他类名 如果有需求的话
             },
+            // 收付展示不一样的颜色
+            cellStyle({row,rowIndex,columnIndex}){
+                let rowStyle = ''
+                if (row.dc == 'D') {
+                    rowStyle = 'background:#8cb24b;'
+                }else if (row.dc == 'C') {
+                    rowStyle = 'background:#7ebace;'
+                }else {}
+                return  rowStyle + 'padding:0px;fontSize:12px'
+            },
         },
         mounted() {
             // 按住ctrl实现多选 设置监听keydown事件,以及keyup事件,
@@ -568,7 +589,7 @@
     white-space: nowrap;
     text-overflow: ellipsis;
 }
-::v-deep.current-row {
-    background: red;
+::v-deep .current-row {
+    background: #ecf3ff;
 }
 </style>

+ 2 - 2
src/views/iosBasicData/finstlbills/finstlbillsDetails.vue

@@ -711,7 +711,6 @@
                         item.accBillId = item.id
                         item.accBillNo = item.billNo
                         item.accDate = item.billDate
-                        item.dc = item.accountDc // 收付
                         if (item.currentStlCurCode == 'CNY') {
                             item.currentStlAmount = item.currentStlAmountRMB
                         }else {
@@ -721,7 +720,6 @@
                         if (!this.form.id) {
                             delete item.id
                         }
-                        delete item.billNo
                         delete item.billDate
                         delete item.accountDc
                         return item
@@ -823,6 +821,8 @@
                         item.lineNo = Number(index) + 1
                         this.$set(item,'currentStlCurCode',item.curCode)
                         this.$set(item,'currentStlExrate',item.exrate)
+                        item.billNo = item.businessBillDivideNo?item.businessBillDivideNo:item.businessBillNo
+                        item.dc = item.accountDc // 收付
                         if(item.curCode == 'CNY') {
                             this.$set(item,'amountRMB',item.amount)
                             this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)

+ 30 - 7
src/views/iosBasicData/rateManagement/detailsPage.vue

@@ -79,8 +79,18 @@
           :data="dataList"
           :table-loading="loading"
           :cell-style="cellStyle"
+          @row-save="rowSave"
+          @row-update="rowUpdate"
+          @selection-change="selectionChange"
         >
-            <template slot="menu" slot-scope="{row}">
+            <template slot="menuLeft">
+                <el-button
+                    type="danger" plain
+                    size="small"
+                    @click.stop="BatchDelete"
+                >批量删除</el-button>
+            </template>
+            <template v-if="!row.$cellEdit" slot="menu" slot-scope="{row}">
                 <el-button type="text"
                            size="small"
                            @click="editFun(row)">编辑
@@ -219,6 +229,7 @@ export default {
               type: "year",
               valueFormat: "yyyy",
               span: 6,
+              display: false,
             },
             {
               label: "月份",
@@ -319,7 +330,8 @@ export default {
 
         ]
       },
-      optionList: optionList
+      optionList: optionList,
+      selectionList:[],
     };
   },
   props: {
@@ -344,9 +356,17 @@ export default {
     // 编辑明细
     editFun(row){
         console.log(row,'编辑')
-        // dataList
+        this.$refs.crud.rowCell(row, row.$index)
 
     },
+    // 编辑点击保存
+    rowSave(row,done,loading){
+        done(row)
+    },
+    // 编辑点击保存
+    rowUpdate(row, index, done, loading){
+        done(row);
+    },
     // 删除
     rowDel(row){
         this.$confirm("确定将选择数据删除?", {
@@ -359,6 +379,9 @@ export default {
             })
         })
     },
+    selectionChange(list){
+        this.selectionList = list;
+    },
     cellStyle() {
       return "padding:0;height:40px;";
     },
@@ -368,9 +391,6 @@ export default {
         .then(res => {
           this.form = res.data.data
           this.form.annual = this.form.annual + ''
-          // for(let item of res.data.data.curExrateList) {
-          //
-          // }
           this.dataList = res.data.data.curExrateList
             ? res.data.data.curExrateList
             : [];
@@ -553,11 +573,14 @@ export default {
         handler(row,newValue) {
             if (row == "日汇率") {
                 this.findObject(this.option.column, "moon").display = true;
-                // this.findObject(this.option.column, "annual").disabled = true;
+                this.findObject(this.option.column, "annual").display = false;
             } else if (row == "月汇率") {
                 this.findObject(this.option.column, "moon").display = false;
+                this.findObject(this.option.column, "annual").display = false;
+                // this.$set(this.findObject(this.option.column, "annual"),'disabled',true)
             } else {
                 this.findObject(this.option.column, "moon").display = false;
+                this.findObject(this.option.column, "annual").display = true;
             }
         },
         deep: true, // 深度监听

+ 9 - 1
src/views/iosBasicData/rateManagement/js/optionList.js

@@ -34,9 +34,13 @@ export const optionList = {
   editBtn: false,
   delBtn: false,
   menu: true,
-  menuWidth:120,
+  menuWidth:140,
   stripe: true,
   dialogFullscreen: true,
+  addRowBtn:false,
+  cellBtn:true,
+  rowKey:'index',
+  selection:true,
   column: [{
     label: "币种代码",
     prop: "code",
@@ -78,20 +82,24 @@ export const optionList = {
     prop: "exrateReceivable",
     width: 150,
     overHidden: true,
+    cell:true,
   }, {
     label: "应付汇率",
     prop: "exratePayable",
     width: 150,
     overHidden: true,
+    cell:true,
   }, {
     label: "实收汇率",
     prop: "exrateReceipts",
     width: 150,
     overHidden: true,
+    cell:true,
   }, {
     label: "实付汇率",
     prop: "exratePayment",
     width: 150,
     overHidden: true,
+    cell:true,
   }]
 }

+ 2 - 2
src/views/tirePartsMall/salesManagement/purchaseOrder/detailsPage.vue

@@ -113,7 +113,7 @@
                                 <span v-else>{{ row.dot }}</span>
                             </template>
 
-                            <template slot="subTotalMoney" slot-scope="{ row }">{{row.goodsNum * row.price}}</template>
+                            <template slot="subTotalMoney" slot-scope="{ row }">{{(row.goodsNum * row.price).toFixed(2)}}</template>
 
                             <template slot="remarks" slot-scope="{ row }">
                                 <el-input v-if="!mingxibaocun" size="small" v-model="row.remarks" style="width: 100%"></el-input>
@@ -1168,7 +1168,7 @@ export default {
                 goodsNumhe += Number(item.goodsNum)
                 subTotalMoneyhe += Number(item.subTotalMoney)
             }
-            this.$alert(`<div style="text-align: center"><span style="color: #d85542">一件采购入库不可撤销,请确认无误在操作</span><br><span>本次入库金额:${subTotalMoneyhe}</span><br><span>本次入库数量:${goodsNumhe}</span><br><span>是否要一件采购入库?</span></div>`, '提示', {
+            this.$alert(`<div style="text-align: center"><span style="color: #d85542">一件采购入库不可撤销,请确认无误在操作</span><br><span>本次入库金额:${subTotalMoneyhe.toFixed(2)}</span><br><span>本次入库数量:${goodsNumhe}</span><br><span>是否要一件采购入库?</span></div>`, '提示', {
                 dangerouslyUseHTMLString: true,
             }).then(()=>{
                 const loading = this.$loading({