Преглед изворни кода

完善付费申请修改或删除功能 配置审批数据 修改邮箱

Qukatie пре 6 месеци
родитељ
комит
15ff926016

+ 34 - 0
src/api/iosBasicData/feeModify.js

@@ -0,0 +1,34 @@
+import request from '@/router/axios';
+
+export const getList = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/feecenterupdaterecord/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+export const getDetail = (row) => {
+  return request({
+    url: '/api/blade-los/feecenterupdaterecord/detail',
+    method: 'get',
+    params: row
+  })
+}
+export const applyUpdate = (row) => {
+  return request({
+    url: '/api/blade-los/feecenterupdaterecord/applyUpdate',
+    method: 'post',
+    data: row
+  })
+}
+export const revokeapplyUpdate = (row) => {
+  return request({
+    url: '/api/blade-los/feecenterupdaterecord/revokeapplyUpdate',
+    method: 'get',
+    params: row
+  })
+}

+ 364 - 0
src/components/feeModify/main.vue

@@ -0,0 +1,364 @@
+<!-- eslint-disable vue/require-valid-default-prop -->
+<template>
+  <div>
+    <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body width="80%" :before-close="handleClose"
+      :close-on-click-modal="false">
+      <div v-if="dialogVisible">
+        <el-divider>费用原来信息</el-divider>
+        <avue-form :option="oldOption" v-model="oldForm" ref="form"></avue-form>
+        <el-divider>费用修改信息</el-divider>
+        <avue-form :option="newOption" v-model="newForm" ref="form">
+          <template slot="corpTypeUpdate">
+            <dic-select v-model="newForm.corpTypeUpdate" key="id" label="cnName" res="records"
+              url="/blade-los/bcorpstypedefine/list?status=0&current=1&size=20" :filterable="true" :remote="true"
+              dataName="cnName" @selectChange="dicChange('corpTypeUpdate', $event)"></dic-select>
+          </template>
+          <template slot="shortNameUpdate">
+            <dic-select v-model="newForm.shortNameUpdate" placeholder="结算单位" :key="newForm.corpTypeUpdate"
+              label="shortName" res="records"
+              :url="'/blade-los/bcorps/selectList?status=0&current=1&size=5&corpTypeName=' + newForm.corpTypeUpdate"
+              :filterable="true" :remote="true" dataName="shortName"
+              @selectChange="dicChange('shortNameUpdate', $event)" :slotRight="true" rightLabel="code"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <!-- <template slot="billShortNameUpdate">
+            <dic-select v-model="newForm.billShortNameUpdate" placeholder="客户名称" label="shortName" res="records"
+              url="/blade-los/bcorps/selectList?status=0&current=1&size=5" :filterable="true" :remote="true"
+              dataName="shortName" @selectChange="dicChange('billShortNameUpdate', $event)" :slotRight="true"
+              rightLabel="code" :disabled="newOption.disabled"></dic-select>
+          </template> -->
+          <template slot="feeCnNameUpdate">
+            <dic-select v-model="newForm.feeCnNameUpdate" placeholder="费用名称" label="cnName" res="records"
+              url="/blade-los/bfees/list?status=0&current=1&size=20" :filterable="true" :remote="true" dataName="cnName"
+              @selectChange="dicChange('feeCnNameUpdate', $event)" :slotRight="true" rightLabel="code"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <template slot="unitNoUpdate">
+            <dic-select v-model="newForm.unitNoUpdate" placeholder="费用名称" label="cnName"
+              url="/blade-los/bunits/listAll?status=0" :filterable="true" :slotRight="true" rightLabel="code"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <template slot="curCodeUpdate">
+            <dic-select v-model="newForm.curCodeUpdate" placeholder="币别" label="code"
+              :url="'/blade-los/bcurrency/obtainRate?deptId=' + deptId + '&date=' + form.etd + ' 00:00:00' + '&type=1'"
+              :filterable="true" @selectChange="dicChange('curCodeUpdate', $event, row)"
+              :disabled="newOption.disabled"></dic-select>
+          </template>
+          <template slot="priceUpdate">
+            <el-input-number v-model="newForm.priceUpdate" :controls="false" placeholder="请输入 单价" size="small"
+              style="width: 100%;" :precision="0" @change="countChange()"
+              :disabled="newOption.disabled"></el-input-number>
+          </template>
+          <template slot="quantityUpdate">
+            <el-input-number v-model="newForm.quantityUpdate" :controls="false" placeholder="请输入 数量" size="small"
+              style="width: 100%;" :precision="0" @change="countChange()"
+              :disabled="newOption.disabled"></el-input-number>
+          </template>
+        </avue-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">关 闭</el-button>
+        <el-button v-if="type" type="primary" @click="submit" size="mini">确定修改</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { applyUpdate, revokeapplyUpdate, getDetail } from '@/api/iosBasicData/feeModify.js'
+import dicSelect from "@/components/dicSelect/main";
+import _ from "lodash";
+export default {
+  components: {
+    dicSelect
+  },
+  props: {
+    form: {
+      type: Object,
+      default: () => { },
+    },
+  },
+  data() {
+    return {
+      deptId: JSON.parse(localStorage.getItem('sysitemData')).deptId,
+      oldForm: {},
+      newForm: {},
+      dialogVisible: false,
+      oldOption: {
+        menuBtn: false,
+        span: 12,
+        disabled: true,
+        labelWidth: 100,
+        column: [
+          {
+            label: "类别",
+            prop: "corpType",
+          },
+          {
+            label: "结算单位",
+            prop: "shortName",
+          },
+          // {
+          //   label: "客户名称",
+          //   prop: "billShortName",
+          // },
+          {
+            label: "费用名称",
+            prop: "feeCnName",
+          },
+          {
+            label: "计量单位",
+            prop: "unitNo",
+          },
+          {
+            label: "币别",
+            prop: "curCode",
+          },
+          {
+            label: "汇率",
+            prop: "exrate",
+          },
+          {
+            label: "数量",
+            prop: "quantity",
+          },
+          {
+            label: "单价",
+            prop: "price",
+          },
+          {
+            label: "金额",
+            prop: "amount",
+          },
+          {
+            label: "备注",
+            prop: "remarks",
+            minRows: 2,
+          }
+        ]
+      },
+      newOption: {
+        menuBtn: false,
+        span: 12,
+        disabled: false,
+        labelWidth: 100,
+        column: [
+          {
+            label: "类别",
+            prop: "corpTypeUpdate",
+          },
+          {
+            label: "结算单位",
+            prop: "shortNameUpdate",
+          },
+          {
+            label: "费用名称",
+            prop: "feeCnNameUpdate",
+          },
+          {
+            label: "计量单位",
+            prop: "unitNoUpdate",
+          },
+          {
+            label: "币别",
+            prop: "curCodeUpdate",
+          },
+          {
+            label: "汇率",
+            prop: "exrateUpdate",
+            disabled: true,
+          },
+          {
+            label: "数量",
+            prop: "quantityUpdate",
+          },
+          {
+            label: "单价",
+            prop: "priceUpdate",
+          },
+          {
+            label: "金额",
+            prop: "amountUpdate",
+            disabled: true,
+          },
+          {
+            label: "备注",
+            prop: "remarksUpdate",
+            minRows: 2,
+          }
+        ]
+      },
+      type: null,
+      title: null,
+    }
+  },
+  created() {
+    // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
+  },
+  methods: {
+    openDialog(row, type) {
+      if (type == 'fix') {
+        this.oldForm = row
+        this.newForm = {
+          corpIdUpdate: row.corpId,
+          corpCnNameUpdate: row.corpCnName,
+          corpEnNameUpdate: row.corpEnName,
+          shortNameUpdate: row.shortName,
+          // billCorpIdUpdate: row.billCorpId,
+          // billCorpCnNameUpdate: row.billCorpCnName,
+          // billCorpEnNameUpdate: row.billCorpEnName,
+          // billShortNameUpdate: row.billShortName,
+          corpTypeUpdate: row.corpType,
+          feeIdUpdate: row.feeId,
+          feeCodeUpdate: row.feeCode,
+          feeEnNameUpdate: row.feeEnName,
+          feeCnNameUpdate: row.feeCnName,
+          unitNoUpdate: row.unitNo,
+          curCodeUpdate: row.curCode,
+          exrateUpdate: row.exrate,
+          quantityUpdate: row.quantity,
+          priceUpdate: row.price,
+          amountUpdate: row.amount,
+        }
+        this.type = type
+        this.title = '费用申请修改'
+        this.dialogVisible = true
+      }
+      if (type == 'del') {
+        this.$confirm('是否申请费用删除?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          this.oldForm = row
+          let obj = {
+            ...this.oldForm,
+            ...this.newForm,
+            billDate: this.oldForm.billDate + ' 00:00:00',
+            etd: this.oldForm.etd + ' 00:00:00',
+            type: 1,
+            id: null,
+            pid: this.form.id,
+            itemId: this.oldForm.id,
+            branchId: this.form.branchId,
+            branchName: this.form.branchName,
+            url: '/iosBasicData/SeafreightExportF/bills/index',
+            pageStatus: "this.$store.getters.approvalDetails",
+            pageLabel: "海运出口(F)",
+          }
+          applyUpdate(obj).then(res => {
+            this.$message.success('操作成功');
+            this.$emit('updateDetail')
+          })
+        })
+      }
+      if (type == 'view') {
+        const obj = {
+          id: row.id,
+        }
+        getDetail(obj).then(res => {
+          this.oldForm = res.data.data
+          this.newForm = res.data.data
+          this.newOption.disabled = true
+          this.title = '查看费用'
+          this.dialogVisible = true
+        })
+      }
+      if (type == 'revoke') {
+        let obj = {
+          billId: this.form.id,
+          itemId: row.id
+        }
+        revokeapplyUpdate(obj).then(res => {
+          this.$message.success('操作成功');
+          this.$emit('updateDetail')
+        })
+      }
+    },
+    countChange() {
+      this.newForm.amountUpdate = _.round(_.multiply(this.newForm.priceUpdate, this.newForm.quantityUpdate), 2)
+    },
+    dicChange(name, row) {
+      if (name == 'corpTypeUpdate') {
+        this.newForm.corpIdUpdate = null
+        this.newForm.corpCnNameUpdate = null
+        this.newForm.corpEnNameUpdate = null
+        this.newForm.shortNameUpdate = null
+      }
+      if (name == 'shortNameUpdate') {
+        if (row) {
+          this.newForm.corpIdUpdate = row.id
+          this.newForm.corpCnNameUpdate = row.cnName
+          this.newForm.corpEnNameUpdate = row.enName
+        } else {
+          this.newForm.corpIdUpdate = null
+          this.newForm.corpCnNameUpdate = null
+          this.newForm.corpEnNameUpdate = null
+          this.newForm.shortNameUpdate = null
+        }
+      }
+      if (name == 'billShortNameUpdate') {
+        if (row) {
+          this.newForm.billCorpIdUpdate = row.id
+          this.newForm.billCorpCnNameUpdate = row.cnName
+          this.newForm.billCorpEnNameUpdate = row.enName
+        } else {
+          this.newForm.billCorpIdUpdate = null
+          this.newForm.billCorpCnNameUpdate = null
+          this.newForm.billCorpEnNameUpdate = null
+          this.newForm.billShortNameUpdate = null
+        }
+      }
+      if (name == 'feeCnNameUpdate') {
+        if (row) {
+          this.newForm.feeIdUpdate = row.id
+          this.newForm.feeCodeUpdate = row.code
+          this.newForm.feeEnNameUpdate = row.enName
+        } else {
+          this.newForm.feeIdUpdate = null
+          this.newForm.feeCodeUpdate = null
+          this.newForm.feeEnNameUpdate = null
+          this.newForm.feeCnNameUpdate = null
+        }
+      }
+      if (name == 'curCodeUpdate') {
+        if (row) {
+          // console.log()
+          this.newForm.exrateUpdate = this.getExchangeRate(row.code, this.oldForm.dc, 1)
+        } else {
+          this.newForm.exrateUpdate = null
+        }
+
+      }
+    },
+    submit() {
+      let obj = {
+        ...this.oldForm,
+        ...this.newForm,
+        billDate: this.oldForm.billDate + ' 00:00:00',
+        etd: this.oldForm.etd + ' 00:00:00',
+        type: 0,
+        id: null,
+        pid: this.form.id,
+        itemId: this.oldForm.id,
+        branchId: this.form.branchId,
+        branchName: this.form.branchName,
+        url: '/iosBasicData/SeafreightExportF/bills/index',
+        pageStatus: "this.$store.getters.approvalDetails",
+        pageLabel: "海运出口(F)",
+      }
+      applyUpdate(obj).then(res => {
+        this.$message.success('操作成功');
+        this.dialogVisible = false
+        this.$emit('updateDetail')
+      })
+    },
+  },
+}
+</script>
+
+<style scoped>
+::v-deep .el-dialog__body {
+  padding: 6px 20px !important;
+}
+</style>

