Browse Source

轮胎配件/标书/达沃特

caojunjie 2 years ago
parent
commit
2b634ca435
2 changed files with 1202 additions and 1197 deletions
  1. 1200 1195
      src/views/bidingDocument/issueTender/detailsPageEdit.vue
  2. 2 2
      vue.config.js

+ 1200 - 1195
src/views/bidingDocument/issueTender/detailsPageEdit.vue

@@ -1,246 +1,246 @@
 <template>
-    <div v-loading.fullscreen.lock="fullscreenLoading">
-        <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="backToList"
-                >返回列表
-                </el-button>
-            </div>
-            <div>
-                <div class="el-button&#45;&#45;small-yh add-customer-btn" v-if="param.paramValue == 1">
-                    <el-button type="primary" size="small" @click.native="copyNew()" :disabled="!form.id">复制新增</el-button>
-                    <el-button type="success" size="small" @click="release()" :disabled="form.status !== 0">发布
-                    </el-button>
-                    <el-button type="warning" size="small" @click="toVoid()" :disabled="form.status !== 4">取消发布
-                    </el-button>
-                    <el-button type="primary" size="small" @click="storage()">保存</el-button>
-                </div>
-                <div class="el-button&#45;&#45;small-yh add-customer-btn" v-else>
-                    <el-button type="success" size="small" @click="release()" :disabled="form.status !== 3">发布
-                    </el-button>
-                    <el-button type="warning" size="small" @click="pleaseCheck()" :disabled="form.status !== 0">请核
-                    </el-button>
-                    <el-button type="warning" size="small" @click.stop="checkDialog = true,checkData = detailData.check"
-                               v-if="checkDisabled">审批
-                    </el-button>
-                    <el-button type="primary" size="small" @click="storage()">保存</el-button>
-                    <el-dropdown style="margin-left: 10px">
-                        <el-button type="primary" size="small">
-                            业务处理<i class="el-icon-arrow-down el-icon--right"></i>
-                        </el-button>
-                        <el-dropdown-menu slot="dropdown">
-                            <el-dropdown-item @click.native="copyNew()" :disabled="!form.id">复制新增</el-dropdown-item>
-                            <el-dropdown-item @click.native="toVoid()" :disabled="form.status < 4 || !form.status">
-                                取消发布
-                            </el-dropdown-item>
-                            <el-dropdown-item @click.native="checkScheduleDialog = true,checkId=form.id"
-                                              :disabled="form.status < 0 || !form.status">审批流程
-                            </el-dropdown-item>
-                        </el-dropdown-menu>
-                    </el-dropdown>
-                </div>
-            </div>
+  <div v-loading.fullscreen.lock="fullscreenLoading">
+    <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="backToList"
+        >返回列表
+        </el-button>
+      </div>
+      <div>
+        <div class="el-button&#45;&#45;small-yh add-customer-btn" v-if="param.paramValue == 1">
+          <el-button type="primary" size="small" @click.native="copyNew()" :disabled="!form.id">复制新增</el-button>
+          <el-button type="success" size="small" @click="release()" :disabled="form.status !== 0">发布
+          </el-button>
+          <el-button type="warning" size="small" @click="toVoid()" :disabled="form.status !== 4">取消发布
+          </el-button>
+          <el-button type="primary" size="small" @click="storage()">保存</el-button>
         </div>
-        <trade-card title="基础资料" style="margin-top: 50px">
-            <avue-form :option="optionForm" v-model="form" ref="form"></avue-form>
-        </trade-card>
-        <trade-card title="箱信息">
-            <avue-crud ref="crudBox" :key="key" :option="optionBox" :data="dataListBox"
-                       @resetColumn="resetColumn('crudBox','optionBox','optionBoxTwo',201.1)"
-                       @saveColumn="saveColumn('crudBox','optionBox','optionBoxTwo',201.1)">
-                <template slot-scope="{row,index}" slot="menu">
-                    <el-button
-                            type="text"
-                            size="small"
-                            :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"
-                            @click="edit(row)"
-                    >{{ row.$cellEdit ? '确 认' : '编 辑' }}
-                    </el-button>
-                    <el-button
-                            type="text"
-                            size="small"
-                            icon="el-icon-delete"
-                            v-if="form.status === 0 || !form.status"
-                            @click="rowDel(row,index,'box')"
-                    >删 除
-                    </el-button>
-                </template>
-            </avue-crud>
-        </trade-card>
-        <trade-card title="代理信息">
-            <avue-crud ref="crudAgent" :key="key" :option="optionAgent" :data="dataListAgent" @row-update="rowUpdate"
-                       @row-save="rowSave"
-                       @resetColumn="resetColumn('crudAgent','optionAgent','optionAgentTwo',201.2)"
-                       @saveColumn="saveColumn('crudAgent','optionAgent','optionAgentTwo',201.2)">
-                <template slot-scope="{row,index}" slot="menu">
-                    <el-button
-                            type="text"
-                            size="small"
-                            :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"
-                            @click="edit(row,index,false)"
-                    >{{ row.$cellEdit ? '确 认' : '编 辑' }}
-                    </el-button>
-                    <el-button
-                            type="text"
-                            size="small"
-                            icon="el-icon-delete"
-                            v-if="form.status === 0 || !form.status"
-                            @click="rowDel(row,index,'agent')"
-                    >删 除
-                    </el-button>
-                </template>
-                <template slot="menuLeft">
-                    <el-button
-                            type="success"
-                            size="small"
-                            icon="el-icon-bottom"
-                            @click="dialogVisible = true"
-                    >导入
-                    </el-button>
-                </template>
-            </avue-crud>
-        </trade-card>
-        <trade-card title="投标对比">
-            <avue-crud ref="crudBid" :key="key" :option="optionBid" :data="dataListBid"
-                       @resetColumn="resetColumn('crudBid','optionBid','optionBidTwo',201.3)"
-                       @saveColumn="saveColumn('crudBid','optionBid','optionBidTwo',201.3)">
-                <template slot-scope="{row,index}" slot="menu">
-                    <el-button
-                            type="text"
-                            size="small"
-                            :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"
-                            @click="edit(row)"
-                    >{{ row.$cellEdit ? '确 认' : '编 辑' }}
-                    </el-button>
-                    <el-button
-                            type="text"
-                            size="small"
-                            @click="winningTheBid(row,index)"
-                            v-if="row.status === 5"
-                    >确认中标
-                    </el-button>
-                </template>
-            </avue-crud>
-        </trade-card>
-        <el-dialog
-                v-dialogdrag
-                title="导入客户"
-                :fullscreen="dialogFull"
-                :visible.sync="dialogVisible"
-                class="el-dialogDeep"
-                append-to-body
-                :close-on-click-modal="false"
-                width="80%"
-        >
-            <template slot="title">
+        <div class="el-button&#45;&#45;small-yh add-customer-btn" v-else>
+          <el-button type="success" size="small" @click="release()" :disabled="form.status !== 3">发布
+          </el-button>
+          <el-button type="warning" size="small" @click="pleaseCheck()" :disabled="form.status !== 0">请核
+          </el-button>
+          <el-button type="warning" size="small" @click.stop="checkDialog = true,checkData = detailData.check"
+                     v-if="checkDisabled">审批
+          </el-button>
+          <el-button type="primary" size="small" @click="storage()">保存</el-button>
+          <el-dropdown style="margin-left: 10px">
+            <el-button type="primary" size="small">
+              业务处理<i class="el-icon-arrow-down el-icon--right"></i>
+            </el-button>
+            <el-dropdown-menu slot="dropdown">
+              <el-dropdown-item @click.native="copyNew()" :disabled="!form.id">复制新增</el-dropdown-item>
+              <el-dropdown-item @click.native="toVoid()" :disabled="form.status < 4 || !form.status">
+                取消发布
+              </el-dropdown-item>
+              <el-dropdown-item @click.native="checkScheduleDialog = true,checkId=form.id"
+                                :disabled="form.status < 0 || !form.status">审批流程
+              </el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </div>
+      </div>
+    </div>
+    <trade-card title="基础资料" style="margin-top: 50px">
+      <avue-form :option="optionForm" v-model="form" ref="form"></avue-form>
+    </trade-card>
+    <trade-card title="箱信息">
+      <avue-crud ref="crudBox" :key="key" :option="optionBox" :data="dataListBox"
+                 @resetColumn="resetColumn('crudBox','optionBox','optionBoxTwo',201.1)"
+                 @saveColumn="saveColumn('crudBox','optionBox','optionBoxTwo',201.1)">
+        <template slot-scope="{row,index}" slot="menu">
+          <el-button
+              type="text"
+              size="small"
+              :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"
+              @click="edit(row)"
+          >{{ row.$cellEdit ? '确 认' : '编 辑' }}
+          </el-button>
+          <el-button
+              type="text"
+              size="small"
+              icon="el-icon-delete"
+              v-if="form.status === 0 || !form.status"
+              @click="rowDel(row,index,'box')"
+          >删 除
+          </el-button>
+        </template>
+      </avue-crud>
+    </trade-card>
+    <trade-card title="代理信息">
+      <avue-crud ref="crudAgent" :key="key" :option="optionAgent" :data="dataListAgent" @row-update="rowUpdate"
+                 @row-save="rowSave"
+                 @resetColumn="resetColumn('crudAgent','optionAgent','optionAgentTwo',201.2)"
+                 @saveColumn="saveColumn('crudAgent','optionAgent','optionAgentTwo',201.2)">
+        <template slot-scope="{row,index}" slot="menu">
+          <el-button
+              type="text"
+              size="small"
+              :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"
+              @click="edit(row,index,false)"
+          >{{ row.$cellEdit ? '确 认' : '编 辑' }}
+          </el-button>
+          <el-button
+              type="text"
+              size="small"
+              icon="el-icon-delete"
+              v-if="form.status === 0 || !form.status"
+              @click="rowDel(row,index,'agent')"
+          >删 除
+          </el-button>
+        </template>
+        <template slot="menuLeft">
+          <el-button
+              type="success"
+              size="small"
+              icon="el-icon-bottom"
+              @click="dialogVisible = true"
+          >导入
+          </el-button>
+        </template>
+      </avue-crud>
+    </trade-card>
+    <trade-card title="投标对比">
+      <avue-crud ref="crudBid" :key="key" :option="optionBid" :data="dataListBid"
+                 @resetColumn="resetColumn('crudBid','optionBid','optionBidTwo',201.3)"
+                 @saveColumn="saveColumn('crudBid','optionBid','optionBidTwo',201.3)">
+        <template slot-scope="{row,index}" slot="menu">
+          <el-button
+              type="text"
+              size="small"
+              :icon="row.$cellEdit?'el-icon-circle-plus-outline':'el-icon-edit'"
+              @click="edit(row)"
+          >{{ row.$cellEdit ? '确 认' : '编 辑' }}
+          </el-button>
+          <el-button
+              type="text"
+              size="small"
+              @click="winningTheBid(row,index)"
+              v-if="row.status === 5"
+          >确认中标
+          </el-button>
+        </template>
+      </avue-crud>
+    </trade-card>
+    <el-dialog
+        v-dialogdrag
+        title="导入客户"
+        :fullscreen="dialogFull"
+        :visible.sync="dialogVisible"
+        class="el-dialogDeep"
+        append-to-body
+        :close-on-click-modal="false"
+        width="80%"
+    >
+      <template slot="title">
                 <span class="el-dialog__title">
                   <span
                       style="display:inline-block;background-color: #3478f5;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"
                   ></span>
                   导入客户
                 </span>
