chenc 3 lat temu
rodzic
commit
d2a464b699

+ 40 - 3
src/components/tools/DepartSelect.vue

@@ -11,7 +11,7 @@
     </template>
 
     <a-form>
-      <a-form-item
+      <!-- <a-form-item
         :labelCol="{span:4}"
         :wrapperCol="{span:20}"
         style="margin-bottom:10px"
@@ -31,6 +31,27 @@
             {{ d.departName }}
           </a-select-option>
         </a-select>
+      </a-form-item> -->
+      <a-form-item
+        :labelCol="{span:4}"
+        :wrapperCol="{span:20}"
+        style="margin-bottom:10px"
+        :validate-status="validate_status">
+        <a-tooltip placement="topLeft" >
+          <template slot="title">
+            <span>您隶属于多公司,请选择当前所在公司</span>
+          </template>
+          <a-avatar style="backgroundColor:#87d068" icon="gold" />
+        </a-tooltip>
+        <a-select v-model="departSelected" :class="{'valid-error':validate_status=='error'}" placeholder="请选择登录公司" style="margin-left:10px;width: 80%">
+          <a-icon slot="suffixIcon" type="gold" />
+          <a-select-option
+            v-for="d in departList"
+            :key="d.id"
+            :value="d.id">
+            {{ d.departName }}
+          </a-select-option>
+        </a-select>
       </a-form-item>
     </a-form>
 
