Explorar el Código

上下票 邮件

Qukatie hace 8 meses
padre
commit
a004d60113

+ 10 - 1
src/api/iosBasicData/reports.js

@@ -86,4 +86,13 @@ export const generateMailFile = (row) => {
         method: 'post',
         method: 'post',
         data: row
         data: row
     })
     })
-}
+}
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-user/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}

+ 50 - 0
src/api/system/emailAddress.js

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

+ 19 - 0
src/api/system/emailSignature.js

@@ -0,0 +1,19 @@
+import request from '@/router/axios';
+
+export const submit = (row) => {
+  return request({
+    url: '/api/blade-user/update',
+    method: 'post',
+    data: row
+  })
+}
+
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-user/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}

+ 5 - 1
src/components/dicSelect/main.vue

@@ -7,7 +7,7 @@
                 :placeholder="'请选择 ' + placeholder" @change="selectChange" @clear="clear" :clearable="clearable"
                 :placeholder="'请选择 ' + placeholder" @change="selectChange" @clear="clear" :clearable="clearable"
                 :multiple="multiple" :filterable="filterable" :remote="remote" :remote-method="remoteMethod"
                 :multiple="multiple" :filterable="filterable" :remote="remote" :remote-method="remoteMethod"
                 :loading="loading" :size="size" :disabled="disabled" :collapse-tags="collapseTags"
                 :loading="loading" :size="size" :disabled="disabled" :collapse-tags="collapseTags"
-                @visible-change="visibleChange">
+                @visible-change="visibleChange" :allow-create="allowCreate">
                 <el-option v-for="item in options" :key="item[key]" :label="item[label]"
                 <el-option v-for="item in options" :key="item[key]" :label="item[label]"
                     :value="item[keyValue ? keyValue : label]" :disabled="item.disabled">
                     :value="item[keyValue ? keyValue : label]" :disabled="item.disabled">
                     <span v-if="slotRight" style="float: left">{{ item[label] }}</span>
                     <span v-if="slotRight" style="float: left">{{ item[label] }}</span>
@@ -295,6 +295,10 @@ export default {
             type: Boolean,
             type: Boolean,
             default: false
             default: false
         },
         },