-                <div
-                    style="float: right"
-                    class="avue-crud__dialog__menu"
-                    @click="dialogFull ? (dialogFull = false) : (dialogFull = true)">
-                    <i class="el-icon-full-screen"></i>
-                </div>
-            </template>
-            <el-row style="height: 0">
-                <el-col :span="5">
-                    <div class="box">
-                        <el-scrollbar>
-                            <basic-container>
-                                <avue-tree
-                                        :option="treeOption"
-                                        :data="treeData"
-                                        @node-click="nodeClick"
-                                />
-                            </basic-container>
-                        </el-scrollbar>
-                    </div>
-                </el-col>
-                <el-col :span="19">
-                    <basic-container>
-                        <avue-crud
-                                :option="option"
-                                :data="dataList"
-                                ref="crud"
-                                v-model="form"
-                                :page.sync="page"
-                                :before-close="beforeClose"
-                                @search-change="searchChange"
-                                @search-reset="searchReset"
-                                @refresh-change="refreshChange"
-                                @selection-change="selectionChange"
-                                @on-load="onLoad"
-                                @saveColumn="saveColumn('crud','option','option',47)"
-                                @tree-load="treeLoad"
-                        >
-                        </avue-crud>
-                    </basic-container>
-                </el-col>
-            </el-row>
-            <span slot="footer" class="dialog-footer">
+        <div
+            style="float: right"
+            class="avue-crud__dialog__menu"
+            @click="dialogFull ? (dialogFull = false) : (dialogFull = true)">
+          <i class="el-icon-full-screen"></i>
+        </div>
+      </template>
+      <el-row style="height: 0">
+        <el-col :span="5">
+          <div class="box">
+            <el-scrollbar>
+              <basic-container>
+                <avue-tree
+                    :option="treeOption"
+                    :data="treeData"
+                    @node-click="nodeClick"
+                />
+              </basic-container>
+            </el-scrollbar>
+          </div>
+        </el-col>
+        <el-col :span="19">
+          <basic-container>
+            <avue-crud
+                :option="option"
+                :data="dataList"
+                ref="crud"
+                v-model="form"
+                :page.sync="page"
+                :before-close="beforeClose"
+                @search-change="searchChange"
+                @search-reset="searchReset"
+                @refresh-change="refreshChange"
+                @selection-change="selectionChange"
+                @on-load="onLoad"
+                @saveColumn="saveColumn('crud','option','option',47)"
+                @tree-load="treeLoad"
+            >
+            </avue-crud>
+          </basic-container>
+        </el-col>
+      </el-row>
+      <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">取 消</el-button>
         <el-button
-                type="primary"
-                @click="confirmSelection"
-                :disabled="selection.length > 0 ? false : true"
+            type="primary"
+            @click="confirmSelection"
+            :disabled="selection.length > 0 ? false : true"
         >确 定</el-button>
       </span>
-        </el-dialog>
-        <el-dialog
-                append-to-body
-                title="审批"
-                class="el-dialogDeep"
-                :visible.sync="checkDialog"
-                width="50%"
-                :close-on-click-modal="false"
-                :destroy-on-close="true"
-                :close-on-press-escape="false"
-                v-dialog-drag
-        >
-            <check
-                    :checkData="checkData"
-                    :checkDetail="false"
-                    :idList="[]"
-                    @choceCheckFun="checkDialog = false"
-            >
-            </check>
-        </el-dialog>
-        <el-dialog
-                append-to-body
-                title="审批进度"
-                class="el-dialogDeep"
-                :visible.sync="checkScheduleDialog"
-                width="40%"
-                :close-on-click-modal="false"
-                :destroy-on-close="true"
-                :close-on-press-escape="false"
-                v-dialog-drag
-        >
-            <check-schedule
-                    :checkId="checkId"
-                    :batchNo="batchNo"
-                    @choceScheduleFun="checkScheduleDialog = false"
-            >
-            </check-schedule>
-        </el-dialog>
-    </div>
+    </el-dialog>
+    <el-dialog
+        append-to-body
+        title="审批"
+        class="el-dialogDeep"
+        :visible.sync="checkDialog"
+        width="50%"
+        :close-on-click-modal="false"
+        :destroy-on-close="true"
+        :close-on-press-escape="false"
+        v-dialog-drag
+    >
+      <check
+          :checkData="checkData"
+          :checkDetail="false"
+          :idList="[]"
+          @choceCheckFun="checkDialog = false"
+      >
+      </check>
+    </el-dialog>
+    <el-dialog
+        append-to-body
+        title="审批进度"
+        class="el-dialogDeep"
+        :visible.sync="checkScheduleDialog"
+        width="40%"
+        :close-on-click-modal="false"
+        :destroy-on-close="true"
+        :close-on-press-escape="false"
+        v-dialog-drag
+    >
+      <check-schedule
+          :checkId="checkId"
+          :batchNo="batchNo"
+          @choceScheduleFun="checkScheduleDialog = false"
+      >
+      </check-schedule>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
 import {
-    detailDelegationList,
-    saveSaveList,
-    boxDelete,
-    agentDelete,
-    confirmRelease, confirmVoid, confirmPleaseCheck, confirmWinningTheBid, allList, paramList,corpByAttnList
+  detailDelegationList,
+  saveSaveList,
+  boxDelete,
+  agentDelete,
+  confirmRelease, confirmVoid, confirmPleaseCheck, confirmWinningTheBid, allList, paramList, corpByAttnList
 } from "@/api/bidingDocument/issueTender";
 import check from "@/components/check/check";
 import checkSchedule from "@/components/check/checkSchedule";