@@ -91,11 +112,26 @@
           this.currDepartName=''
           getAction(url).then(res=>{
             if(res.success){
+              // let departs = res.result.list
+              // let orgCode = res.result.orgCode
+              // if(departs && departs.length>0){
+              //   for(let i of departs){
+              //     if(i.orgCode == orgCode){
+              //       this.currDepartName = i.departName
+              //       break
+              //     }
+              //   }
+              // }
+              // this.departSelected = orgCode
+              // this.departList  = departs
+              // if(this.currDepartName){
+              //   this.currTitle ="部门切换(当前部门 : "+this.currDepartName+")"
+              // }
               let departs = res.result.list
               let orgCode = res.result.orgCode
               if(departs && departs.length>0){
                 for(let i of departs){
-                  if(i.orgCode == orgCode){
+                  if(i.id == orgCode){
                     this.currDepartName = i.departName
                     break
                   }
@@ -104,7 +140,7 @@
               this.departSelected = orgCode
               this.departList  = departs
               if(this.currDepartName){
-                this.currTitle ="部门切换(当前部门 : "+this.currDepartName+")"
+                this.currTitle ="部门切换(当前公司 : "+this.currDepartName+")"
               }
 
             }
@@ -130,6 +166,7 @@
             Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000);
             store.commit('SET_INFO', userInfo);
             //console.log("---切换组织机构---userInfo-------",store.getters.userInfo.orgCode);
+            
             this.departClear()
           }
         })

+ 1 - 1
src/components/tools/UserMenu.vue

@@ -60,7 +60,7 @@
         </a-menu-item>
         <a-menu-item key="5" @click="updateCurrentDepart">
           <a-icon type="cluster"/>
-          <span>切换部门</span>
+          <span>切换公司</span>
         </a-menu-item>
        <!-- <a-menu-item key="2" disabled>
           <a-icon type="setting"/>

+ 8 - 2
src/views/activiti/ModelList.vue

@@ -139,6 +139,7 @@
         queryParam: {
           createTimeRange:[],
           keyWord:'',
+          orgCode:''
         },
         tabKey: "1",
         // 表头
@@ -220,7 +221,9 @@
       createObjOk(e) {
         this.createObj.confirmLoading = true;
         this.updateObj.visible = true;
-        this.iframUrl = `${this.doMian}${this.url.create}?name=${this.createObj.name||""}&key=${this.createObj.key||""}&description=${this.createObj.description||""}`
+        //公司id
+        var orgCode=this.$store.getters.userInfo.orgCode
+        this.iframUrl = `${this.doMian}${this.url.create}?name=${this.createObj.name||""}&key=${this.createObj.key||""}&description=${this.createObj.description||""}&orgCode=${orgCode}`
         this.createObj.visible = false;
         this.createObj.confirmLoading = false;
       },
@@ -259,11 +262,13 @@
         var _this = this;
         var id = row.id;
         var name = row.name;
+        //公司id
+        var orgCode=this.$store.getters.userInfo.orgCode
         this.$confirm({
           title: '确认部署流程?',
           content: `确认部署流程:${name}`,
           onOk() {
-            getAction(_this.url.deployment+id).then((res) => {
+            getAction(_this.url.deployment+id+"/"+orgCode).then((res) => {
               if (res.success){
                 _this.$message.success(res.message);
               }else {
@@ -324,6 +329,7 @@
         })
       },
       getQueryParams(){
+        this.queryParam.orgCode=this.$store.getters.userInfo.orgCode
         var param = Object.assign({}, this.queryParam,this.isorter);
         delete param.createTimeRange; // 时间参数不传递后台
         return filterObj(param);

+ 15 - 0
src/views/activiti/form/demoForm2.vue

@@ -146,6 +146,7 @@ export default {
       // })
 
       var jsonString = JSON.stringify(res.result.jsonContent)
+      
       // var jsonString='123d"dynamicKey":"666"'
       var index = 1
 
@@ -191,6 +192,8 @@ export default {
                 this.dynamicData.add = this.add //新增按钮
                 //获取json
                 this.jsonData = res.result.jsonContent
+                //获取申请人信息
+                this.getApplicant();
                 //如果是手机端子表初始化子表model
                 this.listUpdateModel()
                 if (!this.isNew) {
@@ -207,6 +210,8 @@ export default {
       } else {
         //获取json
         this.jsonData = res.result.jsonContent
+        //获取申请人信息
+        this.getApplicant();
         //如果是手机端子表初始化子表model
         this.listUpdateModel()
         // window.jsonData=this.jsonData;
@@ -302,6 +307,16 @@ export default {
         }
       })
     },
+    //获取申请人信息
+    getApplicant() {
+      console.log("aa",this.$refs.KFB.form.getFieldValue('applicant'))
+      // if (this.$refs.KFB.form.getFieldValue('applicant')) {
+      //   alert(1)
+      //   this.$refs.KFB.setData({
+      //     applicant: this.$store.getters.userInfo.username
+      //   })
+      // }
+    },
     //表单字段数值发生改变事件
     handleChange(value, key) {
       // 数据变化时触发

+ 197 - 129
src/views/system/modules/DepartWindow.vue

@@ -8,157 +8,225 @@
     @cancel="handleCancel"
     cancelText="关闭"
     wrapClassName="ant-modal-cust-warp"
-    >
+  >
     <!--部门树-->
     <template>
       <a-form :form="form">
-      <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="上级部门">
-      <a-tree
-        multiple
-        treeCheckable="tree"
-        checkable
-        :checkedKeys="checkedKeys"
-        allowClear="true"
-        :checkStrictly="true"
-        @check="onCheck"
-        :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
-        :treeData="departTree"
-        placeholder="请选择上级部门"
-        >
-      </a-tree>
-      </a-form-item>
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属公司">
+          <a-checkbox-group @change="onChange" :value="orgDefaultValue" style="width:100%;margin-top:9px">
+            <a-row>
+              <a-col :span="8" v-for="(item,index) in orgList" :key="index">
+                <a-checkbox :value="item.key">{{item.title}}</a-checkbox>
+              </a-col>
+            </a-row>
+          </a-checkbox-group>
+        </a-form-item>
+        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="所属部门">
+          <a-tree
+            multiple
+            treeCheckable="tree"
+            checkable
+            :checkedKeys="checkedKeys"
+            allowClear="true"
+            :checkStrictly="true"
+            @check="onCheck"
+            :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
+            :treeData="departTree"
+            placeholder="请选择上级部门"
+          ></a-tree>
+        </a-form-item>
       </a-form>
     </template>
   </a-modal>
 </template>
 
 <script>
-  import pick from 'lodash.pick'
-  import { getAction } from '@/api/manage'
-  import { queryIdTree } from '@/api/api'
-  import userModal from './UserModal'
-  export default {
-    name: "DepartWindow",
-    components: {
-      userModal,
-    },
-    data () {
-      return {
-        checkedKeys:[], // 存储选中的部门id
-        userId:"", // 存储用户id
-        model:{}, // 存储SysUserDepartsVO表
-        userDepartModel:{userId:'',departIdList:[]}, // 存储用户id一对多部门信息的对象
-        departList:[], // 存储部门信息
-        modalWidth:400,
-        departTree:[],
-        title:"操作",
-        visible: false,
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-        confirmLoading: false,
-        headers:{},
-        form:this.$form.createForm(this),
-        url: {
-          userId:"/sys/user/generateUserId", // 引入生成添加用户情况下的url
-        },
-      }
-    },
-    methods: {
-      add (checkedDepartKeys,userId) {
-        this.checkedKeys = checkedDepartKeys;
-        this.userId = userId;
-        this.edit({});
+import pick from 'lodash.pick'
+import { getAction } from '@/api/manage'
+import { queryIdTree } from '@/api/api'
+import userModal from './UserModal'
+export default {
+  name: 'DepartWindow',
+  components: {
+    userModal
+  },
+  data() {
+    return {
+      checkedKeys: [], // 存储选中的部门id
+      userId: '', // 存储用户id
+      model: {}, // 存储SysUserDepartsVO表
+      userDepartModel: { userId: '', departIdList: [] }, // 存储用户id一对多部门信息的对象
+      departList: [], // 存储部门信息
+      modalWidth: 800,
+      departTree: [],
+      title: '操作',
+      visible: false,
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 5 }
       },
-      edit (record) {
-        this.departList = [];
-        this.queryDepartTree();
-        this.form.resetFields();
-        this.visible = true;
-        this.model = Object.assign({}, record);
-        let filedsVal = pick(this.model,'id','userId','departIdList');
-        this.$nextTick(() => {
-          this.form.setFieldsValue(filedsVal);
-        });
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 19 }
       },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.departList = [];
-        this.checkedKeys = [];
+      confirmLoading: false,
+      headers: {},
+      form: this.$form.createForm(this),
+      url: {
+        userId: '/sys/user/generateUserId' // 引入生成添加用户情况下的url
       },
-      handleSubmit () {
-        const that = this;
-        // 触发表单验证
-        this.form.validateFields((err) => {
-          if (!err) {
-            that.confirmLoading = true;
-            if(this.userId == null){
-              getAction(this.url.userId).then((res)=>{
-                if(res.success){
-                  let formData = {userId:res.result,
-                  departIdList:this.departList}
+      orgList: [], //公司集合
+      orgObject: {
+        pkOrg: '', //选中的公司id
+        pkOrgName: '' //选中的公司名称
+      }
+      ,orgDefaultValue:[]
+    }
+  },
+  methods: {
+    add(checkedDepartKeys, userId, userObject) {
+      this.checkedKeys = checkedDepartKeys
+      this.userId = userId
+      
+       if(userObject&&userObject.pkOrg){
+        this.orgDefaultValue=[]
+        this.orgDefaultValue=userObject.pkOrg.split(',');
+      }
+      console.log(this.orgDefaultValue)
+      this.edit(userObject)
+    },
+    edit(record) {
+      this.departList = []
+      this.queryDepartTree(record)
+      this.form.resetFields()
+      this.visible = true
+      this.model = Object.assign({}, record)
+      let filedsVal = pick(this.model, 'id', 'userId', 'departIdList')
+      console.log(filedsVal)
+      this.$nextTick(() => {
+        this.form.setFieldsValue(filedsVal)
+      })
+    },
+    close() {
+      this.$emit('close')
+      this.visible = false
+      this.departList = []
+      this.checkedKeys = []
+      this.orgList=[]
+      this.orgObject=[]
+      this.orgDefaultValue=[]
+      this.departTree=[]
+    },
+    handleSubmit() {
+      const that = this
+      // 触发表单验证
+      this.form.validateFields(err => {
+        if (!err) {
+          that.confirmLoading = true
+          if (this.userId == null) {
+            getAction(this.url.userId)
+              .then(res => {
+                if (res.success) {
+                  let formData = { userId: res.result, departIdList: this.departList, orgObject: this.orgObject }
                   console.log(formData)
-                  that.$emit('ok', formData);
+                  that.$emit('ok', formData)
                 }
-              }).finally(() => {
-                that.departList = [];
-                that.confirmLoading = false;
-                that.close();
               })
-            }else {
-              let formData = {userId:this.userId,
-                departIdList:this.departList}
-              console.log(formData)
-              that.departList = [];
-              that.$emit('ok', formData);
-              that.confirmLoading = false;
-              that.close();
-            }
+              .finally(() => {
+                that.departList = []
+                that.confirmLoading = false
+                that.close()
+              })
+          } else {
+            let formData = { userId: this.userId, departIdList: this.departList, orgObject: this.orgObject }
+            console.log(formData)
+            that.departList = []
+            that.$emit('ok', formData)
+            that.confirmLoading = false
+            that.close()
           }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
-
-      // 选择部门时作用的API
-      onCheck(checkedKeys, info){
-        this.departList = [];
-        this.checkedKeys = checkedKeys.checked;
-        let checkedNodes = info.checkedNodes;
-        for (let i = 0; i < checkedNodes.length; i++) {
-          let de = checkedNodes[i].data.props;
-          let depart = {key:"",value:"",title:""};
-          depart.key = de.value;
-          depart.value = de.value;
-          depart.title = de.title;
-          this.departList.push(depart);
         }
-        console.log('onCheck', checkedKeys, info);
-      },
-      queryDepartTree(){
-        queryIdTree().then((res)=>{
-          if(res.success){
-            this.departTree = res.result;
+      })
+    },
+    handleCancel() {
+      this.close()
+    },
+
+    // 选择部门时作用的API
+    onCheck(checkedKeys, info) {
+      this.departList = []
+      this.checkedKeys = checkedKeys.checked
+      let checkedNodes = info.checkedNodes
+      for (let i = 0; i < checkedNodes.length; i++) {
+        let de = checkedNodes[i].data.props
+        let depart = { key: '', value: '', title: '' }
+        depart.key = de.value
+        depart.value = de.value
+        depart.title = de.title
+        this.departList.push(depart)
+      }
+      console.log('onCheck', checkedKeys, info)
+    },
+    queryDepartTree(record) {
+      console.log(record)
+     
+      console.log(this.orgDefaultValue)
+      queryIdTree().then(res => {
+        if (res.success) {
+          // this.departTree = res.result
+          this.orgList = JSON.parse(JSON.stringify(res.result))
+          //处理修改进来显示公司
+          if (record&&record.pkOrg) {
+            this.departTree=[];
+            var orgSelects = record.pkOrg.split(',')
+            orgSelects.forEach(value => {
+              this.orgList.forEach(org => {
+                if (value == org.key) {
+                  //显示可选部门
+                  org.disabled = true //部门一级设置禁选
+                  this.departTree.push(org)
+                }
+              })
+            })
           }
+        }
+      })
+    },
+    modalFormOk() {},
+    onChange(checkedValues) {
+      this.orgDefaultValue=checkedValues
+      //清空
+      this.departTree = []
+      this.orgObject = {
+        pkOrg: '', //选中的公司id
+        pkOrgName: '' //选中的公司名称
+      }
+      if (checkedValues) {
+        //获取公司id和公司名称
+        checkedValues.forEach(value => {
+          this.orgList.forEach(org => {
+            if (value == org.key) {
+              //显示可选部门
+              org.disabled = true //部门一级设置禁选
+              this.departTree.push(org)
+              //获取公司数据
+              this.orgObject.pkOrg = this.orgObject.pkOrg + org.key + ','
+              this.orgObject.pkOrgName = this.orgObject.pkOrgName + org.title + ','
+            }
+          })
         })
-      },
-      modalFormOk(){
-
+        //去掉最后一位符号
+        this.orgObject.pkOrg = this.orgObject.pkOrg.slice(0, this.orgObject.pkOrg.length - 1)
+        this.orgObject.pkOrgName = this.orgObject.pkOrgName.slice(0, this.orgObject.pkOrgName.length - 1)
       }
-      },
+    }
   }
+}
 </script>
 
 <style scoped>
-  .ant-table-tbody .ant-table-row td{
-    padding-top:10px;
-    padding-bottom:10px;
-  }
+.ant-table-tbody .ant-table-row td {
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
 </style>

+ 25 - 5
src/views/system/modules/UserModal.vue

@@ -62,9 +62,9 @@
         </a-form-item>
 
         <!--部门分配-->
-        <a-form-item label="部门分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled">
+        <a-form-item label="公司部门分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled">
           <a-input-search
-            placeholder="点击右侧按钮选择部门"
+            placeholder="点击右侧按钮选择公司和部门"
             v-model="checkedDepartNameString"
             disabled
             @search="onSearch">
@@ -224,7 +224,8 @@
             rules: [
               { pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '请输入正确的座机号码' },
             ]
-          }
+          },
+          
         },
         departIdShow:false,
         departIds:[], //负责部门id
@@ -255,6 +256,11 @@
         },
         identity:"1",
         fileList:[],
+        orgObject:{
+          pkOrg: '', //选中的公司id
+          pkOrgName: '' //选中的公司名称
+        },
+        userObject:{}//用户信息
       }
     },
     created () {
@@ -326,6 +332,7 @@
           }, 5)
         }
         that.userId = record.id;
+        this.userObject=record
         that.visible = true;
         that.model = Object.assign({}, record);
         that.$nextTick(() => {
@@ -391,10 +398,14 @@
         this.departIdShow=false;
         this.identity="1";
         this.fileList=[];
+        this.orgObject=[];
+        this.userObject={}
       },
       moment,
       handleSubmit () {
-
+        if(!this.orgObject.pkOrg){
+          this.$message.warning("请选择公司");
+        }
         const that = this;
         // 触发表单验证
         this.form.validateFields((err, values) => {
@@ -406,6 +417,9 @@
               values.birthday = values.birthday.format(this.dateFormat);
             }
             let formData = Object.assign(this.model, values);
+            //获取公司信息
+            formData.pkOrg=this.orgObject.pkOrg
+            formData.pkOrgName=this.orgObject.pkOrgName
             formData.avatar = that.fileList;
             formData.selectedroles = this.selectedRole.length>0?this.selectedRole.join(","):'';
             formData.selecteddeparts = this.userDepartModel.departIdList.length>0?this.userDepartModel.departIdList.join(","):'';
@@ -584,11 +598,17 @@
       },
       // 搜索用户对应的部门API
       onSearch(){
-        this.$refs.departWindow.add(this.checkedDepartKeys,this.userId);
+        this.$refs.departWindow.add(this.checkedDepartKeys,this.userId,this.userObject);
       },
 
       // 获取用户对应部门弹出框提交给返回的数据
       modalFormOk (formData) {
+        this.orgObject=formData.orgObject//公司信息
+        //没有选择则直接退出
+        if(!formData.departIdList||formData.departIdList.length==0){
+          return;
+        }
+        
         this.checkedDepartNames = [];
         this.selectedDepartKeys = [];
         this.checkedDepartNameString = '';

+ 34 - 4
src/views/user/Login.vue

@@ -139,7 +139,7 @@
       @cancel="stepCaptchaCancel"></two-step-captcha>
 
     <a-modal
-      title="登录部门选择"
+      title="登录公司选择"
       :width="450"
       :visible="departVisible"
       :closable="false"
@@ -150,7 +150,7 @@
       </template>
 
       <a-form>
-        <a-form-item
+        <!-- <a-form-item
           :labelCol="{span:4}"
           :wrapperCol="{span:20}"
           style="margin-bottom:10px"
@@ -170,6 +170,27 @@
               {{ d.departName }}
             </a-select-option>
           </a-select>
+        </a-form-item> -->
+        <a-form-item
+          :labelCol="{span:4}"
+          :wrapperCol="{span:20}"
+          style="margin-bottom:10px"
+          :validate-status="validate_status">
+          <a-tooltip placement="topLeft" >
+            <template slot="title">
+              <span>您隶属于多公司,请选择登录公司</span>
+            </template>
+            <a-avatar style="backgroundColor:#87d068" icon="gold" />
+          </a-tooltip>
+          <a-select @change="departChange" :class="{'valid-error':validate_status=='error'}" placeholder="请选择登录公司" style="margin-left:10px;width: 80%">
+            <a-icon slot="suffixIcon" type="gold" />
+            <a-select-option
+              v-for="d in orgList"
+              :key="d.id"
+              :value="d.id">
+              {{ d.departName }}
+            </a-select-option>
+          </a-select>
         </a-form-item>
       </a-form>
 
@@ -237,7 +258,8 @@
         randCodeImage:'',
         requestCodeSuccess:false,
         slidered: false,
-        slideredMsg: ''
+        slideredMsg: '',
+        orgList:[]
       }
     },
     created () {
@@ -428,20 +450,27 @@
       },
       departConfirm(res){
         if(res.success){
+          console.log("用户信息",res)
           let multi_depart = res.result.multi_depart
           //0:无部门 1:一个部门 2:多个部门
           if(multi_depart==0){
             this.loginSuccess()
             this.$notification.warn({
               message: '提示',
-              description: `您尚未归属部门,请确认账号信息`,
+              // description: `您尚未归属部门,请确认账号信息`,
+              description: `您尚未归属公司,请确认账号信息`,
               duration:3
             });
           }else if(multi_depart==2){
             this.departVisible=true
             this.currentUsername=this.form.getFieldValue("username")
             this.departList = res.result.departs
+            this.orgList=res.result.orgList
           }else {
+            console.log("登录")
+            const userInfo = res.result.userInfo;
+            Vue.ls.set(USER_INFO, userInfo, 7 * 24 * 60 * 60 * 1000);
+            store.commit('SET_INFO', userInfo);
             this.loginSuccess()
           }
         }else{
@@ -480,6 +509,7 @@
         this.currentUsername=""
         this.departVisible=false
         this.validate_status=''
+        this.orgList=[]
       },
       departChange(value){
         this.validate_status='success'