+        allowCreate:{
+            type: Boolean,
+            default: false
+        },
     },
     },
     model: {
     model: {
         prop: "value",
         prop: "value",

+ 37 - 18
src/components/iosbasic-data/mail-component.vue

@@ -3,19 +3,22 @@
         custom-class="email-dialog">
         custom-class="email-dialog">
         <el-form ref="emailForm" :model="formData" :rules="formRules" label-width="80px" label-position="right">
         <el-form ref="emailForm" :model="formData" :rules="formRules" label-width="80px" label-position="right">
             <el-form-item label="收件人" prop="to">
             <el-form-item label="收件人" prop="to">
-                <el-input v-model="formData.to" placeholder="多个收件人用分号(;)分隔" clearable></el-input>
+                <!-- <el-input v-model="formData.to" placeholder="多个收件人用分号(;)分隔" clearable></el-input> -->
+                <dic-select v-model="formData.to" placeholder="收件人" label="recipientUrl"
+                    url="/blade-los/emailaddress/listAll" :filterable="true" :multiple="true" :collapseTags="false"
+                    :allowCreate="true" dataType="string" :slotRight="true" rightLabel="recipientName"></dic-select>
             </el-form-item>
             </el-form-item>
 
 
             <el-form-item label="抄送" prop="cc">
             <el-form-item label="抄送" prop="cc">
-                <el-input v-model="formData.cc" placeholder="多个抄送人用分号(;)分隔" clearable></el-input>
+                <el-input v-model="formData.cc" placeholder="多个抄送人用分号(;)分隔" clearable size="small"></el-input>
             </el-form-item>
             </el-form-item>
 
 
-            <el-form-item label="密送" prop="bcc">
+            <!-- <el-form-item label="密送" prop="bcc">
                 <el-input v-model="formData.bcc" placeholder="多个密送人用分号(;)分隔" clearable></el-input>
                 <el-input v-model="formData.bcc" placeholder="多个密送人用分号(;)分隔" clearable></el-input>
-            </el-form-item>
+            </el-form-item> -->
 
 
             <el-form-item label="主题" prop="subject">
             <el-form-item label="主题" prop="subject">
-                <el-input v-model="formData.subject" placeholder="请输入邮件主题" clearable></el-input>
+                <el-input v-model="formData.subject" placeholder="请输入邮件主题" clearable size="small"></el-input>
             </el-form-item>
             </el-form-item>
 
 
             <el-form-item label="正文" prop="content">
             <el-form-item label="正文" prop="content">
@@ -23,7 +26,7 @@
             </el-form-item>
             </el-form-item>
 
 
             <el-form-item label="附件">
             <el-form-item label="附件">
-                <el-input v-model="formData.attachments" placeholder="请输入文件名" clearable></el-input>
+                <el-input v-model="formData.attachments" placeholder="请输入文件名" clearable size="small"></el-input>
             </el-form-item>
             </el-form-item>
 
 
             <el-form-item label="文件中心">
             <el-form-item label="文件中心">
@@ -43,7 +46,8 @@
 
 
 <script>
 <script>
 import { getToken } from "@/util/auth";
 import { getToken } from "@/util/auth";
-import { generateMailFile } from "@/api/iosBasicData/reports";
+import dicSelect from "@/components/dicSelect/main";
+import { generateMailFile, getDetail } from "@/api/iosBasicData/reports";
 
 
 
 
 export default {
 export default {
@@ -54,13 +58,16 @@ export default {
             default: false
             default: false
         }
         }
     },
     },
+    components: {
+        dicSelect
+    },
     data() {
     data() {
         return {
         return {
             dialogVisible: this.visible,
             dialogVisible: this.visible,
             sending: false,
             sending: false,
             options: {
             options: {
                 //普通上传地址
                 //普通上传地址
-                action: "/api/blade-resource/oss/endpoint/put-file",
+                action: "/api/blade-resource/oss/endpoint/put-file-mail",
                 customConfig: {
                 customConfig: {
                     menus: [
                     menus: [
                         'head',
                         'head',
@@ -86,7 +93,7 @@ export default {
                 headers: { "Blade-Auth": "Bearer " + getToken() },
                 headers: { "Blade-Auth": "Bearer " + getToken() },
                 props: {
                 props: {
                     res: "data",
                     res: "data",
-                    url: 'link'
+                    url: 'url'
                 }
                 }
             },
             },
             formData: {
             formData: {
@@ -103,11 +110,11 @@ export default {
             formRules: {
             formRules: {
                 to: [
                 to: [
                     { required: true, message: '请输入收件人邮箱', trigger: 'blur' },
                     { required: true, message: '请输入收件人邮箱', trigger: 'blur' },
-                    {
-                        validator: this.validateEmails,
-                        message: '邮箱格式不正确',
-                        trigger: 'blur'
-                    }
+                    // {
+                    //     validator: this.validateEmails,
+                    //     message: '邮箱格式不正确',
+                    //     trigger: 'blur'
+                    // }
                 ],
                 ],
                 subject: [
                 subject: [
                     { required: true, message: '请输入邮件主题', trigger: 'blur' },
                     { required: true, message: '请输入邮件主题', trigger: 'blur' },
@@ -167,7 +174,15 @@ export default {
             }
             }
         }
         }
     },
     },
+    created() {
+        this.getDetail()
+    },
     methods: {
     methods: {
+        getDetail() {
+            getDetail(JSON.parse(localStorage.getItem('sysitemData')).id).then(res => {
+                this.formData.content = res.data.data.emailSignature
+            })
+        },
         validateEmails(rule, value, callback) {
         validateEmails(rule, value, callback) {
             if (!value) return callback()
             if (!value) return callback()
 
 
@@ -200,14 +215,14 @@ export default {
             let param = {
             let param = {
                 fileName: this.formData.attachments,
                 fileName: this.formData.attachments,
                 fileType: nowFile.value,
                 fileType: nowFile.value,
-                sendTo: this.formData.to,
+                sendTo: this.formData.to(",\n", ";"),
                 mailTitle: this.formData.subject,
                 mailTitle: this.formData.subject,
                 mailContent: this.formData.content,
                 mailContent: this.formData.content,
                 fileContent: this.formData.fileContent,
                 fileContent: this.formData.fileContent,
                 fileContentStr: '',
                 fileContentStr: '',
                 sendCc: this.formData.cc,
                 sendCc: this.formData.cc,
                 sendBcc: this.formData.bcc,
                 sendBcc: this.formData.bcc,
-                fileList:files
+                fileList: files
             }
             }
             if (fileContentStrList.indexOf(this.formData.fileType) !== -1) {
             if (fileContentStrList.indexOf(this.formData.fileType) !== -1) {
                 param.fileContent = null
                 param.fileContent = null
@@ -226,7 +241,7 @@ export default {
         resetForm() {
         resetForm() {
             this.$refs.emailForm.resetFields()
             this.$refs.emailForm.resetFields()
             this.formData.attachments = ''
             this.formData.attachments = ''
-            this.formData.filesList=[]
+            this.formData.filesList = []
         }
         }
     }
     }
 }
 }
@@ -252,7 +267,7 @@ export default {
         padding: 20px 30px;
         padding: 20px 30px;
 
 
         .el-form-item {
         .el-form-item {
-            margin-bottom: 22px;
+            margin-bottom: 0px;
 
 
             .el-form-item__label {
             .el-form-item__label {
                 color: #666;
                 color: #666;
@@ -269,6 +284,10 @@ export default {
                     box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);
                     box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);
                 }
                 }
             }
             }
+
+            .el-form-item__error {
+                display: none;
+            }
         }
         }
     }
     }
 
 

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

@@ -2180,6 +2180,12 @@ const columnName = [{
 }, {
 }, {
   code: 509,
   code: 509,
   name: '永发-OW-合约列详情页'
   name: '永发-OW-合约列详情页'
+}, {
+  code: 510,
+  name: '永发-系统管理-邮箱地址列表页'
+}, {
+  code: 511,
+  name: '永发-系统管理-邮箱签名列表页'
 }
 }
 ]
 ]
 export const getColumnName = (key) => {
 export const getColumnName = (key) => {

+ 2 - 2
src/styles/tags.scss

@@ -10,7 +10,7 @@
     border-top: 1px solid #f6f6f6;
     border-top: 1px solid #f6f6f6;
     background-color: #fff;
     background-color: #fff;
     box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
     box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
-    z-index: 1500;
+    z-index: 100;
     .el-tabs--card>.el-tabs__header {
     .el-tabs--card>.el-tabs__header {
         margin: 0;
         margin: 0;
     }
     }
@@ -61,7 +61,7 @@
         position: fixed;
         position: fixed;
         width:120px;
         width:120px;
         background-color: #fff;
         background-color: #fff;
-        z-index:1024;
+        z-index:99;
         border-radius: 5px;
         border-radius: 5px;
         box-shadow: 1px 2px 10px #ccc;
         box-shadow: 1px 2px 10px #ccc;
         .item{
         .item{

+ 48 - 1
src/views/iosBasicData/OceanFreightImport/bills/billsDetails.vue

@@ -6,6 +6,8 @@
                 <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                 <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                     @click="backToList">返回列表
                     @click="backToList">返回列表
                 </el-button>
                 </el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="lastPage">上一票</el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="nextPage">下一票</el-button>
             </div>
             </div>
             <div class="add-customer-btn">
             <div class="add-customer-btn">
                 <!--<el-popover-->
                 <!--<el-popover-->
@@ -562,6 +564,10 @@ export default {
     props: {
     props: {
         detailData: {
         detailData: {
             type: Object
             type: Object
+        },
+        pageIds: {
+            type: Array, // 指定 prop 的类型为 Array
+            default: () => [], // 提供一个默认值,这里使用函数形式返回一个空数组
         }
         }
     },
     },
     data() {
     data() {
@@ -1011,6 +1017,44 @@ export default {
                 }
                 }
             });
             });
         },
         },
+        lastPage() {
+            if (this.pageIds.length) {
+                const index = this.pageIds.indexOf(this.form.id)
+                if (index == 0) {
+                    return this.$message.error('没有上一票了');
+                }
+                if (this.form.id) {
+                    this.unLock({
+                        moduleName: "SI",
+                        tableName: "SI_order",
+                        billId: this.form.id,
+                        billNo: this.form.mblno
+                    });
+                }
+                const lastIndex = index - 1
+                this.pageLoading = true
+                this.billsDetailfun(this.pageIds[lastIndex])
+            }
+        },
+        nextPage() {
+            if (this.pageIds.length) {
+                const index = this.pageIds.indexOf(this.form.id)
+                if (this.pageIds[this.pageIds.length - 1] == this.form.id) {
+                    return this.$message.error('没有下一票了');
+                }
+                if (this.form.id) {
+                    this.unLock({
+                        moduleName: "SI",
+                        tableName: "SI_order",
+                        billId: this.form.id,
+                        billNo: this.form.mblno
+                    });
+                }
+                const nextIndex = index + 1
+                this.pageLoading = true
+                this.billsDetailfun(this.pageIds[nextIndex])
+            }
+        },
         addEdit() {
         addEdit() {
             if (this.form.billStatus >= 3) {
             if (this.form.billStatus >= 3) {
                 this.$emit("toAddEdit");
                 this.$emit("toAddEdit");
@@ -3008,7 +3052,10 @@ export default {
             this.inLock();
             this.inLock();
             //   console.log('form', this.form)
             //   console.log('form', this.form)
             // console.log(this.$refs)
             // console.log(this.$refs)
-
+            if (this.form.id) {
+                this.$refs.documentCenter.reportslogListfun({ currentPage: 1, pageSize: 10 })
+            }
+            this.billsListAllfun(this.form.id);
             this.copyFormData = JSON.parse(JSON.stringify(res.data.data));
             this.copyFormData = JSON.parse(JSON.stringify(res.data.data));
             // 如果已经请核就禁用按钮
             // 如果已经请核就禁用按钮
             if (this.form.status == 1 || this.form.status == 2 || this.form.status == 3) {
             if (this.form.status == 1 || this.form.status == 2 || this.form.status == 3) {

+ 14 - 7
src/views/iosBasicData/OceanFreightImport/bills/index.vue

@@ -154,7 +154,7 @@
             </avue-crud>
             </avue-crud>
         </basic-container>
         </basic-container>
 
 
-        <bills-details ref="billsDetails" v-if="!isShow" :detailData="detailData" @goBack="goBack"
+        <bills-details ref="billsDetails" v-if="!isShow" :detailData="detailData" @goBack="goBack" :pageIds="pageIds"
             @toAddEdit="toAddEdit" :key="datekey"></bills-details>
             @toAddEdit="toAddEdit" :key="datekey"></bills-details>
 
 
         <el-dialog title="主单列表" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
         <el-dialog title="主单列表" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
@@ -1178,7 +1178,7 @@ export default {
                         showColumn: false,
                         showColumn: false,
                         search: true,
                         search: true,
                         searchValue: "1",
                         searchValue: "1",
-                        searchSpan:12,
+                        searchSpan: 12,
                         overHidden: true
                         overHidden: true
                     },
                     },
                     {
                     {
@@ -1377,7 +1377,8 @@ export default {
             // 财务状态
             // 财务状态
             accountStatusData: [],
             accountStatusData: [],
             saberUserInfo: {}, // 当前登录人个人信息
             saberUserInfo: {}, // 当前登录人个人信息
-            radioRow: {}
+            radioRow: {},
+            pageIds: []
         };
         };
     },
     },
     computed: {
     computed: {
@@ -1462,12 +1463,12 @@ export default {
                 columns.forEach((column, index) => {
                 columns.forEach((column, index) => {
                     sums[0] = "合计";
                     sums[0] = "合计";
                     let prop = column.property
                     let prop = column.property
-                    if (['quantity','grossWeight','measurement','teu','teuTotal','quantityV20','quantityV40','quantityV40hc','quantityV45','quantityV48'].includes(prop)) {
-                        let values = this.data.filter(item=>item.billType=='MH').map(item => Number(item[prop] || 0));
+                    if (['quantity', 'grossWeight', 'measurement', 'teu', 'teuTotal', 'quantityV20', 'quantityV40', 'quantityV40hc', 'quantityV45', 'quantityV48'].includes(prop)) {
+                        let values = this.data.filter(item => item.billType == 'MH').map(item => Number(item[prop] || 0));
                         let all = values.length !== 0 ? sums[index] = values.reduce((a, b) => {
                         let all = values.length !== 0 ? sums[index] = values.reduce((a, b) => {
                             return a + b;
                             return a + b;
                         }) : 0
                         }) : 0
-                        if (prop =='quantity'||prop =='grossWeight'||prop =='measurement'||prop == 'teu'||prop == 'quantityV20'||prop == 'quantityV40'||prop == 'quantityV40hc'||prop == 'quantityV45'||prop == 'quantityV48') {
+                        if (prop == 'quantity' || prop == 'grossWeight' || prop == 'measurement' || prop == 'teu' || prop == 'quantityV20' || prop == 'quantityV40' || prop == 'quantityV40hc' || prop == 'quantityV45' || prop == 'quantityV48') {
                             console.log(all)
                             console.log(all)
                             sums[index] = all
                             sums[index] = all
                         }
                         }
@@ -1604,7 +1605,7 @@ export default {
             this.templateList = []
             this.templateList = []
             this.templateDialog = true
             this.templateDialog = true
             let obj = {
             let obj = {
-                current: 1, 
+                current: 1,
                 size: 100,
                 size: 100,
                 status: 0,
                 status: 0,
                 dc: this.dc,
                 dc: this.dc,
@@ -2007,6 +2008,7 @@ export default {
         // 详情的返回列表
         // 详情的返回列表
         goBack() {
         goBack() {
             // 初始化数据
             // 初始化数据
+            this.pageIds = []
             // this.detailData = this.$options.data().detailData;
             // this.detailData = this.$options.data().detailData;
             if (JSON.stringify(this.$route.query) != "{}") {
             if (JSON.stringify(this.$route.query) != "{}") {
                 this.$router.$avueRouter.closeTag();
                 this.$router.$avueRouter.closeTag();
@@ -2020,6 +2022,7 @@ export default {
         },
         },
         // 新增弹窗开启
         // 新增弹窗开启
         addbtnfun(type) {
         addbtnfun(type) {
+            this.pageIds = []
             this.detailData.seeDisabled = false;
             this.detailData.seeDisabled = false;
             this.detailData.billType = type;
             this.detailData.billType = type;
             this.isShow = false;
             this.isShow = false;
@@ -2184,6 +2187,10 @@ export default {
         },
         },
         // 编辑详情打开
         // 编辑详情打开
         rowCellfun(id, row) {
         rowCellfun(id, row) {
+            this.pageIds = []
+            this.data.forEach(item => {
+                this.pageIds.push(item.id)
+            })
             this.detailData = {
             this.detailData = {
                 id: id
                 id: id
             };
             };

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

@@ -41,6 +41,10 @@ export default {
       type: String,
       type: String,
       default: '',
       default: '',
     },
     },
+    previewDialog: {
+      type: Boolean,
+      default: false,
+    },
   },
   },
   data() {
   data() {
     return {
     return {

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

@@ -6,6 +6,8 @@
                 <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                 <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                     @click="backToList">返回列表
                     @click="backToList">返回列表
                 </el-button>
                 </el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="lastPage">上一票</el-button>
+                <el-button v-if="form.id && pageIds.length" type="text" @click="nextPage">下一票</el-button>
             </div>
             </div>
             <div class="add-customer-btn">
             <div class="add-customer-btn">
                 <!--<el-popover-->
                 <!--<el-popover-->
@@ -442,6 +444,10 @@ export default {
     props: {
     props: {
         detailData: {
         detailData: {
             type: Object
             type: Object
+        },
+        pageIds: {
+            type: Array, // 指定 prop 的类型为 Array
+            default: () => [], // 提供一个默认值,这里使用函数形式返回一个空数组
         }
         }
     },
     },
     data() {
     data() {
@@ -726,14 +732,14 @@ export default {
                 },
                 },
                 {
                 {
                     name: '目的港',
                     name: '目的港',
-                    value: 'destinationNamePrint',
+                    value: 'destinationName',
                 },
                 },
                 // {
                 // {
                 //     name: '包装单位',
                 //     name: '包装单位',
                 //     value: 'packingUnit',
                 //     value: 'packingUnit',
                 // },
                 // },
                 {
                 {
-                    name: '船公司',
+                    name: '承运人',
                     value: 'carrierCnName',
                     value: 'carrierCnName',
                 },
                 },
                 {
                 {
@@ -896,6 +902,44 @@ export default {
                 }
                 }
             });
             });
         },
         },
+        lastPage() {
+            if (this.pageIds.length) {
+                const index = this.pageIds.indexOf(this.form.id)
+                if (index == 0) {
+                    return this.$message.error('没有上一票了');
+                }
+                const lastIndex = index - 1
+                if (this.form.id) {
+                    this.unLock({
+                        moduleName: "SE",
+                        tableName: "SE_order",
+                        billId: this.form.id,
+                        billNo: this.form.mblno
+                    });
+                }
+                this.pageLoading = true
+                this.billsDetailfun(this.pageIds[lastIndex])
+            }
+        },
+        nextPage() {
+            if (this.pageIds.length) {
+                const index = this.pageIds.indexOf(this.form.id)
+                if (this.pageIds[this.pageIds.length - 1] == this.form.id) {
+                    return this.$message.error('没有下一票了');
+                }
+                const nextIndex = index + 1
+                if (this.form.id) {
+                    this.unLock({
+                        moduleName: "SE",
+                        tableName: "SE_order",
+                        billId: this.form.id,
+                        billNo: this.form.mblno
+                    });
+                }
+                this.pageLoading = true
+                this.billsDetailfun(this.pageIds[nextIndex])
+            }
+        },
         addEdit() {
         addEdit() {
             if (this.form.billStatus >= 3) {
             if (this.form.billStatus >= 3) {
                 this.$emit('toAddEdit')
                 this.$emit('toAddEdit')
@@ -1980,20 +2024,21 @@ export default {
                 return
                 return
             }
             }
             if (popupReminder(this.form, this.messageData)) {
             if (popupReminder(this.form, this.messageData)) {
+                console.log(popupReminder(this.form, this.messageData))
                 this.$confirm(popupReminder(this.form, this.messageData), {
                 this.$confirm(popupReminder(this.form, this.messageData), {
                     confirmButtonText: "确定",
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     cancelButtonText: "取消",
                     type: "warning"
                     type: "warning"
                 })
                 })
+                 return;
             }
             }
-            if (popupReminder(this.form, this.messageData)) {
-                return;
-            }
+            // if (popupReminder(this.form, this.messageData)) {
+               
+            // }
             if (this.form.billType == 'DD') {
             if (this.form.billType == 'DD') {
                 if (this.form.feeCenterListC.length == 0 && this.form.feeCenterListD == 0) {
                 if (this.form.feeCenterListC.length == 0 && this.form.feeCenterListD == 0) {
                     return this.$message.warning('请添加费用信息')
                     return this.$message.warning('请添加费用信息')
                 }
                 }
-                return
             }
             }
 
 
             this.$confirm("确定要请核数据?", {
             this.$confirm("确定要请核数据?", {
@@ -2568,7 +2613,10 @@ export default {
             this.inLock()
             this.inLock()
             //   console.log('form', this.form)
             //   console.log('form', this.form)
             // console.log(this.$refs)
             // console.log(this.$refs)
-
+            if (this.form.id) {
+                this.$refs.documentCenter.reportslogListfun({ currentPage: 1, pageSize: 10 })
+            }
+            this.billsListAllfun(this.form.id);
             this.copyFormData = JSON.parse(JSON.stringify(res.data.data))
             this.copyFormData = JSON.parse(JSON.stringify(res.data.data))
             // 如果已经请核就禁用按钮
             // 如果已经请核就禁用按钮
             if (this.form.status == 1 || this.form.status == 2 || this.form.status == 3) {
             if (this.form.status == 1 || this.form.status == 2 || this.form.status == 3) {

+ 10 - 3
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -171,7 +171,7 @@
                 <template slot="eta" slot-scope="scope">
                 <template slot="eta" slot-scope="scope">
                     <span>{{
                     <span>{{
                         scope.row.eta ? scope.row.eta.slice(0, 10) : ""
                         scope.row.eta ? scope.row.eta.slice(0, 10) : ""
-                        }}</span>
+                    }}</span>
                 </template>
                 </template>
                 <template slot="updateTime" slot-scope="scope">
                 <template slot="updateTime" slot-scope="scope">
                     <span>{{
                     <span>{{
@@ -295,7 +295,7 @@
             </avue-crud>
             </avue-crud>
         </basic-container>
         </basic-container>
 
 
-        <bills-details ref="billsDetails" v-if="!isShow" :detailData="detailData" @goBack="goBack"
+        <bills-details ref="billsDetails" v-if="!isShow" :detailData="detailData" :pageIds="pageIds" @goBack="goBack"
             @toAddEdit="toAddEdit" :key="datekey"></bills-details>
             @toAddEdit="toAddEdit" :key="datekey"></bills-details>
 
 
         <el-dialog title="主单列表" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
         <el-dialog title="主单列表" :visible.sync="dialogVisible" append-to-body width="60%" :before-close="handleClose">
@@ -1609,7 +1609,8 @@ export default {
             billStatusData: [],
             billStatusData: [],
             // 财务状态
             // 财务状态
             accountStatusData: [],
             accountStatusData: [],
-            saberUserInfo: {} // 当前登录人个人信息
+            saberUserInfo: {}, // 当前登录人个人信息
+            pageIds:[]
         };
         };
     },
     },
     computed: {
     computed: {
@@ -2302,6 +2303,7 @@ export default {
         // 详情的返回列表
         // 详情的返回列表
         goBack() {
         goBack() {
             // 初始化数据
             // 初始化数据
+            this.pageIds=[]
             // this.detailData = this.$options.data().detailData;
             // this.detailData = this.$options.data().detailData;
             if (JSON.stringify(this.$route.query) != "{}") {
             if (JSON.stringify(this.$route.query) != "{}") {
                 this.$router.$avueRouter.closeTag();
                 this.$router.$avueRouter.closeTag();
@@ -2315,6 +2317,7 @@ export default {
         },
         },
         // 新增弹窗开启
         // 新增弹窗开启
         addbtnfun(type) {
         addbtnfun(type) {
+            this.pageIds=[]
             this.detailData.seeDisabled = false;
             this.detailData.seeDisabled = false;
             this.detailData.billType = type;
             this.detailData.billType = type;
             this.isShow = false;
             this.isShow = false;
@@ -2479,6 +2482,10 @@ export default {
         },
         },
         // 编辑详情打开
         // 编辑详情打开
         rowCellfun(id, row) {
         rowCellfun(id, row) {
+            this.pageIds=[]
+            this.data.forEach(item => {
+                this.pageIds.push(item.id)
+            })
             this.detailData = {
             this.detailData = {
                 id: id
                 id: id
             };
             };

+ 2 - 3
src/views/iosBasicData/businessCenter/customerLetter/detailsPage.vue

@@ -32,8 +32,7 @@
           size="small" @click="revokeApplication">撤销单据请核
           size="small" @click="revokeApplication">撤销单据请核
         </el-button>
         </el-button>
         <el-dropdown style="line-height: 0" v-if="importTemplate == 1">
         <el-dropdown style="line-height: 0" v-if="importTemplate == 1">
-          <el-button size="small" type="warning" style="margin-left: 8px"
-            :disabled="form.status > 0 || showLock">
+          <el-button size="small" type="warning" style="margin-left: 8px" :disabled="form.status > 0 || showLock">
             导入模板<i class="el-icon-arrow-down el-icon--right"></i>
             导入模板<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           </el-button>
           <el-dropdown-menu slot="dropdown">
           <el-dropdown-menu slot="dropdown">
@@ -1331,7 +1330,7 @@ export default {
           }
           }
         })
         })
         this.form = res.data.data
         this.form = res.data.data
-        if (res.data.data.issueStatus == 1 || res.data.data.status > 0) {
+        if (res.data.data.issueStatus == 1 || res.data.data.status == 1 || res.data.data.status == 2 || res.data.data.status == 3) {
           // this.editButton = true
           // this.editButton = true
           this.editDisabled = true
           this.editDisabled = true
           this.optionForm.disabled = true
           this.optionForm.disabled = true

+ 3 - 13
src/views/iosBasicData/report-container/report-container.vue

@@ -1,16 +1,6 @@
 <template>
 <template>
-  <el-dialog
-    :visible.sync="visible"
-    top="0"
-    width="100%"
-    height="100%"
-    style="width: 100%; height: 100%;"
-    :before-close="onClose"
-    :close-on-click-modal="false"
-    append-to-body
-    class="el-dialogDeep"
-    :fullscreen="true"
-  >
+  <el-dialog :visible.sync="visible" top="0" width="100%" height="100%" style="width: 100%; height: 100%;"
+    :before-close="onClose" :close-on-click-modal="false" append-to-body class="el-dialogDeep" :fullscreen="true">
     <div v-if="reportType" id="reportContainer" style="width: 100%; height: 100vh; padding: 0">
     <div v-if="reportType" id="reportContainer" style="width: 100%; height: 100vh; padding: 0">
     </div>
     </div>
   </el-dialog>
   </el-dialog>
@@ -22,7 +12,7 @@ export default {
     return {
     return {
       visible: false,
       visible: false,
       refreshFun: null,
       refreshFun: null,
-      reportType:false, // 通过判断处理数据
+      reportType: false, // 通过判断处理数据
     };
     };
   },
   },
   props: {
   props: {

+ 224 - 0
src/views/system/emailAddress/index.vue

@@ -0,0 +1,224 @@
+<template>
+  <basic-container>
+    <avue-crud ref="crud" :table-loading="loading" :data="data" :option="option" :search.sync="query" :page.sync="page"
+      @row-del="rowDel" @row-save="rowSave" @row-update="rowUpdate" @search-change="searchChange"
+      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
+      @resetColumn="resetColumn('crud', 'option', 'optionBack', 510)"
+      @saveColumn="saveColumn('crud', 'option', 'optionBack', 510)" @on-load="onLoad">
+      <template slot="containerNumber" slot-scope="{ row }">
+        <span @click="rowEdit(row)">{{ row.containerNumber }}</span>
+      </template>
+    </avue-crud>
+  </basic-container>
+</template>
+
+<script>
+import { getList, remove, add, update } from "@/api/system/emailAddress";
+
+export default {
+  name: "configurationLedger",
+  data() {
+    return {
+      loading: false,
+      data: [],
+      form: {},
+      query: {},
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      option: {},
+      optionBack: {
+        height: 'auto',
+        calcHeight: 30,
+        menuWidth: 140,
+        index: true,
+        searchMenuPosition: "right",
+        searchIndex: 3,
+        searchShow: true,
+        searchMenuSpan: 24,
+        searchIcon: true,
+        border: true,
+        align: 'center',
+        menuAlign: 'center',
+        column: [
+          {
+            label: '所属公司',
+            prop: 'branchId',
+            overHidden: true,
+            search: true,
+            hide: true,
+            showColumn: false,
+            type: "select",
+            filterable: true,
+            dicUrl: "/api/blade-system/dept/lazy-list",
+            props: {
+              label: "deptName",
+              value: "id",
+            },
+            display: false
+          },
+          {
+            label: '收件人',
+            prop: 'recipientUrl',
+            overHidden: true,
+            search: true,
+            span: 12,
+            rules: [{
+              required: true,
+              message: "请输入收件人",
+              trigger: "blur"
+            }]
+          },
+          {
+            label: '姓名',
+            prop: 'recipientName',
+            overHidden: true,
+            search: true,
+            span: 12,
+            rules: [{
+              required: true,
+              message: "请输入姓名",
+              trigger: "blur"
+            }]
+          },
+          {
+            label: '创建人',
+            prop: 'createUser',
+            overHidden: true,
+            search: true,
+            display: false,
+          },
+          {
+            label: '创建时间',
+            prop: 'createTime',
+            overHidden: true,
+            display: false,
+          },
+          {
+            label: '修改人',
+            prop: 'updateUserName',
+            overHidden: true,
+            display: false,
+          },
+          {
+            label: '修改时间',
+            prop: 'updateTime',
+            overHidden: true,
+            display: false,
+          },
+          {
+            label: '备注',
+            prop: 'remarks',
+            overHidden: true,
+            span: 24,
+            type: 'textarea',
+            rows: 2
+          }
+        ]
+      }
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(510), this.optionBack);
+  },
+  methods: {
+    //列表查询
+    onLoad(page, params = {}) {
+      let obj = {}
+      obj = {
+        ...Object.assign(params, this.query),
+      }
+      this.loading = true;
+      getList(page.currentPage, page.pageSize, this.query).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();
+        });
+      }).finally(() => {
+        this.loading = false;
+      })
+    },
+    //刷新按钮触发
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    //表单搜索按钮触发
+    searchChange(params, done) {
+      this.page.currentPage = 1;
+      this.onLoad(this.page, this.query);
+      done()
+    },
+    searchReset() {
+      this.query = this.$options.data().query;
+      this.onLoad(this.page);
+    },
+    currentChange(val) {
+      this.page.currentPage = val;
+    },
+    sizeChange(val) {
+      this.page.currentPage = 1;
+      this.page.pageSize = val;
+    },
+    //新增
+    rowSave(row, done, loading) {
+      add(row).then(() => {
+        this.$message.success('新增成功');
+        this.onLoad(this.page, this.query);
+        loading()
+        done()
+      })
+    },
+    //编辑
+    rowUpdate(row, index, done, loading) {
+      update(row).then(() => {
+        this.$message.success('修改成功');
+        this.onLoad(this.page, this.query);
+        loading()
+        done()
+      })
+    },
+    //删除
+    rowDel(row, index, done) {
+      remove(row.id).then(() => {
+        this.$message.success('删除成功');
+        done()
+      })
+    },
+    //自定义列保存
+    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()
+      }
+    },
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-col-md-8 {
+  width: 24.33333%;
+}
+</style>

+ 87 - 0
src/views/system/emailSignature/index.vue

@@ -0,0 +1,87 @@
+<template>
+  <basic-container>
+    <div style="display: flex;justify-content: flex-end;margin:20px 0;">
+      <el-button type="primary" @click="submit" size="small">保 存</el-button>
+    </div>
+    <avue-ueditor v-model="form.emailSignature" :options="options"></avue-ueditor>
+  </basic-container>
+</template>
+
+<script>
+import { submit, getDetail } from "@/api/system/emailSignature";
+
+import { getToken } from "@/util/auth";
+export default {
+  name: "configurationLedger",
+  data() {
+    return {
+      loading: false,
+      form: {},
+      options: {
+        //普通上传地址
+        action: "/api/blade-resource/oss/endpoint/put-file-mail",
+        customConfig: {
+          menus: [
+            'head',
+            'bold',
+            'fontSize',
+            'fontName',
+            'italic',
+            'underline',
+            'strikeThrough',
+            'foreColor',
+            'backColor',
+            'link',
+            'list',
+            'justify',
+            'quote',
+            'emoticon',
+            'image',
+            'table',
+            'undo',
+            'redo'
+          ],
+        },
+        headers: { "Blade-Auth": "Bearer " + getToken() },
+        props: {
+          res: "data",
+          url: 'url'
+        }
+      },
+    }
+  },
+  created() {
+    this.getDetail()
+  },
+  methods: {
+    getDetail() {
+      getDetail(JSON.parse(localStorage.getItem('sysitemData')).id).then(res => {
+        this.form = res.data.data
+      })
+    },
+    submit() {
+      if (!this.form.emailSignature) {
+        return this.$message.error("请编辑富文本");
+      }
+      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.getDetail()
+      }).finally(() => {
+        loading.close();
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .fullscreen-editor {
+  z-index: 999999 !important;
+}
+</style>