+ 259 - 0
src/components/feeModify/view.vue

@@ -0,0 +1,259 @@
+<!-- eslint-disable vue/require-valid-default-prop -->
+<template>
+  <div>
+    <el-dialog title="费用修改" :visible.sync="dialogVisible" append-to-body width="80%" :before-close="handleClose"
+      :close-on-click-modal="false">
+      <avue-crud v-if="dialogVisible" ref="crud" :table-loading="loading" :option="option" :data="data"
+        :page.sync="page" @current-change="currentChange" @size-change="sizeChange" @on-load="onLoad">
+        <template slot="menu" slot-scope="{row}">
+          <el-button type="text" size="small" @click="rowEdit(row)">查看数据
+          </el-button>
+          <!-- <el-button type="text" size="small" @click="rowEdit('费用删除', row)">费用删除
+          </el-button> -->
+        </template>
+      </avue-crud>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false" size="mini">关 闭</el-button>
+      </span>
+    </el-dialog>
+    <fee-modify ref="feeModify" :form="form"></fee-modify>
+  </div>
+</template>
+
+<script>
+import { getList } from '@/api/iosBasicData/feeModify.js'
+import feeModify from "@/components/feeModify/main.vue";
+import _ from "lodash";
+export default {
+  components: { feeModify },
+  props: {
+    form: {
+      type: Object,
+      default: () => { },
+    },
+  },
+  data() {
+    return {
+      itemId: null,
+      selectionList: [],
+      data: [],
+      dialogVisible: false,
+      loading: false,
+      page: {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      },
+      option: {
+        height: 400,
+        calcHeight: 30,
+        border: true,
+        index: true,
+        // addBtn: false,
+        // viewBtn: false,
+        delBtn: false,
+        editBtn: false,
+        // refreshBtn: false,
+        // columnBtn: false,
+        header: false,
+        menu: true,
+        menuWidth: 80,
+        column: [
+          {
+            label: "结算单位",
+            prop: "shortNameUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "申请类型",
+            prop: "type",
+            width: "100",
+            overHidden: true,
+            dicData: [{
+              label: '申请修改',
+              value: '0'
+            }, {
+              label: '申请删除',
+              value: '1'
+            }]
+          },
+          {
+            label: "申请状态",
+            prop: "status",
+            width: "100",
+            overHidden: true,
+            dicData: [{
+              label: '录入',
+              value: '0',
+            }, {
+              label: '提交审核',
+              value: '1',
+            }, {
+              label: '审核中',
+              value: '2',
+            }, {
+              label: '审核通过',
+              value: '3',
+            }, {
+              label: '审核驳回',
+              value: '4',
+            }, {
+              label: '撤销申请',
+              value: '5',
+            }],
+          },
+          {
+            label: "费用名称",
+            prop: "feeCnNameUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "计量单位",
+            prop: "unitNoUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "币别",
+            prop: "curCodeUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "汇率",
+            prop: "exrateUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "数量",
+            prop: "quantityUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "单价",
+            prop: "priceUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "金额",
+            prop: "amountUpdate",
+            width: "100",
+            overHidden: true,
+          },
+          {
+            label: "备注",
+            prop: "remarksUpdate",
+            width: "100",
+            overHidden: true,
+          }
+        ]
+      },
+    }
+  },
+  created() {
+    // this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
+  },
+  methods: {
+    rowEdit(row) {
+      this.$refs.feeModify.openDialog(row, 'view')
+    },
+    openDialog(row) {
+      this.data = []
+      this.page = {
+        pageSize: 10,
+        currentPage: 1,
+        total: 0
+      }
+      this.itemId = row.id
+      this.dialogVisible = true
+    },
+    onLoad(page, params = {}) {
+      let obj = {}
+      obj = {
+        pid: this.form.id,
+        itemId: this.itemId,
+        // ...Object.assign(params, this.query),
+      }
+      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();
+        });
+      }).finally(() => {
+        this.loading = false;
+      })
+    },
+    selectionChange(list) {
+      this.selectionList = list
+    },
+    //自定义列保存
+    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;
+      }
+    },
+
+    // 更改表格颜色
+    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;
+  padding: 4px 0;
+}
+
+::v-deep#out-table .back-two {
+  background: #ecf5ff !important;
+  text-align: center;
+  padding: 4px 0;
+}
+
+::v-deep .el-col-md-8 {
+  width: 24.33333%;
+}
+
+::v-deep .el-dialog__body {
+  padding: 6px 20px !important;
+}
+</style>