@@ -251,999 +251,1004 @@ import {customerParameter} from "@/enums/management-type";
 import {getDictionary} from "@/api/system/dictbiz";
 
 export default {
-    name: "detailsPageEdit",
-    components: {
-        check,
-        checkSchedule
-    },
-    watch: {
-        form: {
-            handler(newValue, oldValue) {
-                if (this.form.status > 0) {
-                    this.$set(this.optionForm, 'disabled', true)
-                    this.$set(this.optionBox, 'addRowBtn', false)
-                    this.$set(this.optionAgent, 'addRowBtn', false)
-                    this.optionBox.column.forEach(item => {
-                        this.$set(item, 'disabled', true)
-                        if (item.prop === "remark") {
-                            this.$set(item, 'disabled', false)
-                        }
-                    })
-                    this.optionAgent.column.forEach(item => {
-                        this.$set(item, 'disabled', true)
-                        if (item.prop === "remark") {
-                            this.$set(item, 'disabled', false)
-                        }
-                    })
-                } else {
-                    this.$set(this.optionForm, 'disabled', false)
-                    this.findObject(this.optionForm.column, "status").disabled = true
-                    this.$set(this.optionBox, 'disabled', false)
-                    if (this.optionBox.column) {
-                        this.findObject(this.optionBox.column, "status").disabled = true
-                    }
-                    this.$set(this.optionAgent, 'disabled', false)
-                    if (this.optionAgent.column) {
-                        this.findObject(this.optionAgent.column, "status").disabled = true
-                    }
-                }
+  name: "detailsPageEdit",
+  components: {
+    check,
+    checkSchedule
+  },
+  watch: {
+    form: {
+      handler(newValue, oldValue) {
+        if (this.form.status > 0) {
+          this.$set(this.optionForm, 'disabled', true)
+          this.$set(this.optionBox, 'addRowBtn', false)
+          this.$set(this.optionAgent, 'addRowBtn', false)
+          this.optionBox.column.forEach(item => {
+            this.$set(item, 'disabled', true)
+            if (item.prop === "remark") {
+              this.$set(item, 'disabled', false)
             }
-        }
-    },
-    data() {
-        return {
-            dialogVisible: false,
-            option: {},
-            treeOption: {
-                nodeKey: "id",
-                lazy: true,
-                treeLoad: function (node, resolve) {
-                    const parentId = node.level === 0 ? 0 : node.data.id;
-                    getDeptLazyTree({
-                        parentId: parentId,
-                        corpType: customerParameter.code
-                    }).then(res => {
-                        resolve(
-                            res.data.data.map(item => {
-                                return {
-                                    ...item,
-                                    leaf: !item.hasChildren
-                                };
-                            })
-                        );
-                    });
-                },
-                addBtn: false,
-                menu: false,
-                size: "small",
-                props: {
-                    labelText: "标题",
-                    label: "title",
-                    value: "value",
-                    children: "children"
-                }
-            },
-            dataList: [],
-            page: {
-                pageSize: 10,
-                pagerCount: 5,
-                total: 0
-            },
-            dialogFull: false,
-            checkDialog: false,
-            checkScheduleDialog: false,
-            checkId: '',
-            batchNo: '',
-            line: '',
-            key: 0,
-            selection: [],
-            checkData: {},
-            fullscreenLoading: false,
-            optionForm: {
-                submitBtn: false,
-                emptyBtn: false,
-                span: 6,
-                column: [{
-                    label: '发布日期',
-                    prop: 'releaseTime',
-                    type: "datetime",
-                    format: 'yyyy-MM-dd HH:mm',
-                    valueFormat: 'yyyy-MM-dd HH:mm:ss',
-                    value: dateFormat(new Date, 'yyyy-MM-dd hh:mm:ss'),
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '截止日期',
-                    prop: 'deadlineTime',
-                    type: "datetime",
-                    format: 'yyyy-MM-dd HH:mm',
-                    valueFormat: 'yyyy-MM-dd HH:mm:ss',
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '合同号',
-                    prop: 'contractNo',
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '状态',
-                    disabled: true,
-                    prop: 'status',
-                    dataType: "number",
-                    type: 'select',
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey"
-                    }
-                }, {
-                    label: '起运港',
-                    prop: 'departureHarbor',
-                    filterable: true,
-                    type: "select",
-                    dicUrl: "/api/blade-client/port/allList",
-                    props: {
-                        label: "name",
-                        value: "name"
-                    },
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '目的港',
-                    prop: 'objectiveHarbor',
-                    filterable: true,
-                    type: "select",
-                    dicUrl: "/api/blade-client/port/allList",
-                    props: {
-                        label: "name",
-                        value: "name"
-                    },
-                    change: (data) => {
-                        allList().then(res => {
-                            for (let item of res.data.data) {
-                                if (data.value == item.name) {
-                                    this.line = item.line
-                                }
-                            }
-                        })
-                    },
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '起运地',
-                    prop: 'departureLand',
-                    filterable: true,
-                    type: "select",
-                    dicUrl: "/api/blade-client/port/allList",
-                    props: {
-                        label: "name",
-                        value: "name"
-                    }
-                }, {
-                    label: '目的地',
-                    prop: 'objectiveLand',
-                    filterable: true,
-                    type: "select",
-                    dicUrl: "/api/blade-client/port/allList",
-                    props: {
-                        label: "name",
-                        value: "name"
-                    }
-                }, {
-                    label: '装柜日期',
-                    prop: 'loadingTime',
-                    type: "datetime",
-                    format: 'yyyy-MM-dd HH:mm',
-                    valueFormat: 'yyyy-MM-dd HH:mm:ss',
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '是否直航',
-                    prop: 'directFlight',
-                    type: 'select',
-                    dicData: [{
-                        label: '是',
-                        value: 1
-                    }, {
-                        label: '否',
-                        value: 0
-                    }],
-                    value: 1,
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '转港',
-                    prop: 'transshipment',
-                    filterable: true,
-                    type: "select",
-                    dicUrl: "/api/blade-client/port/allList",
-                    props: {
-                        label: "name",
-                        value: "name"
-                    }
-                }, {
-                    label: '运输方式',
-                    prop: 'transportType',
-                    type: 'select',
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=mode_transport",
-                    props: {
-                        label: "dictValue",
-                        value: "dictValue"
-                    },
-                    value: "海运",
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '运输条款',
-                    prop: 'transportClause',
-                    value: "CY-CY",
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '件数',
-                    prop: 'number',
-                    value: 10,
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '包装',
-                    prop: 'packing',
-                    type: 'select',
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=packaging",
-                    props: {
-                        label: "dictValue",
-                        value: "dictValue"
-                    },
-                    value: "木箱",
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '重量(kgs)',
-                    prop: 'weight',
-                    value: 27000,
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '尺码(cmb)',
-                    prop: 'size',
-                    value: 18,
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '货物信息',
-                    prop: 'cargoInformation',
-                    span: 18,
-                    value: "GLASS",
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                }, {
-                    label: '备注',
-                    prop: 'remark',
-                    type: 'textarea',
-                    span: 24,
-                }]
-            },
-            optionBox: {},
-            optionBoxTwo: {
-                align: 'center',
-                index: true,
-                refreshBtn: false,
-                addBtn: false,
-                addRowBtn: true,
-                cellBtn: false,
-                editBtn: false,
-                delBtn: false,
-                column: [{
-                    label: '箱型',
-                    prop: 'boxType',
-                    cell: true,
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxType",
-                    props: {
-                        label: "dictValue",
-                        value: "dictValue"
-                    },
-                    index: 1,
-                }, {
-                    label: '箱量',
-                    prop: 'boxAmount',
-                    cell: true,
-                    index: 2,
-                },
-                    // {
-                    //   label: '海运费',
-                    //   prop: 'seaFreight',
-                    //   cell: true,
-                    //   index:3,
-                    // }, {
-                    //   label: '起运港箱使费',
-                    //   prop: 'departureHarborFee',
-                    //   cell: true,
-                    //   index:4,
-                    // }, {
-                    //   label: '目的港箱使费',
-                    //   prop: 'objectiveHarborFee',
-                    //   cell: true,
-                    //   index:5,
-                    // },
-                    {
-                        label: '状态',
-                        prop: 'status',
-                        type: 'select',
-                        dataType: "string",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        index: 6,
-                    }, {
-                        label: '备注',
-                        prop: 'remark',
-                        cell: true,
-                        index: 7,
-                    }]
-            },
-            optionAgent: {},
-            optionAgentTwo: {
-                align: 'center',
-                index: true,
-                refreshBtn: false,
-                addBtn: false,
-                addRowBtn: true,
-                cellBtn: false,
-                editBtn: false,
-                delBtn: false,
-                column: [{
-                    label: '名称',
-                    prop: 'agentId',
-                    filterable: true,
-                    cell: true,
-                    dicUrl: '/api/blade-client/corpsdesc/bidingCorpsList?corpsTypeName=货代',
-                    type: 'select',
-                    props: {
-                        label: "cname",
-                        value: "id"
-                    },
-                    cascader: ['contacts'],
-                    rules: [{
-                        required: true,
-                        message: " ",
-                        trigger: "change"
-                    }],
-                    index: 1,
-                }, {
-                    label: '联系人',
-                    prop: 'contacts',
-                    cell: true,
-                    index: 2,
-                    type: 'select',
-                    dicUrl: `/api/blade-client/corpsattn/corpByAttnList?corpId={{agentId}}`,
-                    props: {
-                        label: 'cname',
-                        value: 'cname'
-                    },
-                    allowCreate: true,
-                    filterable: true,
-                }, {
-                    label: '邮箱',
-                    prop: 'mailbox',
-                    cell: true,
-                    index: 3,
-                }, {
-                    label: '电话',
-                    prop: 'phone',
-                    cell: true,
-                    index: 4,
-                }, {
-                    label: '状态',
-                    prop: 'status',
-                    type: 'select',
-                    dataType: "string",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey"
-                    },
-                    index: 5,
-                }, {
-                    label: '备注',
-                    prop: 'remark',
-                    cell: true,
-                    index: 6,
-                }]
-            },
-            optionBid: {},
-            optionBidTwo: {
-                align: 'center',
-                index: true,
-                refreshBtn: false,
-                addBtn: false,
-                addRowBtn: false,
-                cellBtn: false,
-                editBtn: false,
-                delBtn: false,
-                menuWidth: 140,
-                column: [{
-                    label: '名称',
-                    prop: 'contrastName',
-                    index: 1,
-                }, {
-                    label: '船公司',
-                    prop: 'shippingCompany',
-                    index: 2,
-                }, {
-                    label: '船名',
-                    prop: 'shipName',
-                    index: 3,
-                }, {
-                    label: '箱型',
-                    prop: 'boxType',
-                    type: "select",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxType",
-                    props: {
-                        label: "dictValue",
-                        value: "dictValue"
-                    },
-                    index: 4,
-                }, {
-                    label: '运费',
-                    prop: 'seaFreight',
-                    index: 5,
-                }, {
-                    label: '截单时间',
-                    prop: 'cutOffTime',
-                    index: 6,
-                }, {
-                    label: '截港时间',
-                    prop: 'harborInterceptionTime',
-                    index: 7,
-                }, {
-                    label: '船期',
-                    prop: 'shippingDate',
-                    index: 8,
-                }, {
-                    label: '起运港箱使天数',
-                    prop: 'departureHarborFee',
-                    index: 9,
-                }, {
-                    label: '目的港箱使天数',
-                    prop: 'objectiveHarborFee',
-                    index: 10,
-                }, {
-                    label: '状态',
-                    prop: 'status',
-                    type: 'select',
-                    dataType: "string",
-                    dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
-                    props: {
-                        label: "dictValue",
-                        value: "dictKey"
-                    },
-                    index: 11,
-                }, {
-                    label: '备注',
-                    prop: 'remark',
-                    cell: true,
-                    index: 12,
-                }]
-            },
-            form: {},
-            dataListBox: [],
-            dataListAgent: [],
-            dataListBid: [],
-            param: {},
-            checkDisabled: false
-        }
-    },
-    props: {
-        id: {
-            type: String
-        },
-        detailData: {
-            type: Object
-        }
-    },
-    async created() {
-        this.option = await this.getColumnData(this.getColumnName(47), option);
-        this.optionBox = await this.getColumnData(this.getColumnName(201.1), this.optionBoxTwo);
-        this.optionAgent = await this.getColumnData(this.getColumnName(201.2), this.optionAgentTwo);
-        this.optionBid = await this.getColumnData(this.getColumnName(201.3), this.optionBidTwo);
-        this.key++
-        paramList({
-            paramKey: "release.approval",
-            current: 1,
-            size: 10
-        }).then(res => {
-            for (let item of res.data.data.records) {
-                if (item.paramKey === "release.approval") {
-                    this.param = item
-                }
+          })
+          this.optionAgent.column.forEach(item => {
+            this.$set(item, 'disabled', true)
+            if (item.prop === "remark") {
+              this.$set(item, 'disabled', false)
             }
-        })
-        if (this.id) {
-            this.refreshData(this.id)
+          })
+        } else {
+          this.$set(this.optionForm, 'disabled', false)
+          this.findObject(this.optionForm.column, "status").disabled = true
+          this.$set(this.optionBox, 'disabled', false)
+          if (this.optionBox.column) {
+            this.findObject(this.optionBox.column, "status").disabled = true
+          }
+          this.$set(this.optionAgent, 'disabled', false)
+          if (this.optionAgent.column) {
+            this.findObject(this.optionAgent.column, "status").disabled = true
+          }
         }
-        if (this.detailData.check) {
-            this.checkDisabled = true
-            this.batchNo = this.detailData.check.batchNo
+      }
+    }
+  },
+  data() {
+    return {
+      dialogVisible: false,
+      option: {},
+      treeOption: {
+        nodeKey: "id",
+        lazy: true,
+        treeLoad: function (node, resolve) {
+          const parentId = node.level === 0 ? 0 : node.data.id;
+          getDeptLazyTree({
+            parentId: parentId,
+            corpType: customerParameter.code
+          }).then(res => {
+            resolve(
+              res.data.data.map(item => {
+                return {
+                  ...item,
+                  leaf: !item.hasChildren
+                };
+              })
+            );
+          });
+        },
+        addBtn: false,
+        menu: false,
+        size: "small",
+        props: {
+          labelText: "标题",
+          label: "title",
+          value: "value",
+          children: "children"
         }
-        this.findObject(this.optionAgent.column, "contacts").change = ({row,column,value}) => {
-            corpByAttnList({corpId:row.agentId}).then(res=>{
-                for (let item of res.data.data){
-                    if (item.cname == value){
-                        row.mailbox = item.email
-                        row.phone = item.tel
-                    }
+      },
+      dataList: [],
+      page: {
+        pageSize: 10,
+        pagerCount: 5,
+        total: 0
+      },
+      dialogFull: false,
+      checkDialog: false,
+      checkScheduleDialog: false,
+      checkId: '',
+      batchNo: '',
+      line: '',
+      key: 0,
+      selection: [],
+      checkData: {},
+      fullscreenLoading: false,
+      optionForm: {
+        submitBtn: false,
+        emptyBtn: false,
+        span: 6,
+        column: [{
+          label: '发布日期',
+          prop: 'releaseTime',
+          type: "datetime",
+          format: 'yyyy-MM-dd HH:mm',
+          valueFormat: 'yyyy-MM-dd HH:mm:ss',
+          value: dateFormat(new Date, 'yyyy-MM-dd hh:mm:ss'),
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '截止日期',
+          prop: 'deadlineTime',
+          type: "datetime",
+          format: 'yyyy-MM-dd HH:mm',
+          valueFormat: 'yyyy-MM-dd HH:mm:ss',
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '合同号',
+          prop: 'contractNo',
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '状态',
+          disabled: true,
+          prop: 'status',
+          dataType: "number",
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
+          props: {
+            label: "dictValue",
+            value: "dictKey"
+          }
+        }, {
+          label: '起运港',
+          prop: 'departureHarbor',
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-client/port/allList",
+          props: {
+            label: "name",
+            value: "name"
+          },
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '目的港',
+          prop: 'objectiveHarbor',
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-client/port/allList",
+          props: {
+            label: "name",
+            value: "name"
+          },
+          change: (data) => {
+            allList().then(res => {
+              for (let item of res.data.data) {
+                if (data.value == item.name) {
+                  this.line = item.line
                 }
+              }
             })
+          },
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '起运地',
+          prop: 'departureLand',
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-client/port/allList",
+          props: {
+            label: "name",
+            value: "name"
+          }
+        }, {
+          label: '目的地',
+          prop: 'objectiveLand',
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-client/port/allList",
+          props: {
+            label: "name",
+            value: "name"
+          }
+        }, {
+          label: '装柜日期',
+          prop: 'loadingTime',
+          type: "datetime",
+          format: 'yyyy-MM-dd HH:mm',
+          valueFormat: 'yyyy-MM-dd HH:mm:ss',
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '是否直航',
+          prop: 'directFlight',
+          type: 'select',
+          dicData: [{
+            label: '是',
+            value: 1
+          }, {
+            label: '否',
+            value: 0
+          }],
+          value: 1,
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '转港',
+          prop: 'transshipment',
+          filterable: true,
+          type: "select",
+          dicUrl: "/api/blade-client/port/allList",
+          props: {
+            label: "name",
+            value: "name"
+          }
+        }, {
+          label: '运输方式',
+          prop: 'transportType',
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=mode_transport",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+          value: "海运",
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '运输条款',
+          prop: 'transportClause',
+          value: "CY-CY",
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '件数',
+          prop: 'number',
+          value: 10,
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '包装',
+          prop: 'packing',
+          type: 'select',
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=packaging",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+          value: "木箱",
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '重量(kgs)',
+          prop: 'weight',
+          value: 27000,
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '尺码(cmb)',
+          prop: 'size',
+          value: 18,
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '货物信息',
+          prop: 'cargoInformation',
+          span: 18,
+          value: "GLASS",
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+        }, {
+          label: '备注',
+          prop: 'remark',
+          type: 'textarea',
+          span: 24,
+        }]
+      },
+      optionBox: {},
+      optionBoxTwo: {
+        align: 'center',
+        index: true,
+        refreshBtn: false,
+        addBtn: false,
+        addRowBtn: true,
+        cellBtn: false,
+        editBtn: false,
+        delBtn: false,
+        column: [{
+          label: '箱型',
+          prop: 'boxType',
+          cell: true,
+          type: "select",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxType",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+          index: 1,
+        }, {
+          label: '箱量',
+          prop: 'boxAmount',
+          cell: true,
+          index: 2,
+        },
+          // {
+          //   label: '海运费',
+          //   prop: 'seaFreight',
+          //   cell: true,
+          //   index:3,
+          // }, {
+          //   label: '起运港箱使费',
+          //   prop: 'departureHarborFee',
+          //   cell: true,
+          //   index:4,
+          // }, {
+          //   label: '目的港箱使费',
+          //   prop: 'objectiveHarborFee',
+          //   cell: true,
+          //   index:5,
+          // },
+          {
+            label: '状态',
+            prop: 'status',
+            type: 'select',
+            dataType: "string",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
+            props: {
+              label: "dictValue",
+              value: "dictKey"
+            },
+            index: 6,
+          }, {
+            label: '备注',
+            prop: 'remark',
+            cell: true,
+            index: 7,
+          }]
+      },
+      optionAgent: {},
+      optionAgentTwo: {
+        align: 'center',
+        index: true,
+        refreshBtn: false,
+        addBtn: false,
+        addRowBtn: true,
+        cellBtn: false,
+        editBtn: false,
+        delBtn: false,
+        column: [{
+          label: '名称',
+          prop: 'agentId',
+          filterable: true,
+          cell: true,
+          dicUrl: '/api/blade-client/corpsdesc/bidingCorpsList?corpsTypeName=货代',
+          type: 'select',
+          props: {
+            label: "cname",
+            value: "id"
+          },
+          cascader: ['contacts'],
+          rules: [{
+            required: true,
+            message: " ",
+            trigger: "change"
+          }],
+          index: 1,
+        }, {
+          label: '联系人',
+          prop: 'contacts',
+          cell: true,
+          index: 2,
+          type: 'select',
+          dicUrl: `/api/blade-client/corpsattn/corpByAttnList?corpId={{agentId}}`,
+          props: {
+            label: 'cname',
+            value: 'cname'
+          },
+          allowCreate: true,
+          filterable: true,
+        }, {
+          label: '邮箱',
+          prop: 'mailbox',
+          cell: true,
+          index: 3,
+        }, {
+          label: '电话',
+          prop: 'phone',
+          cell: true,
+          index: 4,
+        }, {
+          label: '状态',
+          prop: 'status',
+          type: 'select',
+          dataType: "string",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
+          props: {
+            label: "dictValue",
+            value: "dictKey"
+          },
+          index: 5,
+        }, {
+          label: '备注',
+          prop: 'remark',
+          cell: true,
+          index: 6,
+        }]
+      },
+      optionBid: {},
+      optionBidTwo: {
+        align: 'center',
+        index: true,
+        refreshBtn: false,
+        addBtn: false,
+        addRowBtn: false,
+        cellBtn: false,
+        editBtn: false,
+        delBtn: false,
+        menuWidth: 140,
+        column: [{
+          label: '名称',
+          prop: 'contrastName',
+          index: 1,
+        }, {
+          label: '船公司',
+          prop: 'shippingCompany',
+          index: 2,
+        }, {
+          label: '船名',
+          prop: 'shipName',
+          index: 3,
+        }, {
+          label: '箱型',
+          prop: 'boxType',
+          type: "select",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=boxType",
+          props: {
+            label: "dictValue",
+            value: "dictValue"
+          },
+          index: 4,
+        }, {
+          label: '运费',
+          prop: 'seaFreight',
+          index: 5,
+        }, {
+          label: '截单时间',
+          prop: 'cutOffTime',
+          index: 6,
+        }, {
+          label: '截港时间',
+          prop: 'harborInterceptionTime',
+          index: 7,
+        }, {
+          label: '船期',
+          prop: 'shippingDate',
+          index: 8,
+        }, {
+          label: '起运港箱使天数',
+          prop: 'departureHarborFee',
+          index: 9,
+        }, {
+          label: '目的港箱使天数',
+          prop: 'objectiveHarborFee',
+          index: 10,
+        }, {
+          label: '状态',
+          prop: 'status',
+          type: 'select',
+          dataType: "string",
+          dicUrl: "/api/blade-system/dict-biz/dictionary?code=main_bid_status",
+          props: {
+            label: "dictValue",
+            value: "dictKey"
+          },
+          index: 11,
+        }, {
+          label: '备注',
+          prop: 'remark',
+          cell: true,
+          index: 12,
+        }]
+      },
+      form: {},
+      dataListBox: [],
+      dataListAgent: [],
+      dataListBid: [],
+      param: {},
+      checkDisabled: false
+    }
+  },
+  props: {
+    id: {
+      type: String
+    },
+    detailData: {
+      type: Object
+    }
+  },
+  async created() {
+    this.option = await this.getColumnData(this.getColumnName(47), option);
+    this.optionBox = await this.getColumnData(this.getColumnName(201.1), this.optionBoxTwo);
+    this.optionAgent = await this.getColumnData(this.getColumnName(201.2), this.optionAgentTwo);
+    this.optionBid = await this.getColumnData(this.getColumnName(201.3), this.optionBidTwo);
+    this.key++
+    paramList({
+      paramKey: "release.approval",
+      current: 1,
+      size: 10
+    }).then(res => {
+      for (let item of res.data.data.records) {
+        if (item.paramKey === "release.approval") {
+          this.param = item
         }
+      }
+    })
+    if (this.id) {
+      this.refreshData(this.id)
+    }
+    if (this.detailData.check) {
+      this.checkDisabled = true
+      this.batchNo = this.detailData.check.batchNo
+    }
+    this.findObject(this.optionAgent.column, "contacts").change = ({row, column, value}) => {
+      corpByAttnList({corpId: row.agentId}).then(res => {
+        for (let item of res.data.data) {
+          if (item.cname == value) {
+            row.mailbox = item.email
+            row.phone = item.tel
+          }
+        }
+      })
+    }
 
-        this.findObject(this.optionAgent.column, "agentId").change = ({row, value, column}) => {
-            for (let item of this.$refs.crudAgent.DIC[column.prop]){
-                if (item.id == value){
-                    corpByAttnList({corpId:value}).then(res=>{
-                        if (res.data.data.length>0){
-                            console.log()
-                            row.contacts = res.data.data[0].cname
-                            row.mailbox = res.data.data[0].email
-                            row.phone = res.data.data[0].tel
-                        }
-                    })
-                }
+    this.findObject(this.optionAgent.column, "agentId").change = ({row, value, column}) => {
+      for (let item of this.$refs.crudAgent.DIC[column.prop]) {
+        if (item.id == value) {
+          corpByAttnList({corpId: value}).then(res => {
+            if (res.data.data.length > 0) {
+              console.log()
+              row.contacts = res.data.data[0].cname
+              row.mailbox = res.data.data[0].email
+              row.phone = res.data.data[0].tel
             }
+          })
         }
+      }
+    }
+  },
+  methods: {
+    nodeClick(data) {
+      this.treeDeptId = data.id;
+      this.page.currentPage = 1;
+      this.onLoad(this.page);
     },
-    methods: {
-        nodeClick(data) {
-            this.treeDeptId = data.id;
-            this.page.currentPage = 1;
-            this.onLoad(this.page);
-        },
-        //确认导出触发
-        confirmSelection() {
-            for (let item of this.selection) {
-                this.dataListAgent.push({
-                    $cellEdit: true,
-                    agentId: item.id,
-                    contacts: item.attn,
-                    phone: item.tel
-                })
+    //确认导出触发
+    confirmSelection() {
+      for (let item of this.selection) {
+        this.dataListAgent.push({
+          $cellEdit: true,
+          agentId: item.id,
+          contacts: item.attn,
+          phone: item.tel
+        })
+      }
+      this.selection = [];
+      this.dialogVisible = false;
+    },
+    //点击新增时触发
+    beforeClose(done) {
+      this.parentId = "";
+      const column = this.findObject(this.option.column, "parentId");
+      column.value = "";
+      column.addDisabled = false;
+      done();
+    },
+    //点击搜索按钮触发
+    searchChange(params, done) {
+      console.log(params);
+      this.treeDeptId = "";
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    //搜索重置按钮触发
+    searchReset() {
+      this.treeDeptId = "";
+      this.onLoad(this.page);
+    },
+    //刷新触发
+    refreshChange() {
+      this.page = {
+        pageSize: 10,
+        pagerCount: 5,
+        total: 0
+      };
+    },
+    //选中触发
+    selectionChange(selection) {
+      this.selection = selection;
+    },
+    //树桩列点击展开触发
+    treeLoad(tree, treeNode, resolve) {
+      const parentId = tree.id;
+      customerList({
+        parentId: parentId,
+        corpType: this.corpType ? this.corpType : "KH"
+      }).then(res => {
+        resolve(res.data.data.records);
+      });
+    },
+    onLoad(page, params = {parentId: 0}) {
+      let queryParams = Object.assign({}, params, {
+        size: page.pageSize,
+        current: page.currentPage,
+        corpsTypeId: this.treeDeptId,
+        corpType: this.corpType ? this.corpType : "KH",
+        line: this.line
+      });
+      customerList(queryParams).then(res => {
+        this.dataList = res.data.data.records;
+        this.page.total = res.data.data.total;
+        if (this.page.total) {
+          this.option.height = window.innerHeight - 500;
+        } else {
+          this.option.height = window.innerHeight - 200;
+        }
+      });
+    },
+    //自定义列保存
+    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;
+      }
+    },
+    //自定义列重置
+    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("重置成功");
+        if (this.form.status > 0) {
+          this.$set(this.optionForm, 'disabled', true)
+          this.$set(this.optionBox, 'addRowBtn', false)
+          this.$set(this.optionAgent, 'addRowBtn', false)
+          this.optionBox.column.forEach(item => {
+            this.$set(item, 'disabled', true)
+            if (item.prop === "remark") {
+              this.$set(item, 'disabled', false)
             }
-            this.selection = [];
-            this.dialogVisible = false;
-        },
-        //点击新增时触发
-        beforeClose(done) {
-            this.parentId = "";
-            const column = this.findObject(this.option.column, "parentId");
-            column.value = "";
-            column.addDisabled = false;
-            done();
-        },
-        //点击搜索按钮触发
-        searchChange(params, done) {
-            console.log(params);
-            this.treeDeptId = "";
-            this.page.currentPage = 1;
-            this.onLoad(this.page, params);
-            done();
-        },
-        //搜索重置按钮触发
-        searchReset() {
-            this.treeDeptId = "";
-            this.onLoad(this.page);
-        },
-        //刷新触发
-        refreshChange() {
-            this.page = {
-                pageSize: 10,
-                pagerCount: 5,
-                total: 0
-            };
-        },
-        //选中触发
-        selectionChange(selection) {
-            this.selection = selection;
-        },
-        //树桩列点击展开触发
-        treeLoad(tree, treeNode, resolve) {
-            const parentId = tree.id;
-            customerList({
-                parentId: parentId,
-                corpType: this.corpType ? this.corpType : "KH"
-            }).then(res => {
-                resolve(res.data.data.records);
-            });
-        },
-        onLoad(page, params = {parentId: 0}) {
-            let queryParams = Object.assign({}, params, {
-                size: page.pageSize,
-                current: page.currentPage,
-                corpsTypeId: this.treeDeptId,
-                corpType: this.corpType ? this.corpType : "KH",
-                line: this.line
-            });
-            customerList(queryParams).then(res => {
-                this.dataList = res.data.data.records;
-                this.page.total = res.data.data.total;
-                if (this.page.total) {
-                    this.option.height = window.innerHeight - 500;
-                } else {
-                    this.option.height = window.innerHeight - 200;
-                }
-            });
-        },
-        //自定义列保存
-        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.optionAgent.column.forEach(item => {
+            this.$set(item, 'disabled', true)
+            if (item.prop === "remark") {
+              this.$set(item, 'disabled', 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("重置成功");
-                if (this.form.status > 0) {
-                    this.$set(this.optionForm, 'disabled', true)
-                    this.$set(this.optionBox, 'addRowBtn', false)
-                    this.$set(this.optionAgent, 'addRowBtn', false)
-                    this.optionBox.column.forEach(item => {
-                        this.$set(item, 'disabled', true)
-                        if (item.prop === "remark") {
-                            this.$set(item, 'disabled', false)
-                        }
-                    })
-                    this.optionAgent.column.forEach(item => {
-                        this.$set(item, 'disabled', true)
-                        if (item.prop === "remark") {
-                            this.$set(item, 'disabled', false)
-                        }
-                    })
-                } else {
-                    this.$set(this.optionForm, 'disabled', false)
-                    this.findObject(this.optionForm.column, "status").disabled = true
-                    this.$set(this.optionBox, 'disabled', false)
-                    this.findObject(this.optionBox.column, "status").disabled = true
-                    this.$set(this.optionAgent, 'disabled', false)
-                    this.findObject(this.optionAgent.column, "status").disabled = true
-                }
-                this.$refs[ref].$refs.dialogColumn.columnBox = false;
-                this.findObject(this.optionAgent.column, "contacts").change = ({row,column,value}) => {
-                    corpByAttnList({corpId:row.agentId}).then(res=>{
-                        for (let item of res.data.data){
-                            if (item.cname == value){
-                                row.mailbox = item.email
-                                row.phone = item.tel
-                            }
-                        }
-                    })
-                }
-                this.findObject(this.optionAgent.column, "agentId").change = ({row, value, column}) => {
-                    for (let item of this.$refs.crudAgent.DIC[column.prop]){
-                        if (item.id == value){
-                            corpByAttnList({corpId:value}).then(res=>{
-                                if (res.data.data.length>0){
-                                    row.contacts = res.data.data[0].cname
-                                    row.mailbox = res.data.data[0].email
-                                    row.phone = res.data.data[0].tel
-                                }
-                            })
-                        }
-                    }
-                }
+          })
+        } else {
+          this.$set(this.optionForm, 'disabled', false)
+          this.findObject(this.optionForm.column, "status").disabled = true
+          this.$set(this.optionBox, 'disabled', false)
+          this.findObject(this.optionBox.column, "status").disabled = true
+          this.$set(this.optionAgent, 'disabled', false)
+          this.findObject(this.optionAgent.column, "status").disabled = true
+        }
+        this.$refs[ref].$refs.dialogColumn.columnBox = false;
+        this.findObject(this.optionAgent.column, "contacts").change = ({row, column, value}) => {
+          corpByAttnList({corpId: row.agentId}).then(res => {
+            for (let item of res.data.data) {
+              if (item.cname == value) {
+                row.mailbox = item.email
+                row.phone = item.tel
+              }
             }
-        },
-        edit(row, index, type = true) {
-            if (!type) {
-                this.$refs.crudAgent.rowCell(row, index)
-            } else {
-                if (row.$cellEdit) {
-                    this.$set(row, '$cellEdit', false)
-                } else {
-                    this.$set(row, '$cellEdit', true)
+          })
+        }
+        this.findObject(this.optionAgent.column, "agentId").change = ({row, value, column}) => {
+          for (let item of this.$refs.crudAgent.DIC[column.prop]) {
+            if (item.id == value) {
+              corpByAttnList({corpId: value}).then(res => {
+                if (res.data.data.length > 0) {
+                  row.contacts = res.data.data[0].cname
+                  row.mailbox = res.data.data[0].email
+                  row.phone = res.data.data[0].tel
                 }
+              })
             }
-        },
-        rowSave(form, done) {
-            done()
-        },
-        rowUpdate(form, index, done) {
-            done()
-        },
-        rowDel(row, index, type) {
-            this.$confirm('是否确认删除?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                if (type === 'box') {
-                    if (row.id) {
-                        boxDelete({id: row.id}).then(res => {
-                            this.dataListBox.splice(index, 1);
-                            this.$message({
-                                type: 'success',
-                                message: '删除成功!'
-                            });
-                        })
-                    } else {
-                        this.dataListBox.splice(index, 1);
-                        this.$message({
-                            type: 'success',
-                            message: '删除成功!'
-                        });
-                    }
-                } else if (type === 'agent') {
-                    if (row.id) {
-                        agentDelete({id: row.id}).then(res => {
-                            this.dataListAgent.splice(index, 1);
-                            this.$message({
-                                type: 'success',
-                                message: '删除成功!'
-                            });
-                        })
-                    } else {
-                        this.dataListAgent.splice(index, 1);
-                        this.$message({
-                            type: 'success',
-                            message: '删除成功!'
-                        });
-                    }
-                }
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: '已取消'
-                });
-            });
-        },
-        backToList() {
-            this.$router.push({
-                path: '/bidingDocument/issueTender/index'
-            });
-            this.$emit('backToList', false)
-        },
-        // 确认中标
-        winningTheBid(row, index) {
-            this.$confirm('是否确认中标?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                confirmWinningTheBid({id: row.id}).then(res => {
-                    this.$message({
-                        type: 'success',
-                        message: '确认中标!'
-                    });
-                    this.refreshData(this.id)
-                })
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: '已取消'
-                });
-            });
-        },
-        // 请核
-        pleaseCheck() {
-            this.$refs['form'].validate((valid, done) => {
-                done()
-                if (valid) {
-                    this.$confirm('是否确认请核?', '提示', {
-                        confirmButtonText: '确定',
-                        cancelButtonText: '取消',
-                        type: 'warning'
-                    }).then(() => {
-                        if (new Date(this.form.deadlineTime) < new Date()) return this.$message.error("截止日期不能小于等于当前日期")
-                        let form = {
-                            ...this.form,
-                            itemsList: this.dataListBox,
-                            agentList: this.dataListAgent,
-                            contrastList: this.dataListBid
-                        }
-                        this.fullscreenLoading = true
-                        const loading = this.$loading({
-                            lock: true,
-                            text: '发布中',
-                            spinner: 'el-icon-loading',
-                            background: 'rgba(255,255,255,0.7)'
-                        });
-                        saveSaveList(form).then(res => {
-                            const data = {
-                                id: res.data.data.id,
-                                url: '/bidingDocument/issueTender/index',
-                                pageStatus: "this.$store.getters.entranceXsStatus"
-                            }
-                            confirmPleaseCheck(data).then(res => {
-                                this.fullscreenLoading = false
-                                this.$message({
-                                    type: 'success',
-                                    message: '请核成功!'
-                                });
-                                loading.close();
-                                this.refreshData(this.form.id)
-                            })
-                        }).catch(() => {
-                            loading.close();
-                            this.fullscreenLoading = false;
-                        })
-                    }).catch(() => {
-                        this.$message({
-                            type: 'info',
-                            message: '已取消'
-                        });
-                    });
-                } else {
-                    done()
-                }
+          }
+        }
+      }
+    },
+    edit(row, index, type = true) {
+      if (!type) {
+        this.$refs.crudAgent.rowCell(row, index)
+      } else {
+        if (row.$cellEdit) {
+          this.$set(row, '$cellEdit', false)
+        } else {
+          this.$set(row, '$cellEdit', true)
+        }
+      }
+    },
+    rowSave(form, done) {
+      done()
+    },
+    rowUpdate(form, index, done) {
+      done()
+    },
+    rowDel(row, index, type) {
+      this.$confirm('是否确认删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        if (type === 'box') {
+          if (row.id) {
+            boxDelete({id: row.id}).then(res => {
+              this.dataListBox.splice(index, 1);
+              this.$message({
+                type: 'success',
+                message: '删除成功!'
+              });
             })
-        },
-        // 复制新增
-        copyNew() {
-            this.$confirm('是否确认复制新增?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                this.form.status = 0
-                this.form.id = ''
-                this.dataListBid = []
-                this.dataListBox.forEach(item => item.id = '')
-                this.dataListAgent.forEach(item => item.id = '')
-                this.$set(this.optionForm, 'disabled', false)
-                this.$set(this.optionBox, 'addRowBtn', true)
-                this.$set(this.optionAgent, 'addRowBtn', true)
-                this.optionBox.column.forEach(item => {
-                    this.$set(item, 'disabled', false)
-                })
-                this.optionAgent.column.forEach(item => {
-                    this.$set(item, 'disabled', false)
-                })
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: '已取消'
-                });
-            });
-        },
-        // 作废
-        toVoid() {
-            this.$confirm('是否确认作废?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                confirmVoid({id: this.form.id}).then(res => {
-                    this.$message({
-                        type: 'success',
-                        message: '作废成功!'
-                    });
-                    this.refreshData(this.form.id)
-                })
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: '已取消'
-                });
+          } else {
+            this.dataListBox.splice(index, 1);
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
             });
-        },
-        // 发布
-        release() {
-            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)'
-                });
-                confirmRelease({id: this.form.id}).then(res => {
-                    loading.close();
-                    this.$message({
-                        type: 'success',
-                        message: '发布成功!'
-                    });
-                    this.refreshData(this.form.id)
-                }).catch(() => {
-                    loading.close();
-                })
-            }).catch(() => {
-                this.$message({
-                    type: 'info',
-                    message: '已取消'
-                });
+          }
+        } else if (type === 'agent') {
+          if (row.id) {
+            agentDelete({id: row.id}).then(res => {
+              this.dataListAgent.splice(index, 1);
+              this.$message({
+                type: 'success',
+                message: '删除成功!'
+              });
+            })
+          } else {
+            this.dataListAgent.splice(index, 1);
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
             });
