Browse Source

Merge remote-tracking branch 'origin/dev' into dev

liyuan 4 months ago
parent
commit
6e6c1e0fa7
37 changed files with 1777 additions and 262 deletions
  1. 1 0
      public/MP_verify_19GakY59B3nI8vep.txt
  2. 70 0
      src/api/iosBasicData/revenueInvoicing.js
  3. 11 0
      src/api/landTransportation/index.js
  4. 80 19
      src/components/dicSelect/main.vue
  5. 35 37
      src/components/trackPlayback.vue
  6. 6 0
      src/enums/column-name.js
  7. 14 0
      src/router/views/index.js
  8. 0 10
      src/views/approveDataH/configuration/mainList.json
  9. 0 1
      src/views/approveDataH/index.vue
  10. 107 23
      src/views/iosBasicData/AirtransportExport/bills/assembly/reports.vue
  11. 110 26
      src/views/iosBasicData/AirtransportImport/bills/assembly/reports.vue
  12. 6 3
      src/views/iosBasicData/ComputationCenter/settlementDetails.vue
  13. 1 1
      src/views/iosBasicData/OceanFreightImport/bills/assembly/DocumentCenter.vue
  14. 38 1
      src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue
  15. 110 26
      src/views/iosBasicData/OceanFreightImport/bills/assembly/reports.vue
  16. 2 2
      src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue
  17. 1 1
      src/views/iosBasicData/SeafreightExportF/bills/assembly/DocumentCenter.vue
  18. 7 6
      src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue
  19. 39 1
      src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue
  20. 125 49
      src/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue
  21. 8 3
      src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue
  22. 69 24
      src/views/iosBasicData/editypes/index.vue
  23. 3 1
      src/views/iosBasicData/fininvoicesApplyfor/fininvoicesDetails.vue
  24. 6 4
      src/views/iosBasicData/fininvoicesOutput/fininvoicesDetails.vue
  25. 582 0
      src/views/iosBasicData/revenueInvoicing/detailsPage.vue
  26. 298 0
      src/views/iosBasicData/revenueInvoicing/index.vue
  27. 1 1
      src/views/iosBasicData/seamends/assembly/amendsCostdetails.vue
  28. 1 1
      src/views/iosBasicData/siamends/assembly/amendsCostdetails.vue
  29. 1 1
      src/views/landTransportation/bulkReportAnalysis/index.vue
  30. 3 3
      src/views/landTransportation/placeAnOrder/detailPage.vue
  31. 1 1
      src/views/landTransportation/reportAnalysis/index.vue
  32. 1 1
      src/views/tirePartsMall/basicData/listingManagement/index.vue
  33. 6 3
      src/views/tirePartsMall/purchasingManagement/financingProcurement/detailsPage.vue
  34. 18 11
      src/views/tradeAgency/oceanFreightImport/detailsPage.vue
  35. 13 0
      src/views/tradeAgency/tradeAgency/detailsPage.vue
  36. 2 2
      src/views/wel/home/landTransportation/components/quick-launch.vue
  37. 1 0
      src/views/wel/home/landTransportation/components/sales-reached.vue

+ 1 - 0
public/MP_verify_19GakY59B3nI8vep.txt

@@ -0,0 +1 @@
+19GakY59B3nI8vep

+ 70 - 0
src/api/iosBasicData/revenueInvoicing.js

@@ -0,0 +1,70 @@
+import request from '@/router/axios';
+//进账开票列表
+export const getList = (current, size, params) => {
+    return request({
+        url: '/api/blade-los/invoicing/list',
+        method: 'get',
+        params: {
+            ...params,
+            current,
+            size
+        }
+    })
+}
+//进账开票明细
+export const getDetail = (data) => {
+    return request({
+        url: '/api/blade-los/invoicing/detail',
+        method: 'get',
+        params: data
+    })
+}
+
+//进账开票保存
+export const submit = (data) => {
+    return request({
+        url: '/api/blade-los/invoicing/submit',
+        method: 'post',
+        data: data
+    })
+}
+//进账开票删除
+export const remove = (data) => {
+  return request({
+      url: '/api/blade-los/invoicing/remove',
+      method: 'post',
+      params: data
+  })
+}
+//进账开票明细删除
+export const itemRemove = (data) => {
+    return request({
+        url: '/api/blade-los/invoicingitem/remove',
+        method: 'post',
+        params: data
+    })
+  }
+//进账开票确认开票
+export const confirmInvoicing = (data) => {
+    return request({
+        url: '/api/blade-los/invoicing/confirmInvoicing',
+        method: 'post',
+        data: data
+    })
+}
+//进账开票撤销开票
+export const revokeInvoicing = (data) => {
+    return request({
+        url: '/api/blade-los/invoicing/revokeInvoicing',
+        method: 'post',
+        data: data
+    })
+}
+//进账开票导入明细
+export const getImport = (data) => {
+    return request({
+        url: '/api/blade-los/agent/listAll',
+        method: 'get',
+        params: data
+    })
+}

+ 11 - 0
src/api/landTransportation/index.js

@@ -302,6 +302,17 @@ export function getSalesman(data) {
         }
     })
 }
+//查询业务员
+export function getSalesman2(data) {
+    return request({
+        url: '/api/blade-user/userList',
+        method: 'get',
+        params:{
+            roleAlias:'业务员',
+            ...data
+        }
+    })
+}
 //批量提交调度
 export function dispatchBatch(data) {
     return request({

+ 80 - 19
src/components/dicSelect/main.vue

@@ -2,7 +2,7 @@
     <!-- 中文下拉 -->
     <div>
         <div style="display: flex;">
-            <el-select ref="mySelect" style="width:100%" v-model="value" @input="$emit('selectedValue', value)"
+            <el-select ref="mySelect" style="width:100%" v-model="value" @input="inputChange"
                 :placeholder="'请输入 ' + placeholder" @change="selectChange" @clear="clear" :clearable="clearable"
                 :multiple="multiple" :filterable="filterable" :remote="remote" :remote-method="remoteMethod"
                 :loading="loading" :size="size" :disabled="disabled" :collapse-tags="collapseTags">
@@ -274,7 +274,11 @@ export default {
         disabledLabel: {
             type: String,
             default: ''
-        }
+        },
+        dataType: {
+            type: String,
+            default: ''
+        },
     },
     model: {
         prop: "value",
@@ -295,7 +299,36 @@ export default {
             });
         }
     },
+    watch: {
+        value: {
+            handler(val, oldVal) {
+                if (this.dataType == 'string') {
+                    if (val) {
+                        if (typeof val == 'string') {
+                            this.value = val.split(',')
+                        }
+                    } else {
+                        this.value = []
+                    }
+                }
+            },
+            deep: true,
+            immediate: true
+        }
+    },
     methods: {
+        inputChange() {
+            if (this.dataType == 'string') {
+                if (this.value && this.value.length) {
+                    this.$emit('selectedValue', this.value.join(','))
+                } else {
+                    this.$emit('selectedValue', [])
+                }
+            } else {
+                this.$emit('selectedValue', this.value)
+            }
+
+        },
         open() {
             this.dialogVisible = true
             this.getTree()
@@ -327,21 +360,21 @@ export default {
                 }, 200);
             }
         },
