{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/src/components/o_user_select.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/src/components/o_user_select.vue","mtime":1740130327258},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-mobile/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nimport Constant from \"@/Constant.js\";\nimport comm_dialog from \"@/components/comm_dialog.vue\";\nimport comm_tree from \"@/components/comm_tree.vue\";\nimport { Toast } from 'mint-ui'\nimport VueBetterScroll from \"vue2-better-scroll\";\nimport controlHidden from \"@/assets/js/controlHidden.js\"\nexport default {\n name: \"o-user-select\",\n components: {comm_dialog, comm_tree, VueBetterScroll},\n props: [\"id\"],\n data: function() {\n return {\n isActive: false,\n errorMessage:'',\n Constant,\n selectedDepts: [], //选中部门\n dialogVisible: false, //部门选择框显示\n popupVisible:false,\n deptUserDatas: {},\n begin: true,\n searchData: [], //搜索返回的数据\n searchList: [],\n loading: false,\n hidden:false,\n list: [],//储存数据\n allLoaded: false,\n pageNum:2,\n listData:[],\n userPageData:[],\n selectedUserList:[],\n treeFirstData:'',\n keyWord:'',\n pendingContentH:'',\n\n // 这个配置可以开启滚动条,默认为 false。当设置为 true 或者是一个 Object 的时候,都会开启滚动条,默认是会 fade 的\n scrollbarObj: {\n fade: true\n },\n // 这个配置用于做下拉刷新功能,默认为 false。当设置为 true 或者是一个 Object 的时候,可以开启下拉刷新,可以配置顶部下拉的距离(threshold) 来决定刷新时机以及回弹停留的距离(stop)\n pullDownRefreshObj: {\n threshold: 90,\n stop: 40,\n txt: this.$t('noMoreData')\n \n },\n // 这个配置用于做上拉加载功能,默认为 false。当设置为 true 或者是一个 Object 的时候,可以开启上拉加载,可以配置离底部距离阈值(threshold)来决定开始加载的时机\n pullUpLoadObj: {\n threshold: 0,\n stop: 40,\n txt: {\n more: this.$t('loadMore'),\n noMore: this.$t('noMoreData')\n }\n },\n startY: 100, // 纵轴方向初始化位置\n scrollToX: 0,\n scrollToY: 0,\n scrollToTime: 700,\n checkVal:[],\n approverList:[],\n row_count:'',\n keepSelectionData:[],\n isChecked:false,\n deleteUserList:[], //删除某些选中的用户后剩余的用户\n remainingUsers:[], //显示在comm_tree的剩余的用户\n };\n },\n watch: {\n 'field.displayType': {\n deep: true,\n handler:function(){\n let field = this.field;\n if(field.isHideType) {\n let id = this.id,\n formShowType = field.formShowType;\n controlHidden({id, field, formShowType})\n }\n }\n },\n // 当选中部门改变时,更新用户数据\n selectedDepts() {\n this.loadDeptUser();\n },\n\n dialogVisible() {\n if(!this.dialogVisible) {\n this.selectedUserList = [];\n }\n }, \n\n popupVisible() {\n if(!this.popupVisible) {\n this.remainingUsers = this.deleteUserList;\n }\n },\n\n keyWord() {\n this.pendingContentH =\n document.documentElement.clientHeight -\n this.$refs.pendingwrapper.getBoundingClientRect().top-150;\n }\n },\n mounted() {\n this.getUserList();\n this.$nextTick(()=>{\n let field = this.field;\n if(field.isHideType) {\n let id = this.id,\n formShowType = field.formShowType;\n controlHidden({id, field, formShowType})\n }\n })\n },\n computed: {\n field: function() {\n let formData = this.$parent.findField(this.id);\n if(formData.discript) {//识别控件描述最后一个字符为*时,*变红\n if(formData.discript.charAt(formData.discript.length - 1) == \"*\") {\n formData.discript = formData.discript.replace(/(\\s|\\*)+$/g, '');\n formData.essential = true;\n }\n }\n if(formData.value) {\n let arr = formData.value.split(\";\");\n let data = formData.data;\n let name = \"\";\n if(data && data.length > 0) {\n for(let j=0; j0) {\n return this.userPageData\n }else {\n let list = [];\n this.selectedDepts.forEach(deptId => {\n let dus = this.deptUserDatas[deptId]\n ? this.deptUserDatas[deptId].datas\n : [];\n list = list.concat(dus);\n });\n return list;\n }\n },\n set: function (newValue) {\n this.userPageData = newValue\n }\n\n }\n },\n methods: {\n setFieldData(formData){\n this.keepSelectionData = formData.data;\n return formData;\n },\n\n onHandleSelect(ev, item) {\n this.isChecked = ev.target.checked;\n let arr = [];\n arr.push(item);\n if(this.isChecked) {\n for(let i=0; i {\n if(item.id == el.id) {\n this.selectedUserList.splice(index, 1);\n }\n });\n }\n },\n\n newUserList(data) {\n this.selectedUserList = data;\n },\n\n //已选用户取消选择\n cancelSelection(id) {\n //this.deleteUserList = [...this.selectedUserList];\n for(let i=0; i {\n let oldLength = this.approverList.length;\n this.approverList = this.approverList.concat(response.data.datas);\n this.$refs.scroll.forceUpdate(true);\n if(oldLength >= 0) {\n for(let i=oldLength; i {\n this.approverList[i].photo = response.data.data;\n this.$forceUpdate();\n }\n })\n }\n }\n })\n }else {\n this.$refs.scroll.forceUpdate(false);\n }\n },\n\n search() {\n this.approverList = [];\n let pageNum = 1, \n pageSize = 10;\n if(this.keyWord) {\n this.$api.getSearch(this.keyWord, pageNum, pageSize, {\n onSucess: response => {\n this.approverList = response.data.data.datas;\n this.row_count = response.data.data.rowCount; \n for(let i=0; i {\n this.approverList[i].photo = response.data.data;\n this.$forceUpdate();\n }\n })\n }\n }\n })\n }\n \n },\n\n getSearch() {\n return new Promise(resolve => {\n let lastPage = Math.floor(this.approverList.length / 10) + 1;\n let pageNum = lastPage;\n let pageSize = 10;\n this.$api.getSearch(this.keyWord, pageNum, pageSize, \n {\n onSucess: response => {\n let data = response.data;\n resolve(data);\n }\n }\n );\n })\n },\n\n showTreeDept() {\n let node = {\n key: \"\",\n label: \"\",\n level: 0,\n loaded: true,\n hasChilds:\"\",\n userCount:\"\",\n }\n this.loadNodeFirst(node);\n this.dialogVisible = true;\n // this.pendingContentH =\n // document.documentElement.clientHeight -\n // this.$refs.pendingwrapper.getBoundingClientRect().top-150;\n },\n\n loadNodeFirst() {\n //{ key: '', level: 0, label: '总部', loaded: false }\n this.$api.getDepartmentsByParentId(this.$root.appid,\"\", {\n onSucess: response => { \n let treeData = response.data.data\n let nn = {\n key: treeData[0].id, \n level: 1, \n label: treeData[0].name, \n loaded: false,\n hasChilds:treeData[0].hasChilds,\n userCount:treeData[0].userCount\n }\n this.treeFirstData = nn;\n }\n });\n },\n\n reset() {\n this.selectedDept = [];\n this.allSelectedDept = [];\n this.selectedUserList =[];\n this.deleteUserList = [];\n this.checkVal = [];\n this.isChecked = false;\n },\n\n //组件comm_tree选择用户时传值过来\n getUserData(data, addRole, selectMode, onHold){\n if(onHold == \"YES\") {\n this.selectedUserList = data;\n }else {\n if(selectMode == \"selectOne\"){\n this.selectedUserList = data;\n }else{\n if(addRole) {\n this.selectedUserList.push(data);\n }else {\n for(let y=0; y {\n //this.$set(this.deptUserDatas, deptId, response.data.data);\n this.userList = this.userList.concat(response.data.data.datas);\n this.listData = this.listData.concat(response.data.data.datas);\n this.allLoaded = false;\n }\n });\n } \n },\n \n onChange() {\n // this.$parent.refresh(this.id);\n let havePar = false;\n let par = '';\n while(!havePar) {\n par = par + '.$parent';\n let url = 'this' + par + '.refresh';\n if(eval(url)) {\n let path = url + '(' + \"'\"+ this.id +\"'\" + ')';\n eval(path);\n break\n }\n }\n },\n\n onTabClose(id, data) {\n for (var i = 0; i < data.length; i++) {\n if (i == id) {\n data.splice(i, 1); \n i--;\n break; \n }\n }\n },\n //加载部门数据\n loadDeptNode(node, resolve) {\n if (node.level === 0) {\n this.$api.getDepartmentsByParentId(this.$root.appid,\"\", {\n onSucess: function(response) {\n resolve(response.data.data);\n }\n });\n } else {\n this.$api.getDepartmentsByParentId(this.$root.appid,node.key, {\n onSucess: function(response) {\n resolve(response.data.data);\n\n }\n });\n }\n },\n\n //加载部门用户信息\n loadDeptUser() {\n this.selectedDepts.forEach(deptId => {\n let appId = this.$root.appid;\n if (!this.deptUserDatas[deptId]) {\n this.$api.getDeptUser(appId, deptId, {\n onSucess: response => {\n this.$set(this.deptUserDatas, deptId, response.data.data);\n }\n });\n }\n });\n },\n\n //选中的角色显示在文本框中\n onOk(val) {\n if(val && val=='LABEL') {\n this.selectedUserList = this.deleteUserList;\n }\n this.field.userName = \"\";\n this.field.value = \"\"\n if(this.field.selectMode == 'multiSelect') {\n if(this.selectedUserList.length > 0) {\n let name = \"\";\n for(let i=0; i 1) {\n this.dialogVisible = false;\n this.popupVisible = false;\n Toast('只能选择一个');\n this.selectedUserList = [];\n }else if (this.selectedUserList.length == 1) {\n this.field.value = this.selectedUserList[0].id;\n this.field.userName = this.selectedUserList[0].name;\n if (this.field.refreshOnChanged) {//判断是否需要刷新\n // this.$parent.refresh(this.id);\n let havePar = false;\n let par = '';\n while(!havePar) {\n par = par + '.$parent';\n let url = 'this' + par + '.refresh';\n if(eval(url)) {\n let path = url + '(' + \"'\"+ this.id +\"'\" + ')';\n eval(path);\n break\n }\n }\n }\n this.keepSelectionData = [...this.selectedUserList];\n this.selectedUserList = [];\n this.dialogVisible = false;\n this.popupVisible = false;\n }else {\n this.dialogVisible = false;\n this.popupVisible = false;\n }\n }\n this.checkVal = [];\n if(this.field.instantValidate) {\n this.isFieldClear = false;\n let value = true;\n let formData = this.$parent.checkData(value);\n this.$api.formValidation(\n this.$root.appid, \n formData,\n {\n onSucess: response => {\n if(response.data.errcode == 4001) {\n if(response.data.errors && response.data.errors.length > 0) {\n let arr = response.data.errors;\n for(let i=0; i