+ 2 - 2
src/components/iosbasic-data/mail-component.vue

@@ -32,7 +32,7 @@
             <el-form-item label="文件中心">
                 <c-upload :data="formData.filesList" :enumerationValue="76"
                     actionUrl="/api/blade-resource/oss/endpoint/put-file-mail"
-                    deleteUrl="/api/blade-los/tradingBoxFiles/remove" linkKey="url" :maxNum="6" display>
+                    deleteUrl="/api/blade-los/tradingBoxFiles/remove" linkKey="url" display>
                 </c-upload>
             </el-form-item>
         </el-form>
@@ -118,7 +118,7 @@ export default {
                 ],
                 subject: [
                     { required: true, message: '请输入邮件主题', trigger: 'blur' },
-                    { max: 100, message: '主题长度不能超过100个字符', trigger: 'blur' }
+                    // { max: 100, message: '主题长度不能超过100个字符', trigger: 'blur' }
                 ],
                 content: [
                     { required: true, message: '请输入邮件正文', trigger: 'blur' }

+ 2 - 2
src/styles/tags.scss

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

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

@@ -35,6 +35,8 @@
         <span v-else-if="scope.row.checkType == 'FYSQ'">费用申请</span>
         <span v-else-if="scope.row.checkType == 'FYSQ-C'">费用申请-付费</span>
         <span v-else-if="scope.row.checkType == 'KHTS'">客户托书</span>
+        <span v-else-if="scope.row.checkType == 'FY-SQXG'">费用申请修改</span>
+        <span v-else-if="scope.row.checkType == 'FY-SQSC'">费用申请删除</span>
       </template>
       <template slot-scope="scope" slot="billNo">
         <span style="color: #1e9fff;cursor: pointer;" @click="billNoDetails(scope.row)">{{ scope.row.billNo }}</span>
@@ -81,6 +83,12 @@
         <el-button type="text" size="small" v-else-if="scope.row.checkType == 'FYSQ-C'"
           :disabled="scope.row.auditStatus != 'S'" @click.stop="printWindowfun(scope.row, 'FYSQ-C')">审批
         </el-button>
+        <el-button type="text" size="small" v-else-if="scope.row.checkType == 'FY-SQXG'"
+          :disabled="scope.row.auditStatus != 'S'" @click.stop="printWindowfun(scope.row, 'FY-SQXG')">审批
+        </el-button>
+           <el-button type="text" size="small" v-else-if="scope.row.checkType == 'FY-SQSC'"
+          :disabled="scope.row.auditStatus != 'S'" @click.stop="printWindowfun(scope.row, 'FY-SQSC')">审批
+        </el-button>
         <el-button type="text" size="small" v-else :disabled="scope.row.auditStatus != 'S'"
           @click.stop="openCheck(scope.row)">审批
         </el-button>
@@ -319,6 +327,13 @@ export default {
           classifyCode: row.srcBusType,
           groupCode: 'FYSQ'
         }
+      } else if (type == 'FY-SQXG'||type == 'FY-SQSC') {
+        obj = {
+          billId: row.billId,
+          businessType: 'HYCK',
+          classifyCode: '费用',
+          groupCode: '费用-申请修改'
+        }
       }
       getreportsList(1, 10, obj).then(res => {
         this.reportRadio(res.data.data.records[0], type)

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

@@ -34,7 +34,7 @@
                         </el-dropdown-item>
                     </el-dropdown-menu>
                 </el-dropdown>
-                <!-- <el-dropdown style="line-height: 0">
+                <el-dropdown style="line-height: 0">
                     <el-button size="small" type="success" style="margin-right: 8px" :loading="saveLoading"
                         :disabled="!form.id || showLock">
                         发送 SO EDI<i class="el-icon-arrow-down el-icon--right"></i>
@@ -45,7 +45,7 @@
                         </el-dropdown-item>
                     </el-dropdown-menu>
                 </el-dropdown>
-                <el-dropdown style="line-height: 0">
+                <!-- <el-dropdown style="line-height: 0">
                     <el-button size="small" type="success" style="margin-right: 8px" :loading="saveLoading"
                         :disabled="!form.id || showLock">
                         发送 SI EDI<i class="el-icon-arrow-down el-icon--right"></i>

+ 27 - 8
src/views/iosBasicData/OceanFreightImport/bills/index.vue

@@ -62,6 +62,17 @@
                     </el-button>
                     <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">单据请核
                     </el-button>
+                    <el-dropdown style="line-height: 0">
+                        <el-button size="small" type="success" style="margin-right: 8px"
+                            :disabled="selectionList.length == 0">
+                            发送 SO EDI<i class="el-icon-arrow-down el-icon--right"></i>
+                        </el-button>
+                        <el-dropdown-menu slot="dropdown">
+                            <el-dropdown-item v-for="item in ediData_SO" :key="item.id"
+                                @click.native="editypesSendingEdifun(item)">{{ item.cnName }}
+                            </el-dropdown-item>
+                        </el-dropdown-menu>
+                    </el-dropdown>
                     <div style="margin-top: 10px">
                         <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
 
@@ -142,7 +153,7 @@
                 <template slot="eta" slot-scope="scope">
                     <span>{{
                         scope.row.eta ? scope.row.eta.slice(0, 10) : ""
-                    }}</span>
+                        }}</span>
                 </template>
                 <template slot="updateTime" slot-scope="scope">
                     <span>{{
@@ -266,6 +277,7 @@ export default {
     },
     data() {
         return {
+            ediData_SO: [],
             roleName: [],
             dcDic: [
                 {
@@ -1450,6 +1462,7 @@ export default {
                 }
             })
         }
+
         this.billStatusWorkDictsfun(); // 获取业务状态字典数据
         this.accountStatusWorkDictsfun(); // 获取财务状态字典数据
         this.corpBcorpslistByType(); // 获取客户名数据
@@ -1475,6 +1488,18 @@ export default {
         }
     },
     methods: {
+        editypesListfun() {
+            editypesList(1, 1000).then(res => {
+                console.log("EDI", res.data.data.records);
+                this.ediData = res.data.data.records;
+                this.ediData_SO = res.data.data.records.filter(
+                    r => r.groupName == "SO"
+                );
+                this.ediData_SI = res.data.data.records.filter(
+                    r => r.groupName == "SI"
+                );
+            });
+        },
         summaryMethod({ columns, data }) {
             const sums = [];
             if (columns.length > 0) {
@@ -1733,16 +1758,10 @@ export default {
         editypesSendingEdifun(row) {
             row.billId = this.ids;
             editypesSendingEdi(row).then(res => {
-                this.$message.success("发送EDI成功");
+                this.$message.success(res.data.msg);
                 this.onLoad(this.page);
             });
         },
-        // 获取EDI列表数据
-        editypesListfun() {
-            editypesList(1, 30, { type: "HYJK" }).then(res => {
-                this.ediData = res.data.data.records;
-            });
-        },
         // 展开和收起
         shiftCollapsiable() {
             this.fold = !this.fold;

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

@@ -84,6 +84,12 @@
                         @click="allClick('D费用申请')">请核费用</el-button>
                     <el-button type="danger" plain size="small" :disabled="disabled || selectionDList.length == 0"
                         @click="allClick('D撤销请核')">撤销请核</el-button>
+                    <el-button type="primary" plain size="small" :disabled="selectionDList.length != 1"
+                        @click="allClick('D申请修改')">申请修改</el-button>
+                    <el-button type="success" plain size="small" :disabled="selectionDList.length != 1"
+                        @click="allClick('D申请删除')">申请删除</el-button>
+                    <el-button type="danger" plain size="small" :disabled="selectionDList.length != 1"
+                        @click="allClick('D取消申请')">取消申请</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
                     <el-button v-if="isFeeEditD" type="primary" size="small" icon="el-icon-plus" circle
@@ -182,11 +188,12 @@
                     <el-input v-if="row.edit" v-model="row.remarks" size="small" placeholder="请输入"></el-input>
                     <span v-else>{{ row.remarks }}</span>
                 </template>
-                <template slot-scope="scope" slot="menu">
+                <template slot-scope="{row,index}" slot="menu">
+                    <el-button v-if="row.id" type="text" size="small" @click="rowView(row, index)">查看</el-button>
                     <!--<el-button v-if="scope.row.edit" type="text" size="small" @click="savefun(scope.row,scope.index,'D')">保存</el-button>-->
                     <!--<el-button v-else type="text" size="small" :disabled="scope.row.accStatus || disabled || pleasereviewType" @click="editDfun(scope.row,scope.index)">编辑</el-button>-->
-                    <el-button type="text" size="small" :disabled="scope.row.accStatus || disabled || pleasereviewType"
-                        @click="deletefun(scope.row, scope.index, 'D')">删除</el-button>
+                    <!-- <el-button type="text" size="small" :disabled="scope.row.accStatus || disabled || pleasereviewType"
+                        @click="deletefun(scope.row, scope.index, 'D')">删除</el-button> -->
                 </template>
             </avue-crud>
         </el-card>
@@ -236,6 +243,12 @@
                         @click="allClick('C撤销请核')">撤销请核</el-button>
                     <!-- <el-button type="success" plain size="small" :disabled="disabled"
                         @click="allClick('提取成本')">提取成本</el-button> -->
+                    <el-button type="primary" plain size="small" :disabled="selectionCList.length != 1"
+                        @click="allClick('C申请修改')">申请修改</el-button>
+                    <el-button type="success" plain size="small" :disabled="selectionCList.length != 1"
+                        @click="allClick('C申请删除')">申请删除</el-button>
+                    <el-button type="danger" plain size="small" :disabled="selectionCList.length != 1"
+                        @click="allClick('C取消申请')">取消申请</el-button>
                 </template>
                 <template slot="indexHeader" slot-scope="scope">
                     <el-button v-if="isFeeEditC" type="primary" size="small" icon="el-icon-plus" circle
@@ -335,11 +348,11 @@
                     <el-input v-if="row.edit" v-model="row.remarks" size="small" placeholder="请输入"></el-input>
                     <span v-else>{{ row.remarks }}</span>
                 </template>
-                <template slot-scope="scope" slot="menu">
-                    <!--<el-button v-if="scope.row.edit" type="text" size="small" @click="savefun(scope.row,scope.index,'C')">保存</el-button>-->
+                <template slot-scope="{row,index}" slot="menu">
+                    <el-button v-if="row.id" type="text" size="small" @click="rowView(row, index)">查看</el-button>
                     <!--<el-button v-else type="text" size="small" :disabled="scope.row.accStatus || disabled || pleasereviewType" @click="editCfun(scope.row,scope.index)">编辑</el-button>-->
-                    <el-button type="text" size="small" :disabled="scope.row.accStatus || disabled || pleasereviewType"
-                        @click="deletefun(scope.row, scope.index, 'C')">删除</el-button>
+                    <!-- <el-button type="text" size="small" :disabled="scope.row.accStatus || disabled || pleasereviewType"
+                        @click="deletefun(scope.row, scope.index, 'C')">删除</el-button> -->
                 </template>
             </avue-crud>
         </el-card>
@@ -617,6 +630,8 @@
         <reportContainer ref="reportContainer"></reportContainer>
         <mail-component ref="mailComponentRef" />
         <extraction-cost ref="extractionCost" @getData="getData" />
+        <fee-modify ref="feeModify" :form="assemblyForm" @updateDetail="updateDetail"></fee-modify>
+        <fee-modify-view ref="feeModifyView" :form="assemblyForm"></fee-modify-view>
     </div>
 </template>
 
@@ -660,9 +675,11 @@ import extractionCost from "@/components/extractionCost/main.vue";
 import dicSelect from "@/components/dicSelect/main";
 import mailComponent from "@/components/iosbasic-data/mail-component.vue";
 import { getListTemplate, getListTemplatelist } from "@/api/iosBasicData/losbfeestemplate";
+import feeModify from "@/components/feeModify/main.vue";
+import feeModifyView from "@/components/feeModify/view.vue";
 import _ from "lodash";
 export default {
-    components: { extractionCost, dicSelect, reportContainer, SearchQuery, reportformsList, mailComponent },
+    components: { extractionCost, dicSelect, reportContainer, SearchQuery, reportformsList, mailComponent, feeModify, feeModifyView },
     props: {
         pid: {
 
@@ -992,8 +1009,8 @@ export default {
                 viewBtn: false,
                 delBtn: false,
                 editBtn: false,
-                menuWidth: '100',
-                menu: false,
+                menuWidth: '60',
+                //menu: false,
                 column: [
                     {
                         label: "index",
@@ -1025,6 +1042,12 @@ export default {
                         }, {
                             label: '审核通过',
                             value: '4',
+                        }, {
+                            label: '申请修改',
+                            value: '5',
+                        }, {
+                            label: '申请删除',
+                            value: '6',
                         }],
                     },
                     {
@@ -1183,8 +1206,8 @@ export default {
                 viewBtn: false,
                 delBtn: false,
                 editBtn: false,
-                menuWidth: '100',
-                menu: false,
+                menuWidth: '60',
+                // menu: false,
                 column: [
                     {
                         label: "index",
@@ -1217,6 +1240,12 @@ export default {
                         }, {
                             label: '审核通过',
                             value: '4',
+                        }, {
+                            label: '申请修改',
+                            value: '5',
+                        }, {
+                            label: '申请删除',
+                            value: '6',
                         }],
                     },
                     {
@@ -1564,6 +1593,9 @@ export default {
         this.paymodeWorkDictsfun() // 获取预付/到付数据
     },
     methods: {
+        rowView(row, index) {
+            this.$refs.feeModifyView.openDialog(row)
+        },
         testMail(e) {
             console.info('eeeeeeeeeeeeeeeeeeee----', e)
             this.$refs.mailComponentRef.dialogVisible = true
@@ -1950,7 +1982,7 @@ export default {
             this.dc = dc
             this.templateVisible = true
             let obj = {
-                current: 1, 
+                current: 1,
                 size: 100,
                 status: 0,
                 type: 'HYCK',
@@ -3022,6 +3054,9 @@ export default {
             })
 
         },
+        updateDetail() {
+            this.$emit('billsDetailfun')
+        },
         allClick(name, type) {
             if (name == '付费申请') {
                 if (this.selectionCList.length == 0) return this.$message.error("请选择费用");
@@ -3134,6 +3169,9 @@ export default {
                     if (row.auditStatus == 0) {
                         return this.$message.error("未申请费用,不允许撤销");
                     }
+                    if (row.auditStatus > 2) {
+                        return this.$message.error("请核通过的费用,不允许撤销");
+                    }
                 }
                 this.$confirm("确定撤销请核?", {
                     confirmButtonText: "确定",
@@ -3163,6 +3201,78 @@ export default {
                     })
                 });
             }
+            if (name == 'D申请修改') {
+                for (let row of this.selectionDList) {
+                    if (!row.id) {
+                        return this.$message.error("请保存费用明细");
+                    }
+                    if (row.auditStatus != 4) {
+                        return this.$message.error("未审核通过的费用,不允许申请");
+                    }
+
+                    this.$refs.feeModify.openDialog(row, 'fix')
+                }
+            }
+            if (name == 'D申请删除') {
+                for (let row of this.selectionDList) {
+                    if (!row.id) {
+                        return this.$message.error("请保存费用明细");
+                    }
+                    if (row.auditStatus != 4) {
+                        return this.$message.error("未审核通过的费用,不允许申请");
+                    }
+
+                    this.$refs.feeModify.openDialog(row, 'del')
+                }
+            }
+            if (name == 'D取消申请') {
+                for (let row of this.selectionDList) {
+                    if (!row.id) {
+                        return this.$message.error("请保存费用明细");
+                    }
+                    if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+                        return this.$message.error("未申请修改或删除,不允许撤销申请");
+                    }
+
+                    this.$refs.feeModify.openDialog(row, 'revoke')
+                }
+            }
+             if (name == 'C申请修改') {
+                for (let row of this.selectionCList) {
+                    if (!row.id) {
+                        return this.$message.error("请保存费用明细");
+                    }
+                    if (row.auditStatus != 4) {
+                        return this.$message.error("未审核通过的费用,不允许申请");
+                    }
+
+                    this.$refs.feeModify.openDialog(row, 'fix')
+                }
+            }
+            if (name == 'C申请删除') {
+                for (let row of this.selectionCList) {
+                    if (!row.id) {
+                        return this.$message.error("请保存费用明细");
+                    }
+                    if (row.auditStatus != 4) {
+                        return this.$message.error("未审核通过的费用,不允许申请");
+                    }
+
+                    this.$refs.feeModify.openDialog(row, 'del')
+                }
+            }
+            if (name == 'C取消申请') {
+                for (let row of this.selectionCList) {
+                    if (!row.id) {
+                        return this.$message.error("请保存费用明细");
+                    }
+                    if (!(row.auditStatus == 5 || row.auditStatus == 6)) {
+                        return this.$message.error("未申请修改或删除,不允许撤销申请");
+                    }
+
+                    this.$refs.feeModify.openDialog(row, 'revoke')
+                }
+            }
             if (name == 'C费用申请') {
                 if (popupReminder(this.assemblyForm, this.messageData)) {
                     this.$confirm(popupReminder(this.assemblyForm, this.messageData), {
@@ -3230,6 +3340,9 @@ export default {
                     if (row.auditStatus == 0) {
                         return this.$message.error("未申请费用,不允许撤销");
                     }
+                    if (row.auditStatus > 2) {
+                        return this.$message.error("请核通过的费用,不允许撤销");
+                    }
                 }
                 this.$confirm("确定撤销请核?", {
                     confirmButtonText: "确定",
@@ -3254,7 +3367,7 @@ export default {
                     });
                     revokeCheckPleaseVerifyCost(obj).then(res => {
                         this.$message.success("操作成功");
-                        this.$emit('billsDetailfun')
+
                     }).finally(() => {
                         loading.close();
                     })

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

@@ -43,8 +43,8 @@
                             @click.native="editypesSendingEdifun(item)">{{ item.cnName }}
                         </el-dropdown-item>
                     </el-dropdown-menu>
-                </el-dropdown>
-                <el-dropdown style="line-height: 0">
+                </el-dropdown> -->
+                <!-- <el-dropdown style="line-height: 0">
                     <el-button size="small" type="success" style="margin-right: 8px" :loading="saveLoading"
                         :disabled="!form.id || showLock">
                         发送 SI EDI<i class="el-icon-arrow-down el-icon--right"></i>

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

@@ -63,7 +63,7 @@
                     <el-button type="success" size="small" @click="checkBills" :disabled="!selectionList.length">请核
                     </el-button>
 
-                    <el-dropdown style="line-height: 0">
+                    <!-- <el-dropdown style="line-height: 0">
                         <el-button size="small" type="success" style="margin-right: 8px"
                             :disabled="selectionList.length == 0">
                             发送 SO EDI<i class="el-icon-arrow-down el-icon--right"></i>
@@ -73,7 +73,7 @@
                                 @click.native="editypesSendingEdifun(item)">{{ item.cnName }}
                             </el-dropdown-item>
                         </el-dropdown-menu>
-                    </el-dropdown>
+                    </el-dropdown> -->
                     <!-- <el-dropdown style="line-height: 0">
                         <el-button size="small" type="success" style="margin-right: 8px"
                             :disabled="selectionList.length == 0">
@@ -2000,7 +2000,7 @@ export default {
         },
         // 获取EDI列表数据
         editypesListfun() {
-            editypesList(1, 1000, { type: "HYCK" }).then(res => {
+            editypesList(1, 1000).then(res => {
                 console.log("EDI", res.data.data.records);
                 this.ediData = res.data.data.records;
                 this.ediData_SO = res.data.data.records.filter(

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

@@ -41,6 +41,9 @@ export default {
             'undo',
             'redo'
           ],
+          excludeKeys:[
+            'fullScreen'
+          ]
         },
         headers: { "Blade-Auth": "Bearer " + getToken() },
         props: {
@@ -84,4 +87,10 @@ export default {
 ::v-deep .fullscreen-editor {
   z-index: 999999 !important;
 }
+::v-deep .w-e-menu ._wangEditor_btn_fullscreen {
+  display: none;
+}
+::v-deep .w-e-text-container {
+    min-height: 78vh; /* 调整为你需要的高度 */
+}
 </style>