-        },
-        // 保存
-        storage() {
+          }
+        }
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });
+      });
+    },
+    backToList() {
+      this.$router.push({
+        path: '/bidingDocument/issueTender/index'
+      });
+      this.$emit('backToList', false)
+    },
+    // 确认中标
+    winningTheBid(row, index) {
+      this.$confirm('是否确认中标?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        confirmWinningTheBid({id: row.id}).then(res => {
+          this.$message({
+            type: 'success',
+            message: '确认中标!'
+          });
+          this.refreshData(this.id)
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });
+      });
+    },
+    // 请核
+    pleaseCheck() {
+      this.$refs['form'].validate((valid, done) => {
+        done()
+        if (valid) {
+          this.$confirm('是否确认请核?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+          }).then(() => {
+            if (new Date(this.form.deadlineTime) < new Date()) return this.$message.error("截止日期不能小于等于当前日期")
             let form = {
-                ...this.form,
-                itemsList: this.dataListBox,
-                agentList: this.dataListAgent,
-                contrastList: this.dataListBid
+              ...this.form,
+              itemsList: this.dataListBox,
+              agentList: this.dataListAgent,
+              contrastList: this.dataListBid
             }
             this.fullscreenLoading = true
+            const loading = this.$loading({
+              lock: true,
+              text: '发布中',
+              spinner: 'el-icon-loading',
+              background: 'rgba(255,255,255,0.7)'
+            });
             saveSaveList(form).then(res => {
-                this.refreshData(res.data.data.id)
-            }).finally(() => {
-                this.fullscreenLoading = false
-            })
-        },
-        refreshData(id) {
-            let ids = ''
-            if (id) {
-                ids = id
-            } else {
-                ids = this.form.id
-            }
-            this.fullscreenLoading = true
-            detailDelegationList({id: ids}).then(res => {
-                this.form = res.data.data
-                this.dataListBox = this.form.itemsList
-                this.dataListAgent = this.form.agentList
-                this.dataListBid = this.form.contrastList
-                delete this.form.itemsList
-                delete this.form.agentList
-                delete this.form.contrastList
+              const data = {
+                id: res.data.data.id,
+                url: '/bidingDocument/issueTender/index',
+                pageStatus: "this.$store.getters.entranceXsStatus"
+              }
+              confirmPleaseCheck(data).then(res => {
                 this.fullscreenLoading = false
+                this.$message({
+                  type: 'success',
+                  message: '请核成功!'
+                });
+                loading.close();
+                this.refreshData(this.form.id)
+              })
+            }).catch(() => {
+              loading.close();
+              this.fullscreenLoading = false;
             })
-        },
-    }
+          }).catch(() => {
+            this.$message({
+              type: 'info',
+              message: '已取消'
+            });
+          });
+        } else {
+          done()
+        }
+      })
+    },
+    // 复制新增
+    copyNew() {
+      this.$confirm('是否确认复制新增?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.form.status = 0
+        this.form.id = ''
+        this.dataListBid = []
+        this.dataListBox.forEach(item => item.id = '')
+        this.dataListAgent.forEach(item => item.id = '')
+        this.$set(this.optionForm, 'disabled', false)
+        this.$set(this.optionBox, 'addRowBtn', true)
+        this.$set(this.optionAgent, 'addRowBtn', true)
+        this.optionBox.column.forEach(item => {
+          this.$set(item, 'disabled', false)
+        })
+        this.optionAgent.column.forEach(item => {
+          this.$set(item, 'disabled', false)
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });
+      });
+    },
+    // 作废
+    toVoid() {
+      this.$confirm('是否确认作废?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        confirmVoid({id: this.form.id}).then(res => {
+          this.$message({
+            type: 'success',
+            message: '作废成功!'
+          });
+          this.refreshData(this.form.id)
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });
+      });
+    },
+    // 发布
+    release() {
+      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)'
+        });
+        confirmRelease({id: this.form.id}).then(res => {
+          loading.close();
+          this.$message({
+            type: 'success',
+            message: '发布成功!'
+          });
+          this.refreshData(this.form.id)
+        }).catch(() => {
+          loading.close();
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        });
+      });
+    },
+    // 保存
+    storage() {
+      this.$refs['form'].validate((valid, done) => {
+        done()
+        if (valid) {
+          let form = {
+            ...this.form,
+            itemsList: this.dataListBox,
+            agentList: this.dataListAgent,
+            contrastList: this.dataListBid
+          }
+          this.fullscreenLoading = true
+          saveSaveList(form).then(res => {
+            this.refreshData(res.data.data.id)
+          }).finally(() => {
+            this.fullscreenLoading = false
+          })
+        }
+      })
+    },
+    refreshData(id) {
+      let ids = ''
+      if (id) {
+        ids = id
+      } else {
+        ids = this.form.id
+      }
+      this.fullscreenLoading = true
+      detailDelegationList({id: ids}).then(res => {
+        this.form = res.data.data
+        this.dataListBox = this.form.itemsList
+        this.dataListAgent = this.form.agentList
+        this.dataListBid = this.form.contrastList
+        delete this.form.itemsList
+        delete this.form.agentList
+        delete this.form.contrastList
+        this.fullscreenLoading = false
+      })
+    },
+  }
 }
 </script>
 

+ 2 - 2
vue.config.js

@@ -32,9 +32,9 @@ module.exports = {
       '/api': {
         //本地服务接口地址
         // target: 'http://192.168.3.64:1080',
-        target: 'http://192.168.8.108:1080',
+        // target: 'http://192.168.0.106:1080',
         // 打包地址
-        // target: 'http://121.37.83.47:10004',//服务器ip
+        target: 'http://121.37.83.47:10004',//服务器ip
         // target: 'http://trade.tubaosoft.com:10004',//服务器域名
         ws: true,
         pathRewrite: {