-        getDicData() {
+        getDicData(mockData) {
             if (this.url) {
                 this.loading = true
                 getDicinit(this.method, this.url, this.data).then(res => {
                     if (this.res) {
                         res.data.data[this.res].forEach(e => {
-                            console.log(this.disabledLabel,this.disabledLabel.split(",").some(item => item[this.label]))
-                            if (this.disabledLabel.split(",").some(item => item==e[this.label])) {
+                            console.log(this.disabledLabel, this.disabledLabel.split(",").some(item => item[this.label]))
+                            if (this.disabledLabel.split(",").some(item => item == e[this.label])) {
                                 e.disabled = true
                             }
                         })
                         this.options = res.data.data[this.res]
                     } else {
                         res.data.data.forEach(e => {
-                            if (this.disabledLabel.split(",").some(item => item==e[this.label])) {
+                            if (this.disabledLabel.split(",").some(item => item == e[this.label])) {
                                 e.disabled = true
                             }
                         })
@@ -351,7 +384,7 @@ export default {
                     this.loading = false;
                 })
             } else {
-                this.options = this.mockData
+                this.options = mockData
             }
 
         },
@@ -368,22 +401,50 @@ export default {
             })
         },
         selectChange(row) {
-            this.options.forEach(e => {
-                if (this.keyValue) {
-                    if (row == e[this.keyValue]) {
-                        this.$emit('selectChange', e)
+            console.log(1111, row)
+            if (this.dataType == 'string') {
+                let data = []
+                this.options.forEach(e => {
+                    if (this.keyValue) {
+                        row.forEach(item => {
+                            if (item == e[this.keyValue]) {
+                                data.push(e[this.label])
+                                this.$emit('selectChange', data.join(','))
+                            }
+                        })
+
                     }
-                }
-                if (this.label) {
-                    if (row == e[this.label]) {
-                        this.$emit('selectChange', e)
+                    if (this.label) {
+                        row.forEach(item => {
+                            if (item == e[this.label]) {
+                                data.push(e[this.label])
+                                this.$emit('selectChange', data.join(','))
+                            }
+                        })
+
                     }
-                }
-            })
+                })
+            } else {
+                this.options.forEach(e => {
+                    if (this.keyValue) {
+                        if (row == e[this.keyValue]) {
+                            this.$emit('selectChange', e)
+                        }
+                    }
+                    if (this.label) {
+                        if (row == e[this.label]) {
+                            this.$emit('selectChange', e)
+                        }
+                    }
+                })
+            }
+
         },
         clear() {
-            this.data = this.$options.data().data
-            this.getDicData()
+            if(this.url){
+                this.data = this.$options.data().data
+                this.getDicData()
+            }
             this.$emit('selectChange', null)
         },
         importData() {

+ 35 - 37
src/components/trackPlayback.vue

@@ -1,15 +1,14 @@
 <template>
-  <el-dialog title="车辆轨迹" append-to-body custom-class="dialog_two" :visible.sync="dialogVisible" lock-scroll
-    :before-close="handleClose" width="40%">
-    <div v-if="dialogVisible">
-      <el-timeline :reverse="reverse">
-        <el-timeline-item v-for="(item, index) in parkingPoint" :key="index" :timestamp="item.time"  :color="item.color">
-          {{ item.address }}
-        </el-timeline-item>
-      </el-timeline>
-    </div>
-    <!-- <div id="container" v-if="dialogVisible"></div> -->
-    <!-- <div class="input-card" style="right: 10.3%;bottom: 10.3%" v-if="this.lineArr.length>0">
+  <el-dialog
+      title="车辆轨迹"
+      append-to-body
+      custom-class="dialog_two"
+      :visible.sync="dialogVisible"
+      lock-scroll
+      :before-close="handleClose"
+      width="80%">
+    <div id="container" v-if="dialogVisible"></div>
+    <div class="input-card" style="right: 10.3%;bottom: 10.3%" v-if="this.lineArr.length>0">
       <h4>轨迹回放控制</h4>
       <div class="input-item">
         <input type="button" class="btn" value="开始动画" id="start" @click="startAnimation()"/>
@@ -19,7 +18,7 @@
         <input type="button" class="btn" value="继续动画" id="resume" @click="resumeAnimation()"/>
         <input type="button" class="btn" value="停止动画" id="stop" @click="stopAnimation()"/>
       </div>
-    </div> -->
+    </div>
     <div class="input-card" style="right: 10.3%;bottom: 10.3%" v-else>
       <span style="color: red">暂无该车辆轨迹信息</span>
     </div>
@@ -36,20 +35,19 @@ export default {
     parkingPoint: {
       type: Boolean
     },
-    lineArr: Object,
+    lineArr:Object,
   },
-  data() {
-    return {
+  data(){
+    return{
       map: null,
       marker: null,
-      infoWindow: null,
-      reverse: true,
+      infoWindow: null
     }
   },
   beforeDestroy() {
     this.map && this.map.destroy();
   },
-  methods: {
+  methods:{
     handleClose(done) {
       this.dialogVisible = false
       this.$emit('closeDialog')
@@ -57,7 +55,7 @@ export default {
     initMap() {
       this.map = new AMap.Map("container", {
         resizeEnable: true,
-        center: this.lineArr.length > 0 ? this.lineArr[this.lineArr.length - 1] : [120.382891, 36.066460],
+        center: this.lineArr.length >0 ?this.lineArr[this.lineArr.length - 1]:[120.382891,36.066460],
         zoom: 17
       });
       let icon = new AMap.Icon({
@@ -83,7 +81,7 @@ export default {
         strokeWeight: 6 //线宽
         // strokeStyle: "solid"  //线样式
       });
-      if (this.parkingPoint.length > 0) {
+      if (this.parkingPoint.length>0){
         this.infoWindow = new AMap.InfoWindow({
           offset: new AMap.Pixel(0, -30)
         });
@@ -92,19 +90,19 @@ export default {
             position: this.parkingPoint[i].location,
             map: this.map
           });
-          let fun = this.fun(this.parkingPoint[i].bte, this.parkingPoint[i].ete) === '获取失败' ? '' : this.fun(this.parkingPoint[i].bte, this.parkingPoint[i].ete)
+          let fun = this.fun(this.parkingPoint[i].bte, this.parkingPoint[i].ete)==='获取失败'?'':this.fun(this.parkingPoint[i].bte, this.parkingPoint[i].ete)
           this.marker.content = '<div style="width: 300px;">'
-            + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #fff;">' + fun + '</p>'
-            + '<p style="padding: 5px 0"><span style="color: #a0a0a0">停车时间:</span>' + (new Date(Number(this.parkingPoint[i].bte) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19)).slice(5, 19) + '至' + (new Date(Number(this.parkingPoint[i].ete) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19)).slice(5, 19) + '</p>'
-            + '<p><span style="color: #a0a0a0">当前位置:</span>' + this.parkingPoint[i].address + '</p>'
-            + '</div>'
+              + '<p style="font-size: 22px;font-weight: bold;background-color: #2d8cf0;color: #fff;">' + fun + '</p>'
+              + '<p style="padding: 5px 0"><span style="color: #a0a0a0">停车时间:</span>' + (new Date(Number(this.parkingPoint[i].bte) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19)).slice(5,19)+'至'+ (new Date(Number(this.parkingPoint[i].ete) + 8 * 60 * 60 * 1000).toJSON().split('T').join(' ').substr(0, 19)).slice(5,19)+ '</p>'
+              + '<p><span style="color: #a0a0a0">当前位置:</span>' +this.parkingPoint[i].address + '</p>'
+              + '</div>'
           this.marker.on('click', this.markerClick);
-          this.marker.emit('click', { target: this.marker });
+          this.marker.emit('click', {target: this.marker});
         }
       }
       this.marker = new AMap.Marker({
         map: this.map,
-        position: this.lineArr.length > 0 ? this.lineArr[this.lineArr.length - 1] : [120.382891, 36.066460],
+        position: this.lineArr.length >0 ?this.lineArr[this.lineArr.length - 1]:[120.382891,36.066460],
         // icon: "https://webapi.amap.com/images/car.png",
         icon: icon,
         markerMeta: new AMap.Size(28, 28),
@@ -114,16 +112,16 @@ export default {
       });
       this.map.setFitView();
     },
-    fun(startTime, endTime) {
+    fun(startTime,endTime) {
       let usedTime = endTime - startTime; // 相差的毫秒数
       let days = Math.floor(usedTime / (24 * 3600 * 1000)); // 计算出天数
       let leavel = usedTime % (24 * 3600 * 1000); // 计算天数后剩余的时间
       let hours = Math.floor(leavel / (3600 * 1000)); // 计算剩余的小时数
       let leavel2 = leavel % (3600 * 1000); // 计算剩余小时后剩余的毫秒数
       let minutes = Math.floor(leavel2 / (60 * 1000)); // 计算剩余的分钟数
-      if (startTime && endTime) {
-        return days + '天' + hours + '时' + minutes + '分'
-      } else {
+      if (startTime && endTime){
+        return  days + '天' + hours + '时' + minutes + '分'
+      }else {
         return '获取失败'
       }
     },
@@ -185,10 +183,11 @@ export default {
   }
 }
 
-.content {}
+.content {
+}
 
 ::v-deep .el-dialog {
-  margin-top: 10vh !important;
+  margin-top: 5vh !important;
   margin-bottom: 0 !important;
 }
 
@@ -196,12 +195,11 @@ export default {
   padding: 0 20px 10px 20px !important;
 }
 
-::v-deep .amap-info-close {
-  right: 10px !important;
+::v-deep .amap-info-close{
+  right: 10px!important;
   top: 12px !important;
 }
-
-::v-deep .amap-info-content {
+::v-deep .amap-info-content{
   padding: 5px 5px 5px 5px !important;
 }
 </style>

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

@@ -2009,6 +2009,12 @@ const columnName = [{
 }, {
   code: 452,
   name: '君海-决策分析-库存账统计(F)'
+}, {
+  code: 453,
+  name: '君海-财务管理-进账开票(F)列表页'
+}, {
+  code: 454,
+  name: '君海-财务管理-进账开票(F)详情明细表'
 },
 ]
 export const getColumnName = (key) => {

+ 14 - 0
src/router/views/index.js

@@ -4060,4 +4060,18 @@ export default [{
     component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/storageFeeF/index')
   }]
 },
+{
+  path: '/iosBasicData/revenueInvoicing/index',
+  component: Layout,
+  hidden: true,
+  children: [{
+    path: '/iosBasicData/revenueInvoicing/index',
+    name: '进账开票(F)',
+    meta: {
+      i18n: '/iosBasicData/revenueInvoicing/index', 
+      keepAlive: true,
+    },
+    component: () => import( /* webpackChunkName: "views" */ '@/views/iosBasicData/revenueInvoicing/index')
+  }]
+},
 ]

+ 0 - 10
src/views/approveDataH/configuration/mainList.json

@@ -30,8 +30,6 @@
       "prop": "processType",
       "searchFilterable": true,
       "type": "select",
-      "hide": true,
-      "showColumn": false,
       "props": {
         "label": "dictValue",
         "value": "dictKey"
@@ -42,14 +40,6 @@
       "index": 1
     },
     {
-      "label": "业务类型",
-      "prop": "checkType",
-      "search": false,
-      "overHidden": true,
-      "width": 100,
-      "index": 2
-    },
-    {
       "label": "审核状态",
       "prop": "auditStatus",
       "type": "select",

+ 0 - 1
src/views/approveDataH/index.vue

@@ -185,7 +185,6 @@ export default {
       if (res.data.data.billType == 1) {
         this.option = option2;
       } else {
-        console.log(this.$store.getters.userInfo.tenant_id)
         if (this.$store.getters.userInfo.tenant_id === "681169") {
           this.option = option3;
         } else if (this.$store.getters.userInfo.tenant_id === "673511") {

+ 107 - 23
src/views/iosBasicData/AirtransportExport/bills/assembly/reports.vue

@@ -17,13 +17,25 @@
           @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot-scope="{disabled,size}" slot="authorizedUsersForm">
-        <div>
-          <el-select v-model="form.authorizedUsersId" placeholder="请选择">
-            <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value">
-            </el-option>
-          </el-select>
-        </div>
+      <template slot="authorizedUsersIdForm">
+        <dic-select v-model="form.authorizedUsersId" placeholder="授权用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('authorizedUsersId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedRoleIdForm">
+        <dic-select v-model="form.authorizedRoleId" placeholder="授权角色" key="id" keyValue="id" label="roleName"
+          url="/blade-system/role/list" :filterable="true" :multiple="true" dataName="roleName" dataType="string"
+          @selectChange="dicChange('authorizedRoleId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedTeamIdForm">
+        <dic-select v-model="form.authorizedTeamId" placeholder="授权团队" key="id" keyValue="id" label="postName"
+          url="/blade-system/post/listAll" :filterable="true" :multiple="true" dataName="postName" dataType="string"
+          @selectChange="dicChange('authorizedTeamId', $event,form)"></dic-select>
+      </template>
+      <template slot="excludeUsersIdForm">
+        <dic-select v-model="form.excludeUsersId" placeholder="排除用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('excludeUsersId', $event,form)"></dic-select>
       </template>
       <template slot-scope="scope" slot="menu">
         <el-link type="primary" style="font-size: 12px" icon="el-icon-view" :underline="false"
@@ -48,9 +60,11 @@ import { billsDetail } from '@/api/iosBasicData/bills'
 import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
 import { isProcurement } from "@/api/basicData/configuration";
+import dicSelect from "@/components/dicSelect/main";
 export default {
   components: {
-    reportContainer
+    reportContainer,
+    dicSelect
   },
   props: {
     assemblyForm: {
@@ -168,22 +182,58 @@ export default {
           {
             label: "授权用户",
             prop: "authorizedUsersId",
-            // hide: true,
+            hide: true,
+            showColumn:false,
             formslot: true,
-            type: 'tree',
-            dicUrl: "/api/blade-user/userListAll",
-            multiple: true,
             overHidden: true,
-            props: {
-              label: "realName",
-              value: "id"
-            },
-            dicData: [],
-            rules: [{
-              required: true,
-              message: "请选择授权用户",
-              trigger: "blur"
-            }]
+          },
+          {
+            label: "授权用户",
+            prop: "authorizedUsers",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRoleId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRole",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeamId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeam",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsersId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsers",
+            display:false,
+            overHidden: true,
           },
           // {
           //   label: "版本",
@@ -265,6 +315,40 @@ export default {
     }
   },
   methods: {
+    dicChange(name, row) {
+      if (name == 'authorizedUsersId') {
+        if(row){
+          this.form.authorizedUsers = row
+        }else{
+          this.form.authorizedUsersId = null
+          this.form.authorizedUsers = null
+        }
+      }
+      if (name == 'authorizedRoleId') {
+        if(row){
+          this.form.authorizedRole = row
+        }else{
+          this.form.authorizedRoleId = null
+          this.form.authorizedRole = null
+        }
+      }
+      if (name == 'authorizedTeamId') {
+        if(row){
+          this.form.authorizedTeam = row
+        }else{
+          this.form.authorizedTeamId = null
+          this.form.authorizedTeam = null
+        }
+      }
+      if (name == 'excludeUsersId') {
+        if(row){
+          this.form.excludeUsers = row
+        }else{
+          this.form.excludeUsersId = null
+          this.form.excludeUsers = null
+        }
+      }
+    },
     // 设计报表
     async reportDesignButton(url) {
       Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
@@ -988,7 +1072,7 @@ export default {
     },
     // 添加
     rowSave(row, done, loading) {
-      row.authorizedUsersId = row.authorizedUsersId.join()
+      // row.authorizedUsersId = row.authorizedUsersId.join()
       row.businessType = this.businessValue
       add(row).then(() => {
         this.onLoad(this.page);

+ 110 - 26
src/views/iosBasicData/AirtransportImport/bills/assembly/reports.vue

@@ -17,13 +17,25 @@
           @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot-scope="{disabled,size}" slot="authorizedUsersForm">
-        <div>
-          <el-select v-model="form.authorizedUsersId" placeholder="请选择">
-            <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value">
-            </el-option>
-          </el-select>
-        </div>
+      <template slot="authorizedUsersIdForm">
+        <dic-select v-model="form.authorizedUsersId" placeholder="授权用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('authorizedUsersId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedRoleIdForm">
+        <dic-select v-model="form.authorizedRoleId" placeholder="授权角色" key="id" keyValue="id" label="roleName"
+          url="/blade-system/role/list" :filterable="true" :multiple="true" dataName="roleName" dataType="string"
+          @selectChange="dicChange('authorizedRoleId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedTeamIdForm">
+        <dic-select v-model="form.authorizedTeamId" placeholder="授权团队" key="id" keyValue="id" label="postName"
+          url="/blade-system/post/listAll" :filterable="true" :multiple="true" dataName="postName" dataType="string"
+          @selectChange="dicChange('authorizedTeamId', $event,form)"></dic-select>
+      </template>
+      <template slot="excludeUsersIdForm">
+        <dic-select v-model="form.excludeUsersId" placeholder="排除用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('excludeUsersId', $event,form)"></dic-select>
       </template>
       <template slot-scope="scope" slot="menu">
         <el-link type="primary" style="font-size: 12px" icon="el-icon-view" :underline="false"
@@ -48,9 +60,11 @@ import { billsDetail } from '@/api/iosBasicData/bills'
 import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
 import { isProcurement } from "@/api/basicData/configuration";
+import dicSelect from "@/components/dicSelect/main";
 export default {
   components: {
-    reportContainer
+    reportContainer,
+    dicSelect
   },
   props: {
     assemblyForm: {
@@ -168,22 +182,58 @@ export default {
           {
             label: "授权用户",
             prop: "authorizedUsersId",
-            // hide: true,
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权用户",
+            prop: "authorizedUsers",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRoleId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRole",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeamId",
+            hide: true,
+            showColumn:false,
             formslot: true,
-            type: 'tree',
-            dicUrl: "/api/blade-user/userListAll",
-            multiple: true,
             overHidden: true,
-            props: {
-              label: "realName",
-              value: "id"
-            },
-            dicData: [],
-            rules: [{
-              required: true,
-              message: "请选择授权用户",
-              trigger: "blur"
-            }]
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeam",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsersId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsers",
+            display:false,
+            overHidden: true,
           },
           // {
           //   label: "版本",
@@ -238,9 +288,9 @@ export default {
         this.textareaNumber = res.data.data
       }
     })
-    getUserApprovalList().then(res => {
-      this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
-    })
+    // getUserApprovalList().then(res => {
+    //   this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
+    // })
     // 获取业务类型
     bbusinesstypeList(1, 20).then(res => {
       this.findObject(this.option.column, "businessType").dicData = res.data.data.records
@@ -265,6 +315,40 @@ export default {
     }
   },
   methods: {
+    dicChange(name, row) {
+      if (name == 'authorizedUsersId') {
+        if(row){
+          this.form.authorizedUsers = row
+        }else{
+          this.form.authorizedUsersId = null
+          this.form.authorizedUsers = null
+        }
+      }
+      if (name == 'authorizedRoleId') {
+        if(row){
+          this.form.authorizedRole = row
+        }else{
+          this.form.authorizedRoleId = null
+          this.form.authorizedRole = null
+        }
+      }
+      if (name == 'authorizedTeamId') {
+        if(row){
+          this.form.authorizedTeam = row
+        }else{
+          this.form.authorizedTeamId = null
+          this.form.authorizedTeam = null
+        }
+      }
+      if (name == 'excludeUsersId') {
+        if(row){
+          this.form.excludeUsers = row
+        }else{
+          this.form.excludeUsersId = null
+          this.form.excludeUsers = null
+        }
+      }
+    },
     // 设计报表
     async reportDesignButton(url) {
       Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
@@ -989,7 +1073,7 @@ export default {
     },
     // 添加
     rowSave(row, done, loading) {
-      row.authorizedUsersId = row.authorizedUsersId.join()
+      // row.authorizedUsersId = row.authorizedUsersId.join()
       row.businessType = this.businessValue
       add(row).then(() => {
         this.onLoad(this.page);

+ 6 - 3
src/views/iosBasicData/ComputationCenter/settlementDetails.vue

@@ -839,7 +839,7 @@ export default {
                     finstlbillsSubmit(this.form).then(res => {
                         this.$message.success('操作成功');
                         this.finstlbillsDetailfun(res.data.data.id)
-                    }).finally(() => {
+                    }).catch(() => {
                         this.saveLoading = false
                     })
                 }
@@ -887,6 +887,9 @@ export default {
                 })
                 this.bcorpsbankListfun() // 查银行数据
             }).finally(() => {
+                setTimeout(() => {
+                    this.saveLoading = false
+                }, 500);
                 this.pageLoading = false
             })
         },
@@ -1234,8 +1237,8 @@ export default {
             this.amountSubUsdSum = 0
             if (list.length) {
                 list.forEach(e => {
-                    this.amountSubSum += Number(e.currentStlAmountRMB?e.currentStlAmountRMB:0)
-                    this.amountSubUsdSum += Number(e.currentStlAmountUSD?e.currentStlAmountUSD:0)
+                    this.amountSubSum += Number(e.currentStlAmountRMB ? e.currentStlAmountRMB : 0)
+                    this.amountSubUsdSum += Number(e.currentStlAmountUSD ? e.currentStlAmountUSD : 0)
                 })
             }
             this.handleSelectionData = list

+ 1 - 1
src/views/iosBasicData/OceanFreightImport/bills/assembly/DocumentCenter.vue

@@ -480,7 +480,7 @@ export default {
                     department: this.documentForm.corpAttnName,
                     operate: this.documentForm.operatorName,
                     mobilePhone: this.documentForm.mobilePhone,
-                    remarks: this.documentForm.cyRemarks,
+                    remarks: this.documentForm.remarks,
                     contacts: this.documentForm.cyContacts,
                     deliverylocation: this.documentForm.cyCnName,
                     shippingAgency: this.documentForm.bookingAgentCnName,

+ 38 - 1
src/views/iosBasicData/OceanFreightImport/bills/assembly/feecenter.vue

@@ -305,7 +305,7 @@
         <avue-crud v-show="assemblyForm.feeCenterAmendList.length > 0" id="out-table" class="box-card"
             :header-cell-class-name="headerClassName" ref="crud" :row-style="{ height: '16px' }"
             :cell-style="{ padding: '0px' }" :data="assemblyForm.feeCenterAmendList" :option="amendOption"></avue-crud>
-        <div v-if="roleName.indexOf('admin') != -1 || roleName.indexOf('利润查看') != -1 || ((roleName.indexOf('应收修改') != -1 || roleName.indexOf('应收查看') != -1) && (roleName.indexOf('应付修改') != -1 || roleName.indexOf('应付查看') != -1))"
+        <div v-if="(roleName.indexOf('admin') != -1 || roleName.indexOf('利润查看') != -1 || ((roleName.indexOf('应收修改') != -1 || roleName.indexOf('应收查看') != -1) && (roleName.indexOf('应付修改') != -1 || roleName.indexOf('应付查看') != -1)))&&amendsStatus"
             style="display: flex;align-items: center;justify-content: space-around">
             <div style="width: 30%">
                 <div class="bottomFlex" style="justify-content: space-around">
@@ -549,6 +549,7 @@
 
 <script>
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+import { amendsList } from "@/api/iosBasicData/amends";
 import { getBcorpsDetail, getBcorpsList } from "@/api/iosBasicData/bcorps";
 import { bfeesList } from "@/api/iosBasicData/bfees";
 import { getBunitsPage } from "@/api/iosBasicData/bunits";
@@ -571,6 +572,7 @@ import { getBaccelementsList } from "@/api/iosBasicData/baccelements";
 import reportContainer from "@/views/iosBasicData/report-container/report-container.vue";
 import { reportsGetReportData } from "@/api/iosBasicData/reports";
 import reportformsList from "@/views/iosBasicData/OceanFreightImport/bills/assembly/reportformsList.vue";
+import { isProcurement } from "@/api/basicData/configuration";
 import { getList as reportsList } from "@/api/iosBasicData/reports";
 import { dateFormat } from "@/util/date";
 import { getToken } from "@/util/auth";
@@ -602,6 +604,7 @@ export default {
     },
     data() {
         return {
+            amendsStatus:false,
             amendOption: {
                 border: true,
                 align: 'center',
@@ -1351,6 +1354,15 @@ export default {
         }
     },
     async created() {
+        isProcurement({ "param": "if.station" }).then(res => {
+            console.log(res)
+            if (res.data.data == 1) {
+                this.messageData.push({
+                    name: '场站',
+                    value: 'cyCnName',
+                })
+            }
+        })
         this.roleName = localStorage.getItem('roleName').split(',') // 获取角色数据
         this.optionD = await this.getColumnData(this.getColumnName(309.2), this.optionDBack);
         this.optionC = await this.getColumnData(this.getColumnName(309.3), this.optionCBack);
@@ -1933,6 +1945,16 @@ export default {
         },
         // 生成账单
         GenerateBillsfun(dc) {
+            if (popupReminder(this.assemblyForm, this.messageData)) {
+                this.$confirm(popupReminder(this.assemblyForm, this.messageData), {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                })
+            }
+            if (popupReminder(this.assemblyForm, this.messageData)) {
+                return;
+            }
             let selectionArr = []
             if (dc == 'D') {
                 selectionArr = this.selectionDList
@@ -2936,6 +2958,21 @@ export default {
             },
             deep: true, // 深度监听
             immediate: true  // 第一次改变就执行,
+        },
+        'assemblyForm.mblno': {
+            // 执行方法
+            handler(oldValue, newValue) {
+                console.log(oldValue, newValue)
+                if (oldValue) {
+                    amendsList(1, 10, { status: 3, mblno: this.assemblyForm.mblno, businessType: 'SIA' }).then(res => {
+                        if (res.data.data.records.length > 0) {
+                            this.amendsStatus = true
+                        }
+                    })
+                }
+            },
+            deep: true, // 深度监听
+            immediate: true  // 第一次改变就执行,
         }
     },
 }

+ 110 - 26
src/views/iosBasicData/OceanFreightImport/bills/assembly/reports.vue

@@ -17,13 +17,25 @@
           @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot-scope="{disabled,size}" slot="authorizedUsersForm">
-        <div>
-          <el-select v-model="form.authorizedUsersId" placeholder="请选择">
-            <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value">
-            </el-option>
-          </el-select>
-        </div>
+      <template slot="authorizedUsersIdForm">
+        <dic-select v-model="form.authorizedUsersId" placeholder="授权用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('authorizedUsersId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedRoleIdForm">
+        <dic-select v-model="form.authorizedRoleId" placeholder="授权角色" key="id" keyValue="id" label="roleName"
+          url="/blade-system/role/list" :filterable="true" :multiple="true" dataName="roleName" dataType="string"
+          @selectChange="dicChange('authorizedRoleId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedTeamIdForm">
+        <dic-select v-model="form.authorizedTeamId" placeholder="授权团队" key="id" keyValue="id" label="postName"
+          url="/blade-system/post/listAll" :filterable="true" :multiple="true" dataName="postName" dataType="string"
+          @selectChange="dicChange('authorizedTeamId', $event,form)"></dic-select>
+      </template>
+      <template slot="excludeUsersIdForm">
+        <dic-select v-model="form.excludeUsersId" placeholder="排除用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('excludeUsersId', $event,form)"></dic-select>
       </template>
       <template slot-scope="scope" slot="menu">
         <el-link type="primary" style="font-size: 12px" icon="el-icon-view" :underline="false"
@@ -48,9 +60,11 @@ import { billsDetail } from '@/api/iosBasicData/bills'
 import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
 import { isProcurement } from "@/api/basicData/configuration";
+import dicSelect from "@/components/dicSelect/main";
 export default {
   components: {
-    reportContainer
+    reportContainer,
+    dicSelect
   },
   props: {
     assemblyForm: {
@@ -168,22 +182,58 @@ export default {
           {
             label: "授权用户",
             prop: "authorizedUsersId",
-            // hide: true,
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权用户",
+            prop: "authorizedUsers",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRoleId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRole",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeamId",
+            hide: true,
+            showColumn:false,
             formslot: true,
-            type: 'tree',
-            dicUrl: "/api/blade-user/userListAll",
-            multiple: true,
             overHidden: true,
-            props: {
-              label: "realName",
-              value: "id"
-            },
-            dicData: [],
-            rules: [{
-              required: true,
-              message: "请选择授权用户",
-              trigger: "blur"
-            }]
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeam",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsersId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsers",
+            display:false,
+            overHidden: true,
           },
           // {
           //   label: "版本",
@@ -238,9 +288,9 @@ export default {
         this.textareaNumber = res.data.data
       }
     })
-    getUserApprovalList().then(res => {
-      this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
-    })
+    // getUserApprovalList().then(res => {
+    //   this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
+    // })
     // 获取业务类型
     bbusinesstypeList(1, 20).then(res => {
       this.findObject(this.option.column, "businessType").dicData = res.data.data.records
@@ -265,6 +315,40 @@ export default {
     }
   },
   methods: {
+    dicChange(name, row) {
+      if (name == 'authorizedUsersId') {
+        if(row){
+          this.form.authorizedUsers = row
+        }else{
+          this.form.authorizedUsersId = null
+          this.form.authorizedUsers = null
+        }
+      }
+      if (name == 'authorizedRoleId') {
+        if(row){
+          this.form.authorizedRole = row
+        }else{
+          this.form.authorizedRoleId = null
+          this.form.authorizedRole = null
+        }
+      }
+      if (name == 'authorizedTeamId') {
+        if(row){
+          this.form.authorizedTeam = row
+        }else{
+          this.form.authorizedTeamId = null
+          this.form.authorizedTeam = null
+        }
+      }
+      if (name == 'excludeUsersId') {
+        if(row){
+          this.form.excludeUsers = row
+        }else{
+          this.form.excludeUsersId = null
+          this.form.excludeUsers = null
+        }
+      }
+    },
     // 设计报表
     async reportDesignButton(url) {
       Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
@@ -988,7 +1072,7 @@ export default {
     },
     // 添加
     rowSave(row, done, loading) {
-      row.authorizedUsersId = row.authorizedUsersId.join()
+      // row.authorizedUsersId = row.authorizedUsersId.join()
       row.businessType = this.businessValue
       add(row).then(() => {
         this.onLoad(this.page);

+ 2 - 2
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -370,7 +370,7 @@ export default {
                 issueType: 'ORI', // 签单方式 默认 正本
                 mpaymode: 'PP', // 主单付费方式 默认PP
                 hpaymode: 'PP', // 分单付费方式 默认 PP
-                loadType: 'FCL', // 装箱方式默认整箱
+                loadType:JSON.parse(localStorage.getItem('saber-tenantId')).content=='409341'?'FCL':'整箱', // 装箱方式默认整箱
                 srcType: 'OWN', // 业务来源默认公司   来源 内容 默认登录人所属公司
                 numberOfObl: 'THREE', // 正本份数 默认 THREE
                 numberOfCopy: 'THREE', // 副本份数 默认 THREE
@@ -404,7 +404,7 @@ export default {
                 issueType: 'ORI', // 签单方式 默认 正本
                 mpaymode: 'PP', // 主单付费方式 默认PP
                 hpaymode: 'PP', // 分单付费方式 默认 PP
-                loadType: 'FCL', // 装箱方式默认整箱
+                loadType: JSON.parse(localStorage.getItem('saber-tenantId')).content=='409341'?'FCL':'整箱', // 装箱方式默认整箱
                 srcType: 'OWN', // 业务来源默认公司   来源 内容 默认登录人所属公司
                 numberOfObl: 'THREE', // 正本份数 默认 THREE
                 numberOfCopy: 'THREE', // 副本份数 默认 THREE

+ 1 - 1
src/views/iosBasicData/SeafreightExportF/bills/assembly/DocumentCenter.vue

@@ -509,7 +509,7 @@ export default {
                     department: this.documentForm.corpAttnName,
                     operate: this.documentForm.operatorName,
                     mobilePhone: this.documentForm.mobilePhone,
-                    remarks: this.documentForm.cyRemarks,
+                    remarks: this.documentForm.remarks,
                     contacts: this.documentForm.cyContacts,
                     deliverylocation: this.documentForm.cyCnName,
                     shippingAgency: this.documentForm.bookingAgentCnName,

+ 7 - 6
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -143,7 +143,7 @@
                             <el-row>
                                 <el-col :span="10">
                                     <search-query :datalist="placeReceiptData"
-                                        :selectValue="assemblyForm.placeReceiptCode" :filterable="true"
+                                        :selectValue="assemblyForm.placeReceiptName" :filterable="true"
                                         :clearable="true" :remote="true" :joinData="true"
                                         :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择收货地"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
@@ -175,7 +175,7 @@
                             </span>
                             <el-row>
                                 <el-col :span="10">
-                                    <search-query :datalist="polData" :selectValue="assemblyForm.polCode"
+                                    <search-query :datalist="polData" :selectValue="assemblyForm.polEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
                                         :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
                                         placeholder="请选择装货港"
@@ -207,7 +207,7 @@
                             </span>
                             <el-row>
                                 <el-col :span="10">
-                                    <search-query :datalist="podData" :selectValue="assemblyForm.podCode"
+                                    <search-query :datalist="podData" :selectValue="assemblyForm.podEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
                                         :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择卸货港"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
@@ -238,7 +238,7 @@
                             <el-row>
                                 <el-col :span="10">
                                     <search-query :datalist="destinationData"
-                                        :selectValue="assemblyForm.destinationCode" :filterable="true" :clearable="true"
+                                        :selectValue="assemblyForm.destinationName" :filterable="true" :clearable="true"
                                         :remote="true" :joinData="true"
                                         :disabled="detailData.seeDisabled || generateBillsfalse" :buttonIf="false"
                                         placeholder="请选择目的地"
@@ -271,7 +271,7 @@
                             <el-row>
                                 <el-col :span="10">
                                     <search-query :datalist="placeDeliveryData" :joinData="true"
-                                        :selectValue="assemblyForm.placeDeliveryCode" :filterable="true"
+                                        :selectValue="assemblyForm.placeDeliveryName" :filterable="true"
                                         :clearable="true" :remote="true" :disabled="detailData.seeDisabled"
                                         :buttonIf="false" placeholder="请选择交货地"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
@@ -302,7 +302,7 @@
                             </span>
                             <el-row>
                                 <el-col :span="10">
-                                    <search-query :datalist="potData" :selectValue="assemblyForm.potCode"
+                                    <search-query :datalist="potData" :selectValue="assemblyForm.potEnName"
                                         :filterable="true" :clearable="true" :remote="true" :joinData="true"
                                         :disabled="detailData.seeDisabled" :buttonIf="false" placeholder="请选择中转港"
                                         :forParameter="{ key: 'id', short: 'enName', label: 'code', value: 'enName' }"
@@ -1264,6 +1264,7 @@ export default {
                 }
                 for (let item of this[name + 'Data']) {
                     if (item.enName == value) {
+                        console.log(item)
                         this.$set(this.assemblyForm, name + 'Id', item.id)
                         this.$set(this.assemblyForm, name + 'CnName', item.cnName)
                         this.$set(this.assemblyForm, name + 'EnName', item.enName)

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

@@ -313,7 +313,7 @@
         <avue-crud v-show="assemblyForm.feeCenterAmendList.length > 0" id="out-table" class="box-card"
             :header-cell-class-name="headerClassName" ref="crud" :row-style="{ height: '16px' }"
             :cell-style="{ padding: '0px' }" :data="assemblyForm.feeCenterAmendList" :option="amendOption"></avue-crud>
-        <div v-if="roleName.indexOf('admin') != -1 || roleName.indexOf('利润查看') != -1 || ((roleName.indexOf('应收修改') != -1 || roleName.indexOf('应收查看') != -1) && (roleName.indexOf('应付修改') != -1 || roleName.indexOf('应付查看') != -1))"
+        <div v-if="(roleName.indexOf('admin') != -1 || roleName.indexOf('利润查看') != -1 || ((roleName.indexOf('应收修改') != -1 || roleName.indexOf('应收查看') != -1) && (roleName.indexOf('应付修改') != -1 || roleName.indexOf('应付查看') != -1))) && amendsStatus"
             style="display: flex;align-items: center;justify-content: space-around">
             <div style="width: 30%">
                 <div class="bottomFlex" style="justify-content: space-around">
@@ -557,6 +557,7 @@
 
 <script>
 import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
+import { amendsList } from "@/api/iosBasicData/amends";
 import { getBcorpsDetail, getBcorpsList } from "@/api/iosBasicData/bcorps";
 import { bfeesList } from "@/api/iosBasicData/bfees";
 import { getBunitsPage } from "@/api/iosBasicData/bunits";
@@ -582,6 +583,7 @@ import reportformsList from "@/views/iosBasicData/SeafreightExportF/bills/assemb
 import { getList as reportsList } from "@/api/iosBasicData/reports";
 import { dateFormat } from "@/util/date";
 import { regularBurdenfloating } from "@/util/regularJudgment";
+import { isProcurement } from "@/api/basicData/configuration";
 import { getToken } from "@/util/auth";
 import _ from "lodash";
 export default {
@@ -612,6 +614,7 @@ export default {
     },
     data() {
         return {
+            amendsStatus: false,
             amendOption: {
                 border: true,
                 align: 'center',
@@ -1379,6 +1382,15 @@ export default {
         }
     },
     async created() {
+        isProcurement({ "param": "if.station" }).then(res => {
+            console.log(res)
+            if (res.data.data == 1) {
+                this.messageData.push({
+                    name: '场站',
+                    value: 'cyCnName',
+                })
+            }
+        })
         this.roleName = localStorage.getItem('roleName').split(',') // 获取角色数据
         this.optionD = await this.getColumnData(this.getColumnName(309.2), this.optionDBack);
         this.optionC = await this.getColumnData(this.getColumnName(309.3), this.optionCBack);
@@ -1944,6 +1956,16 @@ export default {
         },
         // 生成账单
         GenerateBillsfun(dc) {
+            if (popupReminder(this.assemblyForm, this.messageData)) {
+                this.$confirm(popupReminder(this.assemblyForm, this.messageData), {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                })
+            }
+            if (popupReminder(this.assemblyForm, this.messageData)) {
+                return;
+            }
             let selectionArr = []
             if (dc == 'D') {
                 selectionArr = this.selectionDList
@@ -3049,7 +3071,23 @@ export default {
             },
             deep: true, // 深度监听
             immediate: true  // 第一次改变就执行,
+        },
+        'assemblyForm.mblno': {
+            // 执行方法
+            handler(oldValue, newValue) {
+                console.log(oldValue, newValue)
+                if (oldValue) {
+                    amendsList(1, 10, { status: 3, mblno: this.assemblyForm.mblno, businessType: 'SEA' }).then(res => {
+                        if (res.data.data.records.length > 0) {
+                            this.amendsStatus = true
+                        }
+                    })
+                }
+            },
+            deep: true, // 深度监听
+            immediate: true  // 第一次改变就执行,
         }
+
     },
 }
 </script>

+ 125 - 49
src/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue

@@ -17,13 +17,25 @@
           @click="handleDelete">删 除
         </el-button>
       </template>
-      <template slot-scope="{disabled,size}" slot="authorizedUsersForm">
-        <div>
-          <el-select v-model="form.authorizedUsersId" placeholder="请选择">
-            <el-option v-for="item in userList" :key="item.value" :label="item.label" :value="item.value">
-            </el-option>
-          </el-select>
-        </div>
+      <template slot="authorizedUsersIdForm">
+        <dic-select v-model="form.authorizedUsersId" placeholder="授权用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('authorizedUsersId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedRoleIdForm">
+        <dic-select v-model="form.authorizedRoleId" placeholder="授权角色" key="id" keyValue="id" label="roleName"
+          url="/blade-system/role/list" :filterable="true" :multiple="true" dataName="roleName" dataType="string"
+          @selectChange="dicChange('authorizedRoleId', $event,form)"></dic-select>
+      </template>
+      <template slot="authorizedTeamIdForm">
+        <dic-select v-model="form.authorizedTeamId" placeholder="授权团队" key="id" keyValue="id" label="postName"
+          url="/blade-system/post/listAll" :filterable="true" :multiple="true" dataName="postName" dataType="string"
+          @selectChange="dicChange('authorizedTeamId', $event,form)"></dic-select>
+      </template>
+      <template slot="excludeUsersIdForm">
+        <dic-select v-model="form.excludeUsersId" placeholder="排除用户" key="id" keyValue="id" label="realName"
+          url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" dataType="string"
+          @selectChange="dicChange('excludeUsersId', $event,form)"></dic-select>
       </template>
       <template slot-scope="scope" slot="menu">
         <el-link type="primary" style="font-size: 12px" icon="el-icon-view" :underline="false"
@@ -48,10 +60,11 @@ import { billsDetail } from '@/api/iosBasicData/bills'
 import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
 import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
 import { isProcurement } from "@/api/basicData/configuration";
-
+import dicSelect from "@/components/dicSelect/main";
 export default {
   components: {
-    reportContainer
+    reportContainer,
+    dicSelect
   },
   props: {
     assemblyForm: {
@@ -80,7 +93,9 @@ export default {
       userList: [],
       isPrintTheBoxNumber: false,
       bbDisabled: false,
-      form: {},
+      form: {
+        authorizedUsers:null,
+      },
       formReport: {},
       query: {},
       loading: true,
@@ -173,32 +188,59 @@ export default {
           {
             label: "授权用户",
             prop: "authorizedUsersId",
-            // hide: true,
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权用户",
+            prop: "authorizedUsers",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRoleId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权角色",
+            prop: "authorizedRole",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeamId",
+            hide: true,
+            showColumn:false,
+            formslot: true,
+            overHidden: true,
+          },
+          {
+            label: "授权团队",
+            prop: "authorizedTeam",
+            display:false,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludeUsersId",
+            hide: true,
+            showColumn:false,
             formslot: true,
-            type: 'tree',
-            dicUrl: "/api/blade-user/userListAll",
-            multiple: true,
             overHidden: true,
-            props: {
-              label: "realName",
-              value: "id"
-            },
-            dicData: [],
-            rules: [{
-              required: true,
-              message: "请选择授权用户",
-              trigger: "blur"
-            }]
           },
-          // {
-          //   label: "版本",
-          //   prop: "version",
-          //   rules: [{
-          //     required: true,
-          //     message: "请输入版本",
-          //     trigger: "blur"
-          //   }]
-          // },
+          {
+            label: "排除用户",
+            prop: "excludeUsers",
+            display:false,
+            overHidden: true,
+          },
           {
             label: "状态",
             prop: "status",
@@ -243,9 +285,9 @@ export default {
         this.textareaNumber = res.data.data
       }
     })
-    getUserApprovalList().then(res => {
-      this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
-    })
+    // getUserApprovalList().then(res => {
+    //   this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
+    // })
     // 获取业务类型
     bbusinesstypeList(1, 20).then(res => {
       this.findObject(this.option.column, "businessType").dicData = res.data.data.records
@@ -270,6 +312,40 @@ export default {
     }
   },
   methods: {
+    dicChange(name, row) {
+      if (name == 'authorizedUsersId') {
+        if(row){
+          this.form.authorizedUsers = row
+        }else{
+          this.form.authorizedUsersId = null
+          this.form.authorizedUsers = null
+        }
+      }
+      if (name == 'authorizedRoleId') {
+        if(row){
+          this.form.authorizedRole = row
+        }else{
+          this.form.authorizedRoleId = null
+          this.form.authorizedRole = null
+        }
+      }
+      if (name == 'authorizedTeamId') {
+        if(row){
+          this.form.authorizedTeam = row
+        }else{
+          this.form.authorizedTeamId = null
+          this.form.authorizedTeam = null
+        }
+      }
+      if (name == 'excludeUsersId') {
+        if(row){
+          this.form.excludeUsers = row
+        }else{
+          this.form.excludeUsersId = null
+          this.form.excludeUsers = null
+        }
+      }
+    },
     // 设计报表
     async reportDesignButton(url) {
       Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'
@@ -765,18 +841,18 @@ export default {
           // }
 
           if (data.commodityDescr) {
-              var descriptionIndex2 = data.commodityDescr.indexOf('\n')
-              for (let i = 0; i < 19; i++) {
-                descriptionIndex2 = data.commodityDescr.indexOf('\n', descriptionIndex2 + 1);
-              }
-              if (descriptionIndex2 != -1) {
-                data.pageOne = 'Page : 1 of 2'
-                data.pageTwo = 'Page : 2 of 2'
-                var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
-                // data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
-                data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
-                data.extraLongText = extraLongText
-              }
+            var descriptionIndex2 = data.commodityDescr.indexOf('\n')
+            for (let i = 0; i < 19; i++) {
+              descriptionIndex2 = data.commodityDescr.indexOf('\n', descriptionIndex2 + 1);
+            }
+            if (descriptionIndex2 != -1) {
+              data.pageOne = 'Page : 1 of 2'
+              data.pageTwo = 'Page : 2 of 2'
+              var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)
+              // data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)
+              data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'
+              data.extraLongText = extraLongText
+            }
             // let arrDeteil = []
             // arrDeteil = data.commodityDescr.split('\n')
             // if (arrDeteil.length > 18) {
@@ -999,7 +1075,7 @@ export default {
     },
     // 添加
     rowSave(row, done, loading) {
-      row.authorizedUsersId = row.authorizedUsersId.join()
+      // row.authorizedUsersId = row.authorizedUsersId.join()
       row.businessType = this.businessValue
       add(row).then(() => {
         this.onLoad(this.page);

+ 8 - 3
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -19,7 +19,7 @@
                 </el-button>
                 <el-button type="success" size="small" style="margin-right: 8px" @click="CopyDocumentsfun">复制单据
                 </el-button>
-                <el-dropdown style="line-height: 0" v-if="saberTenantId == '409341'">
+                <el-dropdown style="line-height: 0" v-if="saberTenantId == '409341' || saberTenantId == '607913'">
                     <el-button size="small" type="warning" style="margin-right: 8px"
                         :disabled="form.status > 0 || showLock || !form.id">
                         导入模板<i class="el-icon-arrow-down el-icon--right"></i>
@@ -400,7 +400,7 @@ export default {
                 issueType: "ORI", // 签单方式 默认 正本提单
                 mpaymode: 'PP', // 主单付费方式 默认PP
                 hpaymode: 'PP', // 分单付费方式 默认 PP
-                loadType: 'FCL', // 装箱方式默认整箱
+                loadType: JSON.parse(localStorage.getItem('saber-tenantId')).content == '409341' ? 'FCL' : '整箱', // 装箱方式默认整箱
                 srcType: 'OWN', // 业务来源默认公司   来源 内容 默认登录人所属公司
                 numberOfObl: 'THREE', // 正本份数 默认 THREE
                 numberOfCopy: 'THREE', // 副本份数 默认 THREE
@@ -440,7 +440,7 @@ export default {
                 issueType: "ORI", // 签单方式 默认 正本提单
                 mpaymode: 'PP', // 主单付费方式 默认PP
                 hpaymode: 'PP', // 分单付费方式 默认 PP
-                loadType: 'FCL', // 装箱方式默认整箱
+                loadType: JSON.parse(localStorage.getItem('saber-tenantId')).content == '409341' ? 'FCL' : '整箱', // 装箱方式默认整箱
                 srcType: 'OWN', // 业务来源默认公司   来源 内容 默认登录人所属公司
                 numberOfObl: 'THREE', // 正本份数 默认 THREE
                 numberOfCopy: 'THREE', // 副本份数 默认 THREE
@@ -2355,6 +2355,7 @@ export default {
             //     this.detailData.seeDisabled = false
             // }
             this.columnforfun('teamName').disabled = true
+
             this.columnforfun('operatorName').disabled = true
             this.columnforfun('accDeptName').disabled = true
             if (this.form.status == 1 || this.form.status == 2 || this.form.status == 3) {
@@ -2373,6 +2374,10 @@ export default {
                 this.columnforfun('mblno').disabled = false
                 this.columnforfun('bookingNo').disabled = false
                 this.columnforfun('refno').disabled = false
+                if (this.saberTenantId == '607913') {
+                    this.columnforfun('operatorName').disabled = false
+                    this.columnforfun('accDeptName').disabled = false
+                }
                 // this.columnforfun('teamId').disabled = false
                 this.generateBillsfalse = false
                 this.pleasereviewType = false

+ 69 - 24
src/views/iosBasicData/editypes/index.vue

@@ -32,10 +32,28 @@
           </el-button>
         </template>
         <template slot="userlistForm">
-          <search-query :datalist="userData" :selectValue="form.userlist" :clearable="true" :multiple="true"
+          <!-- <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>
+          </search-query> -->
+          <dic-select v-model="form.userlist" placeholder="权限用户" key="id" keyValue="id" label="realName"
+            url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" 
+           ></dic-select>
+        </template>
+        <template slot="rolelistForm">
+          <dic-select v-model="form.rolelist" placeholder="权限角色" key="id" keyValue="id" label="roleName"
+            url="/blade-system/role/list" :filterable="true" :multiple="true"
+           ></dic-select>
+        </template>
+        <template slot="teamlistForm">
+          <dic-select v-model="form.teamlist" placeholder="权限团队" key="id" keyValue="id" label="postName" 
+            url="/blade-system/post/listAll" :filterable="true" :multiple="true" dataName="postName" 
+           ></dic-select>
+        </template>
+        <template slot="excludelistForm">
+          <dic-select v-model="form.excludelist" placeholder="排除用户" key="id" keyValue="id" label="realName"
+            url="/blade-user/userListAll" :filterable="true" :multiple="true" dataName="realName" 
+           ></dic-select>
         </template>
         <template slot="menu" slot-scope="{row}">
           <el-button type="text" size="small" icon="el-icon-edit" @click="editFun(row)">编辑
@@ -74,9 +92,9 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
 import { getBcorpslistByType } from "@/api/iosBasicData/bcorps";
 import { getList as getRoleList } from "@/api/system/role"
 import { bbusinesstypeList } from "@/api/iosBasicData/bbusinesstype";
-
+import dicSelect from "@/components/dicSelect/main";
 export default {
-  components: { SearchQuery },
+  components: { SearchQuery, dicSelect },
   props: {
   },
   data() {
@@ -123,27 +141,27 @@ export default {
               trigger: "blur"
             }]
           },
-            {
-                label: "类别",
-                prop: "groupName",
-                type: "select",
-                search: true,
-                dicData: [{
-                    label: 'Booking',
-                    value: 'SO'
-                }, {
-                    label: 'SI',
-                    value: 'SI'
-                }],
-                rules: [{
-                    required: true,
-                    message: "请输入类别",
-                    trigger: "blur"
-                }],
+          {
+            label: "类别",
+            prop: "groupName",
+            type: "select",
+            search: true,
+            dicData: [{
+              label: 'Booking',
+              value: 'SO'
+            }, {
+              label: 'SI',
+              value: 'SI'
+            }],
+            rules: [{
+              required: true,
+              message: "请输入类别",
+              trigger: "blur"
+            }],
 
-                value: 'SO',
-                overHidden: true,
-            },
+            value: 'SO',
+            overHidden: true,
+          },
           {
             label: "EDI 编码",
             prop: "code",
@@ -206,6 +224,24 @@ export default {
             overHidden: true,
           },
           {
+            label: "权限角色",
+            prop: "rolelist",
+            hide: true,
+            overHidden: true,
+          },
+          {
+            label: "权限团队",
+            prop: "teamlist",
+            hide: true,
+            overHidden: true,
+          },
+          {
+            label: "排除用户",
+            prop: "excludelist",
+            hide: true,
+            overHidden: true,
+          },
+          {
             label: "状态",
             prop: "status",
             type: "select",
@@ -427,6 +463,9 @@ export default {
     rowSave(row, done, loading) {
       console.log(row, 237)
       row.userlist = JSON.stringify(row.userlist)
+      row.rolelist = JSON.stringify(row.rolelist)
+      row.teamlist = JSON.stringify(row.teamlist)
+      row.excludelist = JSON.stringify(row.excludelist)
       editypesSubmit(row).then(() => {
         this.onLoad(this.page);
         this.$message({
@@ -441,6 +480,9 @@ export default {
     },
     rowUpdate(row, index, done, loading) {
       row.userlist = JSON.stringify(row.userlist)
+      row.rolelist = JSON.stringify(row.rolelist)
+      row.teamlist = JSON.stringify(row.teamlist)
+      row.excludelist = JSON.stringify(row.excludelist)
       editypesSubmit(row).then(() => {
         this.onLoad(this.page);
         this.$message({
@@ -497,6 +539,9 @@ export default {
         editypesDetail(this.form.id).then(res => {
           this.form = res.data.data;
           this.form.userlist = JSON.parse(this.form.userlist)
+          this.form.rolelist = JSON.parse(this.form.rolelist)
+          this.form.teamlist = JSON.parse(this.form.teamlist)
+          this.form.excludelist = JSON.parse(this.form.excludelist)
         });
       }
       done();

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

@@ -1370,7 +1370,6 @@ export default {
         // 保存接口
         fininvoicesSubmitfun(obj) {
             fininvoicesSubmit(obj).then(res => {
-                this.saveLoading = false
                 this.$message.success('操作成功');
                 this.fininvoicesDetailfun(res.data.data.id)
             }).catch(() => {
@@ -1402,6 +1401,9 @@ export default {
                     return item
                 })
             }).finally(() => {
+                setTimeout(() => {
+                    this.saveLoading = false
+                }, 500);
                 this.pageLoading = false
             })
         },

+ 6 - 4
src/views/iosBasicData/fininvoicesOutput/fininvoicesDetails.vue

@@ -1020,8 +1020,8 @@ export default {
             this.amountSubUsdSum = 0
             if (list.length) {
                 list.forEach(e => {
-                    this.amountSubSum += Number(e.currentAmountCNY?e.currentAmountCNY:0)
-                    this.amountSubUsdSum += Number(e.currentAmountUSD?e.currentAmountUSD:0)
+                    this.amountSubSum += Number(e.currentAmountCNY ? e.currentAmountCNY : 0)
+                    this.amountSubUsdSum += Number(e.currentAmountUSD ? e.currentAmountUSD : 0)
                 })
             }
             this.handleSelectionData = list
@@ -1032,7 +1032,7 @@ export default {
             this.amountSubUsdSum = 0
             if (list.length) {
                 list.forEach(e => {
-                    this.amountSubSum += Number(e.amount?e.amount:0)
+                    this.amountSubSum += Number(e.amount ? e.amount : 0)
                 })
             }
             this.invoicingCheckboxData = list
@@ -1318,7 +1318,6 @@ export default {
         // 保存接口
         fininvoicesSubmitfun(obj) {
             fininvoicesSubmit(obj).then(res => {
-                this.saveLoading = false
                 this.$message.success('操作成功');
                 this.fininvoicesDetailfun(res.data.data.id)
             })
@@ -1348,6 +1347,9 @@ export default {
                     return item
                 })
             }).finally(() => {
+                setTimeout(() => {
+                    this.saveLoading = false
+                }, 1000);
                 this.pageLoading = false
             })
         },

+ 582 - 0
src/views/iosBasicData/revenueInvoicing/detailsPage.vue

@@ -0,0 +1,582 @@
+<template>
+    <div>
+        <div class="customer-head">
+            <div class="customer-back">
+                <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
+                    @click="goBack()">返回列表
+                </el-button>
+            </div>
+            <div class="add-customer-btn">
+                <el-button size="small" style="margin-right: 8px" :disabled="!form.id"
+                    @click="$refs.print.openDialog()">打印账单
+                </el-button>
+                <el-button size="small" style="margin-right: 8px" :disabled="!form.id"
+                    @click="$refs.report.openDialog()">报表设计
+                </el-button>
+                <el-button class="el-button--small-yh" style="margin-left: 6px;" type="primary" size="small"
+                    v-if="editButton" @click="inEdit">编 辑
+                </el-button>
+                <el-button v-if="!editButton" class="el-button--small-yh" style="margin-left: 6px;" type="primary"
+                    size="small" :disabled="form.status == '已开票'" @click="submit">保 存
+                </el-button>
+                <el-button v-if="form.id && form.status == '录入'" class="el-button--small-yh" style="margin-left: 6px;"
+                    type="success" size="small" @click="confirm">确认开票
+                </el-button>
+                <el-button v-if="form.id && form.status == '已开票'" class="el-button--small-yh" style="margin-left: 6px;"
+                    type="danger" size="small" @click="revoke">撤销开票
+                </el-button>
+            </div>
+        </div>
+        <div style="margin-top: 50px">
+            <trade-card title="基础信息">
+                <avue-form :option="optionForm" v-model="form" ref="form">
+                    <tempalte slot="corporateName" slot-scope="{ row }">
+                        <dic-select v-model="form.corporateName" placeholder="销售公司" key="id" label="cnName"
+                            res="records" url="/blade-los/bcorps/listByType" :filterable="true" :remote="true"
+                            dataName="cnName" @selectChange="dicChange('corporateName', $event)"
+                            :disabled="form.invoicingItemList.length > 0 || editButton || form.status == '已开票'"
+                            :searchShow="true" :treeShow="true"></dic-select>
+                    </tempalte>
+                    <tempalte slot="contractNumber" slot-scope="{ row }">
+                        <el-input v-model="form.contractNumber" placeholder="请输入 合同号"
+                            :disabled="form.invoicingItemList.length > 0 || editButton || form.status == '已开票'"
+                            size="small"></el-input>
+                    </tempalte>
+                    <tempalte slot="businessOrganizerName" slot-scope="{ row }">
+                        <dic-select v-model="form.businessOrganizerName" placeholder="销售公司" key="id" label="realName"
+                            res="records" url="/blade-user/page" :filterable="true" :remote="true" dataName="realName"
+                            :disabled="editButton || form.status == '已开票'">
+                        </dic-select>
+                    </tempalte>
+                    <!-- <tempalte slot="openingBank" slot-scope="{ row }">
+                        <dic-select ref="bank" v-model="form.openingBank" placeholder="开户行" key="id" label="accountBank"
+                            :filterable="true" :disabled="editDisabled"></dic-select>
+                    </tempalte>
+                    <tempalte slot="accountNumber" slot-scope="{ row }">
+                        <dic-select ref="bank2" v-model="form.accountNumber" placeholder="账号" key="id" label="accountNo"
+                            :filterable="true" :disabled="editDisabled"></dic-select>
+                    </tempalte>
+                    <tempalte slot="addressTel" slot-scope="{ row }">
+                        <dic-select ref="user" v-model="form.addressTel" placeholder="地址、电话" key="id" label="addr"
+                            :filterable="true" :disabled="editDisabled" :slotRight="true" rightLabel="tel" @selectChange="dicChange('addressTel', $event)"></dic-select>
+                    </tempalte> -->
+                </avue-form>
+            </trade-card>
+            <trade-card title="基础明细">
+                <avue-crud :option="option" :data="form.invoicingItemList" id="out-table" ref="crud"
+                    @selection-change="selectionChange" @resetColumn="resetColumn('crud', 'option', 'optionBack', 454)"
+                    @saveColumn="saveColumn('crud', 'option', 'optionBack', 454)">
+                    <template slot="menuLeft">
+                        <el-button type="primary" size="small" icon="el-icon-plus" @click="addRow"
+                            :disabled="form.invoicingItemList.length || editButton || form.status == '已开票'">导 入
+                        </el-button>
+                    </template>
+                    <tempalte slot="quantityForm" slot-scope="{ row }">
+                        <el-input-number v-if="row.$cellEdit" v-model="row.quantity" @change="countChange(row)"
+                            :controls="false" placeholder="请输入 数量" size="small" style="width: 100%;"></el-input-number>
+                        <span v-else>{{ row.quantity }}</span>
+                    </tempalte>
+                    <template slot="menu" slot-scope="{ row, index }">
+                        <el-button size="small" icon="el-icon-edit" type="text" @click="rowEdit(row)"
+                            :disabled="editButton || form.status == '已开票'">{{ row.$cellEdit ?
+                                "保存" : "编辑" }}</el-button>
+                        <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row)"
+                            :disabled="editButton || form.status == '已开票'">删 除</el-button>
+                    </template>
+                </avue-crud>
+            </trade-card>
+            <business-reports :id="form.id" ref="print" businessValue="MYDL_KPSQ" :type="true"></business-reports>
+            <reports :id="form.id" ref="report" :assemblyForm="form" businessValue="MYDL_KPSQ"></reports>
+        </div>
+    </div>
+</template>
+
+<script>
+import { submit, getDetail, confirmInvoicing, revokeInvoicing, getImport, itemRemove } from "@/api/iosBasicData/revenueInvoicing";
+import dicSelect from "@/components/dicSelect/main";
+import { getBcorpsDetail } from "@/api/iosBasicData/bcorps";
+import businessReports from "@/components/tradeAgency/businessReports.vue";
+import reports from "@/components/tradeAgency/reports.vue";
+import _ from "lodash";
+export default {
+    name: "detailsPage",
+
+    data() {
+        return {
+            editButton: false,
+            userList: [],
+            form: {
+                billNoFormat: 'MYDL_KPSQ',
+                businessTypeCode: 'MYDL_KPSQ',
+                invoicingItemList: []
+            },
+            optionForm: {
+                menuBtn: false,
+                span: 8,
+                disabled: false,
+                column: [
+                    {
+                        label: "销售公司",
+                        prop: "corporateName",
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }],
+                        disabled: false
+                    },
+                    {
+                        label: "公司名称",
+                        prop: "buyCorporateName",
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }],
+                        disabled: false
+                    },
+                    {
+                        label: "合同号",
+                        prop: "contractNumber",
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }],
+                        disabled: false,
+                    },
+                    {
+                        label: "业务主办",
+                        prop: "businessOrganizerName",
+                        // type: 'select',
+                        // filterable: true,
+                        // remote: true,
+                        // dicUrl: "/api/blade-user/page?current=1&size=20&realName={{key}}",
+                        // props: {
+                        //     label: 'realName',
+                        //     value: 'realName',
+                        //     res: 'data.records'
+                        // },
+                        disabled: false
+                    },
+                    {
+                        label: "开具发票号码",
+                        prop: "invoiceNo",
+                        disabled: false
+                    },
+                    {
+                        label: "纳税人识别号",
+                        prop: "taxpayerIdentification",
+                        disabled: false
+                    },
+                    {
+                        label: "开户行",
+                        prop: "openingBank",
+                        disabled: false
+                    },
+                    {
+                        label: "账号",
+                        prop: "accountNumber",
+                        disabled: false
+                    },
+                    {
+                        label: "地址、电话",
+                        prop: "addressTel",
+                        disabled: false
+                    },
+                    {
+                        label: "备注",
+                        prop: "remarks",
+                        disabled: false
+                    }
+                ]
+            },
+            option: {},
+            optionBack: {
+                height: 'auto',
+                calcHeight: 30,
+                menuWidth: 140,
+                border: true,
+                index: true,
+                addBtn: false,
+                viewBtn: false,
+                editBtn: false,
+                delBtn: false,
+                menu: true,
+                refreshBtn: false,
+                align: 'center',
+                summaryText: "合计",
+                showSummary: true,
+                sumColumnList: [
+                    {
+                        name: "quantity",
+                        type: "sum",
+                        decimals: 0
+                    }, {
+                        name: "amount",
+                        type: "sum",
+                        decimals: 2
+                    }, {
+                        name: "thisAmount",
+                        type: "sum",
+                        decimals: 2
+                    }, {
+                        name: "invoicedAmount",
+                        type: "sum",
+                        decimals: 2
+                    }
+                ],
+                column: [
+                    {
+                        label: "货物名称",
+                        prop: "labelProductName",
+                        overHidden: true
+                    },
+                    {
+                        label: "规格",
+                        prop: "specifications",
+                        overHidden: true
+                    },
+                    {
+                        label: "数量",
+                        prop: "quantity",
+                        cell: true,
+                        slot: true,
+                        formslot: true,
+                        rules: [{
+                            required: true,
+                            message: " ",
+                            trigger: "blur"
+                        }],
+                        overHidden: true
+                    },
+                    {
+                        label: "计量单位",
+                        prop: "units",
+                        overHidden: true,
+                        cell: true,
+                        type: 'select',
+                        filterable: true,
+                        remote: true,
+                        dicUrl: "/api/blade-los/bunits/list?current=1&size=20&cnName={{key}}",
+                        props: {
+                            label: 'cnName',
+                            value: 'cnName',
+                            res: 'data.records'
+                        },
+                    },
+                    {
+                        label: "销售单价(含税)",
+                        prop: "price",
+                        overHidden: true
+                    },
+                    {
+                        label: "销售金额(含税)",
+                        prop: "amount",
+                        overHidden: true
+                    },
+                    {
+                        label: "本次发票金额",
+                        prop: "thisAmount",
+                        overHidden: true
+                    },
+                    {
+                        label: "已开发票金额",
+                        prop: "invoicedAmount",
+                        overHidden: true
+                    },
+                    {
+                        label: "备注",
+                        prop: "remarks",
+                        cell: true,
+                        overHidden: true
+                    }
+                ]
+            },
+        }
+    },
+    components: {
+        dicSelect,
+        businessReports,
+        reports
+    },
+    props: {
+        detailData: Object
+    },
+    async created() {
+        this.option = await this.getColumnData(this.getColumnName(454), this.optionBack);
+        if (this.detailData.id) {
+            this.editButton = true
+            this.optionForm.disabled = true
+            this.getDetails(this.detailData.id)
+        }
+    },
+    methods: {
+        inEdit() {
+            this.editButton = false
+            if (this.form.status == '录入') {
+                this.optionForm.disabled = false
+            }
+        },
+        addRow() {
+            if (!this.form.corporateId) {
+                return this.$message.error("请选择销售公司");
+            }
+            if (!this.form.contractNumber) {
+                return this.$message.error("请输入合同号");
+            }
+            let obj = {
+                corpId: this.form.corporateId,
+                contractNo: this.form.contractNumber
+            }
+            getImport(obj).then(res => {
+                res.data.data.forEach(item => {
+                    this.form.invoicingItemList.push({
+                        srcId: item.id,
+                        labelProductName: item.labelProductName,
+                        specifications: item.specifications,
+                        quantity: _.divide(_.subtract(item.amount, item.invoiceAmount), item.price),
+                        units: '千克',
+                        price: item.price,
+                        amount: item.amount,
+                        thisAmount: item.amount,
+                        invoicedAmount: item.invoiceAmount,
+                        $cellEdit: true,
+                    })
+                })
+            })
+
+        },
+        countChange(row) {
+            row.thisAmount = _.multiply(Number(row.quantity ? row.quantity : 0), Number(row.price ? row.price : 0))
+            if (row.thisAmount > Number(row.amount - row.invoicedAmount)) {
+                row.quantity = 0
+                row.thisAmount = 0
+                return this.$message.error("本次金额不能大于金额减去已开票");
+            }
+        },
+        // 编辑
+        rowEdit(row) {
+            if (row.$cellEdit == true) {
+                if (!row.quantity) return this.$message.error("请输入数量");
+                this.$set(row, '$cellEdit', false)
+            } else {
+                this.$set(row, '$cellEdit', true)
+            }
+        },
+        dicChange(name, row) {
+            if (name == 'corporateName') {
+                if (row) {
+                    this.form.corporateId = row.id
+                    this.form.corporateName = row.cnName
+                    this.form.buyCorporateName = row.cnName
+                    this.form.openingBank = null
+                    this.form.accountNumber = null
+                    this.form.addressTel = null
+                    getBcorpsDetail(row.id).then(res => {
+                        // this.$refs.bank.getDicData(res.data.data.corpsBankList)
+                        // this.$refs.bank2.getDicData(res.data.data.corpsBankList)
+                        res.data.data.corpsBankList.forEach((item, index) => {
+                            if (index == 0) {
+                                this.form.openingBank = item.accountBank
+                                this.form.accountNumber = item.accountNo
+                            }
+                        })
+                        // this.$refs.user.getDicData(res.data.data.corpsAttnList)
+                        res.data.data.corpsAttnList.forEach((item, index) => {
+                            if (index == 0) {
+                                this.form.addressTel = item.addr + item.tel
+                            }
+                        })
+                    })
+                } else {
+                    this.form.corporateId = null
+                    this.form.corporateName = null
+                    this.form.buyCorporateName = null
+                    this.form.openingBank = null
+                    this.form.accountNumber = null
+                    this.form.addressTel = null
+                    // this.$refs.bank.getDicData([])
+                    // this.$refs.bank2.getDicData([])
+                    // this.$refs.user.getDicData([])
+                }
+            }
+            if (name == 'addressTel') {
+                if (row) {
+                    this.form.addressTel = row.addr + row.tel
+
+                } else {
+                    this.form.addressTel = null
+                }
+            }
+
+        },
+        rowDel(row, index) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                if (row.id) {
+                    itemRemove({ ids: row.id }).then(res => {
+                        this.form.invoicingItemList.splice(index, 1);
+                        this.$message.success("操作成功!");
+                    });
+                } else {
+                    this.form.invoicingItemList.splice(index, 1);
+                    this.$message.success("操作成功!");
+                }
+            }
+            );
+        },
+        getDetails(id) {
+            const loading = this.$loading({
+                lock: true,
+                text: '加载中',
+                spinner: 'el-icon-loading',
+                background: 'rgba(255,255,255,0.7)'
+            });
+            getDetail({ id: id }).then(res => {
+                this.form = res.data.data
+                this.$refs.crud.dicInit();
+            }).finally(() => {
+                loading.close()
+            })
+        },
+        submit() {
+            for (let row of this.form.invoicingItemList) {
+                if (!row.quantity) {
+                    return this.$message.error("请输入数量");
+                }
+            }
+            this.$refs["form"].validate((valid, done) => {
+                done();
+                if (valid) {
+                    const loading = this.$loading({
+                        lock: true,
+                        text: '加载中',
+                        spinner: 'el-icon-loading',
+                        background: 'rgba(255,255,255,0.7)'
+                    });
+                    submit(this.form).then(res => {
+                        this.$message.success("保存成功");
+                        this.getDetails(res.data.data.id)
+                    }).finally(() => {
+                        loading.close();
+                    })
+
+                } else {
+                    return false;
+                }
+            });
+        },
+        confirm() {
+            for (let row of this.form.invoicingItemList) {
+                if (!row.quantity) {
+                    return this.$message.error("请输入数量");
+                }
+            }
+            this.$refs["form"].validate((valid, done) => {
+                done();
+                if (valid) {
+                    this.$confirm("是否确认开票?", {
+                        confirmButtonText: "确定",
+                        cancelButtonText: "取消",
+                        type: "warning"
+                    }).then(() => {
+                        const loading = this.$loading({
+                            lock: true,
+                            text: '加载中',
+                            spinner: 'el-icon-loading',
+                            background: 'rgba(255,255,255,0.7)'
+                        });
+                        confirmInvoicing(this.form).then(res => {
+                            this.$message.success("操作成功");
+                            this.getDetails(res.data.data.id)
+                            this.editButton = true
+                            this.optionForm.disabled = true
+                        }).finally(() => {
+                            loading.close();
+                        })
+                    }
+                    );
+                } else {
+                    return false;
+                }
+            });
+        },
+        revoke() {
+            this.$confirm("是否撤销开票?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            }).then(() => {
+                const loading = this.$loading({
+                    lock: true,
+                    text: '加载中',
+                    spinner: 'el-icon-loading',
+                    background: 'rgba(255,255,255,0.7)'
+                });
+                revokeInvoicing(this.form).then(res => {
+                    this.$message.success("操作成功");
+                    this.getDetails(res.data.data.id)
+                    this.editButton = true
+                    this.optionForm.disabled = true
+                }).finally(() => {
+                    loading.close();
+                })
+            }
+            );
+        },
+        //自定义列保存
+        async saveColumn(ref, option, optionBack, code) {
+            const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+            if (inSave) {
+                this.$message.success("保存成功");
+                //关闭窗口
+                this.$refs[ref].$refs.dialogColumn.columnBox = false;
+            }
+        },
+        //自定义列重置
+        async resetColumn(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;
+            }
+        },
+        goBack(type) {
+            this.$emit("goBack", type);
+            this.$emit('updateKey')
+        },
+    }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form-item {
+    margin-bottom: 8px !important;
+}
+
+::v-deep .el-table .cell {
+    padding: 0 2px !important;
+
+    .el-form-item {
+        margin-bottom: 0px !important;
+    }
+
+}
+
+::v-deep .avue-crud .el-table .el-form-item__label {
+    left: -1px;
+}
+
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+}
+
+::v-deep#out-table .back-two {
+    background: #ecf5ff !important;
+}
+</style>

+ 298 - 0
src/views/iosBasicData/revenueInvoicing/index.vue

@@ -0,0 +1,298 @@
+<template>
+    <div>
+        <basic-container v-show="isShow">
+            <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :search.sync="query"
+                v-model="form" id="out-table" :header-cell-class-name="headerClassName" ref="crud" @row-del="rowDel"
+                @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+                @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
+                @resetColumn="resetColumn('crud', 'option', 'optionBack', 453)"
+                @saveColumn="saveColumn('crud', 'option', 'optionBack', 453)" @on-load="onLoad">
+                <template slot="menuLeft">
+                    <el-button type="primary" size="small" icon="el-icon-plus" @click="addButton">新 增
+                    </el-button>
+                </template>
+                <tempalte slot="advancePaymentBalance" slot-scope="{ row }">
+                    <el-input-number v-if="row.$cellEdit" v-model="row.advancePaymentBalance" @change="countChange(row)"
+                        :controls="false" placeholder="请输入 单价" size="small" style="width: 100%;"></el-input-number>
+                    <span v-else>{{ row.advancePaymentBalance }}</span>
+                </tempalte>
+                <template slot="menu" slot-scope="{ row, index }">
+                    <el-button size="small" icon="el-icon-delete" type="text" @click="rowDel(row)"
+                        :disabled="row.status != '录入'">删 除</el-button>
+                </template>
+                <template slot="corporateName" slot-scope="{ row }">
+                    <span style="color: #1e9fff" @click="rowEdit(row)">{{ row.corporateName }}</span>
+                </template>
+            </avue-crud>
+        </basic-container>
+        <detailsPage v-if="!isShow" :detailData="detailData" @goBack="goBack"></detailsPage>
+    </div>
+</template>
+
+<script>
+import { getList, remove, submit } from "@/api/iosBasicData/revenueInvoicing";
+import detailsPage from "./detailsPage";
+import _ from "lodash";
+
+export default {
+    data() {
+        return {
+            detailData: {},
+            isShow: true,
+            form: {},
+            query: {},
+            loading: false,
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0
+            },
+            selectionList: [],
+            option: {},
+            optionBack: {
+                height: 'auto',
+                calcHeight: 30,
+                menuWidth: 80,
+                searchShow: true,
+                searchMenuSpan: 18,
+                border: true,
+                index: true,
+                addBtn: false,
+                viewBtn: false,
+                editBtn: false,
+                delBtn: false,
+                searchIcon: true,
+                searchIndex: 3,
+                column: [
+                    {
+                        label: "销售公司",
+                        prop: "corporateName",
+                        search: true,
+                        overHidden: true,
+                    },
+                    {
+                        label: "公司名称",
+                        prop: "buyCorporateName",
+                        overHidden: true,
+                    },
+                    {
+                        label: "合同号",
+                        prop: "contractNumber",
+                        overHidden: true
+                    },
+                    {
+                        label: "业务主办",
+                        prop: "businessOrganizerName",
+                        overHidden: true
+                    },
+                    {
+                        label: "开具发票号码",
+                        prop: "invoiceNo",
+                        overHidden: true
+                    },
+                    {
+                        label: "纳税人识别号",
+                        prop: "taxpayerIdentification",
+                        overHidden: true,
+                    },
+                    {
+                        label: "开户行",
+                        prop: "openingBank",
+                        overHidden: true
+                    },
+                    {
+                        label: "账号",
+                        prop: "accountNumber",
+                        overHidden: true
+                    },
+                    {
+                        label: "地址、电话",
+                        prop: "addressTel",
+                        overHidden: true
+                    }
+                ]
+            },
+            data: [],
+        };
+    },
+    components: {
+        detailsPage,
+    },
+    async created() {
+        this.option = await this.getColumnData(this.getColumnName(453), this.optionBack);
+    },
+    activated() {
+        this.$nextTick(() => {
+            this.$refs.crud.doLayout();
+            this.$refs.crud.dicInit();
+        });
+    },
+    methods: {
+        addButton() {
+            this.isShow = false
+        },
+        rowEdit(row) {
+            this.detailData = {
+                id: row.id
+            };
+            this.isShow = false
+        },
+        rowDel(row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove({ ids: row.id }).then(() => {
+                        this.onLoad(this.page);
+                        this.$message({
+                            type: "success",
+                            message: "删除成功!"
+                        });
+                    });
+                })
+
+        },
+        // 编辑
+        inEdit(row) {
+            if (row.$cellEdit == true) {
+                this.loading = true;
+                submit(row).then(res => {
+                    this.$message({
+                        type: "success",
+                        message: "修改成功!"
+                    });
+                    this.onLoad(this.page, this.query);
+                }).finally(() => {
+                    this.loading = false;
+                })
+                this.$set(row, '$cellEdit', false)
+            } else {
+                this.$set(row, '$cellEdit', true)
+            }
+
+        },
+        countChange(row) {
+            row.inOverpayment = _.add(Number(row.advancePaymentBalance ? row.advancePaymentBalance : 0), Number(row.outOverpaymen ? row.outOverpaymen : 0))
+        },
+        searchReset() {
+            this.query = this.$options.data().query;
+            this.onLoad(this.page);
+        },
+        // 搜索按钮点击
+        searchChange(params, done) {
+            this.page.currentPage = 1;
+            this.onLoad(this.page, this.query);
+            done();
+        },
+        selectionChange(list) {
+            this.selectionList = list;
+        },
+        currentChange(currentPage) {
+            this.page.currentPage = currentPage;
+        },
+        sizeChange(pageSize) {
+            this.page.pageSize = pageSize;
+        },
+        refreshChange() {
+            this.onLoad(this.page, this.query);
+        },
+        onLoad(page, params = {}) {
+            let obj = {}
+            obj = {
+                ...Object.assign(params, this.query),
+            }
+            console.log(obj)
+            this.loading = true;
+            getList(page.currentPage, page.pageSize, obj).then(res => {
+                this.data = res.data.data.records;
+                this.page.total = res.data.data.total;
+                this.$nextTick(() => {
+                    this.$refs.crud.doLayout();
+                    this.$refs.crud.dicInit();
+                    this.$refs.crud.refreshTable();
+
+                });
+            }).finally(() => {
+                this.loading = false;
+            })
+
+        },
+        // 详情的返回列表
+        goBack() {
+            // 初始化数据
+            // if (JSON.stringify(this.$route.query) != "{}") {
+            //     this.$router.$avueRouter.closeTag();
+            //     this.$router.push({
+            //         path: "/iosBasicData/accounts/index"
+            //     });
+            // }
+            this.detailData = {}
+            this.isShow = true;
+            this.onLoad(this.page, this.search);
+        },
+        //自定义列保存
+        async saveColumn(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;
+                this.searchReset()
+            }
+        },
+        //自定义列重置
+        async resetColumn(ref, option, optionBack, code) {
+            this[option] = this[optionBack];
+            const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+            if (inSave) {
+                this.$message.success("重置成功");
+                this.$refs[ref].$refs.dialogColumn.columnBox = false;
+                this.searchReset()
+            }
+        },
+        // 更改表格颜色
+        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;
+        },
+
+    }
+}
+
+</script>
+
+<style scoped>
+::v-deep#out-table .back-one {
+    background: #ecf5ff !important;
+    text-align: center;
+}
+
+::v-deep#out-table .back-two {
+    background: #ecf5ff !important;
+    text-align: center;
+}
+
+.pointerClick {
+    cursor: pointer;
+    color: #1e9fff;
+}
+
+::v-deep .el-col-md-8 {
+    width: 24.33333%;
+}
+</style>

+ 1 - 1
src/views/iosBasicData/seamends/assembly/amendsCostdetails.vue

@@ -146,7 +146,7 @@
                 <span>{{row.isTax?'是':'否'}}</span>
             </template>
             <template slot="price" slot-scope="{ row }">
-                <el-input-number v-if="row.editType" v-model="row.price" size="small" :min="1"
+                <el-input-number v-if="row.editType" v-model="row.price" size="small"
                           placeholder="请输入单价" @blur="priceinputfun($event,row)" :controls="false"></el-input-number>
                 <span v-else>{{row.price}}</span>
             </template>

+ 1 - 1
src/views/iosBasicData/siamends/assembly/amendsCostdetails.vue

@@ -146,7 +146,7 @@
                 <span>{{row.isTax?'是':'否'}}</span>
             </template>
             <template slot="price" slot-scope="{ row }">
-                <el-input-number v-if="row.editType" v-model="row.price" size="small" :min="1"
+                <el-input-number v-if="row.editType" v-model="row.price" size="small" 
                           placeholder="请输入单价" @blur="priceinputfun($event,row)" :controls="false"></el-input-number>
                 <span v-else>{{row.price}}</span>
             </template>

+ 1 - 1
src/views/landTransportation/bulkReportAnalysis/index.vue

@@ -1024,7 +1024,7 @@ export default {
         this.loadingDialog = true
         let this_ = this
         setTimeout(function () {
-          // this_.$refs.playback.initMap();
+          this_.$refs.playback.initMap();
           this_.loadingDialog = false
         }, 1500)
       })

+ 3 - 3
src/views/landTransportation/placeAnOrder/detailPage.vue

@@ -98,7 +98,7 @@
           <port-info v-model="goodsForm.station" :disabled="goodsForm.status !== 0" />
         </template>
         <template slot-scope="scope" slot="salesman">
-          <el-select v-model="goodsForm.salesman" placeholder="请选择" :disabled="goodsForm.status !== 0">
+          <el-select v-model="goodsForm.salesman" placeholder="请选择" :disabled="goodsForm.status !== 0" filterable>
             <el-option v-for="item in salesmanList" :key="item.id" :label="item.realName" :value="item.id">
             </el-option>
           </el-select>
@@ -411,7 +411,7 @@ import {
   detailDelegationList,
   removeCollection,
   saveSaveList,
-  addressList, cancelSubmission, getCorp, getSalesman, getFee, changeSubmission, validChange, tRemove, generateBill
+  addressList, cancelSubmission, getCorp, getSalesman2, getFee, changeSubmission, validChange, tRemove, generateBill
 } from "@/api/landTransportation";
 import { getDeptTree } from "@/api/system/dept";
 import website from "@/config/website";
@@ -1614,7 +1614,7 @@ export default {
     },
     //查询业务员
     salesmanQuery(realName, type) {
-      getSalesman({ realName: realName, userExt: this.goodsForm.corpId }).then(res => {
+      getSalesman2({ realName: realName, userExt: this.goodsForm.corpId }).then(res => {
         this.salesmanList = res.data.data
         if (type) {
           this.changeSelect(this.goodsForm.salesman)

+ 1 - 1
src/views/landTransportation/reportAnalysis/index.vue

@@ -859,7 +859,7 @@ export default {
         this.loadingDialog = true
         let this_ = this
         setTimeout(function () {
-          // this_.$refs.playback.initMap();
+          this_.$refs.playback.initMap();
           this_.loadingDialog = false
         }, 1500)
       })

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

@@ -511,7 +511,7 @@ export default {
     // getCorpTypes().then(res=>{
     //     this.treeData = res.data.data
     // })
-    listAllP().then(res => {
+    listAllP({ whetherIntegral: "0" }).then(res => {
       this.treeData = res.data.data
     })
     this.onLoad(this.page, this.search)

+ 6 - 3
src/views/tirePartsMall/purchasingManagement/financingProcurement/detailsPage.vue

@@ -7,6 +7,7 @@
                 </el-button>
             </div>
             <div class="add-customer-btn">
+                
                 <el-button class="el-button&#45;&#45;small-yh" style="margin-left: 6px;" type="primary" size="small"
                     v-if="editButton" @click="confirmEditing">编 辑
                 </el-button>
@@ -448,7 +449,7 @@ export default {
             isRevocationRequest: true, // 撤销审核
             isExamineBtn: true,  // 审批
             isAdd: false,
-            editButton: true, // 编辑按钮和保存按钮的显示隐藏
+            editButton: false, // 编辑按钮和保存按钮的显示隐藏
             isSaveBtn: false, // 保存的禁用
             isDisabledTask: false, // 生成,撤销任务按钮是否禁用
             buttonText: '生成任务',
@@ -1335,16 +1336,18 @@ export default {
             this.$set(this.optionForm, 'disabled', true)
             this.$set(this.optionContactsBack, 'disabled', true)
             this.isContacts = true
-
+            this.editButton=true
             this.isDisabled = true
             //添加删除按钮禁用
             this.isAdd = true
             this.refresh(this.onLoad.id, true)
         } else if (this.onLoad.id) {
+            this.editButton=true
             this.refresh(this.onLoad.id, true)
         }
         if (!this.form.id) {
-            this.editButton = false // 第一次录入显示保存按钮
+            console.log(1)
+            // this.editButton = false // 第一次录入显示保存按钮
             this.optionContactsBack.column.forEach(its => {
                 if (its.prop == 'goodsId' || its.prop == 'goodsNum' || its.prop == 'price' || its.prop == 'dot' || its.prop == 'remarks') {
                     its.disabled = false

+ 18 - 11
src/views/tradeAgency/oceanFreightImport/detailsPage.vue

@@ -215,19 +215,19 @@
                     </template>
                     <template slot="cntrTypeCodeHeader" slot-scope="{column}">
                         <span style="color: #1e9fff;cursor: pointer;" @click="inJump('箱型')">{{ (column || {}).label
-                        }}</span>
+                            }}</span>
                     </template>
                     <template slot="goodsNameHeader" slot-scope="{column}">
                         <span style="color: #1e9fff;cursor: pointer;" @click="inJump('HSCODE')">{{ (column || {}).label
-                        }}</span>
+                            }}</span>
                     </template>
                     <template slot="hsCodeHeader" slot-scope="{column}">
                         <span style="color: #1e9fff;cursor: pointer;" @click="inJump('HSCODE')">{{ (column || {}).label
-                        }}</span>
+                            }}</span>
                     </template>
                     <template slot="goodsTypeHeader" slot-scope="{column}">
                         <span style="color: #1e9fff;cursor: pointer;" @click="inJump('类型')">{{ (column || {}).label
-                        }}</span>
+                            }}</span>
                     </template>
                     <template slot="index" slot-scope="{row,index}">
                         <span>{{ index + 1 }}</span>
@@ -365,7 +365,7 @@
                     @saveColumn="saveColumn('crud3', 'option3', 'optionBack3', 390)">
                     <template slot="storageUnitHeader" slot-scope="{column}">
                         <span style="color: #1e9fff;cursor: pointer;" @click="inJump('入库单位')">{{ (column || {}).label
-                        }}</span>
+                            }}</span>
                     </template>
                     <template slot="warehouseName" slot-scope="{ row }">
                         <dic-select v-if="row.$cellEdit" v-model="row.warehouseName" placeholder="入库" key="id"
@@ -2258,8 +2258,13 @@ export default {
                 }
             }
             if (name == '派车') {
-                if (!row.id) {
-                    return this.$message.error('请保存数据');
+                // if (!row.id) {
+                //     return this.$message.error('请保存数据');
+                // }
+                for (let item of this.form.preContainersList) {
+                    if (!item.id) {
+                        return this.$message.error('请保存数据');
+                    }
                 }
                 if (row.whetherMachineInspection == 1) {
                     if (!row.inspectionType || !row.inspectionDate) {
@@ -2300,8 +2305,10 @@ export default {
 
             }
             if (name == '自提') {
-                if (!row.id) {
-                    return this.$message.error('请保存数据');
+                for (let item of this.form.preContainersList) {
+                    if (!item.id) {
+                        return this.$message.error('请保存数据');
+                    }
                 }
                 let obj = {
                     ...row,
@@ -2502,7 +2509,7 @@ export default {
             }
             if (name == '生成出库') {
                 if (!row.warehouseName || !row.warehouseUnitPrice) {
-                    return this.$message.error((!row.warehouseName ? "仓库," : '') + (!row.warehouseUnitPrice ? "仓储单价" : '') + "不能为空");
+                    return this.$message.error((!row.warehouseName ? "仓库," : '') + (!row.warehouseUnitPrice ? "货值单价" : '') + "不能为空");
                 }
                 const loading = this.$loading({
                     lock: true,
@@ -2520,7 +2527,7 @@ export default {
             }
             if (name == '撤销出库') {
                 if (!row.warehouseName || !row.warehouseUnitPrice) {
-                    return this.$message.error((!row.warehouseName ? "仓库," : '') + (!row.warehouseUnitPrice ? "仓储单价" : '') + "不能为空");
+                    return this.$message.error((!row.warehouseName ? "仓库," : '') + (!row.warehouseUnitPrice ? "货值单价" : '') + "不能为空");
                 }
                 const loading = this.$loading({
                     lock: true,

+ 13 - 0
src/views/tradeAgency/tradeAgency/detailsPage.vue

@@ -947,6 +947,19 @@ export default {
                         overHidden: true
                     },
                     {
+                        label: "规格",
+                        prop: "specifications",
+                        width: "100",
+                        cell: true,
+                        overHidden: true
+                    },
+                    {
+                        label: "已开发票金额",
+                        prop: "invoiceAmount",
+                        width: "120",
+                        overHidden: true
+                    },
+                    {
                         label: "订单号",
                         prop: "orderNo",
                         width: "100",

+ 2 - 2
src/views/wel/home/landTransportation/components/quick-launch.vue

@@ -47,7 +47,7 @@
         </div>
       </div>
 
-      <div class="content" v-if="zhcontent == '119111'">
+      <!-- <div class="content" v-if="zhcontent == '119111'">
         <div class="content-icon" @click="entrust ? dajian('wt') : 'JZ'">
           <i class="tradingIcon icon-purchase" style="color:#75CD28"></i>
           <span>特种委托</span>
@@ -68,7 +68,7 @@
           <i class="tradingIcon icon-sales" style="color:#143056"></i>
           <span>特种台账</span>
         </div>
-      </div>
+      </div> -->
     </el-card>
     <el-dialog title="消息提醒" :visible.sync="enclosure" append-to-body width="70%">
       <avue-crud :data="data" @on-load="onLoad" :option="option" :page.sync="page"></avue-crud>

+ 1 - 0
src/views/wel/home/landTransportation/components/sales-reached.vue

@@ -81,6 +81,7 @@ export default {
       },
     //点击获取图表数据
     handleMousedown(params){
+    
         console.log(this.menuAll,90)
         if (params.data.mold == 1 && this.menuAll.includes('1499196328461225986')) {
             this.$emit('handleMousedown',params.data)