jinlin
2024-01-12 f491d30b0a69148bd0991b3d5b1c4cf9f8216949
web/src/views/modules/sys/user-add-or-update.vue
@@ -6,9 +6,22 @@
          <template slot="title">
            <el-tag>{{ $t('user.title') }}</el-tag>
          </template>
          <el-form-item prop="avatar" :label="$t('user.avatar')">
            <zt-uploader v-model="dataForm.avatar" crop :size="60"/>
          </el-form-item>
          <zt-form-item prop="username" label="用户头像">
            <config-uploader :lineHeight="true" busi-type="users_avatar" model-name="dataForm" :dataForm="dataForm"
                             @getImageUrl="getImageUrl"
                             v-model="dataForm.files"/>
            <div v-if="dataForm.url">
              <el-image :src="dataForm.url"></el-image>
            </div>
          </zt-form-item>
          <zt-form-item prop="realName" label="用户签名">
            <config-uploader :lineHeight="true" :busiTypeVarName="busiTypeVarName" busi-type="users_sign" model-name="dataForm" :dataForm="dataForm"
                             @getImageUrl="getImageUrl"
                             v-model="dataForm.files2"/>
            <div v-if="dataForm.url2">
              <el-image :src="dataForm.url2"></el-image>
            </div>
          </zt-form-item>
          <zt-form-item prop="username" :label="$t('user.username')" rules="required">
            <el-input v-model="dataForm.username" :placeholder="$t('user.username')"></el-input>
          </zt-form-item>
@@ -17,6 +30,9 @@
          </zt-form-item>
          <zt-form-item prop="nickName" :label="$t('user.nickName')">
            <el-input v-model="dataForm.nickName" :placeholder="$t('user.nickName')"></el-input>
          </zt-form-item>
          <zt-form-item prop="secretClass" :label="$t('user.secretClass')" rules="required">
            <zt-dict v-model="dataForm.secretClass" dict="secret_class" :placeholder="$t('user.secretClass') "></zt-dict>
          </zt-form-item>
          <zt-form-item prop="simpleSpelling" :label="$t('user.simpleSpelling')">
            <el-input v-model="dataForm.simpleSpelling" :placeholder="$t('user.simpleSpelling')"></el-input>
@@ -55,13 +71,14 @@
            <zt-combo-tree v-model="dataForm.jobIdList" :datas="jobList" multiple :check-strictly="true"/>
          </zt-form-item>
          <zt-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
            <zt-select v-model="dataForm.postIdList" :datas="postList" multiple :placeholder="$t('user.setPost')"></zt-select>
            <zt-select v-model="dataForm.postIdList" :datas="postList" multiple
                       :placeholder="$t('user.setPost')"></zt-select>
          </zt-form-item>
          <zt-form-item prop="teamgroupIds" label="所属专业" class="role-list">
            <team-group-selector v-model="dataForm.teamgroupIds" multiple="multiple" leafOnly placeholder="所属专业"/>
          </zt-form-item>
          <zt-form-item prop="shipIds" v-if="false" label="负责舰" class="role-list">
            <local-ship-selector v-model="dataForm.shipIds"  multiple="multiple" placeholder="负责舰"/>
            <local-ship-selector v-model="dataForm.shipIds" multiple="multiple" placeholder="负责舰"/>
          </zt-form-item>
          <el-form-item prop="sort" v-if="false" :label="$t('dept.sort')">
            <el-input-number v-model="dataForm.sort" controls-position="right" :min="0"
@@ -78,6 +95,7 @@
  export default {
    data() {
      return {
        busiTypeVarName: 'files2',
        activeNames: ['1', '2'],
        postList: [],
        jobList: [],
@@ -89,6 +107,7 @@
          deptName: '',
          realName: '',
          nickName: '',
          secretClass:'',
          headUrl: '',
          simpleSpelling: '',
          fullSpelling: '',
@@ -99,14 +118,17 @@
          wechat: '',
          sort: 1,
          status: 1,
          register:0,
          teamgroupIds:'',
          register: 0,
          teamgroupIds: '',
          shipIds: '',
          url: '',
          url2: '',
          files: [],
          files2: []
        }
      }
    },
    computed: {
    },
    computed: {},
    methods: {
      init() {
        this.getDeptList()
@@ -140,6 +162,8 @@
            ...this.dataForm,
            ...res.data
          }
          this.getImageUrl()
          console.log(this.dataForm, "getInfo this.dataForm ")
        }
      },
      onDeptSelect(data, isChange) {
@@ -155,10 +179,36 @@
          this.dataForm.postIdList = []
        }
      },
      getImageUrl() {
        console.log(this.dataForm, 'this.dataForm')
        let pictureId = this.getFirstImageId(this.dataForm.files)
        console.log(pictureId, 'getImageUrl() pictureId')
        this.dataForm.url = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${pictureId}`
        let pictureId2 = this.getFirstImageId(this.dataForm.files2)
        console.log(pictureId2, 'getImageUrl() pictureId')
        this.dataForm.url2 = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${pictureId2}`
      },
      getFirstImageId(oss) {
        console.log(oss, ' getFirstImageId(oss)')
        let fileId = 0
        if (oss != null) {
          if (oss.groups.length > 0) {
            let group = oss.groups[0]
            if (group.fields.length > 0) {
              let field = group.fields[0]
              if (field.files.length > 0) {
                let file = field.files[0]
                fileId = file.id
              }
            }
          }
        }
        return fileId
      },
      // 表单提交
      async formSubmit() {
        this.dataForm.companyId = this.companyId
        console.log(this.dataForm,'this.dataForm')
        console.log(this.dataForm, 'this.dataForm')
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/userEx', this.dataForm)
        if (res.success) {
          await this.$tip.success()
@@ -170,39 +220,40 @@
  }
</script>
// <style lang="scss">
//   .mod-sys__user {
//     .role-list {
//       .el-select {
//         width: 100%;
//       }
//     }
//   }
//
<style lang="scss">
  //   .mod-sys__user {
  //     .role-list {
  //       .el-select {
  //         width: 100%;
  //       }
  //     }
  //   }
//   .avatar-uploader .el-upload {
//     border: 1px dashed #d9d9d9;
//     border-radius: 6px;
//     cursor: pointer;
//     position: relative;
//     overflow: hidden;
//   }
  //   .avatar-uploader .el-upload {
  //     border: 1px dashed #d9d9d9;
  //     border-radius: 6px;
  //     cursor: pointer;
  //     position: relative;
  //     overflow: hidden;
  //   }
//   .avatar-uploader .el-upload:hover {
//     border-color: #409EFF;
//   }
  //   .avatar-uploader .el-upload:hover {
  //     border-color: #409EFF;
  //   }
//   .avatar-uploader-icon {
//     font-size: 2.8px;
//     color: #8c939d;
//     width: 27.8px;
//     height: 27.8px;
//     line-height: 27.8px;
//     text-align: center;
//   }
  //   .avatar-uploader-icon {
  //     font-size: 2.8px;
  //     color: #8c939d;
  //     width: 27.8px;
  //     height: 27.8px;
  //     line-height: 27.8px;
  //     text-align: center;
  //   }
//   .avatar {
//     width: 27.8px;
//     height: 27.8px;
//     display: block;
//   }
// </style>
  //   .avatar {
  //     width: 27.8px;
  //     height: 27.8px;
  //     display: block;
  //   }
  // </style>