gjy před 3 roky
rodič
revize
0c62304c9a

+ 0 - 2026
src/views/organizationNew/shoreMemberAdd.vue.BASE.vue

@@ -1,2026 +0,0 @@
-<!-- 组织架构模块 添加船舶页面 -->
-<template>
-  <div class="box-body"
-       v-loading="loading">
-    <div class="label-box">
-      <span class="label-title">{{ title }}</span>
-      <div class="button-float">
-        <el-button v-if="!id"
-                   type="primary"
-                   @click="save('ruleForm', false)">保存并继续新建</el-button>
-        <el-button type="primary"
-                   @click="save('ruleForm', true)">保存</el-button>
-        <el-button @click="cancel">返回</el-button>
-      </div>
-    </div>
-    <div class="main-list">
-      <el-form ref="ruleForm"
-               :model="ruleForm"
-               :rules="rules"
-               class="demo-ruleForm">
-        <el-form-item label="中文名"
-                      prop="staffName">
-          <el-input v-model="ruleForm.staffName"
-                    placeholder="请输入"
-                    maxlength="20" />
-        </el-form-item>
-        <el-form-item label="账号"
-                      v-if="id"
-                      class="serviceType">
-          <span class="tips">
-            <svg-icon icon-class="tips" />
-            <p>成员唯一标识,可以使用工号、邮箱等<br />公司系统内统一的ID</p>
-          </span>
-          <el-input v-model="ruleForm.staffAccount"
-                    maxlength="20"
-                    placeholder="登录账号唯一标识" />
-        </el-form-item>
-        <el-form-item label="账号"
-                      prop="staffAccount"
-                      class="serviceType"
-                      v-else>
-          <span class="tips">
-            <svg-icon icon-class="tips" />
-            <p>成员唯一标识,可以使用工号、邮箱等<br />公司系统内统一的ID</p>
-          </span>
-          <el-input v-model="ruleForm.staffAccount"
-                    maxlength="20"
-                    placeholder="登录账号唯一标识" />
-        </el-form-item>
-        <el-form-item label="修改密码"
-                      prop="loginPasswordNew"
-                      v-if="id">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordNew"
-                    placeholder="密码任意6位数字,大小写字母,符号组合"
-                    minlength="6"
-                    maxlength="20" />
-        </el-form-item>
-        <el-form-item label="密码"
-                      prop="loginPassword"
-                      v-if="!id">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPassword"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="密码任意6位数字,大小写字母,符号组合" />
-        </el-form-item>
-        <el-form-item label="确认密码"
-                      prop="loginPasswordAgain"
-                      v-if="
-            (id &&
-              ruleForm.loginPasswordNew &&
-              ruleForm.loginPasswordNew.length > 0) ||
-              !id
-          ">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordAgain"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="请再次确认密码" />
-        </el-form-item>
-        <el-form-item label="确认密码"
-                      v-show="
-            !(
-              (id &&
-                ruleForm.loginPasswordNew &&
-                ruleForm.loginPasswordNew.length > 0) ||
-              !id
-            )
-          ">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordAgain"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="请再次确认密码" />
-        </el-form-item>
-        <el-form-item label="手机号"
-                      prop="staffMobilePhone">
-          <el-input v-model="ruleForm.staffMobilePhone"
-                    placeholder="请输入常用手机号" />
-        </el-form-item>
-        <el-form-item label="公司/部门"
-                      prop="underCompId"
-                      class="dept-comp">
-          <el-select v-model="ruleForm.underCompId"
-                     placeholder="请选择"
-                     @change="changeDept">
-            <el-option v-for="item in companyList"
-                       :key="item.compId"
-                       :label="item.compName"
-                       :value="item.compId" />
-          </el-select>
-          <el-select v-model="ruleForm.deptId"
-                     placeholder="请选择"
-                     @change="changeRole">
-            <el-option v-for="item in deptList"
-                       :key="item.deptId"
-                       :label="item.deptName"
-                       :value="item.deptId" />
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div class="department">
-        <div>
-          <span class="star font">职务</span>
-          <span class="ontent"
-                v-if="zhiwu1.roleName">{{
-            zhiwu1.roleName
-          }}</span>
-          <span class="operaction"
-                @click="setwork">设置</span>
-        </div>
-       <div class="lastspan">
-          <span class="star font">关联船舶</span>
-          <div class="ontent"
-               style="width: 800px;">
-            <span v-for="(item, key) in seleteShipList"
-                  :key="key"
-                  v-show="item.vesselId"
-                  class="ontent shipName">{{ item.vesselName }}</span>
-            <span style="padding-left: 4px;"
-                  class="operaction shipSelectSet"
-                  @click="setChargeShip">设置</span>
-          </div>
-        </div>
-        <div style="display:flex">
-          <span class=" font">兼职职务</span>
-          <span class="operaction"
-                @click="partTimeSetting">设置</span>
-          <div class="boxClass">
-            <div v-for="(item, index) in jobList"
-                 :key="index"
-                 v-show="item.roleId"
-                 style="margin-bottom: 10px">
-              <span class=" aaa">兼职{{ index + 1 }}:{{ item.roleName }}</span>
-              <div class="lastspan">
-                <span class="star bbb">关联船舶</span>
-                <div class="ontent"
-                     style="width: 800px;">
-                  <span v-for="(item, index) in item.asd"
-                        :key="item.vesselId + index"
-                        v-show="item.vesselId"
-                        class="ontent shipName">{{ item.vesselName }}</span>
-                  <span class="operaction shipSelectSet"
-                        @click="setUpShip(item)">设置</span>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="uphead">
-        <span class="imghead font">上传签名:</span>
-        <img :src="
-            ruleForm.electronicSignature === ''
-              ? url
-              : ruleForm.electronicSignature
-          "
-             class="img" />
-        <input type="file"
-               class="kyc-passin"
-               @change="uploadPhoto($event)" />
-        <span class="talk">支持上传jpg/png文件,大小不能超过1M</span>
-      </div>
-    </div>
-    <!-- 主要职务选择 -->
-    <el-dialog title="设置成员主职职务"
-               :visible.sync="mainJobSelection"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="checkBoxClass">
-        <span class="member">成员将属于以下职务</span>
-        <el-radio-group @change="handleCheckAllChanges"
-                        v-model="post"
-                        class="postBox">
-          <el-radio class="checkBoxCla"
-                    v-for="(item, key) in data1"
-                    :key="key"
-                    :label="item.roleId">{{ item.roleName }}</el-radio>
-        </el-radio-group>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="mainJobSelection = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="setMainJob">确 定</el-button>
-      </span>
-    </el-dialog>
-
-    <!--6.设置成员职务-->
-    <el-dialog title="设置兼职职务职务"
-               :visible.sync="setDuty"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1">
-          <div v-loading="roleLoading">
-            <div class="block">
-              <el-tree class="ship-tree"
-                       :props="props"
-                       node-key="id"
-                       :load="loadNode"
-                       lazy>
-                <template slot-scope="{ node, data }">
-                  <span v-if="node.level === 2">
-                    <el-checkbox-group v-model="data.check"
-                                       @change="val => radioGroupChange(data, val, node)">
-                      <el-checkbox class="zhiwuChecks"
-                                   v-for="item in data.roid"
-                                   :key="item.roleId"
-                                   :label="item">
-                        {{ item.roleName }}
-                      </el-checkbox>
-                    </el-checkbox-group>
-                  </span>
-                  <span v-else>{{ data.deptName }}</span>
-                </template>
-              </el-tree>
-            </div>
-          </div>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下职务</span>
-
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in jobList"
-                 :key="index">
-              {{ item.roleName }}
-              <span class="zhiwuDel"
-                    @click="delZhiWu(item)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="setDuty = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="setDutysave">确 定</el-button>
-      </span>
-    </el-dialog>
-    <!-- 7.关联船舶 -->
-    <el-dialog title="负责船舶"
-               :visible.sync="chargeShip"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1"
-             v-loading="loadingVessel">
-          <div class="search-box">
-            <el-input class="search-keyword"
-                      v-model.trim="searchKeyword"
-                      maxlength="50"
-                      placeholder="请输入船舶名称"
-                      clearable
-                      @clear="getClear"
-                      @keyup.enter.native="getList" />
-            <svg-icon icon-class="searchIcon"
-                      class="searchIcon"
-                      @click="getList" />
-          </div>
-          <el-checkbox :indeterminate="isIndeterminate"
-                       v-model="checkAll"
-                       @change="handleCheckAllChange">全选</el-checkbox>
-          <!--<el-checkbox :indeterminate="isIndeterminate" v-model="checkAntiFlag" @change="checkAnti">反选</el-checkbox>-->
-          <el-checkbox-group v-model="shipCheckList"
-                             @change="handleCheckedCitiesChange">
-            <el-checkbox class="zhiwuCheck"
-                         v-for="(item, index) in shipList"
-                         :label="item.vesselId"
-                         :key="item.vesselId + index">
-              {{ item.vesselName }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下船舶</span>
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in seleteShipList"
-                 :key="index">
-              {{ item.vesselName }}
-              <span class="zhiwuDel"
-                    @click="delShipSelect(item.vesselId)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="getNowList">取 消</el-button>
-        <el-button type="primary"
-                   @click="saveChargeShip">确 定</el-button>
-      </span>
-    </el-dialog>
-    <!-- 兼职船舶 -->
-    <el-dialog title="负责船舶"
-               :visible.sync="partTimeJobShip"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1"
-             v-loading="loadingVessel">
-          <div class="search-box">
-            <el-input class="search-keyword"
-                      v-model.trim="searchKeyword"
-                      maxlength="50"
-                      placeholder="请输入船舶名称"
-                      clearable
-                      @clear="getClear"
-                      @keyup.enter.native="getList" />
-            <svg-icon icon-class="searchIcon"
-                      class="searchIcon"
-                      @click="getList" />
-          </div>
-          <el-checkbox :indeterminate="isIndeterminates"
-                       v-model="checkAll"
-                       @change="handleCheckAllChangess">全选</el-checkbox>
-          <!--<el-checkbox :indeterminate="isIndeterminate" v-model="checkAllAnti" @change="checkAnti">反选</el-checkbox>-->
-          <el-checkbox-group v-model="shipCheckLists"
-                             @change="handleCheckedCitiesChangess">
-            <el-checkbox class="zhiwuCheck"
-                         v-for="(item, index) in shipLists"
-                         :label="item.vesselId"
-                         :key="item.vesselId + index">
-              {{ item.vesselName }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下船舶</span>
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in seleteShipLists"
-                 :key="index">
-              {{ item.vesselName }}
-              <span class="zhiwuDel"
-                    @click="delShipSelects(item.vesselId)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="cancels">取 消</el-button>
-        <el-button type="primary"
-                   @click="determine">确 定</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-<script>
-import { addadmin } from "../../api/organization/orgAddMan";
-import {
-  getOssInterimCredentials,
-  GotOssAccessConfig,
-  uploadShipFiles
-} from "../../api/upload";
-import { client } from "../../utils/alioss";
-
-import { validPassword } from "../../utils/validate";
-
-import shoreApi from "../../api/organization/shore";
-import {
-  staffInfo,
-  changeInfo,
-  companyVessels,
-  getDeptListByCompId
-} from "../../api/shoreBasedMembers";
-const validPasswordRule = function (rule, value, callback) {
-  if (value)
-    if (!validPassword(value)) {
-      callback(
-        // this.$message({
-        //   message: '密码为6到20位数字密码任意组合!',
-        //   type: 'error'
-        // })
-        new Error("密码为6到20位数字密码任意组合")
-      );
-      return;
-    } else {
-      callback();
-      return;
-    }
-  callback();
-
-  // if (!validPassword(value)) {
-  //   callback(new Error('密码为6到20位数字密码任意组合'));
-  // } else {
-  //   callback();
-  // }
-};
-
-export default {
-  name: "shoreMemberAdd",
-  data () {
-    const validcodeId = (rule, value, callback) => {
-      const reg = /[0-9a-zA-Z]$/;
-      if (!reg.test(value)) {
-        callback(
-          new Error("账号必须是由数字和字母组合")
-          // this.$message({
-          //   type: 'error',
-          //   message: '账号必须是由数字和字母组合',
-          //   showClose: true,
-          // })
-        );
-      } else {
-        callback();
-      }
-    };
-
-    const validcodeName = (rule, value, callback) => {
-      const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
-      if (!reg.test(value)) {
-        callback(
-          new Error("密码必须是由6位数字和字母组合")
-          // this.$message({
-          //   type: 'error',
-          //   message: '密码必须是由6位数字和字母组合',
-          //   showClose: true,
-          // })
-        );
-      } else {
-        callback();
-      }
-    };
-    const validPasswordAgain = (rule, value, callback) => {
-      if (value === "") {
-        callback(
-          this.$message({
-            type: "error",
-            message: "带*号的为必填项",
-            showClose: true
-          })
-        );
-      } else if (
-        (value !== this.ruleForm.loginPassword && !this.id) ||
-        (value !== this.ruleForm.loginPasswordNew && this.id)
-      ) {
-        callback(
-          this.$message({
-            type: "error",
-            message: "两次密码不一致",
-            showClose: true
-          })
-        );
-      } else {
-        callback();
-      }
-    };
-    const validcodePhonee = (rule, value, callback) => {
-      const reg = /^1[34578]\d{9}$/;
-
-      if (!reg.test(value)) {
-        callback(
-          new Error("手机号格式填写错误")
-
-          // this.$message({
-          //     type: 'error',
-          //     message: '手机号格式填写错误',
-          //     showClose: true,
-          //   })
-        );
-      } else {
-        callback();
-      }
-    };
-    return {
-      aaabbb: [],
-      postList: [],
-      post: "",
-      mainJobSelection: false,
-      isIndeterminate: false,
-      isIndeterminates: false,
-      loadingVessel: false,
-      checkAll: false,
-      checkAntiFlag: false,
-      compId: sessionStorage.getItem("enterprise-front-companyId"),
-      searchKeyword: "", // 关联船舶 搜索关键词
-      datamsg: "",
-      title: "",
-      /* 页面传递来的数据 */
-      checklist: [
-        {
-          value: ""
-        }
-      ],
-      Department: "",
-      Departmentname: "",
-      /* 设置部门 */
-      checklist1: [
-        {
-          key: "",
-          value: ""
-        }
-      ],
-      Department1: "",
-      Departmentname1: "",
-      zwmsg: "",
-      // 船舶
-      checklist2: [],
-      /* 设置关联船舶 */
-      url:
-        "http://winsea-saas-test.oss-cn-shanghai.aliyuncs.com/default-logo.png",
-      setUpTheDepartment: false,
-      setDuty: false,
-      chargeShip: false,
-      partTimeJobShip: false,
-      loading: false,
-      ruleForm: {
-        deptId: "",
-        staffName: "",
-        staffAccount: "",
-        loginPassword: "",
-        loginPasswordAgain: "",
-        loginPasswordAgainNew: "",
-        loginPasswordNew: "",
-        staffMobilePhone: "",
-        electronicSignature: "",
-        majorRoleId: "",
-        roles: [
-          {
-            roleId: "",
-            major: "1"
-          }
-        ],
-        vessels: [],
-        roleVesselIds: []
-      },
-      rules: {
-        staffAccount: [
-          {
-            required: true,
-            // validator: validcodeId,
-            trigger: "blur",
-            message: "请输入账号"
-          }
-        ],
-        loginPassword: [
-          {
-            required: true,
-            validator: validcodeName,
-            trigger: "blur"
-          }
-        ],
-        loginPasswordAgain: [
-          {
-            required: true,
-            validator: validPasswordAgain,
-            trigger: "blur"
-          }
-        ],
-        loginPasswordNew: [
-          {
-            validator: validPasswordRule,
-            trigger: "blur"
-          }
-        ],
-        staffName: [
-          {
-            required: true,
-            trigger: "blur",
-            message: "请输入中文名"
-          }
-        ],
-        staffMobilePhone: [
-          {
-            required: true,
-            validator: validcodePhonee,
-            trigger: "blur"
-          }
-        ],
-        underCompId: [
-          {
-            required: true,
-            trigger: "change"
-          }
-        ]
-      },
-      data: [],
-      data5: [],
-      data6: [],
-      data1: [
-        {
-          id: "",
-          label: "",
-          disabled: true,
-          children: []
-        }
-      ],
-      shipList: [],
-      shipLists: [],
-      primaryzw: "1",
-      zhiwuCheckList: [],
-      zhiwuChec1kList: [],
-      zhiwu1: {},
-      zhiwu2: [],
-      zhiwu11: {},
-      shipCheckList: [],
-      shipCheckLists: [],
-      seleteShipList: [],
-      seleteShipLists: [],
-      companyList: [],
-      deptList: [],
-      inputType: "text",
-      isChrome: true,
-      roleLoading: false,
-      id: this.$route.query.id,
-      postId: "",
-      partTimeJobList: [],
-      partTimeDepartmentList: [],
-      checkedCities: [],
-      props: {
-        label: "name",
-        children: "children",
-        isLeaf: "leaf"
-      },
-      check: [],
-      aaaaaa: [],
-      gggg: []
-    };
-  },
-  computed: {
-    jobList () {
-      let res = [];
-      Object.keys(this.check).forEach((value, index) => {
-        this.check[value].forEach(ite => {
-          res.push(ite);
-        });
-      });
-      let _a = res.filter(v => v);
-      _a.forEach(v => {
-        if (v.asd === undefined) v.asd = [];
-      });
-      return _a;
-    }
-  },
-  created () {
-    this.baseInfo();
-  },
-  methods: {
-    async loadNode (node, resolve) {
-      if (node.level === 0) {
-        // 发起一级请求
-        return resolve(this.partTimeDepartmentList);
-      }
-      if (node.level === 1) {
-        // 发起二级请求
-        let uuid = node.data.deptId;
-        let response = await shoreApi.queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: uuid
-        });
-        this.partTimeJobList = response;
-        if (this.partTimeJobList !== null)
-          this.partTimeJobList = this.partTimeJobList.map(itemA => {
-            return {
-              ...itemA,
-              deptId: uuid
-            };
-          });
-        let _check = [];
-        for (let variable of this.partTimeJobList) {
-          let curr;
-          for (let variable2 of this.jobList) {
-            if (variable.roleId === variable2.roleId) curr = variable;
-          }
-          if (curr) {
-            _check.push(curr);
-            // break;
-          }
-        }
-        this.jobList.forEach(item => {
-          item.asd.forEach(itemA => {
-            _check.forEach(itemB => {
-              if (item.deptId === itemB.deptId)
-                if (itemB.asd === undefined) {
-                  itemB.asd = [];
-                } else {
-                  itemB.asd.push(itemA);
-                }
-            });
-          });
-        });
-
-        this.aaabbb[uuid] = _check;
-        return resolve([
-          {
-            id: node.data.deptId,
-            roid: this.partTimeJobList,
-            check: _check,
-            leaf: true
-          }
-        ]);
-      }
-      if (node.level > 1) {
-        return resolve([]);
-      }
-    },
-    radioGroupChange (data, val, node) {
-      this.$set(this.check, data.id, val);
-      this.aaabbb[data.id] = val;
-    },
-    //tree
-    remove (node, data) {
-      // const parent = node.parent;
-      // const children = parent.data.children || parent.data;
-      // const index = children.findIndex(d => d.id === data.id);
-      // children.splice(index, 1);
-    },
-    // 取消
-    cancels () {
-      this.partTimeJobShip = false;
-      // this.ruleForm.roleVesselIds = [];
-      // this.jobList.forEach(item => {
-      //   item.asd.forEach(ite => {
-      //     this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-      //   });
-      // });
-    },
-    // 确定
-    determine () {
-      this.partTimeJobShip = false;
-      this.ruleForm.roleVesselIds = [];
-      this.jobList.forEach(item => {
-        item.asd.forEach(ite => {
-          this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-        });
-      });
-    },
-    append (data) {
-      const newChild = { id: id++, label: "testtest", children: [] };
-      if (!data.children) {
-        this.$set(data, "children", []);
-      }
-      data.children.push(newChild);
-    },
-    getList () {
-      // 船舶
-      shoreApi
-        .getVessels({ searchKeyword: this.searchKeyword })
-        .then(response => {
-          this.shipList = response;
-          this.shipLists = response;
-          let _isIndeterminate = false;
-          this.shipList.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) _isIndeterminate = true;
-            });
-          });
-          this.shipLists.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) _isIndeterminate = true;
-            });
-          });
-          this.isIndeterminate = _isIndeterminate;
-          this.isIndeterminates = _isIndeterminate;
-
-          let _checkAll = false;
-          let selectMum = 0;
-          this.shipList.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) selectMum++;
-            });
-          });
-          this.shipLists.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) selectMum++;
-            });
-          });
-
-          if (this.shipList.length === selectMum) {
-            _checkAll = true;
-            this.isIndeterminate = false;
-          } else {
-            _checkAll = false;
-          }
-          if (this.shipLists.length === selectMum) {
-            _checkAll = true;
-            this.isIndeterminates = false;
-          } else {
-            _checkAll = false;
-          }
-          this.checkAll = _checkAll;
-        });
-    },
-    getClear () {
-      this.searchKeyword = null;
-      this.getList();
-    },
-    //反选
-    checkAnti (val) {
-      // console.log(val,'反选')
-      this.checkAll = !val;
-      // if(val){
-      //   this.checkAll = false;
-      // }
-      let citiesId = [];
-      let shipCheck = [];
-      this.shipList.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipCheck.push(item.vesselId);
-      });
-
-      if (this.shipCheckList.length === this.shipList.length) {
-        this.isIndeterminate = false;
-        this.shipCheckList = [];
-        this.seleteShipList = [];
-      } else if (this.shipCheckList.length === 0) {
-        this.isIndeterminate = false;
-        this.shipCheckList = shipCheck;
-        this.seleteShipList = citiesId;
-      }
-    },
-    // 关联船舶全选
-    handleCheckAllChange (val) {
-      if (val) {
-        this.checkAntiFlag = false;
-      }
-      // this.checkAntiFlag = !val;
-      // console.log(val,'正选')
-      let citiesId = [];
-      let shipCheck = [];
-      this.shipList.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipCheck.push(item.vesselId);
-      });
-      this.shipCheckList = val ? shipCheck : [];
-      this.seleteShipList = val ? citiesId : [];
-      this.isIndeterminate = false;
-    },
-    // 关联船舶单选
-    handleCheckedCitiesChange (value) {
-      // 差集
-      let t = [];
-      this.shipList.forEach(v1 => {
-        let b = Object.assign({}, v1);
-        value.forEach(v2 => {
-          if (v2 === v1.vesselId) b = null;
-        });
-        t.push(b);
-      });
-      //加
-      this.shipList.forEach(item => {
-        value.forEach(gitem => {
-          if (item.vesselId === gitem) {
-            let currIndex = this.seleteShipList.findIndex(
-              value => value.vesselId === gitem
-            );
-            if (currIndex === -1)
-              this.seleteShipList.push({
-                vesselId: item.vesselId,
-                vesselName: item.vesselName
-              });
-          }
-        });
-      });
-      // 删
-      let _t = t.filter(v => !!v);
-      let a = this.seleteShipList.filter(v => {
-        let r = true;
-        _t.forEach(v2 => {
-          if (v.vesselId === v2.vesselId) r = false;
-        });
-        return r;
-      });
-
-      this.seleteShipList = a;
-
-      let _isIndeterminate = false;
-      this.shipList.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          _isIndeterminate = true;
-        }
-      });
-      this.isIndeterminate = _isIndeterminate;
-
-      let _checkAll = false;
-      let selectMum = 0;
-      this.shipList.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          selectMum++;
-        }
-      });
-
-      if (this.shipList.length === selectMum) {
-        _checkAll = true;
-        this.isIndeterminate = false;
-      } else {
-        _checkAll = false;
-      }
-      this.checkAll = _checkAll;
-    },
-    // 关联船舶全选
-    handleCheckAllChangess (val) {
-      let citiesId = [];
-      let shipChecks = [];
-      this.shipLists.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipChecks.push(item.vesselId);
-      });
-      this.shipCheckLists = val ? shipChecks : [];
-      this.seleteShipLists = val ? citiesId : [];
-      this.gggg.asd = val ? citiesId : [];
-      this.isIndeterminates = false;
-    },
-    // 关联船舶单选
-    handleCheckedCitiesChangess (value) {
-      // 差集
-      let t = [];
-      this.shipLists.forEach(v1 => {
-        let b = Object.assign({}, v1);
-        value.forEach(v2 => {
-          if (v2 === v1.vesselId) b = null;
-        });
-        t.push(b);
-      });
-      //加
-      this.shipLists.forEach(item => {
-        value.forEach(gitem => {
-          if (item.vesselId === gitem) {
-            let currIndex = this.seleteShipLists.findIndex(
-              value => value.vesselId === gitem
-            );
-            if (currIndex === -1)
-              this.seleteShipLists.push({
-                vesselId: item.vesselId,
-                vesselName: item.vesselName
-              });
-            this.gggg.asd = this.seleteShipLists;
-          }
-        });
-      });
-
-      // 删
-      let _t = t.filter(v => !!v);
-      let a = this.seleteShipLists.filter(v => {
-        let r = true;
-        _t.forEach(v2 => {
-          if (v.vesselId === v2.vesselId) r = false;
-        });
-        return r;
-      });
-
-      this.seleteShipLists = a;
-      this.gggg.asd = a;
-
-      let _isIndeterminates = false;
-      this.shipLists.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          _isIndeterminates = true;
-        }
-      });
-      this.isIndeterminates = _isIndeterminates;
-
-      let _checkAll = false;
-      let selectMum = 0;
-      this.shipLists.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          selectMum++;
-        }
-      });
-
-      if (this.shipLists.length === selectMum) {
-        _checkAll = true;
-        this.isIndeterminates = false;
-      } else {
-        _checkAll = false;
-      }
-      this.checkAll = _checkAll;
-    },
-    // 选船操作
-    shipCheck (id) {
-      this.seleteShipList = [];
-      for (let i = 0; i < id.length; i++) {
-        this.seleteShipList.push({
-          vesselId: id[i],
-          vesselName: this.shipList.find(item => item.vesselId === id[i])
-            .vesselName
-        });
-      }
-    },
-    // 选船操作
-    shipChecks (id) {
-      this.seleteShipLists = [];
-      for (let i = 0; i < id.length; i++) {
-        this.seleteShipLists.push({
-          vesselId: id[i],
-          vesselName: this.shipLists.find(item => item.vesselId === id[i])
-            .vesselName
-        });
-      }
-    },
-
-    changeInputType () {
-      this.inputType = "password";
-    },
-    // 当前页面信息
-    getMemberInfo () {
-      this.loading = true;
-      staffInfo({ staffId: this.id }).then(response => {
-        this.ruleForm = response;
-        this.zhiwu1.roleId = this.ruleForm.majorRoleId;
-        if (this.ruleForm.underCompId) {
-          this.changeDept(this.ruleForm.underCompId);
-        }
-
-        if (this.ruleForm.deptId) {
-          shoreApi
-            .queryRoleSelectData({
-              vesselBankFlag: "B",
-              underCompId: this.ruleForm.underCompId,
-              deptId: this.ruleForm.deptId
-            })
-            .then(response => {
-              this.data6 = response.map(item => {
-                return {
-                  ...item,
-                  state: false
-                };
-              });
-              this.data1 = this.data6;
-              this.roleLoading = false;
-            });
-        }
-
-        if (!this.ruleForm.electronicSignature) {
-          this.ruleForm.electronicSignature = this.url;
-        }
-        // TODO: 此处存在疑问点?
-        this.zhiwu1.roleName = response.majorRole
-          ? response.majorRole.roleName
-          : "";
-        this.post = response.majorRole ? response.majorRole.roleId : "";
-        if (response.majorRole && response.majorRole.vessels)
-          response.majorRole.vessels.forEach(item => {
-            this.seleteShipList.push(item);
-            this.aaaaaa.push(item.vesselId);
-          });
-        response.roles.forEach(item => {
-          this.$set(this.check, `${item.deptId}_${item.roleId}`, [item]);
-          this.$set(this.aaabbb, `${item.deptId}_${item.roleId}`, [item]);
-          if (item.vessels !== null)
-            item.vessels.forEach(itemD => {
-              Object.keys(this.check).forEach((value, index) => {
-                if (value === `${item.deptId}_${item.roleId}`) {
-                  this.check[value].forEach(ite => {
-                    if (ite.asd === undefined) {
-                      ite.asd = [];
-                    }
-                    ite.asd.push(itemD);
-                  });
-                }
-              });
-            });
-        });
-
-        response.roles.forEach(item => {
-          if (item.vessels !== null) {
-            item.vessels = item.vessels.map(ite => {
-              return {
-                ...ite,
-                roleId: item.roleId
-              };
-            });
-          }
-        });
-        this.ruleForm.roleVesselIds = [];
-        response.roles.forEach(item => {
-          if (item.vessels !== null)
-            item.vessels.forEach(itemA => {
-              this.ruleForm.roleVesselIds.push(
-                itemA.roleId + "_" + itemA.vesselId
-              );
-              // this.jobList.forEach(ite => {
-              //   if (ite.roleId === item.roleId) {
-              //     ite.asd.push(itemA);
-              //   }
-              // });
-            });
-        });
-
-        // TODO: 此处存在
-        this.ruleForm.vessels = response.majorRole
-          ? response.majorRole.vessels
-          : "";
-
-        // let vessels = response.vessels.filter(function(v) {
-        //   return v;
-        // });
-        // this.shipCheckList = [];
-        // this.seleteShipList = vessels.filter(v => {
-        //   let t = false;
-        //   this.shipList.forEach(v2 => {
-        //     if (v2.vesselId === v.vesselId) {
-        //       t = true;
-        //       this.shipCheckList.push(v.vesselId);
-        //     }
-        //   });
-        //   return t;
-        // });
-
-        let checkedCount = this.shipCheckList.length;
-        this.checkAll = checkedCount === this.shipList.length;
-        this.isIndeterminate =
-          checkedCount > 0 && checkedCount < this.shipList.length;
-
-        // if (response.roles.length > 0) {
-        //   this.zhiwu1 = response.roles[0];
-        //   response.roles.find(item => {
-        //     if (item.major === "1") {
-        //       this.zhiwu1 = {
-        //         roleId: item.roleId,
-        //         roleName: item.roleName,
-        //         major: "1"
-        //       };
-        //     }
-        //     this.zhiwuCheckList.push(item.roleId);
-        //   });
-        //   this.zhiwu2 = response.roles.filter(item => {
-        //     return item.major !== "1";
-        //   });
-        // }
-
-        this.loading = false;
-      });
-    },
-    // 上传签名
-    uploadPhoto (e) {
-      const fileTypes = [".jpg", ".png"];
-      const filePath = e.target.value;
-      if (filePath) {
-        let isNext = false;
-        const fileEnd = filePath.substring(filePath.indexOf("."));
-        for (let i = 0; i < fileTypes.length; i++) {
-          if (fileTypes[i] === fileEnd) {
-            isNext = true;
-            break;
-          }
-        }
-        if (!isNext) {
-          this.$message({
-            message: "不接受此类型文件",
-            type: "error",
-            showClose: true
-          });
-          e.target.value = "";
-          return false;
-        }
-      } else {
-        return false;
-      }
-      const file = e.target.files[0];
-      uploadShipFiles(file, {
-        companyId: this.compId || "",
-        modelId: ""
-      }).then(response => {
-        this.ruleForm.electronicSignature =
-          this.$store.getters.baseInfo.fileUrl + response.appendixPath;
-        this.$message({
-          type: "success",
-          message: "上传签名成功!",
-          showClose: true
-        });
-      });
-    },
-    cancel () {
-      this.$router.go(-1);
-    },
-    // 数据转换
-    getSelectLabel () {
-      this.ruleForm.majorRoleId = this.zhiwu1.roleId;
-
-      // 公司
-      this.ruleForm.underCompName = this.companyList.find(
-        item => item.compId === this.ruleForm.underCompId
-      ).compName;
-
-      // 部门
-      this.ruleForm.deptName = this.deptList.find(
-        item => item.deptId === this.ruleForm.deptId
-      ).deptName;
-
-      if (this.ruleForm.loginPasswordNew) {
-        this.ruleForm.loginPassword = this.ruleForm.loginPasswordNew;
-      }
-    },
-    // 编辑
-    editSave () {
-      this.ruleForm.staffId = this.id;
-      changeInfo(this.ruleForm)
-        .then(() => {
-          // this.cancel();
-          this.$message({
-            message: "保存成功",
-            type: "success",
-            showClose: true
-          });
-          // this.getMemberInfo();
-          this.$router.go(-1);
-          this.loading = false;
-        })
-        .catch(code => {
-          this.loading = false;
-          if (code === "MANAGEMENT_002") {
-            this.$message({
-              type: "error",
-              message: "手机号冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_001") {
-            this.$message({
-              type: "error",
-              message: "用户名冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_003") {
-            this.$message({
-              type: "error",
-              message: "邮箱冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_010") {
-            this.$message({
-              type: "error",
-              message: "成员名称重复!",
-              showClose: true
-            });
-            return false;
-          }
-        });
-    },
-    // 保存
-    addSave (flag) {
-      addadmin(this.ruleForm)
-        .then(() => {
-          // this.cancel();
-          this.$message({
-            message: "保存成功",
-            type: "success",
-            showClose: true
-          });
-
-          if (flag) {
-            this.$router.go(-1);
-          } else {
-            this.clearZhiwu();
-            this.checklist = [
-              {
-                value: ""
-              }
-            ];
-            this.checklist1 = [
-              {
-                value: ""
-              }
-            ];
-            this.seleteShipList = [];
-            this.ruleForm.staffName = "";
-            this.ruleForm.deptId = "";
-            this.url =
-              "http://winsea-saas-test.oss-cn-shanghai.aliyuncs.com/default-logo.png";
-
-            this.$nextTick(() => {
-              this.$refs.ruleForm.clearValidate();
-              this.$refs.ruleForm.resetFields();
-            });
-          }
-          this.loading = false;
-        })
-        .catch(code => {
-          this.loading = false;
-          if (code === "MANAGEMENT_002") {
-            this.$message({
-              type: "error",
-              message: "手机号冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_001") {
-            this.$message({
-              type: "error",
-              message: "用户名冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_003") {
-            this.$message({
-              type: "error",
-              message: "邮箱冲突!",
-              showClose: true
-            });
-            return false;
-          }
-        });
-    },
-    // 保存
-    save (formName, flag) {
-      this.$refs[formName].validate(valid => {
-        if (valid) {
-          debugger
-          if (this.ruleForm.roles.length !== 0)
-            if (this.ruleForm.roles[0].roleId === "" || this.zhiwu1.roleName === null) {
-              this.$message({
-                type: "warning",
-                message: "请先设置职务!",
-                showClose: true
-              });
-              return false;
-            } else if (this.ruleForm.vessels.length === 0) {
--              this.$message({
--                type: "warning",
--                message: "请先设置关联船舶!",
--                showClose: true
--              });
--              return false;
-             }
-          this.loading = true;
-          this.getSelectLabel();
-          if (this.id) {
-            this.editSave();
-          } else {
-            this.addSave(flag);
-          }
-          this.isIndeterminate = false;
-        } else {
-          this.$message({
-            message: "带*号的为必填项",
-            type: "error",
-            showClose: true
-          });
-          return false;
-        }
-      });
-    },
-    // 设置职务
-    setwork () {
-      if (this.ruleForm.deptId) {
-        this.mainJobSelection = true;
-      } else {
-        this.$message({
-          message: "请先选择部门!",
-          type: "warning",
-          showClose: true
-        });
-      }
-    },
-    // 设置船
-    setChargeShip () {
-      // console.info(this.seleteShipList, this.aaaaaa);
-      this.chargeShip = true;
-      this.shipCheckList = this.seleteShipList.map(item => item.vesselId);
-      // this.shipCheckList = this.aaaaaa;
-      this.isIndeterminate = true;
-    },
-    setUpShip (data) {
-      this.gggg = data;
-      if (this.gggg.asd.length !== 0) {
-        let _aaa = [];
-        this.gggg.asd.forEach(item => {
-          _aaa.push(item.vesselId);
-        });
-        this.shipCheckLists = _aaa;
-        this.isIndeterminates = true;
-      } else {
-        this.shipCheckLists = this.gggg.asd;
-        this.isIndeterminates = false;
-      }
-      this.seleteShipLists = this.gggg.asd;
-      this.partTimeJobShip = true;
-    },
-    // 兼职设置
-    partTimeSetting () {
-      if (this.ruleForm.deptId) {
-        this.setDuty = true;
-      } else {
-        this.$message({
-          message: "请先选择部门!",
-          type: "warning",
-          showClose: true
-        });
-      }
-    },
-    // 基础数据
-    async baseInfo () {
-      // 公司
-      shoreApi.compAndChildrenInfo().then(res => {
-        res[0].children.unshift({
-          compId: res[0].compId,
-          compName: res[0].compName
-        });
-        this.companyList = res[0].children;
-      });
-
-      // 船舶
-      this.loadingVessel = true;
-      let res = await shoreApi.getVessels();
-      this.loadingVessel = false;
-      this.shipList = res;
-      this.shipLists = res;
-      if (this.id) {
-        this.getMemberInfo();
-        this.title = "编辑成员";
-      } else {
-        this.title = "添加成员";
-      }
-
-      // 职员
-      this.roleLoading = true;
-      shoreApi.queryRoleSelectData({ vesselBankFlag: "B" }).then(response => {
-        this.roleLoading = false;
-        this.data5 = response.map(item => {
-          return {
-            ...item,
-            state: false
-          };
-        });
-      });
-    },
-    changeRole (id) {
-      this.roleLoading = true;
-      shoreApi
-        .queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: id
-        })
-        .then(response => {
-          this.data6 = response.map(item => {
-            return {
-              ...item,
-              state: false
-            };
-          });
-          this.data1 = this.data6;
-
-          if (!this.data1.find(item => item.roleId === this.zhiwu1.roleId)) {
-            this.zhiwu1.roleName = null;
-          }
-
-          this.data1.forEach(item => {
-            this.zhiwu2.forEach((gitem, gindex) => {
-              if (gitem.roleId == item.roleId) {
-                this.zhiwu2.splice(gindex, 1);
-              }
-
-              this.zhiwuCheckList.forEach((citem, cindex) => {
-                if (gitem.roleId == citem) {
-                  this.zhiwuCheckList.splice(cindex, 1);
-                }
-              });
-            });
-          });
-
-          // this.zhiwuCheckList.push(item.roleId);
-
-          // if(this.zhiwu2.find(item => item.roleId === this.zhiwu1.roleId)){
-          //   this.zhiwu2 = [];
-          // }
-          this.roleLoading = false;
-        });
-    },
-    changeDept (id) {
-      // 部门
-      getDeptListByCompId({ vesselBankFlag: "B", underCompId: id }).then(
-        response => {
-          this.postId = id;
-          this.deptList = response;
-          this.partTimeDepartmentList = response;
-        }
-      );
-    },
-    adddepartmentDel () {
-      this.resetChecked();
-      this.checklist = [
-        {
-          key: "",
-          value: ""
-        }
-      ];
-    },
-    /* 删除 */
-    resetChecked (key, value) {
-      this.$refs.tree.setCheckedKeys([key]);
-      this.checklist.push({
-        key,
-        value
-      });
-    },
-    // /* 清空 */
-    // check(data) {
-    //   this.checklist = [];
-    //   const key = data.id;
-    //   const value = data.label;
-    //   this.resetChecked(key, value);
-    // },
-    departmentsave () {
-      this.setUpTheDepartment = false;
-      this.ruleForm.deptId = this.checklist[0].key;
-    },
-    // 主要职务单选
-    handleCheckAllChanges (value) {
-      // this.zhiwu1 = {
-      //   roleName: this.data1.find(item => item.roleId === value).roleName
-      // };
-      this.zhiwu1 = {
-        roleId: value,
-        roleName: this.data1.find(item => item.roleId === value).roleName
-      };
-    },
-    /* 保存 */
-    // 设置主要职务
-    setMainJob () {
-      this.setDuty = false;
-      this.zhiwu11 = this.zhiwu1;
-      const zhiwuAll = [];
-      zhiwuAll.push(this.zhiwu1);
-      this.ruleForm.roles = zhiwuAll.concat(this.zhiwu2);
-      this.mainJobSelection = false;
-    },
-
-    /* 设置职务 */
-    setDutysave () {
-      // if (this.zhiwu1.roleId) {
-      this.setDuty = false;
-      this.ruleForm.roleVesselIds = [];
-      this.jobList.forEach(item => {
-        item.asd.forEach(ite => {
-          this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-        });
-      });
-      // this.zhiwu11 = this.zhiwu1;
-      // const zhiwuAll = [];
-      // zhiwuAll.push(this.zhiwu1);
-      // this.ruleForm.roles = zhiwuAll.concat(this.zhiwu2);
-      // } else {
-      //   this.$message({
-      //     type: "error",
-      //     message: "请选择主要职务",
-      //     showClose: true
-      //   });
-      // }
-    },
-    getNowList () {
-      this.chargeShip = false;
-      this.searchKeyword = null;
-      this.getList();
-    },
-    saveChargeShip () {
-      this.getNowList();
-      this.ruleForm.vessels = this.seleteShipList;
-    },
-    zhiwu2Check (data) {
-      this.zhiwu2 = [];
-      for (let i = 0; i < data.length; i++) {
-        this.zhiwu2.push({
-          roleId: data[i],
-          roleName: this.partTimeJobList.find(item => item.roleId === data[i])
-            .roleName,
-          major: "0"
-        });
-      }
-    },
-    // 职务操作
-
-    zhiwuCheck (id) {
-      // if (this.primaryzw == "1") {
-      //   this.zhiwuCheckList = [];
-      //   this.zhiwuCheckList.push(data[data.length - 1]);
-      //   this.zhiwu1 = {
-      //     roleId: data[data.length - 1],
-      //     roleName: this.data1.find(
-      //       item => item.roleId === data[data.length - 1]
-      //     ).roleName,
-      //     major: "1"
-      //   };
-      // } else {
-      // this.zhiwu2 = [];
-      // for (let i = 0; i < data.length; i++) {
-      //   this.zhiwu2.push({
-      //     roleId: data[i],
-      //     roleName: this.data5.find(item => item.roleId === data[i]).roleName,
-      //     major: "0"
-      //   });
-      // }
-      // }
-
-      this.roleLoading = true;
-      shoreApi
-        .queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: id.join(",")
-        })
-        .then(response => {
-          this.partTimeJobList = response;
-          // this.data6 = response.map(item => {
-          //   return {
-          //     ...item,
-          //     state: false
-          //   };
-          // });
-          // this.data1 = this.data6;
-          this.roleLoading = false;
-        });
-    },
-    zhiwuRadio1 (data) {
-      this.data1 = this.data6;
-      for (let i = 0; i < this.data1.length; i++) {
-        this.data1[i].state = false;
-      }
-      for (let i = 0; i < this.zhiwu2.length; i++) {
-        for (let j = 0; j < this.data1.length; j++) {
-          if (this.zhiwu2[i].roleId == this.data1[j].roleId) {
-            this.data1[j].state = true;
-          }
-        }
-      }
-      this.zhiwuCheckList = [];
-      this.zhiwuCheckList.push(data);
-    },
-    zhiwuRadio2 (data) {
-      this.data1 = this.data5;
-      for (let i = 0; i < this.data1.length; i++) {
-        this.data1[i].state = false;
-      }
-      for (let i = 0; i < this.data1.length; i++) {
-        if (this.zhiwu1.roleId == this.data1[i].roleId) {
-          this.data1[i].state = true;
-        }
-      }
-      this.zhiwuCheckList = [];
-      if (data.length > 0) {
-        for (let i = 0; i < data.length; i++) {
-          this.zhiwuCheckList.push(data[i].roleId);
-        }
-      }
-    },
-    delZhiWu (data) {
-      for (
-        let i = 0;
-        i < this.aaabbb[`${data.deptId}_${data.roleId}`].length;
-        i++
-      ) {
-        if (
-          this.aaabbb[`${data.deptId}_${data.roleId}`][i].roleId == data.roleId
-        ) {
-          this.aaabbb[`${data.deptId}_${data.roleId}`].splice(i, 1);
-        }
-      }
-
-      for (let i = 0; i < this.jobList.length; i++) {
-        if (data.roleId === this.jobList[i].roleId) {
-          this.jobList.splice(i, 1);
-          this.$forceUpdate();
-        }
-      }
-      // for (let i = 0; i < this.data1.length; i++) {
-      //   if (data.roleId == this.data1[i].roleId) {
-      //     this.data1[i].state = false;
-      //   }
-      // }
-    },
-    // 弹出框确认关闭
-    handleClose (done) {
-      this.clearZhiwu();
-      done();
-    },
-    clearZhiwu () {
-      this.zhiwu11 = [];
-      this.zhiwu1 = {};
-      this.zhiwu2 = [];
-      this.zhiwuCheckList = [];
-      this.primaryzw = "1";
-      this.shipCheckList = [];
-      this.seleteShipList = [];
-    },
-
-    delShipSelect (data) {
-      const num = this.shipCheckList.indexOf(data);
-      this.shipCheckList.splice(num, 1);
-      for (let i = 0; i < this.seleteShipList.length; i++) {
-        if (this.seleteShipList[i].vesselId == data) {
-          this.seleteShipList.splice(i, 1);
-        }
-      }
-      if (this.seleteShipList.length === 0) {
-        this.isIndeterminate = false;
-      } else {
-        this.isIndeterminate = true;
-      }
-    },
-    delShipSelects (data) {
-      const num = this.shipCheckLists.indexOf(data);
-      this.shipCheckLists.splice(num, 1);
-
-      for (let i = 0; i < this.seleteShipLists.length; i++) {
-        if (this.seleteShipLists[i].vesselId == data) {
-          this.seleteShipLists.splice(i, 1);
-        }
-      }
-      this.gggg.asd = this.seleteShipLists;
-      if (this.seleteShipLists.length === 0) {
-        this.isIndeterminate = false;
-      } else {
-        this.isIndeterminate = true;
-      }
-    }
-  }
-};
-</script>
-<style scoped lang="scss">
-.dept-comp {
-  /deep/ .el-select:nth-child(1) {
-    margin-right: 10px;
-  }
-  /deep/ .el-input__inner,
-  .el-select {
-    width: 203px !important;
-  }
-}
-
-.serviceType {
-  /deep/ .el-form-item__label {
-    padding-right: 25px;
-  }
-  .el-form-item__content {
-    position: relative;
-  }
-  .tips {
-    font-size: 20px;
-    color: #999;
-    position: absolute;
-    left: -25px;
-    cursor: pointer;
-    z-index: 99;
-    &:hover {
-      p {
-        display: block;
-      }
-    }
-    p {
-      display: none;
-      box-shadow: 0 1px 8px rgba(137, 142, 146, 0.34);
-      font-size: 12px;
-      line-height: 16px;
-      background: #fff;
-      color: #333;
-      padding: 3px;
-      margin: 0;
-      margin-top: -4px;
-      border-radius: 5px;
-      height: 40px;
-    }
-  }
-}
-
-.border {
-  width: 960px;
-  height: 100%;
-  border-left: 1px solid #cccccc;
-}
-.organization-box {
-  height: calc(86vh - 10px);
-  overflow-y: auto;
-  border: none;
-}
-.uphead {
-  margin: 20px 0;
-  height: 60px;
-  line-height: 60px;
-}
-.img {
-  display: inline-block;
-  height: 60px;
-  width: 60px;
-  border-radius: 10px;
-  vertical-align: sub;
-}
-.kyc-passin {
-  margin-left: 20px;
-  width: 170px;
-}
-.talk {
-  font-size: 12px;
-  color: #999999;
-}
-/deep/.el-dialog__body {
-  padding: 0;
-}
-/deep/ .el-dialog--center .el-dialog__body {
-  padding: 0;
-}
-.adddepartment {
-  height: 400px;
-  display: flex;
-  justify-content: space-between;
-}
-.adddepartment1 {
-  padding: 20px;
-  width: 50%;
-  overflow-y: auto;
-  .el-checkbox-group {
-    padding-left: 15px;
-  }
-  .search-box {
-    margin-bottom: 10px;
-    .search-keyword {
-      margin-right: 30px;
-    }
-  }
-}
-.adddepartment2 {
-  padding: 20px;
-  width: 50%;
-  background-color: #eeeeee;
-}
-/deep/.el-tree-node__content {
-  height: 40px;
-}
-.adddepartment3 {
-  height: 36px;
-  line-height: 36px;
-  background-color: #ffffff;
-  position: relative;
-  margin-bottom: 5px;
-}
-.adddepartment4 {
-  display: inline-block;
-  margin-bottom: 20px;
-}
-.adddepartmentLeft {
-  width: 195px;
-  display: inline-block;
-  position: absolute;
-  left: 10px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.shipName {
-  padding: 4px 8px;
-  background-color: #dde9fc;
-  margin-right: 10px;
-  margin-bottom: 10px;
-}
-.ddv1 {
-  //width: 730px;
-  vertical-align: top;
-  margin-top: 2px;
-}
-.ddv1 > span {
-  float: left;
-}
-.adddepartmentDel {
-  display: inline-block;
-  position: absolute;
-  right: 20px;
-  color: #1d6ced;
-  cursor: pointer;
-}
-/deep/.el-form-item .el-input__inner {
-  width: 420px;
-}
-.main-list {
-  height: calc(42vh);
-}
-.primaryzw {
-  width: 100%;
-  margin-bottom: 30px;
-}
-.zhiwuCheck {
-  display: block;
-  margin-top: 10px;
-}
-.zhiwuChecks {
-  display: block;
-  margin-left: -30px;
-}
-.zhuyaozhiwu {
-  margin-top: 10px;
-  background-color: #ffffff;
-  padding: 3px 8px;
-  // display: inline-block;
-}
-.ciyaozhiwu {
-  background-color: #ffffff;
-  padding: 5px 10px;
-  // display: inline-block;
-  margin-top: 10px;
-}
-.zhiwuradio {
-  margin-top: 5px;
-  margin-right: 10px;
-}
-.zhiwuDel {
-  margin-inline-start: 10px;
-  color: #1d6ced;
-  cursor: pointer;
-  float: right;
-}
-.lastspan {
-  display: flex;
-}
-.ddv1 {
-  flex: 1;
-}
-.inputPsd {
-  -webkit-text-security: disc;
-}
-/deep/ .el-form-item__error {
-  display: block;
-}
-.dept-comp {
-  /deep/ .el-form-item__error {
-    display: none;
-  }
-  /deep/ .el-form-item__content {
-    /deep/ .el-input {
-      width: 202px;
-    }
-  }
-}
-
-/deep/ .el-form-item__content {
-  /deep/ .el-input {
-    width: 420px;
-  }
-}
-.member {
-  display: inline-block;
-  margin: 10px 0 0 10px;
-}
-.checkBoxClass {
-  // float: left;
-  width: 650px;
-  height: 100%;
-}
-.checkBoxCla {
-  width: 25%;
-  margin: 10px 0 10px 20px;
-}
-.boxClass {
-  margin-left: 10px;
-}
-.aaa {
-  display: inline-block;
-  padding-right: 12px;
-  font-size: 14px;
-  color: #666666;
-  margin-bottom: 15px;
-}
-.bbb {
-  display: inline-block;
-  padding-right: 12px;
-  font-size: 14px;
-  color: #666666;
-}
-.postBox {
-  width: 100%;
-}
-.ship-tree {
-  /deep/.el-tree-node__content {
-    height: auto;
-  }
-  /deep/.el-radio-group {
-    display: flex;
-    flex-direction: column;
-    text-align: left;
-    & > .el-radio {
-      margin: 2px;
-    }
-  }
-}
-</style>

+ 0 - 2027
src/views/organizationNew/shoreMemberAdd.vue.LOCAL.vue

@@ -1,2027 +0,0 @@
-<!-- 组织架构模块 添加船舶页面 -->
-<template>
-  <div class="box-body"
-       v-loading="loading">
-    <div class="label-box">
-      <span class="label-title">{{ title }}</span>
-      <div class="button-float">
-        <el-button v-if="!id"
-                   type="primary"
-                   @click="save('ruleForm', false)">保存并继续新建</el-button>
-        <el-button type="primary"
-                   @click="save('ruleForm', true)">保存</el-button>
-        <el-button @click="cancel">返回</el-button>
-      </div>
-    </div>
-    <div class="main-list">
-      <el-form ref="ruleForm"
-               :model="ruleForm"
-               :rules="rules"
-               class="demo-ruleForm">
-        <el-form-item label="中文名"
-                      prop="staffName">
-          <el-input v-model="ruleForm.staffName"
-                    placeholder="请输入"
-                    maxlength="20" />
-        </el-form-item>
-        <el-form-item label="账号"
-                      v-if="id"
-                      class="serviceType">
-          <span class="tips">
-            <svg-icon icon-class="tips" />
-            <p>成员唯一标识,可以使用工号、邮箱等<br />公司系统内统一的ID</p>
-          </span>
-          <el-input v-model="ruleForm.staffAccount"
-                    maxlength="20"
-                    placeholder="登录账号唯一标识" />
-        </el-form-item>
-        <el-form-item label="账号"
-                      prop="staffAccount"
-                      class="serviceType"
-                      v-else>
-          <span class="tips">
-            <svg-icon icon-class="tips" />
-            <p>成员唯一标识,可以使用工号、邮箱等<br />公司系统内统一的ID</p>
-          </span>
-          <el-input v-model="ruleForm.staffAccount"
-                    maxlength="20"
-                    placeholder="登录账号唯一标识" />
-        </el-form-item>
-        <el-form-item label="修改密码"
-                      prop="loginPasswordNew"
-                      v-if="id">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordNew"
-                    placeholder="密码任意6位数字,大小写字母,符号组合"
-                    minlength="6"
-                    maxlength="20" />
-        </el-form-item>
-        <el-form-item label="密码"
-                      prop="loginPassword"
-                      v-if="!id">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPassword"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="密码任意6位数字,大小写字母,符号组合" />
-        </el-form-item>
-        <el-form-item label="确认密码"
-                      prop="loginPasswordAgain"
-                      v-if="
-            (id &&
-              ruleForm.loginPasswordNew &&
-              ruleForm.loginPasswordNew.length > 0) ||
-              !id
-          ">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordAgain"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="请再次确认密码" />
-        </el-form-item>
-        <el-form-item label="确认密码"
-                      v-show="
-            !(
-              (id &&
-                ruleForm.loginPasswordNew &&
-                ruleForm.loginPasswordNew.length > 0) ||
-              !id
-            )
-          ">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordAgain"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="请再次确认密码" />
-        </el-form-item>
-        <el-form-item label="手机号"
-                      prop="staffMobilePhone">
-          <el-input v-model="ruleForm.staffMobilePhone"
-                    placeholder="请输入常用手机号" />
-        </el-form-item>
-        <el-form-item label="公司/部门"
-                      prop="underCompId"
-                      class="dept-comp">
-          <el-select v-model="ruleForm.underCompId"
-                     placeholder="请选择"
-                     @change="changeDept">
-            <el-option v-for="item in companyList"
-                       :key="item.compId"
-                       :label="item.compName"
-                       :value="item.compId" />
-          </el-select>
-          <el-select v-model="ruleForm.deptId"
-                     placeholder="请选择"
-                     @change="changeRole">
-            <el-option v-for="item in deptList"
-                       :key="item.deptId"
-                       :label="item.deptName"
-                       :value="item.deptId" />
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div class="department">
-        <div>
-          <span class="star font">职务</span>
-          <span class="ontent"
-                v-if="zhiwu1.roleName">{{
-            zhiwu1.roleName
-          }}</span>
-          <span class="operaction"
-                @click="setwork">设置</span>
-        </div>
-       <!-- <div class="lastspan">
-          <span class="star font">关联船舶</span>
-          <div class="ontent"
-               style="width: 800px;">
-            <span v-for="(item, key) in seleteShipList"
-                  :key="key"
-                  v-show="item.vesselId"
-                  class="ontent shipName">{{ item.vesselName }}</span>
-            <span style="padding-left: 4px;"
-                  class="operaction shipSelectSet"
-                  @click="setChargeShip">设置</span>
-          </div>
-        </div> -->
-        <div style="display:flex">
-          <span class=" font">兼职职务</span>
-          <span class="operaction"
-                @click="partTimeSetting">设置</span>
-          <div class="boxClass">
-            <div v-for="(item, index) in jobList"
-                 :key="index"
-                 v-show="item.roleId"
-                 style="margin-bottom: 10px">
-              <span class=" aaa">兼职{{ index + 1 }}:{{ item.roleName }}</span>
-              <div class="lastspan">
-                <span class="star bbb">关联船舶</span>
-                <div class="ontent"
-                     style="width: 800px;">
-                  <span v-for="(item, index) in item.asd"
-                        :key="item.vesselId + index"
-                        v-show="item.vesselId"
-                        class="ontent shipName">{{ item.vesselName }}</span>
-                  <span class="operaction shipSelectSet"
-                        @click="setUpShip(item)">设置</span>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="uphead">
-        <span class="imghead font">上传签名:</span>
-        <img :src="
-            ruleForm.electronicSignature === ''
-              ? url
-              : ruleForm.electronicSignature
-          "
-             class="img" />
-        <input type="file"
-               class="kyc-passin"
-               @change="uploadPhoto($event)" />
-        <span class="talk">支持上传jpg/png文件,大小不能超过1M</span>
-      </div>
-    </div>
-    <!-- 主要职务选择 -->
-    <el-dialog title="设置成员主职职务"
-               :visible.sync="mainJobSelection"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="checkBoxClass">
-        <span class="member">成员将属于以下职务</span>
-        <el-radio-group @change="handleCheckAllChanges"
-                        v-model="post"
-                        class="postBox">
-          <el-radio class="checkBoxCla"
-                    v-for="(item, key) in data1"
-                    :key="key"
-                    :label="item.roleId">{{ item.roleName }}</el-radio>
-        </el-radio-group>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="mainJobSelection = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="setMainJob">确 定</el-button>
-      </span>
-    </el-dialog>
-
-    <!--6.设置成员职务-->
-    <el-dialog title="设置兼职职务职务"
-               :visible.sync="setDuty"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1">
-          <div v-loading="roleLoading">
-            <div class="block">
-              <el-tree class="ship-tree"
-                       :props="props"
-                       node-key="id"
-                       :load="loadNode"
-                       lazy>
-                <template slot-scope="{ node, data }">
-                  <span v-if="node.level === 2">
-                    <el-checkbox-group v-model="data.check"
-                                       @change="val => radioGroupChange(data, val, node)">
-                      <el-checkbox class="zhiwuChecks"
-                                   v-for="item in data.roid"
-                                   :key="item.roleId"
-                                   :label="item">
-                        {{ item.roleName }}
-                      </el-checkbox>
-                    </el-checkbox-group>
-                  </span>
-                  <span v-else>{{ data.deptName }}</span>
-                </template>
-              </el-tree>
-            </div>
-          </div>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下职务</span>
-
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in jobList"
-                 :key="index">
-              {{ item.roleName }}
-              <span class="zhiwuDel"
-                    @click="delZhiWu(item)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="setDuty = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="setDutysave">确 定</el-button>
-      </span>
-    </el-dialog>
-    <!-- 7.关联船舶 -->
-    <el-dialog title="负责船舶"
-               :visible.sync="chargeShip"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1"
-             v-loading="loadingVessel">
-          <div class="search-box">
-            <el-input class="search-keyword"
-                      v-model.trim="searchKeyword"
-                      maxlength="50"
-                      placeholder="请输入船舶名称"
-                      clearable
-                      @clear="getClear"
-                      @keyup.enter.native="getList" />
-            <svg-icon icon-class="searchIcon"
-                      class="searchIcon"
-                      @click="getList" />
-          </div>
-          <el-checkbox :indeterminate="isIndeterminate"
-                       v-model="checkAll"
-                       @change="handleCheckAllChange">全选</el-checkbox>
-          <!--<el-checkbox :indeterminate="isIndeterminate" v-model="checkAntiFlag" @change="checkAnti">反选</el-checkbox>-->
-          <el-checkbox-group v-model="shipCheckList"
-                             @change="handleCheckedCitiesChange">
-            <el-checkbox class="zhiwuCheck"
-                         v-for="(item, index) in shipList"
-                         :label="item.vesselId"
-                         :key="item.vesselId + index">
-              {{ item.vesselName }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下船舶</span>
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in seleteShipList"
-                 :key="index">
-              {{ item.vesselName }}
-              <span class="zhiwuDel"
-                    @click="delShipSelect(item.vesselId)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="getNowList">取 消</el-button>
-        <el-button type="primary"
-                   @click="saveChargeShip">确 定</el-button>
-      </span>
-    </el-dialog>
-    <!-- 兼职船舶 -->
-    <el-dialog title="负责船舶"
-               :visible.sync="partTimeJobShip"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1"
-             v-loading="loadingVessel">
-          <div class="search-box">
-            <el-input class="search-keyword"
-                      v-model.trim="searchKeyword"
-                      maxlength="50"
-                      placeholder="请输入船舶名称"
-                      clearable
-                      @clear="getClear"
-                      @keyup.enter.native="getList" />
-            <svg-icon icon-class="searchIcon"
-                      class="searchIcon"
-                      @click="getList" />
-          </div>
-          <el-checkbox :indeterminate="isIndeterminates"
-                       v-model="checkAll"
-                       @change="handleCheckAllChangess">全选</el-checkbox>
-          <!--<el-checkbox :indeterminate="isIndeterminate" v-model="checkAllAnti" @change="checkAnti">反选</el-checkbox>-->
-          <el-checkbox-group v-model="shipCheckLists"
-                             @change="handleCheckedCitiesChangess">
-            <el-checkbox class="zhiwuCheck"
-                         v-for="(item, index) in shipLists"
-                         :label="item.vesselId"
-                         :key="item.vesselId + index">
-              {{ item.vesselName }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下船舶</span>
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in seleteShipLists"
-                 :key="index">
-              {{ item.vesselName }}
-              <span class="zhiwuDel"
-                    @click="delShipSelects(item.vesselId)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="cancels">取 消</el-button>
-        <el-button type="primary"
-                   @click="determine">确 定</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-<script>
-import { addadmin } from "../../api/organization/orgAddMan";
-import {
-  getOssInterimCredentials,
-  GotOssAccessConfig,
-  uploadShipFiles
-} from "../../api/upload";
-import { client } from "../../utils/alioss";
-
-import { validPassword } from "../../utils/validate";
-
-import shoreApi from "../../api/organization/shore";
-import {
-  staffInfo,
-  changeInfo,
-  companyVessels,
-  getDeptListByCompId
-} from "../../api/shoreBasedMembers";
-const validPasswordRule = function (rule, value, callback) {
-  if (value)
-    if (!validPassword(value)) {
-      callback(
-        // this.$message({
-        //   message: '密码为6到20位数字密码任意组合!',
-        //   type: 'error'
-        // })
-        new Error("密码为6到20位数字密码任意组合")
-      );
-      return;
-    } else {
-      callback();
-      return;
-    }
-  callback();
-
-  // if (!validPassword(value)) {
-  //   callback(new Error('密码为6到20位数字密码任意组合'));
-  // } else {
-  //   callback();
-  // }
-};
-
-export default {
-  name: "shoreMemberAdd",
-  data () {
-    const validcodeId = (rule, value, callback) => {
-      const reg = /[0-9a-zA-Z]$/;
-      if (!reg.test(value)) {
-        callback(
-          new Error("账号必须是由数字和字母组合")
-          // this.$message({
-          //   type: 'error',
-          //   message: '账号必须是由数字和字母组合',
-          //   showClose: true,
-          // })
-        );
-      } else {
-        callback();
-      }
-    };
-
-    const validcodeName = (rule, value, callback) => {
-      const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
-      if (!reg.test(value)) {
-        callback(
-          new Error("密码必须是由6位数字和字母组合")
-          // this.$message({
-          //   type: 'error',
-          //   message: '密码必须是由6位数字和字母组合',
-          //   showClose: true,
-          // })
-        );
-      } else {
-        callback();
-      }
-    };
-    const validPasswordAgain = (rule, value, callback) => {
-      if (value === "") {
-        callback(
-          this.$message({
-            type: "error",
-            message: "带*号的为必填项",
-            showClose: true
-          })
-        );
-      } else if (
-        (value !== this.ruleForm.loginPassword && !this.id) ||
-        (value !== this.ruleForm.loginPasswordNew && this.id)
-      ) {
-        callback(
-          this.$message({
-            type: "error",
-            message: "两次密码不一致",
-            showClose: true
-          })
-        );
-      } else {
-        callback();
-      }
-    };
-    const validcodePhonee = (rule, value, callback) => {
-      const reg = /^1[345789]\d{9}$/;
-
-      if (!reg.test(value)) {
-        callback(
-          new Error("手机号格式填写错误")
-
-          // this.$message({
-          //     type: 'error',
-          //     message: '手机号格式填写错误',
-          //     showClose: true,
-          //   })
-        );
-      } else {
-        callback();
-      }
-    };
-    return {
-      aaabbb: [],
-      postList: [],
-      post: "",
-      mainJobSelection: false,
-      isIndeterminate: false,
-      isIndeterminates: false,
-      loadingVessel: false,
-      checkAll: false,
-      checkAntiFlag: false,
-      compId: sessionStorage.getItem("enterprise-front-companyId"),
-      searchKeyword: "", // 关联船舶 搜索关键词
-      datamsg: "",
-      title: "",
-      /* 页面传递来的数据 */
-      checklist: [
-        {
-          value: ""
-        }
-      ],
-      Department: "",
-      Departmentname: "",
-      /* 设置部门 */
-      checklist1: [
-        {
-          key: "",
-          value: ""
-        }
-      ],
-      Department1: "",
-      Departmentname1: "",
-      zwmsg: "",
-      // 船舶
-      checklist2: [],
-      /* 设置关联船舶 */
-      url:
-        "http://winsea-saas-test.oss-cn-shanghai.aliyuncs.com/default-logo.png",
-      setUpTheDepartment: false,
-      setDuty: false,
-      chargeShip: false,
-      partTimeJobShip: false,
-      loading: false,
-      ruleForm: {
-        deptId: "",
-        staffName: "",
-        staffAccount: "",
-        loginPassword: "",
-        loginPasswordAgain: "",
-        loginPasswordAgainNew: "",
-        loginPasswordNew: "",
-        staffMobilePhone: "",
-        electronicSignature: "",
-        majorRoleId: "",
-        roles: [
-          {
-            roleId: "",
-            major: "1"
-          }
-        ],
-        vessels: [{vesselId:'e88a798337c14cd7b8e0dfe7f9efdf5a',vesselName:'试用船舶'}],
-        roleVesselIds: []
-      },
-      rules: {
-        staffAccount: [
-          {
-            required: true,
-            // validator: validcodeId,
-            trigger: "blur",
-            message: "请输入账号"
-          }
-        ],
-        loginPassword: [
-          {
-            required: true,
-            validator: validcodeName,
-            trigger: "blur"
-          }
-        ],
-        loginPasswordAgain: [
-          {
-            required: true,
-            validator: validPasswordAgain,
-            trigger: "blur"
-          }
-        ],
-        loginPasswordNew: [
-          {
-            validator: validPasswordRule,
-            trigger: "blur"
-          }
-        ],
-        staffName: [
-          {
-            required: true,
-            trigger: "blur",
-            message: "请输入中文名"
-          }
-        ],
-        staffMobilePhone: [
-          {
-            required: true,
-            validator: validcodePhonee,
-            trigger: "blur"
-          }
-        ],
-        underCompId: [
-          {
-            required: true,
-            trigger: "change"
-          }
-        ]
-      },
-      data: [],
-      data5: [],
-      data6: [],
-      data1: [
-        {
-          id: "",
-          label: "",
-          disabled: true,
-          children: []
-        }
-      ],
-      shipList: [],
-      shipLists: [],
-      primaryzw: "1",
-      zhiwuCheckList: [],
-      zhiwuChec1kList: [],
-      zhiwu1: {},
-      zhiwu2: [],
-      zhiwu11: {},
-      shipCheckList: [],
-      shipCheckLists: [],
-      seleteShipList: [],
-      seleteShipLists: [],
-      companyList: [],
-      deptList: [],
-      inputType: "text",
-      isChrome: true,
-      roleLoading: false,
-      id: this.$route.query.id,
-      postId: "",
-      partTimeJobList: [],
-      partTimeDepartmentList: [],
-      checkedCities: [],
-      props: {
-        label: "name",
-        children: "children",
-        isLeaf: "leaf"
-      },
-      check: [],
-      aaaaaa: [],
-      gggg: []
-    };
-  },
-  computed: {
-    jobList () {
-      let res = [];
-      Object.keys(this.check).forEach((value, index) => {
-        this.check[value].forEach(ite => {
-          res.push(ite);
-        });
-      });
-      let _a = res.filter(v => v);
-      _a.forEach(v => {
-        if (v.asd === undefined) v.asd = [];
-      });
-      return _a;
-    }
-  },
-  created () {
-    this.baseInfo();
-  },
-  methods: {
-    async loadNode (node, resolve) {
-      if (node.level === 0) {
-        // 发起一级请求
-        return resolve(this.partTimeDepartmentList);
-      }
-      if (node.level === 1) {
-        // 发起二级请求
-        let uuid = node.data.deptId;
-        let response = await shoreApi.queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: uuid
-        });
-        this.partTimeJobList = response;
-        if (this.partTimeJobList !== null)
-          this.partTimeJobList = this.partTimeJobList.map(itemA => {
-            return {
-              ...itemA,
-              deptId: uuid
-            };
-          });
-        let _check = [];
-        for (let variable of this.partTimeJobList) {
-          let curr;
-          for (let variable2 of this.jobList) {
-            if (variable.roleId === variable2.roleId) curr = variable;
-          }
-          if (curr) {
-            _check.push(curr);
-            // break;
-          }
-        }
-        this.jobList.forEach(item => {
-          item.asd.forEach(itemA => {
-            _check.forEach(itemB => {
-              if (item.deptId === itemB.deptId)
-                if (itemB.asd === undefined) {
-                  itemB.asd = [];
-                } else {
-                  itemB.asd.push(itemA);
-                }
-            });
-          });
-        });
-
-        this.aaabbb[uuid] = _check;
-        return resolve([
-          {
-            id: node.data.deptId,
-            roid: this.partTimeJobList,
-            check: _check,
-            leaf: true
-          }
-        ]);
-      }
-      if (node.level > 1) {
-        return resolve([]);
-      }
-    },
-    radioGroupChange (data, val, node) {
-      this.$set(this.check, data.id, val);
-      this.aaabbb[data.id] = val;
-    },
-    //tree
-    remove (node, data) {
-      // const parent = node.parent;
-      // const children = parent.data.children || parent.data;
-      // const index = children.findIndex(d => d.id === data.id);
-      // children.splice(index, 1);
-    },
-    // 取消
-    cancels () {
-      this.partTimeJobShip = false;
-      // this.ruleForm.roleVesselIds = [];
-      // this.jobList.forEach(item => {
-      //   item.asd.forEach(ite => {
-      //     this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-      //   });
-      // });
-    },
-    // 确定
-    determine () {
-      this.partTimeJobShip = false;
-      this.ruleForm.roleVesselIds = [];
-      this.jobList.forEach(item => {
-        item.asd.forEach(ite => {
-          this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-        });
-      });
-    },
-    append (data) {
-      const newChild = { id: id++, label: "testtest", children: [] };
-      if (!data.children) {
-        this.$set(data, "children", []);
-      }
-      data.children.push(newChild);
-    },
-    getList () {
-      // 船舶
-      shoreApi
-        .getVessels({ searchKeyword: this.searchKeyword })
-        .then(response => {
-          this.shipList = response;
-          this.shipLists = response;
-          let _isIndeterminate = false;
-          this.shipList.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) _isIndeterminate = true;
-            });
-          });
-          this.shipLists.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) _isIndeterminate = true;
-            });
-          });
-          this.isIndeterminate = _isIndeterminate;
-          this.isIndeterminates = _isIndeterminate;
-
-          let _checkAll = false;
-          let selectMum = 0;
-          this.shipList.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) selectMum++;
-            });
-          });
-          this.shipLists.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) selectMum++;
-            });
-          });
-
-          if (this.shipList.length === selectMum) {
-            _checkAll = true;
-            this.isIndeterminate = false;
-          } else {
-            _checkAll = false;
-          }
-          if (this.shipLists.length === selectMum) {
-            _checkAll = true;
-            this.isIndeterminates = false;
-          } else {
-            _checkAll = false;
-          }
-          this.checkAll = _checkAll;
-        });
-    },
-    getClear () {
-      this.searchKeyword = null;
-      this.getList();
-    },
-    //反选
-    checkAnti (val) {
-      // console.log(val,'反选')
-      this.checkAll = !val;
-      // if(val){
-      //   this.checkAll = false;
-      // }
-      let citiesId = [];
-      let shipCheck = [];
-      this.shipList.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipCheck.push(item.vesselId);
-      });
-
-      if (this.shipCheckList.length === this.shipList.length) {
-        this.isIndeterminate = false;
-        this.shipCheckList = [];
-        this.seleteShipList = [];
-      } else if (this.shipCheckList.length === 0) {
-        this.isIndeterminate = false;
-        this.shipCheckList = shipCheck;
-        this.seleteShipList = citiesId;
-      }
-    },
-    // 关联船舶全选
-    handleCheckAllChange (val) {
-      if (val) {
-        this.checkAntiFlag = false;
-      }
-      // this.checkAntiFlag = !val;
-      // console.log(val,'正选')
-      let citiesId = [];
-      let shipCheck = [];
-      this.shipList.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipCheck.push(item.vesselId);
-      });
-      this.shipCheckList = val ? shipCheck : [];
-      this.seleteShipList = val ? citiesId : [];
-      this.isIndeterminate = false;
-    },
-    // 关联船舶单选
-    handleCheckedCitiesChange (value) {
-      // 差集
-      let t = [];
-      this.shipList.forEach(v1 => {
-        let b = Object.assign({}, v1);
-        value.forEach(v2 => {
-          if (v2 === v1.vesselId) b = null;
-        });
-        t.push(b);
-      });
-      //加
-      this.shipList.forEach(item => {
-        value.forEach(gitem => {
-          if (item.vesselId === gitem) {
-            let currIndex = this.seleteShipList.findIndex(
-              value => value.vesselId === gitem
-            );
-            if (currIndex === -1)
-              this.seleteShipList.push({
-                vesselId: item.vesselId,
-                vesselName: item.vesselName
-              });
-          }
-        });
-      });
-      // 删
-      let _t = t.filter(v => !!v);
-      let a = this.seleteShipList.filter(v => {
-        let r = true;
-        _t.forEach(v2 => {
-          if (v.vesselId === v2.vesselId) r = false;
-        });
-        return r;
-      });
-
-      this.seleteShipList = a;
-
-      let _isIndeterminate = false;
-      this.shipList.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          _isIndeterminate = true;
-        }
-      });
-      this.isIndeterminate = _isIndeterminate;
-
-      let _checkAll = false;
-      let selectMum = 0;
-      this.shipList.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          selectMum++;
-        }
-      });
-
-      if (this.shipList.length === selectMum) {
-        _checkAll = true;
-        this.isIndeterminate = false;
-      } else {
-        _checkAll = false;
-      }
-      this.checkAll = _checkAll;
-    },
-    // 关联船舶全选
-    handleCheckAllChangess (val) {
-      let citiesId = [];
-      let shipChecks = [];
-      this.shipLists.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipChecks.push(item.vesselId);
-      });
-      this.shipCheckLists = val ? shipChecks : [];
-      this.seleteShipLists = val ? citiesId : [];
-      this.gggg.asd = val ? citiesId : [];
-      this.isIndeterminates = false;
-    },
-    // 关联船舶单选
-    handleCheckedCitiesChangess (value) {
-      // 差集
-      let t = [];
-      this.shipLists.forEach(v1 => {
-        let b = Object.assign({}, v1);
-        value.forEach(v2 => {
-          if (v2 === v1.vesselId) b = null;
-        });
-        t.push(b);
-      });
-      //加
-      this.shipLists.forEach(item => {
-        value.forEach(gitem => {
-          if (item.vesselId === gitem) {
-            let currIndex = this.seleteShipLists.findIndex(
-              value => value.vesselId === gitem
-            );
-            if (currIndex === -1)
-              this.seleteShipLists.push({
-                vesselId: item.vesselId,
-                vesselName: item.vesselName
-              });
-            this.gggg.asd = this.seleteShipLists;
-          }
-        });
-      });
-
-      // 删
-      let _t = t.filter(v => !!v);
-      let a = this.seleteShipLists.filter(v => {
-        let r = true;
-        _t.forEach(v2 => {
-          if (v.vesselId === v2.vesselId) r = false;
-        });
-        return r;
-      });
-
-      this.seleteShipLists = a;
-      this.gggg.asd = a;
-
-      let _isIndeterminates = false;
-      this.shipLists.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          _isIndeterminates = true;
-        }
-      });
-      this.isIndeterminates = _isIndeterminates;
-
-      let _checkAll = false;
-      let selectMum = 0;
-      this.shipLists.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          selectMum++;
-        }
-      });
-
-      if (this.shipLists.length === selectMum) {
-        _checkAll = true;
-        this.isIndeterminates = false;
-      } else {
-        _checkAll = false;
-      }
-      this.checkAll = _checkAll;
-    },
-    // 选船操作
-    shipCheck (id) {
-      this.seleteShipList = [];
-      for (let i = 0; i < id.length; i++) {
-        this.seleteShipList.push({
-          vesselId: id[i],
-          vesselName: this.shipList.find(item => item.vesselId === id[i])
-            .vesselName
-        });
-      }
-    },
-    // 选船操作
-    shipChecks (id) {
-      this.seleteShipLists = [];
-      for (let i = 0; i < id.length; i++) {
-        this.seleteShipLists.push({
-          vesselId: id[i],
-          vesselName: this.shipLists.find(item => item.vesselId === id[i])
-            .vesselName
-        });
-      }
-    },
-
-    changeInputType () {
-      this.inputType = "password";
-    },
-    // 当前页面信息
-    getMemberInfo () {
-      this.loading = true;
-      staffInfo({ staffId: this.id }).then(response => {
-        this.ruleForm = response;
-        this.zhiwu1.roleId = this.ruleForm.majorRoleId;
-        if (this.ruleForm.underCompId) {
-          this.changeDept(this.ruleForm.underCompId);
-        }
-
-        if (this.ruleForm.deptId) {
-          shoreApi
-            .queryRoleSelectData({
-              vesselBankFlag: "B",
-              underCompId: this.ruleForm.underCompId,
-              deptId: this.ruleForm.deptId
-            })
-            .then(response => {
-              this.data6 = response.map(item => {
-                return {
-                  ...item,
-                  state: false
-                };
-              });
-              this.data1 = this.data6;
-              this.roleLoading = false;
-            });
-        }
-
-        if (!this.ruleForm.electronicSignature) {
-          this.ruleForm.electronicSignature = this.url;
-        }
-        // TODO: 此处存在疑问点?
-        this.zhiwu1.roleName = response.majorRole
-          ? response.majorRole.roleName
-          : "";
-        this.post = response.majorRole ? response.majorRole.roleId : "";
-        if (response.majorRole && response.majorRole.vessels)
-          response.majorRole.vessels.forEach(item => {
-            this.seleteShipList.push(item);
-            this.aaaaaa.push(item.vesselId);
-          });
-        response.roles.forEach(item => {
-          this.$set(this.check, `${item.deptId}_${item.roleId}`, [item]);
-          this.$set(this.aaabbb, `${item.deptId}_${item.roleId}`, [item]);
-          if (item.vessels !== null)
-            item.vessels.forEach(itemD => {
-              Object.keys(this.check).forEach((value, index) => {
-                if (value === `${item.deptId}_${item.roleId}`) {
-                  this.check[value].forEach(ite => {
-                    if (ite.asd === undefined) {
-                      ite.asd = [];
-                    }
-                    ite.asd.push(itemD);
-                  });
-                }
-              });
-            });
-        });
-
-        response.roles.forEach(item => {
-          if (item.vessels !== null) {
-            item.vessels = item.vessels.map(ite => {
-              return {
-                ...ite,
-                roleId: item.roleId
-              };
-            });
-          }
-        });
-        this.ruleForm.roleVesselIds = [];
-        response.roles.forEach(item => {
-          if (item.vessels !== null)
-            item.vessels.forEach(itemA => {
-              this.ruleForm.roleVesselIds.push(
-                itemA.roleId + "_" + itemA.vesselId
-              );
-              // this.jobList.forEach(ite => {
-              //   if (ite.roleId === item.roleId) {
-              //     ite.asd.push(itemA);
-              //   }
-              // });
-            });
-        });
-
-        // TODO: 此处存在
-        this.ruleForm.vessels = response.majorRole
-          ? response.majorRole.vessels
-          : "";
-
-        // let vessels = response.vessels.filter(function(v) {
-        //   return v;
-        // });
-        // this.shipCheckList = [];
-        // this.seleteShipList = vessels.filter(v => {
-        //   let t = false;
-        //   this.shipList.forEach(v2 => {
-        //     if (v2.vesselId === v.vesselId) {
-        //       t = true;
-        //       this.shipCheckList.push(v.vesselId);
-        //     }
-        //   });
-        //   return t;
-        // });
-
-        let checkedCount = this.shipCheckList.length;
-        this.checkAll = checkedCount === this.shipList.length;
-        this.isIndeterminate =
-          checkedCount > 0 && checkedCount < this.shipList.length;
-
-        // if (response.roles.length > 0) {
-        //   this.zhiwu1 = response.roles[0];
-        //   response.roles.find(item => {
-        //     if (item.major === "1") {
-        //       this.zhiwu1 = {
-        //         roleId: item.roleId,
-        //         roleName: item.roleName,
-        //         major: "1"
-        //       };
-        //     }
-        //     this.zhiwuCheckList.push(item.roleId);
-        //   });
-        //   this.zhiwu2 = response.roles.filter(item => {
-        //     return item.major !== "1";
-        //   });
-        // }
-
-        this.loading = false;
-      });
-    },
-    // 上传签名
-    uploadPhoto (e) {
-      const fileTypes = [".jpg", ".png"];
-      const filePath = e.target.value;
-      if (filePath) {
-        let isNext = false;
-        const fileEnd = filePath.substring(filePath.indexOf("."));
-        for (let i = 0; i < fileTypes.length; i++) {
-          if (fileTypes[i] === fileEnd) {
-            isNext = true;
-            break;
-          }
-        }
-        if (!isNext) {
-          this.$message({
-            message: "不接受此类型文件",
-            type: "error",
-            showClose: true
-          });
-          e.target.value = "";
-          return false;
-        }
-      } else {
-        return false;
-      }
-      const file = e.target.files[0];
-      uploadShipFiles(file, {
-        companyId: this.compId || "",
-        modelId: ""
-      }).then(response => {
-        this.ruleForm.electronicSignature =
-          this.$store.getters.baseInfo.fileUrl + response.appendixPath;
-        this.$message({
-          type: "success",
-          message: "上传签名成功!",
-          showClose: true
-        });
-      });
-    },
-    cancel () {
-      this.$router.go(-1);
-    },
-    // 数据转换
-    getSelectLabel () {
-      this.ruleForm.majorRoleId = this.zhiwu1.roleId;
-
-      // 公司
-      this.ruleForm.underCompName = this.companyList.find(
-        item => item.compId === this.ruleForm.underCompId
-      ).compName;
-
-      // 部门
-      this.ruleForm.deptName = this.deptList.find(
-        item => item.deptId === this.ruleForm.deptId
-      ).deptName;
-
-      if (this.ruleForm.loginPasswordNew) {
-        this.ruleForm.loginPassword = this.ruleForm.loginPasswordNew;
-      }
-    },
-    // 编辑
-    editSave () {
-      this.ruleForm.staffId = this.id;
-      changeInfo(this.ruleForm)
-        .then(() => {
-          // this.cancel();
-          this.$message({
-            message: "保存成功",
-            type: "success",
-            showClose: true
-          });
-          // this.getMemberInfo();
-          this.$router.go(-1);
-          this.loading = false;
-        })
-        .catch(code => {
-          this.loading = false;
-          if (code === "MANAGEMENT_002") {
-            this.$message({
-              type: "error",
-              message: "手机号冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_001") {
-            this.$message({
-              type: "error",
-              message: "用户名冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_003") {
-            this.$message({
-              type: "error",
-              message: "邮箱冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_010") {
-            this.$message({
-              type: "error",
-              message: "成员名称重复!",
-              showClose: true
-            });
-            return false;
-          }
-        });
-    },
-    // 保存
-    addSave (flag) {
-      addadmin(this.ruleForm)
-        .then(() => {
-          // this.cancel();
-          this.$message({
-            message: "保存成功",
-            type: "success",
-            showClose: true
-          });
-
-          if (flag) {
-            this.$router.go(-1);
-          } else {
-            this.clearZhiwu();
-            this.checklist = [
-              {
-                value: ""
-              }
-            ];
-            this.checklist1 = [
-              {
-                value: ""
-              }
-            ];
-            this.seleteShipList = [];
-            this.ruleForm.staffName = "";
-            this.ruleForm.deptId = "";
-            this.url =
-              "http://winsea-saas-test.oss-cn-shanghai.aliyuncs.com/default-logo.png";
-
-            this.$nextTick(() => {
-              this.$refs.ruleForm.clearValidate();
-              this.$refs.ruleForm.resetFields();
-            });
-          }
-          this.loading = false;
-        })
-        .catch(code => {
-          this.loading = false;
-          if (code === "MANAGEMENT_002") {
-            this.$message({
-              type: "error",
-              message: "手机号冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_001") {
-            this.$message({
-              type: "error",
-              message: "用户名冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_003") {
-            this.$message({
-              type: "error",
-              message: "邮箱冲突!",
-              showClose: true
-            });
-            return false;
-          }
-        });
-    },
-    // 保存
-    save (formName, flag) {
-      this.$refs[formName].validate(valid => {
-        if (valid) {
-          debugger
-          if (this.ruleForm.roles.length !== 0)
-                      if (this.ruleForm.roles[0].roleId === "" || this.zhiwu1.roleName === null) {
-                        this.$message({
-                          type: "warning",
-                          message: "请先设置职务!",
-                          showClose: true
-                        });
-                        return false;
-                      }
-                      // else if (this.ruleForm.vessels.length === 0) {
-                      //   this.$message({
-                      //     type: "warning",
-                      //     message: "请先设置关联船舶!",
-                      //     showClose: true,
-                      //     });
-                      //     return false;
-                      //  }
-          this.loading = true;
-          this.getSelectLabel();
-          if (this.id) {
-            this.editSave();
-          } else {
-            this.addSave(flag);
-          }
-          this.isIndeterminate = false;
-        } else {
-          this.$message({
-            message: "带*号的为必填项",
-            type: "error",
-            showClose: true
-          });
-          return false;
-        }
-      });
-    },
-    // 设置职务
-    setwork () {
-      if (this.ruleForm.deptId) {
-        this.mainJobSelection = true;
-      } else {
-        this.$message({
-          message: "请先选择部门!",
-          type: "warning",
-          showClose: true
-        });
-      }
-    },
-    // 设置船
-    setChargeShip () {
-      // console.info(this.seleteShipList, this.aaaaaa);
-      this.chargeShip = true;
-      this.shipCheckList = this.seleteShipList.map(item => item.vesselId);
-      // this.shipCheckList = this.aaaaaa;
-      this.isIndeterminate = true;
-    },
-    setUpShip (data) {
-      this.gggg = data;
-      if (this.gggg.asd.length !== 0) {
-        let _aaa = [];
-        this.gggg.asd.forEach(item => {
-          _aaa.push(item.vesselId);
-        });
-        this.shipCheckLists = _aaa;
-        this.isIndeterminates = true;
-      } else {
-        this.shipCheckLists = this.gggg.asd;
-        this.isIndeterminates = false;
-      }
-      this.seleteShipLists = this.gggg.asd;
-      this.partTimeJobShip = true;
-    },
-    // 兼职设置
-    partTimeSetting () {
-      if (this.ruleForm.deptId) {
-        this.setDuty = true;
-      } else {
-        this.$message({
-          message: "请先选择部门!",
-          type: "warning",
-          showClose: true
-        });
-      }
-    },
-    // 基础数据
-    async baseInfo () {
-      // 公司
-      shoreApi.compAndChildrenInfo().then(res => {
-        res[0].children.unshift({
-          compId: res[0].compId,
-          compName: res[0].compName
-        });
-        this.companyList = res[0].children;
-      });
-
-      // 船舶
-      this.loadingVessel = true;
-      let res = await shoreApi.getVessels();
-      this.loadingVessel = false;
-      this.shipList = res;
-      this.shipLists = res;
-      if (this.id) {
-        this.getMemberInfo();
-        this.title = "编辑成员";
-      } else {
-        this.title = "添加成员";
-      }
-
-      // 职员
-      this.roleLoading = true;
-      shoreApi.queryRoleSelectData({ vesselBankFlag: "B" }).then(response => {
-        this.roleLoading = false;
-        this.data5 = response.map(item => {
-          return {
-            ...item,
-            state: false
-          };
-        });
-      });
-    },
-    changeRole (id) {
-      this.roleLoading = true;
-      shoreApi
-        .queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: id
-        })
-        .then(response => {
-          this.data6 = response.map(item => {
-            return {
-              ...item,
-              state: false
-            };
-          });
-          this.data1 = this.data6;
-
-          if (!this.data1.find(item => item.roleId === this.zhiwu1.roleId)) {
-            this.zhiwu1.roleName = null;
-          }
-
-          this.data1.forEach(item => {
-            this.zhiwu2.forEach((gitem, gindex) => {
-              if (gitem.roleId == item.roleId) {
-                this.zhiwu2.splice(gindex, 1);
-              }
-
-              this.zhiwuCheckList.forEach((citem, cindex) => {
-                if (gitem.roleId == citem) {
-                  this.zhiwuCheckList.splice(cindex, 1);
-                }
-              });
-            });
-          });
-
-          // this.zhiwuCheckList.push(item.roleId);
-
-          // if(this.zhiwu2.find(item => item.roleId === this.zhiwu1.roleId)){
-          //   this.zhiwu2 = [];
-          // }
-          this.roleLoading = false;
-        });
-    },
-    changeDept (id) {
-      // 部门
-      getDeptListByCompId({ vesselBankFlag: "B", underCompId: id }).then(
-        response => {
-          this.postId = id;
-          this.deptList = response;
-          this.partTimeDepartmentList = response;
-        }
-      );
-    },
-    adddepartmentDel () {
-      this.resetChecked();
-      this.checklist = [
-        {
-          key: "",
-          value: ""
-        }
-      ];
-    },
-    /* 删除 */
-    resetChecked (key, value) {
-      this.$refs.tree.setCheckedKeys([key]);
-      this.checklist.push({
-        key,
-        value
-      });
-    },
-    // /* 清空 */
-    // check(data) {
-    //   this.checklist = [];
-    //   const key = data.id;
-    //   const value = data.label;
-    //   this.resetChecked(key, value);
-    // },
-    departmentsave () {
-      this.setUpTheDepartment = false;
-      this.ruleForm.deptId = this.checklist[0].key;
-    },
-    // 主要职务单选
-    handleCheckAllChanges (value) {
-      // this.zhiwu1 = {
-      //   roleName: this.data1.find(item => item.roleId === value).roleName
-      // };
-      this.zhiwu1 = {
-        roleId: value,
-        roleName: this.data1.find(item => item.roleId === value).roleName
-      };
-    },
-    /* 保存 */
-    // 设置主要职务
-    setMainJob () {
-      this.setDuty = false;
-      this.zhiwu11 = this.zhiwu1;
-      const zhiwuAll = [];
-      zhiwuAll.push(this.zhiwu1);
-      this.ruleForm.roles = zhiwuAll.concat(this.zhiwu2);
-      this.mainJobSelection = false;
-    },
-
-    /* 设置职务 */
-    setDutysave () {
-      // if (this.zhiwu1.roleId) {
-      this.setDuty = false;
-      this.ruleForm.roleVesselIds = [];
-      this.jobList.forEach(item => {
-        item.asd.forEach(ite => {
-          this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-        });
-      });
-      // this.zhiwu11 = this.zhiwu1;
-      // const zhiwuAll = [];
-      // zhiwuAll.push(this.zhiwu1);
-      // this.ruleForm.roles = zhiwuAll.concat(this.zhiwu2);
-      // } else {
-      //   this.$message({
-      //     type: "error",
-      //     message: "请选择主要职务",
-      //     showClose: true
-      //   });
-      // }
-    },
-    getNowList () {
-      this.chargeShip = false;
-      this.searchKeyword = null;
-      this.getList();
-    },
-    saveChargeShip () {
-      this.getNowList();
-      this.ruleForm.vessels = this.seleteShipList;
-    },
-    zhiwu2Check (data) {
-      this.zhiwu2 = [];
-      for (let i = 0; i < data.length; i++) {
-        this.zhiwu2.push({
-          roleId: data[i],
-          roleName: this.partTimeJobList.find(item => item.roleId === data[i])
-            .roleName,
-          major: "0"
-        });
-      }
-    },
-    // 职务操作
-
-    zhiwuCheck (id) {
-      // if (this.primaryzw == "1") {
-      //   this.zhiwuCheckList = [];
-      //   this.zhiwuCheckList.push(data[data.length - 1]);
-      //   this.zhiwu1 = {
-      //     roleId: data[data.length - 1],
-      //     roleName: this.data1.find(
-      //       item => item.roleId === data[data.length - 1]
-      //     ).roleName,
-      //     major: "1"
-      //   };
-      // } else {
-      // this.zhiwu2 = [];
-      // for (let i = 0; i < data.length; i++) {
-      //   this.zhiwu2.push({
-      //     roleId: data[i],
-      //     roleName: this.data5.find(item => item.roleId === data[i]).roleName,
-      //     major: "0"
-      //   });
-      // }
-      // }
-
-      this.roleLoading = true;
-      shoreApi
-        .queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: id.join(",")
-        })
-        .then(response => {
-          this.partTimeJobList = response;
-          // this.data6 = response.map(item => {
-          //   return {
-          //     ...item,
-          //     state: false
-          //   };
-          // });
-          // this.data1 = this.data6;
-          this.roleLoading = false;
-        });
-    },
-    zhiwuRadio1 (data) {
-      this.data1 = this.data6;
-      for (let i = 0; i < this.data1.length; i++) {
-        this.data1[i].state = false;
-      }
-      for (let i = 0; i < this.zhiwu2.length; i++) {
-        for (let j = 0; j < this.data1.length; j++) {
-          if (this.zhiwu2[i].roleId == this.data1[j].roleId) {
-            this.data1[j].state = true;
-          }
-        }
-      }
-      this.zhiwuCheckList = [];
-      this.zhiwuCheckList.push(data);
-    },
-    zhiwuRadio2 (data) {
-      this.data1 = this.data5;
-      for (let i = 0; i < this.data1.length; i++) {
-        this.data1[i].state = false;
-      }
-      for (let i = 0; i < this.data1.length; i++) {
-        if (this.zhiwu1.roleId == this.data1[i].roleId) {
-          this.data1[i].state = true;
-        }
-      }
-      this.zhiwuCheckList = [];
-      if (data.length > 0) {
-        for (let i = 0; i < data.length; i++) {
-          this.zhiwuCheckList.push(data[i].roleId);
-        }
-      }
-    },
-    delZhiWu (data) {
-      for (
-        let i = 0;
-        i < this.aaabbb[`${data.deptId}_${data.roleId}`].length;
-        i++
-      ) {
-        if (
-          this.aaabbb[`${data.deptId}_${data.roleId}`][i].roleId == data.roleId
-        ) {
-          this.aaabbb[`${data.deptId}_${data.roleId}`].splice(i, 1);
-        }
-      }
-
-      for (let i = 0; i < this.jobList.length; i++) {
-        if (data.roleId === this.jobList[i].roleId) {
-          this.jobList.splice(i, 1);
-          this.$forceUpdate();
-        }
-      }
-      // for (let i = 0; i < this.data1.length; i++) {
-      //   if (data.roleId == this.data1[i].roleId) {
-      //     this.data1[i].state = false;
-      //   }
-      // }
-    },
-    // 弹出框确认关闭
-    handleClose (done) {
-      this.clearZhiwu();
-      done();
-    },
-    clearZhiwu () {
-      this.zhiwu11 = [];
-      this.zhiwu1 = {};
-      this.zhiwu2 = [];
-      this.zhiwuCheckList = [];
-      this.primaryzw = "1";
-      this.shipCheckList = [];
-      this.seleteShipList = [];
-    },
-
-    delShipSelect (data) {
-      const num = this.shipCheckList.indexOf(data);
-      this.shipCheckList.splice(num, 1);
-      for (let i = 0; i < this.seleteShipList.length; i++) {
-        if (this.seleteShipList[i].vesselId == data) {
-          this.seleteShipList.splice(i, 1);
-        }
-      }
-      if (this.seleteShipList.length === 0) {
-        this.isIndeterminate = false;
-      } else {
-        this.isIndeterminate = true;
-      }
-    },
-    delShipSelects (data) {
-      const num = this.shipCheckLists.indexOf(data);
-      this.shipCheckLists.splice(num, 1);
-
-      for (let i = 0; i < this.seleteShipLists.length; i++) {
-        if (this.seleteShipLists[i].vesselId == data) {
-          this.seleteShipLists.splice(i, 1);
-        }
-      }
-      this.gggg.asd = this.seleteShipLists;
-      if (this.seleteShipLists.length === 0) {
-        this.isIndeterminate = false;
-      } else {
-        this.isIndeterminate = true;
-      }
-    }
-  }
-};
-</script>
-<style scoped lang="scss">
-.dept-comp {
-  /deep/ .el-select:nth-child(1) {
-    margin-right: 10px;
-  }
-  /deep/ .el-input__inner,
-  .el-select {
-    width: 203px !important;
-  }
-}
-
-.serviceType {
-  /deep/ .el-form-item__label {
-    padding-right: 25px;
-  }
-  .el-form-item__content {
-    position: relative;
-  }
-  .tips {
-    font-size: 20px;
-    color: #999;
-    position: absolute;
-    left: -25px;
-    cursor: pointer;
-    z-index: 99;
-    &:hover {
-      p {
-        display: block;
-      }
-    }
-    p {
-      display: none;
-      box-shadow: 0 1px 8px rgba(137, 142, 146, 0.34);
-      font-size: 12px;
-      line-height: 16px;
-      background: #fff;
-      color: #333;
-      padding: 3px;
-      margin: 0;
-      margin-top: -4px;
-      border-radius: 5px;
-      height: 40px;
-    }
-  }
-}
-
-.border {
-  width: 960px;
-  height: 100%;
-  border-left: 1px solid #cccccc;
-}
-.organization-box {
-  height: calc(86vh - 10px);
-  overflow-y: auto;
-  border: none;
-}
-.uphead {
-  margin: 20px 0;
-  height: 60px;
-  line-height: 60px;
-}
-.img {
-  display: inline-block;
-  height: 60px;
-  width: 60px;
-  border-radius: 10px;
-  vertical-align: sub;
-}
-.kyc-passin {
-  margin-left: 20px;
-  width: 170px;
-}
-.talk {
-  font-size: 12px;
-  color: #999999;
-}
-/deep/.el-dialog__body {
-  padding: 0;
-}
-/deep/ .el-dialog--center .el-dialog__body {
-  padding: 0;
-}
-.adddepartment {
-  height: 400px;
-  display: flex;
-  justify-content: space-between;
-}
-.adddepartment1 {
-  padding: 20px;
-  width: 50%;
-  overflow-y: auto;
-  .el-checkbox-group {
-    padding-left: 15px;
-  }
-  .search-box {
-    margin-bottom: 10px;
-    .search-keyword {
-      margin-right: 30px;
-    }
-  }
-}
-.adddepartment2 {
-  padding: 20px;
-  width: 50%;
-  background-color: #eeeeee;
-}
-/deep/.el-tree-node__content {
-  height: 40px;
-}
-.adddepartment3 {
-  height: 36px;
-  line-height: 36px;
-  background-color: #ffffff;
-  position: relative;
-  margin-bottom: 5px;
-}
-.adddepartment4 {
-  display: inline-block;
-  margin-bottom: 20px;
-}
-.adddepartmentLeft {
-  width: 195px;
-  display: inline-block;
-  position: absolute;
-  left: 10px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.shipName {
-  padding: 4px 8px;
-  background-color: #dde9fc;
-  margin-right: 10px;
-  margin-bottom: 10px;
-}
-.ddv1 {
-  //width: 730px;
-  vertical-align: top;
-  margin-top: 2px;
-}
-.ddv1 > span {
-  float: left;
-}
-.adddepartmentDel {
-  display: inline-block;
-  position: absolute;
-  right: 20px;
-  color: #1d6ced;
-  cursor: pointer;
-}
-/deep/.el-form-item .el-input__inner {
-  width: 420px;
-}
-.main-list {
-  height: calc(42vh);
-}
-.primaryzw {
-  width: 100%;
-  margin-bottom: 30px;
-}
-.zhiwuCheck {
-  display: block;
-  margin-top: 10px;
-}
-.zhiwuChecks {
-  display: block;
-  margin-left: -30px;
-}
-.zhuyaozhiwu {
-  margin-top: 10px;
-  background-color: #ffffff;
-  padding: 3px 8px;
-  // display: inline-block;
-}
-.ciyaozhiwu {
-  background-color: #ffffff;
-  padding: 5px 10px;
-  // display: inline-block;
-  margin-top: 10px;
-}
-.zhiwuradio {
-  margin-top: 5px;
-  margin-right: 10px;
-}
-.zhiwuDel {
-  margin-inline-start: 10px;
-  color: #1d6ced;
-  cursor: pointer;
-  float: right;
-}
-.lastspan {
-  display: flex;
-}
-.ddv1 {
-  flex: 1;
-}
-.inputPsd {
-  -webkit-text-security: disc;
-}
-/deep/ .el-form-item__error {
-  display: block;
-}
-.dept-comp {
-  /deep/ .el-form-item__error {
-    display: none;
-  }
-  /deep/ .el-form-item__content {
-    /deep/ .el-input {
-      width: 202px;
-    }
-  }
-}
-
-/deep/ .el-form-item__content {
-  /deep/ .el-input {
-    width: 420px;
-  }
-}
-.member {
-  display: inline-block;
-  margin: 10px 0 0 10px;
-}
-.checkBoxClass {
-  // float: left;
-  width: 650px;
-  height: 100%;
-}
-.checkBoxCla {
-  width: 25%;
-  margin: 10px 0 10px 20px;
-}
-.boxClass {
-  margin-left: 10px;
-}
-.aaa {
-  display: inline-block;
-  padding-right: 12px;
-  font-size: 14px;
-  color: #666666;
-  margin-bottom: 15px;
-}
-.bbb {
-  display: inline-block;
-  padding-right: 12px;
-  font-size: 14px;
-  color: #666666;
-}
-.postBox {
-  width: 100%;
-}
-.ship-tree {
-  /deep/.el-tree-node__content {
-    height: auto;
-  }
-  /deep/.el-radio-group {
-    display: flex;
-    flex-direction: column;
-    text-align: left;
-    & > .el-radio {
-      margin: 2px;
-    }
-  }
-}
-</style>

+ 0 - 2027
src/views/organizationNew/shoreMemberAdd.vue.REMOTE.vue

@@ -1,2027 +0,0 @@
-<!-- 组织架构模块 添加船舶页面 -->
-<template>
-  <div class="box-body"
-       v-loading="loading">
-    <div class="label-box">
-      <span class="label-title">{{ title }}</span>
-      <div class="button-float">
-        <el-button v-if="!id"
-                   type="primary"
-                   @click="save('ruleForm', false)">保存并继续新建</el-button>
-        <el-button type="primary"
-                   @click="save('ruleForm', true)">保存</el-button>
-        <el-button @click="cancel">返回</el-button>
-      </div>
-    </div>
-    <div class="main-list">
-      <el-form ref="ruleForm"
-               :model="ruleForm"
-               :rules="rules"
-               class="demo-ruleForm">
-        <el-form-item label="中文名"
-                      prop="staffName">
-          <el-input v-model="ruleForm.staffName"
-                    placeholder="请输入"
-                    maxlength="20" />
-        </el-form-item>
-        <el-form-item label="账号"
-                      v-if="id"
-                      class="serviceType">
-          <span class="tips">
-            <svg-icon icon-class="tips" />
-            <p>成员唯一标识,可以使用工号、邮箱等<br />公司系统内统一的ID</p>
-          </span>
-          <el-input v-model="ruleForm.staffAccount"
-                    maxlength="20"
-                    placeholder="登录账号唯一标识" />
-        </el-form-item>
-        <el-form-item label="账号"
-                      prop="staffAccount"
-                      class="serviceType"
-                      v-else>
-          <span class="tips">
-            <svg-icon icon-class="tips" />
-            <p>成员唯一标识,可以使用工号、邮箱等<br />公司系统内统一的ID</p>
-          </span>
-          <el-input v-model="ruleForm.staffAccount"
-                    maxlength="20"
-                    placeholder="登录账号唯一标识" />
-        </el-form-item>
-        <el-form-item label="修改密码"
-                      prop="loginPasswordNew"
-                      v-if="id">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordNew"
-                    placeholder="密码任意6位数字,大小写字母,符号组合"
-                    minlength="6"
-                    maxlength="20" />
-        </el-form-item>
-        <el-form-item label="密码"
-                      prop="loginPassword"
-                      v-if="!id">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPassword"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="密码任意6位数字,大小写字母,符号组合" />
-        </el-form-item>
-        <el-form-item label="确认密码"
-                      prop="loginPasswordAgain"
-                      v-if="
-            (id &&
-              ruleForm.loginPasswordNew &&
-              ruleForm.loginPasswordNew.length > 0) ||
-              !id
-          ">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordAgain"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="请再次确认密码" />
-        </el-form-item>
-        <el-form-item label="确认密码"
-                      v-show="
-            !(
-              (id &&
-                ruleForm.loginPasswordNew &&
-                ruleForm.loginPasswordNew.length > 0) ||
-              !id
-            )
-          ">
-          <el-input clearable
-                    :type="inputType"
-                    autocomplete="new-password"
-                    name="password"
-                    @focus="changeInputType"
-                    v-model="ruleForm.loginPasswordAgain"
-                    minlength="6"
-                    maxlength="20"
-                    placeholder="请再次确认密码" />
-        </el-form-item>
-        <el-form-item label="手机号"
-                      prop="staffMobilePhone">
-          <el-input v-model="ruleForm.staffMobilePhone"
-                    placeholder="请输入常用手机号" />
-        </el-form-item>
-        <el-form-item label="公司/部门"
-                      prop="underCompId"
-                      class="dept-comp">
-          <el-select v-model="ruleForm.underCompId"
-                     placeholder="请选择"
-                     @change="changeDept">
-            <el-option v-for="item in companyList"
-                       :key="item.compId"
-                       :label="item.compName"
-                       :value="item.compId" />
-          </el-select>
-          <el-select v-model="ruleForm.deptId"
-                     placeholder="请选择"
-                     @change="changeRole">
-            <el-option v-for="item in deptList"
-                       :key="item.deptId"
-                       :label="item.deptName"
-                       :value="item.deptId" />
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div class="department">
-        <div>
-          <span class="star font">职务</span>
-          <span class="ontent"
-                v-if="zhiwu1.roleName">{{
-            zhiwu1.roleName
-          }}</span>
-          <span class="operaction"
-                @click="setwork">设置</span>
-        </div>
-       <div class="lastspan">
-          <span class="star font">关联船舶</span>
-          <div class="ontent"
-               style="width: 800px;">
-            <span v-for="(item, key) in seleteShipList"
-                  :key="key"
-                  v-show="item.vesselId"
-                  class="ontent shipName">{{ item.vesselName }}</span>
-            <span style="padding-left: 4px;"
-                  class="operaction shipSelectSet"
-                  @click="setChargeShip">设置</span>
-          </div>
-        </div>
-        <div style="display:flex">
-          <span class=" font">兼职职务</span>
-          <span class="operaction"
-                @click="partTimeSetting">设置</span>
-          <div class="boxClass">
-            <div v-for="(item, index) in jobList"
-                 :key="index"
-                 v-show="item.roleId"
-                 style="margin-bottom: 10px">
-              <span class=" aaa">兼职{{ index + 1 }}:{{ item.roleName }}</span>
-              <div class="lastspan">
-                <span class="star bbb">关联船舶</span>
-                <div class="ontent"
-                     style="width: 800px;">
-                  <span v-for="(item, index) in item.asd"
-                        :key="item.vesselId + index"
-                        v-show="item.vesselId"
-                        class="ontent shipName">{{ item.vesselName }}</span>
-                  <span class="operaction shipSelectSet"
-                        @click="setUpShip(item)">设置</span>
-                </div>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="uphead">
-        <span class="imghead font">上传签名:</span>
-        <img :src="
-            ruleForm.electronicSignature === ''
-              ? url
-              : ruleForm.electronicSignature
-          "
-             class="img" />
-        <input type="file"
-               class="kyc-passin"
-               @change="uploadPhoto($event)" />
-        <span class="talk">支持上传jpg/png文件,大小不能超过1M</span>
-      </div>
-    </div>
-    <!-- 主要职务选择 -->
-    <el-dialog title="设置成员主职职务"
-               :visible.sync="mainJobSelection"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="checkBoxClass">
-        <span class="member">成员将属于以下职务</span>
-        <el-radio-group @change="handleCheckAllChanges"
-                        v-model="post"
-                        class="postBox">
-          <el-radio class="checkBoxCla"
-                    v-for="(item, key) in data1"
-                    :key="key"
-                    :label="item.roleId">{{ item.roleName }}</el-radio>
-        </el-radio-group>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="mainJobSelection = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="setMainJob">确 定</el-button>
-      </span>
-    </el-dialog>
-
-    <!--6.设置成员职务-->
-    <el-dialog title="设置兼职职务职务"
-               :visible.sync="setDuty"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1">
-          <div v-loading="roleLoading">
-            <div class="block">
-              <el-tree class="ship-tree"
-                       :props="props"
-                       node-key="id"
-                       :load="loadNode"
-                       lazy>
-                <template slot-scope="{ node, data }">
-                  <span v-if="node.level === 2">
-                    <el-checkbox-group v-model="data.check"
-                                       @change="val => radioGroupChange(data, val, node)">
-                      <el-checkbox class="zhiwuChecks"
-                                   v-for="item in data.roid"
-                                   :key="item.roleId"
-                                   :label="item">
-                        {{ item.roleName }}
-                      </el-checkbox>
-                    </el-checkbox-group>
-                  </span>
-                  <span v-else>{{ data.deptName }}</span>
-                </template>
-              </el-tree>
-            </div>
-          </div>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下职务</span>
-
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in jobList"
-                 :key="index">
-              {{ item.roleName }}
-              <span class="zhiwuDel"
-                    @click="delZhiWu(item)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="setDuty = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="setDutysave">确 定</el-button>
-      </span>
-    </el-dialog>
-    <!-- 7.关联船舶 -->
-    <el-dialog title="负责船舶"
-               :visible.sync="chargeShip"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1"
-             v-loading="loadingVessel">
-          <div class="search-box">
-            <el-input class="search-keyword"
-                      v-model.trim="searchKeyword"
-                      maxlength="50"
-                      placeholder="请输入船舶名称"
-                      clearable
-                      @clear="getClear"
-                      @keyup.enter.native="getList" />
-            <svg-icon icon-class="searchIcon"
-                      class="searchIcon"
-                      @click="getList" />
-          </div>
-          <el-checkbox :indeterminate="isIndeterminate"
-                       v-model="checkAll"
-                       @change="handleCheckAllChange">全选</el-checkbox>
-          <!--<el-checkbox :indeterminate="isIndeterminate" v-model="checkAntiFlag" @change="checkAnti">反选</el-checkbox>-->
-          <el-checkbox-group v-model="shipCheckList"
-                             @change="handleCheckedCitiesChange">
-            <el-checkbox class="zhiwuCheck"
-                         v-for="(item, index) in shipList"
-                         :label="item.vesselId"
-                         :key="item.vesselId + index">
-              {{ item.vesselName }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下船舶</span>
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in seleteShipList"
-                 :key="index">
-              {{ item.vesselName }}
-              <span class="zhiwuDel"
-                    @click="delShipSelect(item.vesselId)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="getNowList">取 消</el-button>
-        <el-button type="primary"
-                   @click="saveChargeShip">确 定</el-button>
-      </span>
-    </el-dialog>
-    <!-- 兼职船舶 -->
-    <el-dialog title="负责船舶"
-               :visible.sync="partTimeJobShip"
-               width="650px"
-               center
-               :close-on-click-modal="false">
-      <div class="adddepartment">
-        <div class="adddepartment1"
-             v-loading="loadingVessel">
-          <div class="search-box">
-            <el-input class="search-keyword"
-                      v-model.trim="searchKeyword"
-                      maxlength="50"
-                      placeholder="请输入船舶名称"
-                      clearable
-                      @clear="getClear"
-                      @keyup.enter.native="getList" />
-            <svg-icon icon-class="searchIcon"
-                      class="searchIcon"
-                      @click="getList" />
-          </div>
-          <el-checkbox :indeterminate="isIndeterminates"
-                       v-model="checkAll"
-                       @change="handleCheckAllChangess">全选</el-checkbox>
-          <!--<el-checkbox :indeterminate="isIndeterminate" v-model="checkAllAnti" @change="checkAnti">反选</el-checkbox>-->
-          <el-checkbox-group v-model="shipCheckLists"
-                             @change="handleCheckedCitiesChangess">
-            <el-checkbox class="zhiwuCheck"
-                         v-for="(item, index) in shipLists"
-                         :label="item.vesselId"
-                         :key="item.vesselId + index">
-              {{ item.vesselName }}
-            </el-checkbox>
-          </el-checkbox-group>
-        </div>
-        <div class="adddepartment2">
-          <span class="adddepartment4">成员将属于以下船舶</span>
-          <div class="primaryzw">
-            <div class="ciyaozhiwu"
-                 v-for="(item, index) in seleteShipLists"
-                 :key="index">
-              {{ item.vesselName }}
-              <span class="zhiwuDel"
-                    @click="delShipSelects(item.vesselId)">删除</span>
-            </div>
-          </div>
-        </div>
-      </div>
-      <span slot="footer"
-            class="dialog-footer">
-        <el-button @click="cancels">取 消</el-button>
-        <el-button type="primary"
-                   @click="determine">确 定</el-button>
-      </span>
-    </el-dialog>
-  </div>
-</template>
-<script>
-import { addadmin } from "../../api/organization/orgAddMan";
-import {
-  getOssInterimCredentials,
-  GotOssAccessConfig,
-  uploadShipFiles
-} from "../../api/upload";
-import { client } from "../../utils/alioss";
-
-import { validPassword } from "../../utils/validate";
-
-import shoreApi from "../../api/organization/shore";
-import {
-  staffInfo,
-  changeInfo,
-  companyVessels,
-  getDeptListByCompId
-} from "../../api/shoreBasedMembers";
-const validPasswordRule = function (rule, value, callback) {
-  if (value)
-    if (!validPassword(value)) {
-      callback(
-        // this.$message({
-        //   message: '密码为6到20位数字密码任意组合!',
-        //   type: 'error'
-        // })
-        new Error("密码为6到20位数字密码任意组合")
-      );
-      return;
-    } else {
-      callback();
-      return;
-    }
-  callback();
-
-  // if (!validPassword(value)) {
-  //   callback(new Error('密码为6到20位数字密码任意组合'));
-  // } else {
-  //   callback();
-  // }
-};
-
-export default {
-  name: "shoreMemberAdd",
-  data () {
-    const validcodeId = (rule, value, callback) => {
-      const reg = /[0-9a-zA-Z]$/;
-      if (!reg.test(value)) {
-        callback(
-          new Error("账号必须是由数字和字母组合")
-          // this.$message({
-          //   type: 'error',
-          //   message: '账号必须是由数字和字母组合',
-          //   showClose: true,
-          // })
-        );
-      } else {
-        callback();
-      }
-    };
-
-    const validcodeName = (rule, value, callback) => {
-      const reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
-      if (!reg.test(value)) {
-        callback(
-          new Error("密码必须是由6位数字和字母组合")
-          // this.$message({
-          //   type: 'error',
-          //   message: '密码必须是由6位数字和字母组合',
-          //   showClose: true,
-          // })
-        );
-      } else {
-        callback();
-      }
-    };
-    const validPasswordAgain = (rule, value, callback) => {
-      if (value === "") {
-        callback(
-          this.$message({
-            type: "error",
-            message: "带*号的为必填项",
-            showClose: true
-          })
-        );
-      } else if (
-        (value !== this.ruleForm.loginPassword && !this.id) ||
-        (value !== this.ruleForm.loginPasswordNew && this.id)
-      ) {
-        callback(
-          this.$message({
-            type: "error",
-            message: "两次密码不一致",
-            showClose: true
-          })
-        );
-      } else {
-        callback();
-      }
-    };
-    const validcodePhonee = (rule, value, callback) => {
-      const reg = /^1[34578]\d{9}$/;
-
-      if (!reg.test(value)) {
-        callback(
-          new Error("手机号格式填写错误")
-
-          // this.$message({
-          //     type: 'error',
-          //     message: '手机号格式填写错误',
-          //     showClose: true,
-          //   })
-        );
-      } else {
-        callback();
-      }
-    };
-    return {
-      aaabbb: [],
-      postList: [],
-      post: "",
-      mainJobSelection: false,
-      isIndeterminate: false,
-      isIndeterminates: false,
-      loadingVessel: false,
-      checkAll: false,
-      checkAntiFlag: false,
-      compId: sessionStorage.getItem("enterprise-front-companyId"),
-      searchKeyword: "", // 关联船舶 搜索关键词
-      datamsg: "",
-      title: "",
-      /* 页面传递来的数据 */
-      checklist: [
-        {
-          value: ""
-        }
-      ],
-      Department: "",
-      Departmentname: "",
-      /* 设置部门 */
-      checklist1: [
-        {
-          key: "",
-          value: ""
-        }
-      ],
-      Department1: "",
-      Departmentname1: "",
-      zwmsg: "",
-      // 船舶
-      checklist2: [],
-      /* 设置关联船舶 */
-      url:
-        "http://winsea-saas-test.oss-cn-shanghai.aliyuncs.com/default-logo.png",
-      setUpTheDepartment: false,
-      setDuty: false,
-      chargeShip: false,
-      partTimeJobShip: false,
-      loading: false,
-      ruleForm: {
-        deptId: "",
-        staffName: "",
-        staffAccount: "",
-        loginPassword: "",
-        loginPasswordAgain: "",
-        loginPasswordAgainNew: "",
-        loginPasswordNew: "",
-        staffMobilePhone: "",
-        electronicSignature: "",
-        majorRoleId: "",
-        roles: [
-          {
-            roleId: "",
-            major: "1"
-          }
-        ],
-        vessels: [],
-        roleVesselIds: []
-      },
-      rules: {
-        staffAccount: [
-          {
-            required: true,
-            // validator: validcodeId,
-            trigger: "blur",
-            message: "请输入账号"
-          }
-        ],
-        loginPassword: [
-          {
-            required: true,
-            validator: validcodeName,
-            trigger: "blur"
-          }
-        ],
-        loginPasswordAgain: [
-          {
-            required: true,
-            validator: validPasswordAgain,
-            trigger: "blur"
-          }
-        ],
-        loginPasswordNew: [
-          {
-            validator: validPasswordRule,
-            trigger: "blur"
-          }
-        ],
-        staffName: [
-          {
-            required: true,
-            trigger: "blur",
-            message: "请输入中文名"
-          }
-        ],
-        staffMobilePhone: [
-          {
-            required: true,
-            validator: validcodePhonee,
-            trigger: "blur"
-          }
-        ],
-        underCompId: [
-          {
-            required: true,
-            trigger: "change"
-          }
-        ]
-      },
-      data: [],
-      data5: [],
-      data6: [],
-      data1: [
-        {
-          id: "",
-          label: "",
-          disabled: true,
-          children: []
-        }
-      ],
-      shipList: [],
-      shipLists: [],
-      primaryzw: "1",
-      zhiwuCheckList: [],
-      zhiwuChec1kList: [],
-      zhiwu1: {},
-      zhiwu2: [],
-      zhiwu11: {},
-      shipCheckList: [],
-      shipCheckLists: [],
-      seleteShipList: [],
-      seleteShipLists: [],
-      companyList: [],
-      deptList: [],
-      inputType: "text",
-      isChrome: true,
-      roleLoading: false,
-      id: this.$route.query.id,
-      postId: "",
-      partTimeJobList: [],
-      partTimeDepartmentList: [],
-      checkedCities: [],
-      props: {
-        label: "name",
-        children: "children",
-        isLeaf: "leaf"
-      },
-      check: [],
-      aaaaaa: [],
-      gggg: []
-    };
-  },
-  computed: {
-    jobList () {
-      let res = [];
-      Object.keys(this.check).forEach((value, index) => {
-        this.check[value].forEach(ite => {
-          res.push(ite);
-        });
-      });
-      let _a = res.filter(v => v);
-      _a.forEach(v => {
-        if (v.asd === undefined) v.asd = [];
-      });
-      return _a;
-    }
-  },
-  created () {
-    this.baseInfo();
-  },
-  methods: {
-    async loadNode (node, resolve) {
-      if (node.level === 0) {
-        // 发起一级请求
-        return resolve(this.partTimeDepartmentList);
-      }
-      if (node.level === 1) {
-        // 发起二级请求
-        let uuid = node.data.deptId;
-        let response = await shoreApi.queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: uuid
-        });
-        this.partTimeJobList = response;
-        if (this.partTimeJobList !== null)
-          this.partTimeJobList = this.partTimeJobList.map(itemA => {
-            return {
-              ...itemA,
-              deptId: uuid
-            };
-          });
-        let _check = [];
-        for (let variable of this.partTimeJobList) {
-          let curr;
-          for (let variable2 of this.jobList) {
-            if (variable.roleId === variable2.roleId) curr = variable;
-          }
-          if (curr) {
-            _check.push(curr);
-            // break;
-          }
-        }
-        this.jobList.forEach(item => {
-          item.asd.forEach(itemA => {
-            _check.forEach(itemB => {
-              if (item.deptId === itemB.deptId)
-                if (itemB.asd === undefined) {
-                  itemB.asd = [];
-                } else {
-                  itemB.asd.push(itemA);
-                }
-            });
-          });
-        });
-
-        this.aaabbb[uuid] = _check;
-        return resolve([
-          {
-            id: node.data.deptId,
-            roid: this.partTimeJobList,
-            check: _check,
-            leaf: true
-          }
-        ]);
-      }
-      if (node.level > 1) {
-        return resolve([]);
-      }
-    },
-    radioGroupChange (data, val, node) {
-      this.$set(this.check, data.id, val);
-      this.aaabbb[data.id] = val;
-    },
-    //tree
-    remove (node, data) {
-      // const parent = node.parent;
-      // const children = parent.data.children || parent.data;
-      // const index = children.findIndex(d => d.id === data.id);
-      // children.splice(index, 1);
-    },
-    // 取消
-    cancels () {
-      this.partTimeJobShip = false;
-      // this.ruleForm.roleVesselIds = [];
-      // this.jobList.forEach(item => {
-      //   item.asd.forEach(ite => {
-      //     this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-      //   });
-      // });
-    },
-    // 确定
-    determine () {
-      this.partTimeJobShip = false;
-      this.ruleForm.roleVesselIds = [];
-      this.jobList.forEach(item => {
-        item.asd.forEach(ite => {
-          this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-        });
-      });
-    },
-    append (data) {
-      const newChild = { id: id++, label: "testtest", children: [] };
-      if (!data.children) {
-        this.$set(data, "children", []);
-      }
-      data.children.push(newChild);
-    },
-    getList () {
-      // 船舶
-      shoreApi
-        .getVessels({ searchKeyword: this.searchKeyword })
-        .then(response => {
-          this.shipList = response;
-          this.shipLists = response;
-          let _isIndeterminate = false;
-          this.shipList.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) _isIndeterminate = true;
-            });
-          });
-          this.shipLists.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) _isIndeterminate = true;
-            });
-          });
-          this.isIndeterminate = _isIndeterminate;
-          this.isIndeterminates = _isIndeterminate;
-
-          let _checkAll = false;
-          let selectMum = 0;
-          this.shipList.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) selectMum++;
-            });
-          });
-          this.shipLists.forEach(v => {
-            this.seleteShipList.forEach(v2 => {
-              if (v2.vesselId === v.vesselId) selectMum++;
-            });
-          });
-
-          if (this.shipList.length === selectMum) {
-            _checkAll = true;
-            this.isIndeterminate = false;
-          } else {
-            _checkAll = false;
-          }
-          if (this.shipLists.length === selectMum) {
-            _checkAll = true;
-            this.isIndeterminates = false;
-          } else {
-            _checkAll = false;
-          }
-          this.checkAll = _checkAll;
-        });
-    },
-    getClear () {
-      this.searchKeyword = null;
-      this.getList();
-    },
-    //反选
-    checkAnti (val) {
-      // console.log(val,'反选')
-      this.checkAll = !val;
-      // if(val){
-      //   this.checkAll = false;
-      // }
-      let citiesId = [];
-      let shipCheck = [];
-      this.shipList.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipCheck.push(item.vesselId);
-      });
-
-      if (this.shipCheckList.length === this.shipList.length) {
-        this.isIndeterminate = false;
-        this.shipCheckList = [];
-        this.seleteShipList = [];
-      } else if (this.shipCheckList.length === 0) {
-        this.isIndeterminate = false;
-        this.shipCheckList = shipCheck;
-        this.seleteShipList = citiesId;
-      }
-    },
-    // 关联船舶全选
-    handleCheckAllChange (val) {
-      if (val) {
-        this.checkAntiFlag = false;
-      }
-      // this.checkAntiFlag = !val;
-      // console.log(val,'正选')
-      let citiesId = [];
-      let shipCheck = [];
-      this.shipList.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipCheck.push(item.vesselId);
-      });
-      this.shipCheckList = val ? shipCheck : [];
-      this.seleteShipList = val ? citiesId : [];
-      this.isIndeterminate = false;
-    },
-    // 关联船舶单选
-    handleCheckedCitiesChange (value) {
-      // 差集
-      let t = [];
-      this.shipList.forEach(v1 => {
-        let b = Object.assign({}, v1);
-        value.forEach(v2 => {
-          if (v2 === v1.vesselId) b = null;
-        });
-        t.push(b);
-      });
-      //加
-      this.shipList.forEach(item => {
-        value.forEach(gitem => {
-          if (item.vesselId === gitem) {
-            let currIndex = this.seleteShipList.findIndex(
-              value => value.vesselId === gitem
-            );
-            if (currIndex === -1)
-              this.seleteShipList.push({
-                vesselId: item.vesselId,
-                vesselName: item.vesselName
-              });
-          }
-        });
-      });
-      // 删
-      let _t = t.filter(v => !!v);
-      let a = this.seleteShipList.filter(v => {
-        let r = true;
-        _t.forEach(v2 => {
-          if (v.vesselId === v2.vesselId) r = false;
-        });
-        return r;
-      });
-
-      this.seleteShipList = a;
-
-      let _isIndeterminate = false;
-      this.shipList.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          _isIndeterminate = true;
-        }
-      });
-      this.isIndeterminate = _isIndeterminate;
-
-      let _checkAll = false;
-      let selectMum = 0;
-      this.shipList.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          selectMum++;
-        }
-      });
-
-      if (this.shipList.length === selectMum) {
-        _checkAll = true;
-        this.isIndeterminate = false;
-      } else {
-        _checkAll = false;
-      }
-      this.checkAll = _checkAll;
-    },
-    // 关联船舶全选
-    handleCheckAllChangess (val) {
-      let citiesId = [];
-      let shipChecks = [];
-      this.shipLists.forEach(item => {
-        citiesId.push({ vesselId: item.vesselId, vesselName: item.vesselName });
-        shipChecks.push(item.vesselId);
-      });
-      this.shipCheckLists = val ? shipChecks : [];
-      this.seleteShipLists = val ? citiesId : [];
-      this.gggg.asd = val ? citiesId : [];
-      this.isIndeterminates = false;
-    },
-    // 关联船舶单选
-    handleCheckedCitiesChangess (value) {
-      // 差集
-      let t = [];
-      this.shipLists.forEach(v1 => {
-        let b = Object.assign({}, v1);
-        value.forEach(v2 => {
-          if (v2 === v1.vesselId) b = null;
-        });
-        t.push(b);
-      });
-      //加
-      this.shipLists.forEach(item => {
-        value.forEach(gitem => {
-          if (item.vesselId === gitem) {
-            let currIndex = this.seleteShipLists.findIndex(
-              value => value.vesselId === gitem
-            );
-            if (currIndex === -1)
-              this.seleteShipLists.push({
-                vesselId: item.vesselId,
-                vesselName: item.vesselName
-              });
-            this.gggg.asd = this.seleteShipLists;
-          }
-        });
-      });
-
-      // 删
-      let _t = t.filter(v => !!v);
-      let a = this.seleteShipLists.filter(v => {
-        let r = true;
-        _t.forEach(v2 => {
-          if (v.vesselId === v2.vesselId) r = false;
-        });
-        return r;
-      });
-
-      this.seleteShipLists = a;
-      this.gggg.asd = a;
-
-      let _isIndeterminates = false;
-      this.shipLists.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          _isIndeterminates = true;
-        }
-      });
-      this.isIndeterminates = _isIndeterminates;
-
-      let _checkAll = false;
-      let selectMum = 0;
-      this.shipLists.forEach(v => {
-        if (value.includes(v.vesselId)) {
-          selectMum++;
-        }
-      });
-
-      if (this.shipLists.length === selectMum) {
-        _checkAll = true;
-        this.isIndeterminates = false;
-      } else {
-        _checkAll = false;
-      }
-      this.checkAll = _checkAll;
-    },
-    // 选船操作
-    shipCheck (id) {
-      this.seleteShipList = [];
-      for (let i = 0; i < id.length; i++) {
-        this.seleteShipList.push({
-          vesselId: id[i],
-          vesselName: this.shipList.find(item => item.vesselId === id[i])
-            .vesselName
-        });
-      }
-    },
-    // 选船操作
-    shipChecks (id) {
-      this.seleteShipLists = [];
-      for (let i = 0; i < id.length; i++) {
-        this.seleteShipLists.push({
-          vesselId: id[i],
-          vesselName: this.shipLists.find(item => item.vesselId === id[i])
-            .vesselName
-        });
-      }
-    },
-
-    changeInputType () {
-      this.inputType = "password";
-    },
-    // 当前页面信息
-    getMemberInfo () {
-      this.loading = true;
-      staffInfo({ staffId: this.id }).then(response => {
-        this.ruleForm = response;
-        this.zhiwu1.roleId = this.ruleForm.majorRoleId;
-        if (this.ruleForm.underCompId) {
-          this.changeDept(this.ruleForm.underCompId);
-        }
-
-        if (this.ruleForm.deptId) {
-          shoreApi
-            .queryRoleSelectData({
-              vesselBankFlag: "B",
-              underCompId: this.ruleForm.underCompId,
-              deptId: this.ruleForm.deptId
-            })
-            .then(response => {
-              this.data6 = response.map(item => {
-                return {
-                  ...item,
-                  state: false
-                };
-              });
-              this.data1 = this.data6;
-              this.roleLoading = false;
-            });
-        }
-
-        if (!this.ruleForm.electronicSignature) {
-          this.ruleForm.electronicSignature = this.url;
-        }
-        // TODO: 此处存在疑问点?
-        this.zhiwu1.roleName = response.majorRole
-          ? response.majorRole.roleName
-          : "";
-        this.post = response.majorRole ? response.majorRole.roleId : "";
-        if (response.majorRole && response.majorRole.vessels)
-          response.majorRole.vessels.forEach(item => {
-            this.seleteShipList.push(item);
-            this.aaaaaa.push(item.vesselId);
-          });
-        response.roles.forEach(item => {
-          this.$set(this.check, `${item.deptId}_${item.roleId}`, [item]);
-          this.$set(this.aaabbb, `${item.deptId}_${item.roleId}`, [item]);
-          if (item.vessels !== null)
-            item.vessels.forEach(itemD => {
-              Object.keys(this.check).forEach((value, index) => {
-                if (value === `${item.deptId}_${item.roleId}`) {
-                  this.check[value].forEach(ite => {
-                    if (ite.asd === undefined) {
-                      ite.asd = [];
-                    }
-                    ite.asd.push(itemD);
-                  });
-                }
-              });
-            });
-        });
-
-        response.roles.forEach(item => {
-          if (item.vessels !== null) {
-            item.vessels = item.vessels.map(ite => {
-              return {
-                ...ite,
-                roleId: item.roleId
-              };
-            });
-          }
-        });
-        this.ruleForm.roleVesselIds = [];
-        response.roles.forEach(item => {
-          if (item.vessels !== null)
-            item.vessels.forEach(itemA => {
-              this.ruleForm.roleVesselIds.push(
-                itemA.roleId + "_" + itemA.vesselId
-              );
-              // this.jobList.forEach(ite => {
-              //   if (ite.roleId === item.roleId) {
-              //     ite.asd.push(itemA);
-              //   }
-              // });
-            });
-        });
-
-        // TODO: 此处存在
-        this.ruleForm.vessels = response.majorRole
-          ? response.majorRole.vessels
-          : "";
-
-        // let vessels = response.vessels.filter(function(v) {
-        //   return v;
-        // });
-        // this.shipCheckList = [];
-        // this.seleteShipList = vessels.filter(v => {
-        //   let t = false;
-        //   this.shipList.forEach(v2 => {
-        //     if (v2.vesselId === v.vesselId) {
-        //       t = true;
-        //       this.shipCheckList.push(v.vesselId);
-        //     }
-        //   });
-        //   return t;
-        // });
-
-        let checkedCount = this.shipCheckList.length;
-        this.checkAll = checkedCount === this.shipList.length;
-        this.isIndeterminate =
-          checkedCount > 0 && checkedCount < this.shipList.length;
-
-        // if (response.roles.length > 0) {
-        //   this.zhiwu1 = response.roles[0];
-        //   response.roles.find(item => {
-        //     if (item.major === "1") {
-        //       this.zhiwu1 = {
-        //         roleId: item.roleId,
-        //         roleName: item.roleName,
-        //         major: "1"
-        //       };
-        //     }
-        //     this.zhiwuCheckList.push(item.roleId);
-        //   });
-        //   this.zhiwu2 = response.roles.filter(item => {
-        //     return item.major !== "1";
-        //   });
-        // }
-
-        this.loading = false;
-      });
-    },
-    // 上传签名
-    uploadPhoto (e) {
-      const fileTypes = [".jpg", ".png"];
-      const filePath = e.target.value;
-      if (filePath) {
-        let isNext = false;
-        const fileEnd = filePath.substring(filePath.indexOf("."));
-        for (let i = 0; i < fileTypes.length; i++) {
-          if (fileTypes[i] === fileEnd) {
-            isNext = true;
-            break;
-          }
-        }
-        if (!isNext) {
-          this.$message({
-            message: "不接受此类型文件",
-            type: "error",
-            showClose: true
-          });
-          e.target.value = "";
-          return false;
-        }
-      } else {
-        return false;
-      }
-      const file = e.target.files[0];
-      uploadShipFiles(file, {
-        companyId: this.compId || "",
-        modelId: ""
-      }).then(response => {
-        this.ruleForm.electronicSignature =
-          this.$store.getters.baseInfo.fileUrl + response.appendixPath;
-        this.$message({
-          type: "success",
-          message: "上传签名成功!",
-          showClose: true
-        });
-      });
-    },
-    cancel () {
-      this.$router.go(-1);
-    },
-    // 数据转换
-    getSelectLabel () {
-      this.ruleForm.majorRoleId = this.zhiwu1.roleId;
-
-      // 公司
-      this.ruleForm.underCompName = this.companyList.find(
-        item => item.compId === this.ruleForm.underCompId
-      ).compName;
-
-      // 部门
-      this.ruleForm.deptName = this.deptList.find(
-        item => item.deptId === this.ruleForm.deptId
-      ).deptName;
-
-      if (this.ruleForm.loginPasswordNew) {
-        this.ruleForm.loginPassword = this.ruleForm.loginPasswordNew;
-      }
-    },
-    // 编辑
-    editSave () {
-      this.ruleForm.staffId = this.id;
-      changeInfo(this.ruleForm)
-        .then(() => {
-          // this.cancel();
-          this.$message({
-            message: "保存成功",
-            type: "success",
-            showClose: true
-          });
-          // this.getMemberInfo();
-          this.$router.go(-1);
-          this.loading = false;
-        })
-        .catch(code => {
-          this.loading = false;
-          if (code === "MANAGEMENT_002") {
-            this.$message({
-              type: "error",
-              message: "手机号冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_001") {
-            this.$message({
-              type: "error",
-              message: "用户名冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_003") {
-            this.$message({
-              type: "error",
-              message: "邮箱冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_010") {
-            this.$message({
-              type: "error",
-              message: "成员名称重复!",
-              showClose: true
-            });
-            return false;
-          }
-        });
-    },
-    // 保存
-    addSave (flag) {
-      addadmin(this.ruleForm)
-        .then(() => {
-          // this.cancel();
-          this.$message({
-            message: "保存成功",
-            type: "success",
-            showClose: true
-          });
-
-          if (flag) {
-            this.$router.go(-1);
-          } else {
-            this.clearZhiwu();
-            this.checklist = [
-              {
-                value: ""
-              }
-            ];
-            this.checklist1 = [
-              {
-                value: ""
-              }
-            ];
-            this.seleteShipList = [];
-            this.ruleForm.staffName = "";
-            this.ruleForm.deptId = "";
-            this.url =
-              "http://winsea-saas-test.oss-cn-shanghai.aliyuncs.com/default-logo.png";
-
-            this.$nextTick(() => {
-              this.$refs.ruleForm.clearValidate();
-              this.$refs.ruleForm.resetFields();
-            });
-          }
-          this.loading = false;
-        })
-        .catch(code => {
-          this.loading = false;
-          if (code === "MANAGEMENT_002") {
-            this.$message({
-              type: "error",
-              message: "手机号冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_001") {
-            this.$message({
-              type: "error",
-              message: "用户名冲突!",
-              showClose: true
-            });
-            return false;
-          }
-          if (code === "MANAGEMENT_003") {
-            this.$message({
-              type: "error",
-              message: "邮箱冲突!",
-              showClose: true
-            });
-            return false;
-          }
-        });
-    },
-    // 保存
-    save (formName, flag) {
-      this.$refs[formName].validate(valid => {
-        if (valid) {
-          debugger
-          if (this.ruleForm.roles.length !== 0)
-            if (this.ruleForm.roles[0].roleId === "" || this.zhiwu1.roleName === null) {
-              this.$message({
-                type: "warning",
-                message: "请先设置职务!",
-                showClose: true
-              });
-              return false;
-            } 
-            // else if (this.ruleForm.vessels.length === 0) {
-            //   this.$message({
-            //     type: "warning",
-            //     message: "请先设置关联船舶!",
-            //     showClose: true
-            //   });
-            //   return false;
-            //  }
-          this.loading = true;
-          this.getSelectLabel();
-          if (this.id) {
-            this.editSave();
-          } else {
-            this.addSave(flag);
-          }
-          this.isIndeterminate = false;
-        } else {
-          this.$message({
-            message: "带*号的为必填项",
-            type: "error",
-            showClose: true
-          });
-          return false;
-        }
-      });
-    },
-    // 设置职务
-    setwork () {
-      if (this.ruleForm.deptId) {
-        this.mainJobSelection = true;
-      } else {
-        this.$message({
-          message: "请先选择部门!",
-          type: "warning",
-          showClose: true
-        });
-      }
-    },
-    // 设置船
-    setChargeShip () {
-      // console.info(this.seleteShipList, this.aaaaaa);
-      this.chargeShip = true;
-      this.shipCheckList = this.seleteShipList.map(item => item.vesselId);
-      // this.shipCheckList = this.aaaaaa;
-      this.isIndeterminate = true;
-    },
-    setUpShip (data) {
-      this.gggg = data;
-      if (this.gggg.asd.length !== 0) {
-        let _aaa = [];
-        this.gggg.asd.forEach(item => {
-          _aaa.push(item.vesselId);
-        });
-        this.shipCheckLists = _aaa;
-        this.isIndeterminates = true;
-      } else {
-        this.shipCheckLists = this.gggg.asd;
-        this.isIndeterminates = false;
-      }
-      this.seleteShipLists = this.gggg.asd;
-      this.partTimeJobShip = true;
-    },
-    // 兼职设置
-    partTimeSetting () {
-      if (this.ruleForm.deptId) {
-        this.setDuty = true;
-      } else {
-        this.$message({
-          message: "请先选择部门!",
-          type: "warning",
-          showClose: true
-        });
-      }
-    },
-    // 基础数据
-    async baseInfo () {
-      // 公司
-      shoreApi.compAndChildrenInfo().then(res => {
-        res[0].children.unshift({
-          compId: res[0].compId,
-          compName: res[0].compName
-        });
-        this.companyList = res[0].children;
-      });
-
-      // 船舶
-      this.loadingVessel = true;
-      let res = await shoreApi.getVessels();
-      this.loadingVessel = false;
-      this.shipList = res;
-      this.shipLists = res;
-      if (this.id) {
-        this.getMemberInfo();
-        this.title = "编辑成员";
-      } else {
-        this.title = "添加成员";
-      }
-
-      // 职员
-      this.roleLoading = true;
-      shoreApi.queryRoleSelectData({ vesselBankFlag: "B" }).then(response => {
-        this.roleLoading = false;
-        this.data5 = response.map(item => {
-          return {
-            ...item,
-            state: false
-          };
-        });
-      });
-    },
-    changeRole (id) {
-      this.roleLoading = true;
-      shoreApi
-        .queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: id
-        })
-        .then(response => {
-          this.data6 = response.map(item => {
-            return {
-              ...item,
-              state: false
-            };
-          });
-          this.data1 = this.data6;
-
-          if (!this.data1.find(item => item.roleId === this.zhiwu1.roleId)) {
-            this.zhiwu1.roleName = null;
-          }
-
-          this.data1.forEach(item => {
-            this.zhiwu2.forEach((gitem, gindex) => {
-              if (gitem.roleId == item.roleId) {
-                this.zhiwu2.splice(gindex, 1);
-              }
-
-              this.zhiwuCheckList.forEach((citem, cindex) => {
-                if (gitem.roleId == citem) {
-                  this.zhiwuCheckList.splice(cindex, 1);
-                }
-              });
-            });
-          });
-
-          // this.zhiwuCheckList.push(item.roleId);
-
-          // if(this.zhiwu2.find(item => item.roleId === this.zhiwu1.roleId)){
-          //   this.zhiwu2 = [];
-          // }
-          this.roleLoading = false;
-        });
-    },
-    changeDept (id) {
-      // 部门
-      getDeptListByCompId({ vesselBankFlag: "B", underCompId: id }).then(
-        response => {
-          this.postId = id;
-          this.deptList = response;
-          this.partTimeDepartmentList = response;
-        }
-      );
-    },
-    adddepartmentDel () {
-      this.resetChecked();
-      this.checklist = [
-        {
-          key: "",
-          value: ""
-        }
-      ];
-    },
-    /* 删除 */
-    resetChecked (key, value) {
-      this.$refs.tree.setCheckedKeys([key]);
-      this.checklist.push({
-        key,
-        value
-      });
-    },
-    // /* 清空 */
-    // check(data) {
-    //   this.checklist = [];
-    //   const key = data.id;
-    //   const value = data.label;
-    //   this.resetChecked(key, value);
-    // },
-    departmentsave () {
-      this.setUpTheDepartment = false;
-      this.ruleForm.deptId = this.checklist[0].key;
-    },
-    // 主要职务单选
-    handleCheckAllChanges (value) {
-      // this.zhiwu1 = {
-      //   roleName: this.data1.find(item => item.roleId === value).roleName
-      // };
-      this.zhiwu1 = {
-        roleId: value,
-        roleName: this.data1.find(item => item.roleId === value).roleName
-      };
-    },
-    /* 保存 */
-    // 设置主要职务
-    setMainJob () {
-      this.setDuty = false;
-      this.zhiwu11 = this.zhiwu1;
-      const zhiwuAll = [];
-      zhiwuAll.push(this.zhiwu1);
-      this.ruleForm.roles = zhiwuAll.concat(this.zhiwu2);
-      this.mainJobSelection = false;
-    },
-
-    /* 设置职务 */
-    setDutysave () {
-      // if (this.zhiwu1.roleId) {
-      this.setDuty = false;
-      this.ruleForm.roleVesselIds = [];
-      this.jobList.forEach(item => {
-        item.asd.forEach(ite => {
-          this.ruleForm.roleVesselIds.push(item.roleId + "_" + ite.vesselId);
-        });
-      });
-      // this.zhiwu11 = this.zhiwu1;
-      // const zhiwuAll = [];
-      // zhiwuAll.push(this.zhiwu1);
-      // this.ruleForm.roles = zhiwuAll.concat(this.zhiwu2);
-      // } else {
-      //   this.$message({
-      //     type: "error",
-      //     message: "请选择主要职务",
-      //     showClose: true
-      //   });
-      // }
-    },
-    getNowList () {
-      this.chargeShip = false;
-      this.searchKeyword = null;
-      this.getList();
-    },
-    saveChargeShip () {
-      this.getNowList();
-      this.ruleForm.vessels = this.seleteShipList;
-    },
-    zhiwu2Check (data) {
-      this.zhiwu2 = [];
-      for (let i = 0; i < data.length; i++) {
-        this.zhiwu2.push({
-          roleId: data[i],
-          roleName: this.partTimeJobList.find(item => item.roleId === data[i])
-            .roleName,
-          major: "0"
-        });
-      }
-    },
-    // 职务操作
-
-    zhiwuCheck (id) {
-      // if (this.primaryzw == "1") {
-      //   this.zhiwuCheckList = [];
-      //   this.zhiwuCheckList.push(data[data.length - 1]);
-      //   this.zhiwu1 = {
-      //     roleId: data[data.length - 1],
-      //     roleName: this.data1.find(
-      //       item => item.roleId === data[data.length - 1]
-      //     ).roleName,
-      //     major: "1"
-      //   };
-      // } else {
-      // this.zhiwu2 = [];
-      // for (let i = 0; i < data.length; i++) {
-      //   this.zhiwu2.push({
-      //     roleId: data[i],
-      //     roleName: this.data5.find(item => item.roleId === data[i]).roleName,
-      //     major: "0"
-      //   });
-      // }
-      // }
-
-      this.roleLoading = true;
-      shoreApi
-        .queryRoleSelectData({
-          vesselBankFlag: "B",
-          underCompId: this.ruleForm.underCompId,
-          deptId: id.join(",")
-        })
-        .then(response => {
-          this.partTimeJobList = response;
-          // this.data6 = response.map(item => {
-          //   return {
-          //     ...item,
-          //     state: false
-          //   };
-          // });
-          // this.data1 = this.data6;
-          this.roleLoading = false;
-        });
-    },
-    zhiwuRadio1 (data) {
-      this.data1 = this.data6;
-      for (let i = 0; i < this.data1.length; i++) {
-        this.data1[i].state = false;
-      }
-      for (let i = 0; i < this.zhiwu2.length; i++) {
-        for (let j = 0; j < this.data1.length; j++) {
-          if (this.zhiwu2[i].roleId == this.data1[j].roleId) {
-            this.data1[j].state = true;
-          }
-        }
-      }
-      this.zhiwuCheckList = [];
-      this.zhiwuCheckList.push(data);
-    },
-    zhiwuRadio2 (data) {
-      this.data1 = this.data5;
-      for (let i = 0; i < this.data1.length; i++) {
-        this.data1[i].state = false;
-      }
-      for (let i = 0; i < this.data1.length; i++) {
-        if (this.zhiwu1.roleId == this.data1[i].roleId) {
-          this.data1[i].state = true;
-        }
-      }
-      this.zhiwuCheckList = [];
-      if (data.length > 0) {
-        for (let i = 0; i < data.length; i++) {
-          this.zhiwuCheckList.push(data[i].roleId);
-        }
-      }
-    },
-    delZhiWu (data) {
-      for (
-        let i = 0;
-        i < this.aaabbb[`${data.deptId}_${data.roleId}`].length;
-        i++
-      ) {
-        if (
-          this.aaabbb[`${data.deptId}_${data.roleId}`][i].roleId == data.roleId
-        ) {
-          this.aaabbb[`${data.deptId}_${data.roleId}`].splice(i, 1);
-        }
-      }
-
-      for (let i = 0; i < this.jobList.length; i++) {
-        if (data.roleId === this.jobList[i].roleId) {
-          this.jobList.splice(i, 1);
-          this.$forceUpdate();
-        }
-      }
-      // for (let i = 0; i < this.data1.length; i++) {
-      //   if (data.roleId == this.data1[i].roleId) {
-      //     this.data1[i].state = false;
-      //   }
-      // }
-    },
-    // 弹出框确认关闭
-    handleClose (done) {
-      this.clearZhiwu();
-      done();
-    },
-    clearZhiwu () {
-      this.zhiwu11 = [];
-      this.zhiwu1 = {};
-      this.zhiwu2 = [];
-      this.zhiwuCheckList = [];
-      this.primaryzw = "1";
-      this.shipCheckList = [];
-      this.seleteShipList = [];
-    },
-
-    delShipSelect (data) {
-      const num = this.shipCheckList.indexOf(data);
-      this.shipCheckList.splice(num, 1);
-      for (let i = 0; i < this.seleteShipList.length; i++) {
-        if (this.seleteShipList[i].vesselId == data) {
-          this.seleteShipList.splice(i, 1);
-        }
-      }
-      if (this.seleteShipList.length === 0) {
-        this.isIndeterminate = false;
-      } else {
-        this.isIndeterminate = true;
-      }
-    },
-    delShipSelects (data) {
-      const num = this.shipCheckLists.indexOf(data);
-      this.shipCheckLists.splice(num, 1);
-
-      for (let i = 0; i < this.seleteShipLists.length; i++) {
-        if (this.seleteShipLists[i].vesselId == data) {
-          this.seleteShipLists.splice(i, 1);
-        }
-      }
-      this.gggg.asd = this.seleteShipLists;
-      if (this.seleteShipLists.length === 0) {
-        this.isIndeterminate = false;
-      } else {
-        this.isIndeterminate = true;
-      }
-    }
-  }
-};
-</script>
-<style scoped lang="scss">
-.dept-comp {
-  /deep/ .el-select:nth-child(1) {
-    margin-right: 10px;
-  }
-  /deep/ .el-input__inner,
-  .el-select {
-    width: 203px !important;
-  }
-}
-
-.serviceType {
-  /deep/ .el-form-item__label {
-    padding-right: 25px;
-  }
-  .el-form-item__content {
-    position: relative;
-  }
-  .tips {
-    font-size: 20px;
-    color: #999;
-    position: absolute;
-    left: -25px;
-    cursor: pointer;
-    z-index: 99;
-    &:hover {
-      p {
-        display: block;
-      }
-    }
-    p {
-      display: none;
-      box-shadow: 0 1px 8px rgba(137, 142, 146, 0.34);
-      font-size: 12px;
-      line-height: 16px;
-      background: #fff;
-      color: #333;
-      padding: 3px;
-      margin: 0;
-      margin-top: -4px;
-      border-radius: 5px;
-      height: 40px;
-    }
-  }
-}
-
-.border {
-  width: 960px;
-  height: 100%;
-  border-left: 1px solid #cccccc;
-}
-.organization-box {
-  height: calc(86vh - 10px);
-  overflow-y: auto;
-  border: none;
-}
-.uphead {
-  margin: 20px 0;
-  height: 60px;
-  line-height: 60px;
-}
-.img {
-  display: inline-block;
-  height: 60px;
-  width: 60px;
-  border-radius: 10px;
-  vertical-align: sub;
-}
-.kyc-passin {
-  margin-left: 20px;
-  width: 170px;
-}
-.talk {
-  font-size: 12px;
-  color: #999999;
-}
-/deep/.el-dialog__body {
-  padding: 0;
-}
-/deep/ .el-dialog--center .el-dialog__body {
-  padding: 0;
-}
-.adddepartment {
-  height: 400px;
-  display: flex;
-  justify-content: space-between;
-}
-.adddepartment1 {
-  padding: 20px;
-  width: 50%;
-  overflow-y: auto;
-  .el-checkbox-group {
-    padding-left: 15px;
-  }
-  .search-box {
-    margin-bottom: 10px;
-    .search-keyword {
-      margin-right: 30px;
-    }
-  }
-}
-.adddepartment2 {
-  padding: 20px;
-  width: 50%;
-  background-color: #eeeeee;
-}
-/deep/.el-tree-node__content {
-  height: 40px;
-}
-.adddepartment3 {
-  height: 36px;
-  line-height: 36px;
-  background-color: #ffffff;
-  position: relative;
-  margin-bottom: 5px;
-}
-.adddepartment4 {
-  display: inline-block;
-  margin-bottom: 20px;
-}
-.adddepartmentLeft {
-  width: 195px;
-  display: inline-block;
-  position: absolute;
-  left: 10px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.shipName {
-  padding: 4px 8px;
-  background-color: #dde9fc;
-  margin-right: 10px;
-  margin-bottom: 10px;
-}
-.ddv1 {
-  //width: 730px;
-  vertical-align: top;
-  margin-top: 2px;
-}
-.ddv1 > span {
-  float: left;
-}
-.adddepartmentDel {
-  display: inline-block;
-  position: absolute;
-  right: 20px;
-  color: #1d6ced;
-  cursor: pointer;
-}
-/deep/.el-form-item .el-input__inner {
-  width: 420px;
-}
-.main-list {
-  height: calc(42vh);
-}
-.primaryzw {
-  width: 100%;
-  margin-bottom: 30px;
-}
-.zhiwuCheck {
-  display: block;
-  margin-top: 10px;
-}
-.zhiwuChecks {
-  display: block;
-  margin-left: -30px;
-}
-.zhuyaozhiwu {
-  margin-top: 10px;
-  background-color: #ffffff;
-  padding: 3px 8px;
-  // display: inline-block;
-}
-.ciyaozhiwu {
-  background-color: #ffffff;
-  padding: 5px 10px;
-  // display: inline-block;
-  margin-top: 10px;
-}
-.zhiwuradio {
-  margin-top: 5px;
-  margin-right: 10px;
-}
-.zhiwuDel {
-  margin-inline-start: 10px;
-  color: #1d6ced;
-  cursor: pointer;
-  float: right;
-}
-.lastspan {
-  display: flex;
-}
-.ddv1 {
-  flex: 1;
-}
-.inputPsd {
-  -webkit-text-security: disc;
-}
-/deep/ .el-form-item__error {
-  display: block;
-}
-.dept-comp {
-  /deep/ .el-form-item__error {
-    display: none;
-  }
-  /deep/ .el-form-item__content {
-    /deep/ .el-input {
-      width: 202px;
-    }
-  }
-}
-
-/deep/ .el-form-item__content {
-  /deep/ .el-input {
-    width: 420px;
-  }
-}
-.member {
-  display: inline-block;
-  margin: 10px 0 0 10px;
-}
-.checkBoxClass {
-  // float: left;
-  width: 650px;
-  height: 100%;
-}
-.checkBoxCla {
-  width: 25%;
-  margin: 10px 0 10px 20px;
-}
-.boxClass {
-  margin-left: 10px;
-}
-.aaa {
-  display: inline-block;
-  padding-right: 12px;
-  font-size: 14px;
-  color: #666666;
-  margin-bottom: 15px;
-}
-.bbb {
-  display: inline-block;
-  padding-right: 12px;
-  font-size: 14px;
-  color: #666666;
-}
-.postBox {
-  width: 100%;
-}
-.ship-tree {
-  /deep/.el-tree-node__content {
-    height: auto;
-  }
-  /deep/.el-radio-group {
-    display: flex;
-    flex-direction: column;
-    text-align: left;
-    & > .el-radio {
-      margin: 2px;
-    }
-  }
-}
-</style>